基于MATLAB的数字滤波器设计及其对语音信号的应用_第1页
基于MATLAB的数字滤波器设计及其对语音信号的应用_第2页
基于MATLAB的数字滤波器设计及其对语音信号的应用_第3页
基于MATLAB的数字滤波器设计及其对语音信号的应用_第4页
基于MATLAB的数字滤波器设计及其对语音信号的应用_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于MATLAB的数字滤波器设计及其对语音信号的应用班级:电信1001 姓名:马维民学号:指导教师:刘丽杰 耿磊日期:2013-11-28课程设计的目的:1)掌握数字信号处理的基本概念、基本理论和基本方法; 2)掌握MATLAB设计FIR和IIR数字滤波器的方法; 3)掌握在Windows环境下语音信号采集以及时域、频域分析;4)学会MATLAB的使用,掌握MATLAB的程序设计方法;5)学会用MATLAB对信号进行分析和处理。1. 课程设计内容:1)录制一段自己的语音信号,对录制的信号进行采样;2)画出采样后语音信号的时域波形和频谱图;3)给定滤波器的性能指标,采MATLAB设计数字滤波器,

2、并画出滤波器的频率响应;4)然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;5)回放语音信号。2. 滤波器设计方法综述:1)直接设计数字滤波器;数字滤波器是数字信号处理的一个重要组成部分。数字滤波实际上是一种运算过程,其功能是将一组输入的数字序列通过一定的运算后转变为另一组输出的数字序列。数字滤波器一般可以用两种方法来实现:一种是根据描述数字滤波器的数学模型或信号流图,用数字硬件装配成一台专门的设备,构成专用的信号处理机;另一种方法就是直接利用通用计算机,将所需要的运算编成程序让计算机来执行,这也是用软件来实现数字滤波器。

3、数字滤波器是离散时间系统,所处理的信号是离散时间信号。一般时域离散系统或网络可以用差分方程、单位脉冲响应以及系统函数进行描述。如果输入、输出服从N阶差分方程则其系统函数,即滤波器的传递函数为4)使用MATLAB下的Filter Designed Tool3。在Command Window窗口中输入fdatool,出现滤波器设计工具界面设计思路:首先将数字高通滤波器的技术指标转化为模拟滤波器的技术指标,再采用Buttetworth逼近的方法求得其系统函数H(S),再利用冲激响应不变法将模拟滤波器的系统函数H(s)变为相应的数字滤波器的系统函数H(Z),然后用MATALB进行仿真,然后确定数字滤波

4、器的结构。3. 具体步骤与任务:4.1语音信号的采集录制一段自己的话音,或利用老师给的语音,在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。4.2语音信号的频谱分析要求画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性。相应的MATLAB程序:clear allI,Fs,bits=wavread('1.wav');%读取语音信号1.wavY=fft(I); %进行快速傅里叶变换mag=abs(Y); %求取幅度谱phase=angle(Y); %求取相位谱phase=phase*180/pi; %转换为Pi单位

5、dB=20*log10(abs(Y)+eps); %求取对数幅度谱t=(0:length(I)-1)/Fs; %设置标度subplot(221);plot(t,I);title('波形图');xlabel('时间(s)');ylabel('幅度');%设置标题和横纵坐标f=(1:length(Y)*Fs/length(Y); %设置标度subplot(222);plot(f,mag);title('幅度谱');xlabel('频率(Hz)');ylabel('频谱幅度');%设置标题和横纵坐标sub

6、plot(223);plot(f,phase);title('相位谱');xlabel('频率(Hz)');ylabel('频谱相位');%设置标题和横纵坐标subplot(224);plot(f,dB);title('对数幅度谱');xlabel('频率(Hz)');ylabel('频谱幅度(dB)');%设置标题和横纵坐标图2 时域波形和信号的频谱特性4.3设计数字滤波器,画出其频率响应曲线各滤波器的性能指标:(1)低通滤波器性能指标fp1000Hz, fs1200Hz, As40dB, Ap1

7、dB。(2)高通滤波器性能指标fs4000Hz, fp4300Hz, As40dB, Ap1dB(3)带通滤波器性能指标fp11200 Hz, fp23 000 Hz, fs11000 Hz, fs23200 Hz, As40dB, Ap1dB。要求:(1) 频率变换法设计IIR滤波器: 可以利用函数butter、cheby1、cheby2和ellip等设计。(2) (选做)设计IIR滤波器:用双线性变换法设计上面要求的3种滤波器。Bilinear(3) (选做)设计FIR滤波器:用窗函数法设计上面要求的3种滤波器。可以利用函数fir1设计FIR滤波器。(4) 函数freqz画出各滤波器的频率

8、响应。4.4用滤波器对信号进行滤波,比较滤波前后语音信号的波形及频谱要求用自己设计的各滤波器分别对采集的语音信号进行滤波,并在一个窗口同时画出滤波前后的波形及频谱。(1) IIR滤波器利用函数filter对信号进行滤波;(2) FIR滤波器利用函数fftfilt对信号进行滤波。3.5 回放语音信号在MATLAB中,函数sound可以对声音进行回放。其调用格式:sound(x,fs,bits);可以感觉滤波前后的声音有变化。原来已给的语音没有噪声,而滤波后出现了失真。低通滤波器相应的MATLAB程序:clear allI,Fs,bits=wavread('1.wav');%读取语

9、音信号1.wavfp=1000; %通带截止频率fs=1200; %阻带角频率Ap=1; %通带纹波As=40; %阻带衰减n,fn= buttord(fp/(Fs/2),fs/(Fs/2),Ap,As); %巴特沃斯滤波器n1,fn1=cheb1ord(fp/(Fs/2),fs/(Fs/2),Ap,As);%切比雪夫I型滤波器n2,fn2=cheb2ord(fp/(Fs/2),fs/(Fs/2),Ap,As);%第二类切比雪夫滤波器n3,fn3=ellipord(fp/(Fs/2),fs/(Fs/2),Ap,As);%最小椭圆滤波器b,a=butter(n,fn); %巴特沃斯IIR滤波器b

10、1,a1=cheby1(n1,Ap,fn); %I型切比雪夫IIR滤波器b2,a2=cheby2(n2,Ap,fn); %第二类切比雪夫滤波器b3,a3=ellip(n3,Ap,As,fn); %椭圆滤波器h,w=freqz(b,a); %滤波器的频率响应h1,w1=freqz(b1,a1); %波器的频率响应h2,w2=freqz(b2,a2); %波器的频率响应h3,w3=freqz(b3,a3); %波器的频率响应I1=filter(b,a,I); %1维数字滤波器I3=filter(b1,a1,I); %1维数字滤波器I5=filter(b2,a2,I); %1维数字滤波器I7=fil

11、ter(b3,a3,I); %1维数字滤波器I2=fftfilt(b,I); %FFT的FIR滤波I4=fftfilt(b1,I); %FFT的FIR滤波I6=fftfilt(b2,I); %FFT的FIR滤波I8=fftfilt(b3,I); %FFT的FIR滤波subplot(441),plot(I);title('原始语音信号');subplot(442),plot(I);title('原始语音信号');subplot(443),plot(I);title('原始语音信号');subplot(444),plot(I);title('

12、原始语音信号');subplot(445);plot(w*Fs/(2*pi),abs(h);title('巴特沃斯低通滤波');subplot(446);plot(w1*Fs/(2*pi),abs(h1);title('切比雪夫1低通滤波');subplot(447);plot(w2*Fs/(2*pi),abs(h2);title('切比雪夫2低通滤波');subplot(448);plot(w3*Fs/(2*pi),abs(h3);title('椭圆低通滤波');subplot(449);plot(I1);title(&

13、#39;巴特沃斯IIR滤波后语音信号');subplot(4,4,13);plot(I2);title('巴特沃斯FIR滤波后语音信号');subplot(4,4,10);plot(I3);title('切比雪夫1IIR滤波后语音信号');subplot(4,4,14);plot(I4);title('切比雪夫1FIR滤波后语音信号');subplot(4,4,11);plot(I5);title('切比雪夫2IIR滤波后语音信号');subplot(4,4,15);plot(I6);title('切比雪夫2FIR

14、滤波后语音信号');subplot(4,4,12);plot(I7);title('椭圆IIR滤波后语音信号');subplot(4,4,16);plot(I8);title('椭圆FIR滤波后语音信号');图3 低通滤波器波形图高通滤波器相应的MATLAB程序:clear allI,Fs,bits=wavread('1.wav');%读取语音信号1.wavfp=4300; %通带截止频率fs=4000; %阻带角频率Ap=1; %通带纹波As=40; %阻带衰减n,fn= buttord(fp/(Fs/2),fs/(Fs/2),Ap,A

15、s); %巴特沃斯滤波器n1,fn1=cheb1ord(fp/(Fs/2),fs/(Fs/2),Ap,As);%切比雪夫I型滤波器n2,fn2=cheb2ord(fp/(Fs/2),fs/(Fs/2),Ap,As);%第二类切比雪夫滤波器n3,fn3=ellipord(fp/(Fs/2),fs/(Fs/2),Ap,As);%最小椭圆滤波器b,a=butter(n,fn,'high'); %巴特沃斯IIR滤波器b1,a1=cheby1(n1,Ap,fn,'high'); %I型切比雪夫IIR滤波器b2,a2=cheby2(n2,Ap,fn,'high

16、9;); %第二类切比雪夫滤波器b3,a3=ellip(n3,Ap,As,fn,'high'); %椭圆滤波器h,w=freqz(b,a); %滤波器的频率响应h1,w1=freqz(b1,a1); %波器的频率响应h2,w2=freqz(b2,a2); %波器的频率响应h3,w3=freqz(b3,a3); %波器的频率响应I1=filter(b,a,I); %1维数字滤波器I3=filter(b1,a1,I); %1维数字滤波器I5=filter(b2,a2,I); %1维数字滤波器I7=filter(b3,a3,I); %1维数字滤波器I2=fftfilt(b,I); %

17、FFT的FIR滤波I4=fftfilt(b1,I); %FFT的FIR滤波I6=fftfilt(b2,I); %FFT的FIR滤波I8=fftfilt(b3,I); %FFT的FIR滤波subplot(441),plot(I);title('原始语音信号');subplot(442),plot(I);title('原始语音信号');subplot(443),plot(I);title('原始语音信号');subplot(444),plot(I);title('原始语音信号');subplot(445);plot(w*Fs/(2*p

18、i),abs(h);title('巴特沃斯高通滤波');subplot(446);plot(w1*Fs/(2*pi),abs(h1);title('切比雪夫1高通滤波');subplot(447);plot(w2*Fs/(2*pi),abs(h2);title('切比雪夫2高通滤波');subplot(448);plot(w3*Fs/(2*pi),abs(h3);title('椭圆高通滤波');subplot(449);plot(I1);title('巴特沃斯IIR滤波后语音信号');subplot(4,4,13);plot(I2);title('巴特沃斯FIR滤波后语音信号');subplot(4,4,10);plot(I3);title('切比雪夫1IIR滤波后语音信号');s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论