0一.综合实验题目应用MatLab对语音信号进行频谱分析及滤波二.主要内容录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;课程设计应完成的工作:1、语音信号的采集;2、语音信号的频谱分析;3、数字滤波器的设计;4、对语音信号进行滤波处理;5、对滤波前后的语音信号频谱进行对比分析;三.具体要求1、学生能够根据设计内容积极主动查找相关资料;2、滤波器的性能指标可以根据实际情况作调整;3、对设计结果进行独立思考和分析;4、设计完成后,要提交相关的文档;1)课程设计报告书(纸质和电子版各一份,具体格式参照学校课程设计管理规定),报告内容要涵盖设计题目、设计任务、详细的设计过程、原理说明、频谱图的分析、调试总结、心得体会、参考文献(在报告中参考文献要做标注,不少于5篇)。2)可运行的源程序代码(电子版)四.进度安排在基本要求的基础上,学生可根据个人对该课程设计的理解,添加一些新的内容。序号内容时间(天)1熟悉Matlab程序设计方法,了解数字信号处理工具箱使用22分析题目,设计程序框图,编写程序代码33上机调试程序,修改并完善设计24验收设计成果及上交设计报告(电子稿和打印稿)15合计81五.成绩评定(1)平时成绩:无故旷课一次,平时成绩减半;无故旷课两次平时成绩为0分,无故旷课三次总成绩为0分。迟到15分钟按旷课处理(2)设计成绩:按照实际的设计过程及最终的实现结果给出相应的成绩。(3)设计报告成绩:按照提交报告的质量给出相应的成绩。课程设计成绩=平时成绩(30%)+设计成绩(30%)+设计报告成绩(40%)2目录第一节实验任务.........................................3第二节实验原理.........................................32.1采样频率、位数及采样定理.............................32.2时域信号的FFT分析..................................42.3IIR数字滤波器设计原理...............................42.4FIR数字滤波器设计原理...............................4第三节实验过程.........................................53.1原始语音信号采样后的时域、频域分析...................53.2采样后信号的FFT变换分析.............................73.3双线性变换法设计IIR数字滤波器.......................83.4窗函数法设计FIR数字滤波器..........................11第四节心得体会........................................14第五节参考文献........................................153应用MatLab对语音信号进行频谱分析及滤波第一节实验任务录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号。第二节实验原理2.1采样频率、位数及采样定理采样频率[2],也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。通俗的讲采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。采样位数可以理解为声卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实。我们首先要知道:电脑中的声音文件是用数字0和1来表示的。所以在电脑上录音的本质就是把模拟声音信号转换成数字信号。反之,在播放时则是把数字信号还原成模拟声音信号输出。采样定理又称奈奎斯特定理[2],在进行模拟/数字信号的转换过程中,当采样频率率fs不小于信号中最高频率fm的2倍时,采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍。42.2时域信号的FFT分析信号的频谱分析就是计算机信号的傅里叶变换[5]。连续信号与系统的傅里叶分析显然不便于用计算机进行计算,使其应用受到限制。而FFT是一种时域和频域均离散化的变换,适合数值运算,成为用计算机分析离散信号和系统的有力工具。对连续信号和系统,可以通过时域采样,应用DFT进行近似谱分析。2.3IIR数字滤波器设计原理利用双线性变换设计IIR滤波器(巴特沃斯数字低通滤波器的设计)[6],首先要设计出满足指标要求的模拟滤波器的传递函数Ha(s),然后由Ha(s)通过双线性变换可得所要设计的IIR滤波器的系统函数H(z)。如果给定的指标为数字滤波器的指标,则首先要转换成模拟滤波器的技术指标,这里主要是边界频率Wp和Ws的转换,对ap和as指标不作变化。边界频率的转换关系为∩=2/Ttan(w/2)。接着,按照模拟低通滤波器的技术指标根据相应设计公式求出滤波器的阶数N和3dB截止频率∩c;根据阶数N查巴特沃斯归一化低通滤波器参数表,得到归一化传输函数Ha(p);最后,将p=s/∩c代入Ha(p)去归一,得到实际的模拟滤波器传输函数Ha(s)。之后,通过双线性变换法转换公式s=2/T((1-1/z)/(1+1/z))得到所要设计的IIR滤波器的系统函数H(z)。2.4FIR数字滤波器设计原理基于窗函数的FIR数字滤波器的设计方法通常也称之为傅立叶级数法,是用一定宽度窗函数截取无限脉冲响应序列,获得有限长的脉冲响应序列,从而得到FIR滤波器。它是在时域进行的,由理想滤波器的频率响应)(jdeH推导出其单位冲激响应hd(n),再设计一个FIR数字滤波器的单位冲激响应h(n)去逼近hd(n),表示)(nhd=21deeHjjd)(由此得到的离散滤波器的系统传递函数Hd(z)为)(jdeH=10)(Nnjenh,该hd(n)为无限长序列,因此Hd(z)是物理5不可实现的。为了使系统变为物理可实现的,且使实际的FIR滤波器频率响应尽可能逼近理想滤波器的频率响应,采用窗函数将无限脉冲响应hd(n)截取一段h(n)来近似表示hd(n),可得:h(n)=hd(n)w(n),从而有:式中N表示窗口长度,这样H(z)就是物理可实现的系统。并且从线性相位FIR滤波器的充要条件可知,为了获得线性相位FIR数字滤波器的冲激响应h(n),那么序列h(n)应有τ=(N−1)/2的延迟。由于窗函数的选择对结果起着重要的作用,针对不同的信号和不同的处理目的来确定窗函数的选择才能收到良好的效果。第三节实验过程3.1原始语音信号采样后的时域、频域分析1、源程序如下:[x1,fs,bits]=wavread('C:\DocumentsandSettings\Administrator\桌面\CQ.wav');%读取语音信号的数据,赋给变量x1figure(1)plot(x1)%做原始语音信号以44.1k采样后的时域图形title('原始语音采样后时域信号');xlabel('时间轴n');ylabel('幅值A');figure(2)freqz(x1)%绘制原始语音信号采样后的频率响应图title('原始语音信号采样后频率响应图');[x1,fs,bits]=wavread('C:\DocumentsandSettings\Administrator\桌面\1.wav');%读取语音信号的数据,赋给变量x1sound(x1,fs);%播放语音信号62、运行结果如图3-1、3-2所示:图3-1原始语音采样后时域信号图3-2原始语音信号采样后频率响应73.2采样后信号的FFT变换分析1、源程序如下:[x1,fs,bits]=wavread('C:\DocumentsandSettings\Administrator\桌面\CQ.wav');%读取语音信号的数据,赋给变量x1y1=fft(x1,1024);%对采样后信号做1024点FFT变换f=fs*(0:511)/1024;%生成频率序列figure(1)subplot(2,1,1);plot(f,abs(y1(1:512)));title('原始语音信号频谱')xlabel('频率/Hz');ylabel('幅值')subplot(2,1,2);plot(abs(y1(1:1024)))%采样后信号的FFT频谱图title('原始语音信号FFT频谱')xlabel('点数N');ylabel('幅值');2、运行结果如图3-3所示:图3-3原始语音信号频谱及FFT频谱3、频谱分析:从图3-3可以看出,采样点数为1024,离散点数越多,越接近原始信号频谱。83.3双线性变换法设计IIR数字滤波器1)低通滤波器性能指标fp=1000Hz,fst=1200Hz,Ap=1db,As=100db。(1)源程序如下:fs=22050;[x2]=wavread('C:\DocumentsandSettings\Administrator\桌面\CQ.wav');Ts=1/fs;R1=10;wp=2*pi*1000/fs;%通带截止频率ws=2*pi*1200/fs;%阻带截止频率Rp=1;%通带衰减Rl=100;%阻带衰减wp1=2/Ts*tan(wp/2);%将模拟指标转换成数字指标ws1=2/Ts*tan(ws/2);[N,Wn]=buttord(wp1,ws1,Rp,R1,'s');%选择滤波器的最小阶数[Z,P,K]=buttap(N);%创建butterworth模拟低通滤波器[Bap,Aap]=zp2tf(Z,P,K);[b,a]=lp2lp(Bap,Aap,Wn);%将模拟原型低通滤波器转换为低通滤波器[bz,az]=bilinear(b,a,fs);%用双线性变换法实现模拟滤波器到数字滤波器的转换[H,W]=freqz(bz,az);%绘制频率响应曲线figure(1)plot(W*fs/(2*pi),abs(H))gridxlabel('频率/Hz')ylabel('频率响应幅度')title('IIR低通滤波器')f1=filter(bz,az,x2);figure(2)subplot(2,1,1)9plot(x2)%画出滤波前的时域图title('IIR低通滤波器滤波前的时域波形');subplot(2,1,2)plot(f1);%画出滤波后的时域图title('IIR低通滤波器滤波后的时域波形');sound(f1,44100);%播放滤波后的信号F0=fft(f1,1024);f=fs*(0:511)/1024;figure(3)y2=fft(x2,1024);subplot(2,1,1);plot(f,abs(y2(1:512)));%画出滤波前的频谱图title('IIR低通滤波器滤波前的频谱')xlabel('频率/Hz');ylabel('幅值');subplot(2,1,2)F1=plot(f,abs(F0(1:512)));%画出滤波后的频谱图title('IIR低通滤波器滤波后的频谱')xlabel('频率/Hz');ylabel