武汉理工大学《数字信号处理》课程设计说明书
2 本次课程设计中相关MATLAB函数 2.1循环结构for语句 基本格式
for 循环变量=起始值:步长:终止值 循环体 end
步长缺省值为1,可以在正实数或负实数范围内任意指定。对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。循环结构可以嵌套使用。 2.2 buttord函数
(1)[N,wc]=buttord(wp,ws,αp,αs)
用于计算巴特沃斯数字滤波器的阶数N和3dB截止频率wc。其中,调用参数wp,ws分别为数字滤波器的通带、阻带截止频率的归一化值,要求:0≤wp≤1,0≤ws≤1(1表示数字频率pi)。当ws≤wp时,为高通滤波器;当wp和ws为二元矢量时,为带通或带阻滤波器,这时wc也是二元向量。
αp,αs分别为通带最大衰减和组带最小衰减(dB)。 N,wc为butter函数的调用参数。
(2)[N,Ωc]=buttord(Ωp,Ωs,αp,αs,‘s’)
用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率Ωc。其中,Ωp,Ωs,Ωc均为实际模拟角频率。
说明:buttord函数使用阻带指标计算3dB截止频率,这样阻带会刚好满足要求,而通带会有富余。 2.3 butter函数
(1)[b,a]=butter(N,wc,‘ftype’)
计算N阶巴特沃斯数字滤波器系统函数分子、分母多项式的系数向量b、a。其中,调用参数N和wc分别为巴特沃斯数字滤波器的阶数和3dB截止频率的归一化值(关于pi归一化),一般是调用buttord(1)格式计算N和wc。系数b、a是按照z的升幂排列。
5
-1
武汉理工大学《数字信号处理》课程设计说明书
(2)[B,A]=butter(N,Ωc,‘ftype’,‘s’)
计算巴特沃斯模拟滤波器系统函数的分子、分母多项式系数向量ba、aa。其中,调用参数N和Ωc分别为巴特沃斯模拟滤波器的阶数和3dB截止频率(实际角频率),可调用buttord(2)格式计算N和Ωc。系数B、A按s的正降幂排列。 tfype为滤波器的类型:
1ftype=high时,高通;Ωc只有1个值。 ○
2ftype=stop时,带阻阻;此时Ωc=[Ωcl,Ωcu],分别为带阻滤波器的通带3dB下○
截止频率和上截止频率。
3ftype缺省时,若Ωc只有1个值,则默认为低通;若Ωc有2个值,则默认为带○
通;其通带频率区间Ωcl < Ω < Ωcu。
所设计的带通和带阻滤波器系统函数是2N阶。因为带通滤波器相当于N阶低通滤波器与N阶高通滤波器级联。 2.4 freqz函数 调用格式为:
[H,F] = freqz(B,A,N,Fs)
其中:B/A 提供滤波器系数, B为分子,A为分母 ;
N 表示选取单位圆的上半圆等间距的N个点作为频响输出; Fs 为采样频率,该参数可以省略
H 为N个点处的频率响应复值输出向量,其模即为频响幅值曲线幅值20log10(abs(H))DB,其幅角angle(H)即为频响相位曲线相位值。
F 为与第N点处对应的频率值f(Hz),如果Fs 参数省略时,则频率值w为rad/sample,w = 2*pi*f/Fs
2.5 impz函数(Impz函数用来求数字滤波器的冲激响应)
(1)[h,t]=impz(b,a),其中,b,a分别为系统传递函数的分子和分母的系数向量;h为系统的冲激响应和t为相应的时间轴量。 (2)[h,t]=impz(b,a,n),用来计算n点冲激响应
(3)[h,t]=impz(b,a,n,Fs),指定冲激相应相应采样点间隔1/Fs,Fs为相对频率,默认为1 。
6
武汉理工大学《数字信号处理》课程设计说明书
3程序设计及运行结果
(1)设计一个低通巴特沃斯模拟滤波器:指标如下:
通带截止频率:fp=3400HZ, 通带最大衰减:Rp=3dB ; 阻带截至频率:fs=4000HZ,阻带最小衰减:AS=40dB。
解:利用MATLAB工具箱中提供的设计模拟滤波器的函数:计算巴特沃斯滤波器阶次和截止频率的buttord函数,计算低通巴特沃斯滤波器的butter函数,计算滤波器频率响应的freqs函数。MATLAB实现程序如下所示: >> fp=3400; >> fs=4000; >> Rp=3; >> As=40;
>> [N,fc]=buttord(fp,fs,Rp,As,'s'); >> [B,A]=butter(N,fc,'s'); >> [hf,f]=freqs(B,A,1024);
>> plot(f,20*log10(abs(hf)/abs(hf(1)))) >> grid; >> xlabel('f/Hz'); >> ylabel('幅度(dB)'); 程序运行结果: N = 29 fc =
3.4127e+003
其频率特性曲线如下图3所示:
7
武汉理工大学《数字信号处理》课程设计说明书
图 3 巴特沃斯模拟低通滤波器频率特性曲线
(2)模拟低通转换为数字低通滤波器已知一模拟滤波器的系数函数为 Ha(s)?1000S?1000
分别用冲激响应不变法和双线性变换法将Ha(s)转换成数字滤波器系统函数H(z),并图示
Ha(s)和 H(z)的幅度相应曲线。分别取采样频率Fs=1000Hz和Fs=500Hz,分析冲激响应法中存在的频率混叠失真和双线性变换法存在的非线性频率失真等。 解:其MATLAB实现程序如下所示: >> b=1000; >> a=[1,1000]; >> w=[0:1000*2*pi]; >> [hf,w]=freqs(b,a,w); >> subplot(1,3,1); >> plot(w/2/pi,abs(hf)); >> grid; >> xlabel('f/Hz'); >> ylabel('幅度'); >> Fs0=[1000,500];
8
武汉理工大学《数字信号处理》课程设计说明书
>> for m=1:2
Fs=Fs0(m);
[d,c]=impinvar(b,a,Fs); wd=[0:512]*pi/512; hw1=freqz(d,c,wd); subplot(1,3 ,2)
plot(wd/pi,abs(hw1)/abs(hw1(1))); hold on; end >> grid; >> xlabel('f/(Hz)');
>> text(0.52,0.88,'T=0.002s'); >> text(0.12,0.54,'T=0.001s'); >> for m=1:2 Fs=Fs0(m); [f,e]=bilinear(b,a,Fs); wd=[0:512]*pi/512; hw2=freqz(f,e,wd); subplot(1,3,3);
plot(wd/pi,abs(hw2)/abs(hw2(1))); hold on; end >> grid;
>> xlabel('f/(Hz)'); >> text(0.5,0.74,'T=0.002s'); >> text(0.12,0.34,'T=0.001s');
9
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库巴特沃斯滤波器的设计(2)在线全文阅读。
相关推荐: