发布时间 : 星期三 文章dsp课程设计-基于MATLAB的数字滤波器的设计更新完毕开始阅读
课程设计说明书
5 总结
通过这次课设,我认识到了MATLAB功能非常的强大,使得我们在使用的时候用户直接调用这些库函数并赋予实际参数就能解决实际问题,具有极高的变成效率。我也熟悉了MATLAB的工作环境,可以很熟练的对MATLAB进行常规的操作,快速进行程序编辑和仿真。本文次课设通过一个设计实例,利用MATLAB实现 IIR数字滤波器设计与滤波的三种方法,从仿真结果可以看出它们均可以达到技术指标要求,而且方法简单、快捷,大大减轻了工作量。滤波器的设计工作完成后,可以借助于MATLAB的export操作导出所设计滤波器的系统函数H(z)。由于MATLAB具有强大的接口功能,仿真后的结果可以很方便的移植到 DSP、CPLD。在实际应用中,只需按要求修改滤波器参数,并对程序作较少的改动,即可实现不同截止频率的FIR滤波器,实用性较强。完成任务后才发现这次训练的内容并不算难。首先要做的工作就是如何把设计条件写入到MATLAB中,其次就是对条件进行分析,主要是得出一些参数。以上的内容全都要通过程序的编写来完成,不过主要的操作是对函数的调用,这就要我们熟悉MATLAB的一些函数的基本功能以及它们的基本语句。这次课程设计的主要目的是基于MATLAB的语音信号分析及滤波。通过设计IIR和FIR的各种滤波器,并对声音信号进行滤波处理,加深对DSP数字信号处理的理解和对MATLAB的进一步学习,将理论转化成实践,并在实践中检验理论。在设计完滤波器后,要求设计一个图形用户界面GUI,通过此界面来实现各个滤波器的功能,初步认识人机交互界面的开发,为以后的学习和设计打下基础。当然,经过了课程设计,我也发现了自己的很多不足。但是通过自己的动手动脑,既增加了知识,又给了我专业知识以及专业技能上的提升,我也会更加努力,认真学习,争取在以后的课程中做得更好!
25
课程设计说明书
参考文献
[1] 范寿康 DSP技术与DSP芯片.北京: 电子工业出版社
[2] 万永革 数字信号处理的MATLAB实现.北京: 科学出版社, 2007 [3] 程佩青. 数字信号处理教程.北京: 清华大学出版社出版, 2001 [4] 高西全 丁玉美等 数字信号处理. 北京: 电子工业出版社,
26
2009 课程设计说明书
附录
%IIR 低通滤波器 fb=1000; fc=1200; fs=22050; As=15; Ap=1;
wb=fb*2*pi/fs; %将数字频率转化为数字角频率 wc=fc*2*pi/fs;
Wb=2*fs*tan(wb/2); %数字角频率转化为模拟角频率 Wc=2*fs*tan(wc/2);
[n,wn]=buttord(Wb,Wc,Ap,As,'s'); %最小阶次为N的巴特沃兹低通滤波器 [b,a]=butter(n,wn,'s'); %截止频率为wn的低通模拟巴特沃兹滤波器 [bd,ad]=bilinear(b,a,fs); %将模拟滤波器转化为数字滤波器 [h,w]=freqz(bd,ad,1024); %数字滤波器的n点复频响应值 figure(1);
subplot(1,1,1);
plot(w*fs/(2*pi),20*log10(abs(h))); %复频特性曲线· title('IIR低通滤波器幅频特性'); pause;
[x,fs,bits]=wavread('W.wav'); %读取语音信号 n=length(x); %输入语音信号的长度 f=fs*(0:(n/2-1))/n;
sound(x); %回放输入的语音信号 X=fft(x); %输入信号的傅里叶变换
z=filter(bd,ad,x); %对输入的语音信号进行滤波 figure(2);
subplot(2,2,1); plot(x);
title('原始语音信号的波形'); subplot(2,2,2); plot(z);
title('IIR低通滤波后信号的波形'); sound(z); %回放滤波后的语音信号 subplot(2,2,3);
plot(f,abs(X(1:n/2))); title('原始语音信号的频谱');
27
课程设计说明书
xlabel('Hz'); Z=fft(z);
subplot(2,2,4);
plot(abs(Z(1:n/2)));
title('IIR低通滤波后信号的频谱'); xlabel('Hz'); pause;
%IIR 高通滤波器 fb = 5000; fs =4800; f=22050; as = 15; ap = 1;
wb = fb*2*pi/fs; %将数字频率转化为数字角频率 wc = fc*2*pi/fs;
Wb = 2*fs*tan(wb/2); %数字角频率转化为模拟角频率 Wc = 2*fs*tan(wc/2);
[n,wn]=buttord(Wb,Wc,ap,as,'s'); %最小阶次为N的巴特沃兹低通滤波器 [b,a]=butter(n,wn,'high','s'); %截止频率为wn的高通模拟滤波器 [bd,ad]=bilinear(b,a,fs); %将模拟高通滤波器转换为数字滤波器 [h,w]=freqz(bd,ad,1024); %数字滤波器的n点复频响应值 figure(3);
subplot(1,1,1);
plot(w,abs(h)); %复频特性曲线
grid; %图上加坐标网络 title('IIR高通滤波器幅频特性'); pause;
[x,fs,bits]=wavread('W.wav'); %读取语音信号
n=length(x); %输入语音信号的长度 f=fs*(0:(n/2-1))/n;
sound(x); %回放输入的语音信号 X=fft(x); %输入信号的傅里叶变换 z=filter(bd,ad,x); %对输入的语音信号进行滤波 Z=fft(z); figure(4);
subplot(2,2,1); plot(x);
title('原始语音信号的波形');
28