课程设计报告.docx
- 文档编号:24538813
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:16
- 大小:211.76KB
课程设计报告.docx
《课程设计报告.docx》由会员分享,可在线阅读,更多相关《课程设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
课程设计报告
课程设计报告
题目:
语音信号滤波去噪
语音信号滤波去噪
1课程设计的任务与要求
首先录制一段自己的语音信号,并对录制的信号进行采样,修改其参数设置方便实验,再画出采样后语音信号的时域波形和频谱图。
再通过程序编写在程序调试中加入噪声,再画出加入噪声后的时域波形和频谱图。
接着自行给定滤波器的性能指标,采用IIR滤波器,并画出滤波器的频率响应。
用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化并回放语音信号;通过利用各种不同的开发工具实现语音信号的滤波去噪,掌握数字信号的分析方法和处理方法.
2设计原理
2.1设计流图
MATLAB语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等,信号处理是MATLAB重要应用的领域之一。
本课程设计介绍了基于Matlab的对语音信号采集、处理及滤波器的设计,并使之实现的过程。
理解与掌握课程中的基本概念、基本原理、基本分析方法,用Matlab进行数字语音信号处理,并阐述了课程设计的具体方法、步骤和内容。
综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。
采样器的作用是把连续信号变为脉冲或数字序列。
图中示出了一个连续信号f(t)经采样器采样后变为离散信号的过程【1】。
图1连续信号f(t)经采样器采样后变为离散信号
图中f(t)为被采样的连续信号,S(t)为周期性窄脉冲信号,fs(t)为采样后的离散信号,它用下式来表征:
fs(t)=f(t)s(t)
采样信号的频率特性为:
如果|F*(jω)|中各个波形不重复搭接,相互间有一定的距离(频率)即若
即采样定理可叙述如下:
如果采样周期满足下列条件,即:
式中ωmax为连续信号f(t)的最高次谐波的角频率。
则采样信号f*(t)
就可以无失真地再恢复为原连续信号f(t)。
需要指出的是,采样定理只是在理论上给出了信号准确复现的条件。
我们可以利用windows自带的录音机录制语音文件,进行数字信号的采集。
(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000KHz,8位,单声道)或其他软件,将话筒输入计算机的语音输入插口上,启动录音机,录制一段自己的话音。
然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。
通过wavread函数的使用进一步理解采样频率、采样位数等概念。
图2是基于PC机的语音信号采集过程:
声音
图2语音采集过程
3滤波去噪的仿真与实现
3.1录制语音信号
此次录制语音信号,需用到电脑附件中的录音机功能,在机房的电脑系统为WindowsXP系统,在笔记本的win7系统中,录制的语音信号格式为.wma格式文件,需用格式转换器进行转换。
在机房电脑中,点击电脑桌面上的“开始”菜单,再选择“程序”中的“附件”,在“附件”的菜单栏中选择“娱乐”,最后点击“录音机”,就可以得到如图3.2的图。
然后点击开始录制一段“数字通信原理课程设计”的语音信号,时间大约在2~3秒之间。
录制好语音信号之后点击另存为,在另存为的对话框中右下角有“更改”选项,进行更改音频文件的参数,其参数设置的值如图3.3所示。
最后将这段语音信号保存在MATLAB下的Work文档中以便以后调用。
并命名为“ywt【4】”。
图3XP系统下的录音机
图4语音信号参数设置
3.2语音信号的读取
在matlab软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数。
通过使用wavread函数,理解采样频率、采样位数等概念。
wavread函数调用格式
y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。
[y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。
y=wavread(file,N),读取前N点的采样值放在向量y中。
y=wavread(file,[N1,N2]),读取从N1到N2点的采样值放在向量y中。
对语音信号“ywt.wav”进行采样其程序如下:
[y,fs,nbits]=wavread('ywt.wav')
语音信号是一种非平稳的时变信号,它携带着各种信息。
在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。
语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。
语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取的特征参数主要有语音的短时能量,短时平均过零率,短时自相关函数等。
图5原始信号波形
3.3噪声信号的构建
在MATLAB软件平台下,给原始的语音信号叠加上噪声,噪声类型分为如下几种:
白噪声、单频噪声(正弦干扰)、多频噪声(多正弦干扰)、其他干扰,可设置为低频、高频、带限噪声、Chirp干扰、冲激干扰。
绘制出叠加噪声之后的语音信号时域图形及频域图形,在视觉上与原始信号图形对比,也可以通过Windows播放软件或者是利用MATLAB中的sound()函数从听觉上进行对比,分析并体会含噪语音信号频谱和时域波形的改变。
利用MATLAB中的随机函数(randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析。
程序如下:
N=length(y);%求出语音信号的长度
noise=rand(N,2)/20;%噪声信号的函数
z=fft(noise);%快速傅里叶变换
subplot(2,1,1),plot(noise);title('噪声信号波形');
subplot(2,1,2),plot(abs(z));title('噪声信号频谱');
axis([0,250000,0,100]);
图6噪声信号
3.4滤波器的设计原理
利用模拟滤波器来设计数字滤波器,也就是使数字滤波器能模仿模拟滤波器的特性,这种模仿可以从不同的角度出发。
脉冲响应不变法是从滤波器的脉冲响应出发,使数字滤波器的单位脉冲响应序列h(n)模仿模拟滤波器的冲激响应ha(t),即将ha(t)进行等间隔采样,使h(n)正好等于ha(t)的采样值,满足
h(n)=ha(nT)
式中,T是采样周期。
如果令Ha(s)是ha(t)的拉普拉斯变换,H(z)为h(n)的Z变换,利用采样序列的Z变换与模拟信号的拉普拉斯变换的关系得
(1-1)
则可看出,脉冲响应不变法将模拟滤波器的S平面变换成数字滤波器的Z平面,这个从s到z的变换z=esT是从S平面变换到Z平面的标准变换关系式【2】。
图7脉冲响应不变法的映射关系
由(1-1)式,数字滤波器的频率响应和模拟滤波器的频率响应间的关系为
(1-2)
这就是说,数字滤波器的频率响应是模拟滤波器频率响应的周期延拓。
正如采样定理所讨论的,只有当模拟滤波器的频率响应是限带的,且带限于折叠频率以内时,即
(1-3)
才能使数字滤波器的频率响应在折叠频率以内重现模拟滤波器的频率响应,而不产生混叠失真,即
|ω|<π(1-4)
但是,任何一个实际的模拟滤波器频率响应都不是严格限带的,变换后就会产生周期延拓分量的频谱交叠,即产生频率响应的混叠失真,如图7-4所示。
这时数字滤波器的频响就不同于原模拟滤波器的频响,而带有一定的失真。
当模拟滤波器的频率响应在折叠频率以上处衰减越大、越快时,变换后频率响应混叠失真就越小。
这时,采用脉冲响应不变法设计的数字滤波器才能得到良好的效果。
图8脉冲响应不变法中的频响混叠现象
对某一模拟滤波器的单位冲激响应ha(t)进行采样,采样频率为fs,若使fs增加,即令采样时间间隔(T=1/fs)减小,则系统频率响应各周期延拓分量之间相距更远,因而可减小频率响应的混叠效应[3]。
从以上讨论可以看出,脉冲响应不变法使得数字滤波器的单位脉冲响应完全模仿模拟滤波器的单位冲激响应,也就是时域逼近良好,而且模拟频率Ω和数字频率ω之间呈线性关系ω=ΩT。
因而,一个线性相位的模拟滤波器(例如贝塞尔滤波器)通过脉冲响应不变法得到的仍然是一个线性相位的数字滤波器。
脉冲响应不变法的最大缺点是有频率响应的混叠效应。
所以,脉冲响应不变法只适用于限带的模拟滤波器(例如,衰减特性很好的低通或带通滤波器),而且高频衰减越快,混叠效应越小。
至于高通和带阻滤波器,由于它们在高频部分不衰减,因此将完全混淆在低频响应中。
如果要对高通和带阻滤波器采用脉冲响应不变法,就必须先对高通和带阻滤波器加一保护滤波器,滤掉高于折叠频率以上的频率,然后再使用脉冲响应不变法转换为数字滤波器。
当然这样会进一步增加设计复杂性和滤波器的阶数。
脉冲响应不变法的主要缺点是产生频率响应的混叠失真。
这是因为从S平面到Z平面是多值的映射关系所造成的。
为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=esT转换到Z平面上。
也就是说,第一步先将整个S平面压缩映射到S1平面的-π/T~π/T一条横带里;第二步再通过标准变换关系z=es1T将此横带变换到整个Z平面上去。
这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象
IIR数字滤波器是一种离散时间系统,其系统函数为
(1-5)
假设M≤N,当M>N时,系统函数可以看作一个IIR的子系统和一个(M-N)的FIR子系统的级联。
IIR数字滤波器的设计实际上是求解滤波器的系数和,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。
如果在S平面上去逼近,就得到模拟滤波器;如果在z平面上去逼近,就得到数字滤波器【2】。
设计流程如图所示:
频域指标双线性变换法
脉冲响应不变法
图9IIR滤波器的间接法设计
IIR低通滤波器:
Ft=8000;
Fp=1000;
Fs=1200;
wp=2*pi*Fp/Ft;
ws=2*pi*Fs/Ft;
fp=2*Ft*tan(wp/2);
fs=2*Ft*tan(ws/2);
[N,wc]=ellipord(wp,ws,1,50,'s');
[b,a]=ellip(N,wc,'s');
[bz,az]=bilinear(b,a,0.5);
[h,w]=freqz(bz,az);
plot(w*8000*0.5/pi,abs(h));
Legend('用椭圆设计');
title('IIR低通滤波器');
grid;
图10IIR低通滤波器
3.5滤波器对信号滤波
用设计好的数字滤波器对含噪语音信号进行滤波,在Matlab中IIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波,在一个窗口同时画出滤波前后的波形及频谱.
matlab程序如下:
y=wavread('ywt.wav');
N=length(y);
noise=rand(N,2)/20;
s=y+noise;%噪声信号的叠加
Subplot(2,1,1);
plot(s);title('滤波前的时域波形');
S=fft(s);
Subplot(2,1,2);
plot(abs(S));title('滤波前的频域波形');
axis([0,45000,0,200]);
图11滤波前后的信号波形
从图看出,加噪声后的语音信号经过FIR滤波器滤波后,时域和频域图与原始信号几乎一样,说明噪声几乎都被滤掉了,也说明FIR滤波器设计很理想,能满足所需要求。
3.6结果分析
要确定本课程设计是否成功就得看原始信号的频域图和时域图与经过滤波器后的语音
信号的频域图和时域图是否一样,若一样则表示该设计是成功的,否则是不成功的。
在第一个图中:
第一幅图和第二幅图是原始语音信号的时域图和频域图,第二个图中:
第一幅图和第二幅图是加入随机噪声时域图和频域图。
在第三个图中:
为滤波前后的时域及频域,从图中可以看出,第一图和第三图相比因为加入噪声的缘故所以第三图y轴的幅度要比第一图要大,但其形状还是基本没有改变。
4心得与体会
通过这次的课程设计我们可以学的到很多的东西,不仅可以巩固以前所学过的知识,还可以学到很多在书本上所没有学到过的知识。
进一步加深了对数字信号处理的了解,让我对它有了更加浓厚的兴趣。
因为以前学过信号与系统和数字信号处理两门课,但这只是理论知识,通过实验我们才能真正理解其意义。
语音信号处理在以前的学习中并没有怎么接触,但是通过网上查找资料,我很快的理解了其基本原理。
在设计的过程中我还是遇到不少的问题的,比如刚开始,要处理的是WAV格式的语音信号,可是我发现并不是所有的WAV文件都可以用WAVREAD函数读取的,这才了解到WAV文件之间也是有区别的,并且如果格式不对的话,我们要把格式转换成WAV格式。
刚开始由于对滤波器的滤波原理并不是很了解,于是我又翻出学过的数字信号处理课本,认真研究起各种滤波器了,这才使我明白了大多数滤波器是如何工作地,不再单单只是懂理论,理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论。
语音信号是一种非平稳的时变信号,它携带着各种信息。
语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。
语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取的特征参数。
语音信号经过FFT变换之后,就可以得到信号的频域图形,另外,频域图形使信号的某些特性变得更明显,信号的傅立叶表示在信号的分析与处理中起着重要的作用。
因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。
应用MATLAB根据给定的技术指标进行FIR数字滤波器设计时,可根据设计要求随时改变参数,以使滤波器达到最优化。
使用凯瑟窗设计低通、高通滤波器,并对叠加噪声后的语音信号进行滤波。
比较滤波前后的时域波形和频谱并进行分析。
在频域波形中,我们可以明显的看到设计的滤波器对语音信号进行了滤波处理,将噪声进行了滤除。
此次滤波基本达到了要求,完成了设计指标。
总之,加噪声的后的语音信号经过IIR滤波器的滤波处理,时域和频域图与原始信号都几乎一样,这说明噪声几乎全被滤掉了,同时也说明IIR滤波器设计还算理想,能满足所需要求。
也可看出滤波之后仍有一小段噪声没有滤除,后面经过调试滤波器的参数发现当fp、fs参数的数值相差增大时,剩余噪声便会减少,于是通过进一步调试得到了较好的效果。
低通滤波后,声音稍微有些发闷、低沉,原因是高频分量被低通滤波器衰减。
但是很接近原来的声音。
高通滤波器滤波以后,此时只有少许杂音,原因是低频分量被高通滤波器衰减,而人声部分正好是低频部分,所以只剩下杂音,或者发出高频杂音但人的耳朵听不到。
本课程设计的主要目的是在MATLAB环境下,使用窗函数设计法设计一个FIR滤波器,并对叠加了噪声后的语音信号进行滤波去噪。
此次滤波基本达到了要求,完成了设计指标。
总的来说,通过这次的课程设计我对语音信号有了全面的认识,对数字信号处理的知识又有了深刻的理解,让我感受到只有在充分理解课本知识的前提下,才能更好的应用这个工具;并且熟练的应用MATLAB也可以很好的加深我对课程的理解,方便我的思维。
这次设计使我了解了MATLAB的使用方法,学会分析滤波器的优劣和性能,提高了分析和动手实践能力。
参考文献
[1]陈怀琛.MATLAB及在电子信息课程中的应用[M].北京:
电子工业出版社2006年3月。
[2]张文.基于MATLAB的语音信号的滤波与实现[J].山西电子技 2002年2月。
[3]蔡莲红,黄德智.现代语音技术基础与应用 [M] 清华大学出版社 2003年11月。
[4]胡航.语音信号处理[M].哈尔滨:
哈尔滨工业大学出版社 2009年06月 。
指导教师评语
成绩(60%)
指导教师签字:
年月日
答辩小组评语
成绩(40%)
答辩小组签字:
年月日
教研室综合意见
综合成绩
教研室主任签字(盖章):
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)