目录参考直接套用matlab的内建函数做两种设计方法的比较
参考
数字信号处理原理及其MATLAB实现(第3版)的6.2 冲激响应不变法 (页码p152)
数字信号处理原理及其MATLAB实现(第3版)的7.3 双线性变换法 (页码p155)
直接套用matlab的内建函数做
将\(H_a(s)=\frac{1000}{s+1000}\)分别用冲激响应不变法和双线性变换法变化为数字滤波器系统函数\(H(z)\),并画出\(H_a(s)\)和\(H(z)\)的频率响应曲线。抽样频率分为1000Hz和500Hz
我之前写过一篇拿mma做的文章
clc;
close all;
clear all;
b=1000;a=[1,1000];
w=[0:1000*2*pi];
[hf,w]=freqs(b,a,w);
subplot(2,3,1);
plot(w/2/pi,abs(hf));
grid;
xlabel('f/(Hz)');ylabel('幅度');
title('原模拟滤波器幅频特性');
Fs0=[1000,500];
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
title('冲激响应不变法');
grid;
xlabel('f/(Hz)');
text(0.52,0.88,'Ts=0.002s');
text(0.12,0.54,'Ts=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
title('双线性变换法');
grid;
xlabel('f/(Hz)');
text(0.5,0.74,'Ts=0.002s');
text(0.12,0.34,'Ts=0.001s');
![](https://img2020.cnblogs.com/blog/1943228/202104/1943228-20210411194416231-1410740285.png)
两种设计方法的比较
冲激响应不变变换法会造成频响混叠,不宜用来设计高通、带阻滤波器,适用于基本上是限带的滤波器,如低通和带通滤波器,当强调以控制时间响应为主要目的来设计滤波器时,采用这种方法比较合适。
双线性变换法克服了频率响应的混叠现象,但频率变换关系产生了非线性。对具有分段常数幅频特性的选频滤波器来说,频率非线性失真问题可以用预畸变方法解决。并且双线性变换法同冲激响应不变变换法相比,它具有计算简单和易于实现的特点。因此,实际工作中广泛采用双线性变换法来设计IⅡR数字滤波器。
|