基于Matlab的IIR数字滤波器的设计Word文件下载.docx
- 文档编号:17709612
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:10
- 大小:95.16KB
基于Matlab的IIR数字滤波器的设计Word文件下载.docx
《基于Matlab的IIR数字滤波器的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于Matlab的IIR数字滤波器的设计Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
2.2数字滤波器的选择………………………………………………………8
3matlab的程序………………………………………..………………………….9
心得体会………………………………………………………………………………15
参考文献……………………………………………………………….………….….16
1.数字滤波器
1.1数字滤波器的定义
滤波器是指用来对输入信号进行滤波的硬件和软件。
所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。
数字滤波器和模拟滤波器相比,因为信号的形式和实现滤波的方法不同,数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配等优点。
一般用两种方法来实现数字滤波器:
一是采用通用计算机,把滤波器所要完成的运算编成程序通过计算机来执行,也就是采用计算机软件来实现;
二是设计专用的数字处理硬件。
MATLAB的信号处理工具箱是专门应用于信号处理领域的专用工具箱,它的两个基本组成就是滤波器的设计与实现部分以及谱分析部分。
工具箱提供了丰富而简便的设计,使原来繁琐的程序设计简化成函数的调用。
只要以正确的指标参数调用相应的滤波器设计程序或工具箱函数,便可以得到正确的设计结果,使用非常方便。
Matlab图片导出的方法不止一种,文件格式也有很多种,本次实验用copyfigure的方式,简便易行,不容易出错。
常见的语音格式有WAV格式,MP3格式,WMA格式,OGG格式,APE格式,ACC格式。
matlab能直接输入输出的有.wav和.au文件。
用wavread(),wavwrite(),auread(),auwrite()函数输入。
如果录制的格式不匹配,可以用电脑自带的千千静听转换格式。
1.2数字滤波器的分类
数字滤波器从功能上分类:
可分为低通滤波器、高通滤波器、带通滤波器、带阻滤波器。
从滤波器的网络结构或者从单位脉冲响应分类:
可分为IIR滤波器(即无限长单位冲激响应滤波器)和FIR滤波器(即有限长单位冲激响应滤波器)。
它们的函数分别为:
第一个公式中的H(z)称为N阶IIR滤波器函数,第二个公式中的H(z)称为(N-1)阶FIR滤波器函数。
1.3数字滤波器的设计要求
滤波器的指标常常在频域给出。
数字滤波器的频响特性函数
一般为复函数,所以通常表示为:
其中,|
|称为幅频特性函数,Φ(w)称为相频特性函数。
幅频特性表示信号通过该滤波器后各频率成分的衰减情况,而相频特性反映各频率通过滤波器后在时间上的延时情况。
一般IIR数字滤波器,通常只用幅频响应函数|
|来描述设计指标,相频特性一般不作要求。
IIR滤波器指标参数如下图所示。
图中,ωp和ωs分别为通带边界频率和阻带边界频率;
δ1和δ2分别为通带波纹和阻带波纹;
允许的衰减一般用dB数表示,通带内所允许的最大衰减(dB)和阻带内允许的最小衰减(dB)分别为αp和αs表示:
一般要求:
低通滤波器的技术要求
1.4数字滤波器设计方法概述
IIR数字滤波器的设计步骤流程图如下:
步骤流程图
IIR滤波器设计方法有两类,经常用到的一类设计方法是借助于模拟滤波器的设计方法进行的。
其设计思路是:
先设计模拟滤波器得到传输函数Ha(s),然后将Ha(s)按某种方法转换成数字滤波器的系统函数H(Z)。
这一类方法是基于模拟滤波器的设计方法相对比较成熟,它不仅有完整的设计公式,也有完整的图表供查阅。
更可以直接调用MATLAB中的对应的函数进行设计。
另一类是直接在频域或者时域中进行设计的,设计时必须用计算机作辅助设计,直接调用MATLAB中的一些程序或者函数可以很方便地设计出所需要的滤波器。
2.IIR滤波器的设计
2.1典型的IIR数字滤波器的设计
模拟滤波器的理论和设计方法已发展得相当成熟,且有一些典型的模拟滤波器供我们选择,如巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Cauer)滤波器、贝塞尔(Bessel)滤波器等,这些典型的滤波器各有特点。
用MATLAB进行典型的数字滤波器的设计,一般步骤如下:
(1)将设计指标归一化处理。
如果采用双线性变换法,还需进行预畸变。
(2)根据归一化频率,确定最小阶数N和频率参数Wn。
可供选用的阶数择函数有:
buttord,cheblord,cheb2ord,ellipord等。
(3)运用最小阶数N设计模拟低通滤波器原型。
模拟低通滤波器的创建函数有:
buttap,cheblap,cheb2ap,ellipap和besselap,这些函数输出的是零极点式形式,还要用zp2tf函数转换成分子分母多项式形式。
如果想根据最小阶数直接设计模拟低通滤波器原型,可用butter,chebyl,cheby2,ellip,bessel等函数,只是注意要将函数中的Wn设为1。
(4)根据第2步的频率参数Wn,模拟低通滤波原型转换模拟低通、高通、带通、带阻滤波器,可用函数分别是:
lp21p,lp2hp,lp2bp,lp2bs。
(5)运用脉冲响应不变法或双线性变法把模滤波器转数字滤波器,调用的函数是impinvar和bilinear。
脉冲响应不变法适用于采样频率大于4倍截止频率的锐截止低通带通滤波器,而双线性变换法适合于相位特性要求不高的各型滤波器。
(6)根据输出的分子分母系数,用tf函数生成H(z)的表达式,再用freqz函数验证设计结果。
设计巴特沃思数字低通滤波器和椭圆数字低通滤波器,要求通带边界频率fp=2.1kHZ,通带最大衰减Rp=0.5dB;
阻带边界频率fs=8kHZ,阻带最小衰减Rs=30dB,采样频率为Fs=20kHZ。
2.2数字滤波器的选择
巴特沃斯(Butterworth)滤波器和切比雪夫(Chebyshev)滤波器两者的区别:
各有千秋,同阶数的两者,切比雪夫比巴特沃斯的优势就是它的滚降更加陡峭,在截止频率处更接近于理想的,但是在通带(阻带)内频率响应有等幅波动,巴特沃斯恰恰相反,滚降不够陡峭,但是在通带内是最平坦的,所以被誉为“通带最平坦滤波器”。
两者不能比谁好谁坏,只能说各有千秋,具体选择那一种只能根据要求来,如果要求阶数低而陡降,且对于通带(阻带)频响要求不高,允许有波动,就选切比雪夫,这是一种低成本截止特性好的选择。
一般情况下,切比雪夫的更好,但是只要在同等条件下满足了你的通带阻带要求,最好还是用巴特沃斯的,成本低,实现起来也简单
巴特沃斯滤波器具有单调下降的幅频特性,通带内平滑;
切比雪I型滤波器的幅频特性在通带内有波动,阻带内单调;
chebyshevII型滤波器的幅频特性在阻带内有波动,通带内单调;
椭圆滤波器的选择性相对前三种是最好的,下降斜度比较大,通带和阻带内均为等波纹,同样的性能指标,椭圆滤波器可以最低的阶数来实现。
这样根据不同的要求可以选用不同类型的滤波器。
3.matlab的程序
利用函数wavread对语音信号的采集:
i=1;
[x,fs,bits]=wavread('
1.wav'
);
%x:
语音数据;
fs:
采样频率;
bits:
采样点数
sound(x,fs,bits);
%话音回放
N=length(x);
n=0:
N-1;
figure(i);
subplot(2,1,1);
plot(n,x);
%画出原始语音信号的波形
xlabel('
n'
ylabel('
x(n)'
title('
原始语音信号'
subplot(2,1,2);
[H,f]=freqz(x,1,512,fs);
plot(f,20*log10(abs(H)));
%画出原始语音信号的频谱
原始语音信号的频谱'
运行结果:
fs=44100
bits=16
L=length(y)
%计算音频信号的长度
noise=0.1*randn(L,2);
%产生等长度的随机噪声信号(这里的噪声的大小取决于随机函数的幅度倍数)
y_z=y+noise;
%将两个信号叠加成一个新的信号——加噪声处理
sound(y_z,fs)
加入上面设计的椭圆滤波器对其进行滤波:
fs=20000;
wp=2*pi*2100/fs;
ws=2*pi*8000/fs;
Rp=0.5;
Rs=30;
Ts=1/fs;
Wp=2/Ts*tan(wp/2);
Ws=2/Ts*tan(ws/2);
%按频率转换公式进行转换
[N,Wn]=ellipord(Wp,Ws,Rp,Rs,'
s'
%计算模拟滤波器的最小阶数
[z,p,k]=ellipap(N,Rp,Rs);
%设计模拟原型滤波器
[Bap,Aap]=zp2tf(z,p,k);
%零点极点增益形式转换为传递函数形式
[b,a]=lp2lp(Bap,Aap,Wn);
%低通转换为低通滤波器的频率转化
[bz,az]=bilinear(b,a,fs);
%运用双线性变换法得到数字滤波器传递函数
[H,f]=freqz(bz,az,512,fs);
N=2频率响应'
gridon;
频率/Hz'
振幅/dB'
%-------滤波前后波形比较-----%
i=i+1;
figure(i);
y=filter(bz,az,x);
subplot(2,2,1);
plot(n,x);
%画出原语音信号的波形
xlabel('
ylabel('
title('
subplot(2,2,3);
plot(n,y);
%IIRLowPass后的波形
IIRLowPass后的波形'
%---------滤波前后语音信号频谱-----%
subplot(2,2,2);
%滤波前语音信号频谱
IIR低通滤波前语音信号频谱'
subplot(2,2,4);
[H,f]=freqz(y,1,512,fs);
%滤波后语音信号频谱
IIR低通滤波后语音信号频谱'
sound(y,fs,bits);
在matlab上运行后,发现语音信号在经过上面设计的椭圆数字低通滤波器后,声音发生了明显的改变。
观察波形,因为导入的语音信号波形的频率分布绝大多数分布在低频区,故没有被滤波器过滤掉多少,所以语音信号波形变化不大。
但频谱发生了明显得改变。
心得体会
通过这1个星期紧张的课程设计,获得了不少收获,明白了自己的很多知识欠缺。
虽然之前我们学过matlab这款软件,并做了很多实验,但是只有在亲自用matlab做东西时才会发现我们对matlab的了解还只是皮毛,还需要多方查资料来更好地运用这个软件。
这次课程设计既考察了我们对理论知识的掌握情况,还反映出我们实际动手能力和编程能力,有时会为了找出程序里的错误而研究好几个小时,找不到时就换个程序。
这在无形中以及提高了我各方面的能力。
课程设计虽然结束了,但这次课程设计所给的绝不会是短暂的效果,无论是在知识上,还是在思想上都给我烙下了深刻的印象,这次课程设计一定会成为以后坚实基础上的一块永不破碎的基石。
参考文献
[1]赵力著,语音信号处理(第2版)[M],机械工业出版社,2010.
[2]胡航著,语音信号处理(第四版)[M],哈尔滨工业大学出版社,2009.
[3]张雄伟等著,现代语音处理技术及应用[M],机械工业出版社,2009.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Matlab IIR 数字滤波器 设计