数字滤波器设计——脉冲响应不变法与双线性变换法
数字滤波器设计是数字信号处理中的重要内容之一,为了实现数字滤波器的设计,我们可以使用脉冲响应不变法和双线性变换法。下面将简要介绍这两种方法的基本原理,并附上Matlab源代码。
- 脉冲响应不变法
脉冲响应不变法是一种常见的数字滤波器设计方法,其基本思路是将模拟滤波器的脉冲响应直接映射到数字滤波器的单位脉冲响应上。具体而言,假设我们有一个模拟滤波器的传递函数H(s),其单位脉冲响应为h(t),那么我们可以通过以下公式来计算数字滤波器的单位脉冲响应:
h[n] = h(t)|t=nT
其中T为采样周期。在得到h[n]后,我们就可以直接将其作为数字滤波器的单位脉冲响应,从而实现数字滤波器的设计。
下面给出使用脉冲响应不变法设计低通滤波器的示例代码:
% 设计模拟低通滤波器
fc = 1000; % 截止频率
fs = 8000; % 采样频率
Wn = fc/(fs/2);
[b,a] = butter(4,Wn,‘low’);
% 求传递函数
[z,p,k] = butter(4,Wn,‘low’, ‘s’);
[num,den] = zp2tf(z,p,k);
sys = tf(num, den);
% 脉冲响应不变法
Ts = 1/fs;
[h,t] = impz(b,a);
n = length(h);
% 频率响应
[H,f] = freqz(b,a,n,fs);
figure;
subplot(2,1,1);
plot(t,h);
tit
本文介绍了数字滤波器设计中的两种方法——脉冲响应不变法和双线性变换法,包括基本原理和Matlab实现。通过示例代码展示了如何使用这两种方法设计低通滤波器,并分析了幅频响应。
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



