脉冲响应不变法的归一化低通原型系统函数表达式
时间: 2023-11-25 11:49:33 浏览: 168
根据引用,脉冲响应不变法是一种数字滤波器设计方法,它将模拟滤波器的脉冲响应与数字滤波器的单位脉冲响应相等。在此方法中,模拟滤波器的传递函数被变换为数字滤波器的传递函数。在这种方法中,我们需要设计一个归一化的模拟低通滤波器,以便将其转换为数字滤波器。
根据引用,归一化低通滤波器的传递函数表达式为:
H_a(s) = 1 / (1 + (s / ω_c)^2)^0.5
其中,ω_c是截止频率,s是连续时间域的复变量。
为了将此模拟滤波器转换为数字滤波器,我们需要对其进行离散化。根据引用,我们可以使用双线性变换将模拟滤波器转换为数字滤波器。使用双线性变换,我们可以得到数字滤波器的传递函数表达式:
H(z) = (1 - z^-1)^2 / (1 + α*z^-1 - β*z^-2)
其中,α和β是由模拟滤波器的传递函数计算得出的常数。
相关问题
请设计一个椭圆带通滤波器的代码,设计流程为从数字域带通指标出发,通过预畸变得到模拟域带通指标;然后对模拟域带通指标进行归一化处理,变为模拟域低通指标;模拟域低通指标可以通过模拟 低通原型滤波器进行设计,得到模拟低通滤波器系统;模拟低通滤波器系统可以通过脉冲响应不变法或者双线性变换法得到数字域低通滤波器系统;数字域低 通滤波器系统通过数字频带变换就可以得到数字域带通滤波器系统。,并且该代码可在matlab上运行不出错
% 1. 从数字域带通指标出发,得到模拟域带通指标
fs = 1000; % 采样率
f1 = 50; % 带通边缘频率1
f2 = 150; % 带通边缘频率2
B = f2 - f1; % 带宽
% 预畸变
wp1 = 2*pi*f1/fs * tan(pi*B/fs);
wp2 = 2*pi*f2/fs * tan(pi*B/fs);
% 根据预畸变后的带通指标,得到模拟域带通指标
ws1 = (wp1 + wp2)/2 - B/2; % 带通边缘频率1
ws2 = (wp1 + wp2)/2 + B/2; % 带通边缘频率2
As = 30; % 阻带衰减
% 2. 对模拟域带通指标进行归一化处理
wp = pi; % 常规低通滤波器的截止频率
ws = min([ws1, ws2]); % 归一化后的带通边缘频率2
Ap = 1; % 通带最大衰减,常设为1dB
alpha_p = (10^(0.05*Ap) - 1)/(10^(0.05*Ap) + 1); % 常规低通滤波器的阻带最大波纹
% 根据归一化后的模拟域低通指标进行设计
[N, Wn] = ellipord(wp, ws, Ap, As); % 求得阶数和通带截止频率
[b, a] = ellip(N, Ap, As, Wn); % 模拟低通滤波器系数
% 3. 将模拟低通滤波器系数转换成数字低通滤波器系数
[B, A] = bilinear(b, a, fs); % 双线性变换法
% [B, A] = impinvar(b, a, fs); % 脉冲响应不变法
% 4. 通过数字频带变换来得到数字域带通滤波器系数
F1 = f1/fs; % 数字域带通边缘频率1
F2 = f2/fs; % 数字域带通边缘频率2
omega1 = 2*pi*F1; % 对应的数字角频率1
omega2 = 2*pi*F2; % 对应的数字角频率2
delta_omega = omega2 - omega1; % 数字域带宽
% 数字频带变换
k = (A*exp(-1i*omega2) - A*exp(-1i*omega1)) / (B*exp(-1i*omega2) - B*exp(-1i*omega1));
bpass_num = delta_omega / (2*pi) * abs(k) * B; % 数字域带通滤波器系数
% 绘制幅频特性
fvtool(bpass_num);
% 对信号进行滤波
x = randn(1000,1); % 随机信号
y = filter(bpass_num, 1, x); % 滤波后的信号
Butterworth模拟低通滤波器为原型,fp=3000; fst=6000; Rp=3; Rs=35;用脉冲响应不变法设计数字滤波器
根据脉冲响应不变法的步骤,可以先对模拟滤波器进行归一化处理:
1. 计算模拟滤波器的截止频率ωc:
ωc = sqrt(fp * fst)
2. 将模拟滤波器的截止频率归一化到Ω = 1:
Ω = ωc / (2 * π * fs)
其中,fs为数字滤波器的采样频率。
3. 根据归一化后的截止频率Ω,计算模拟滤波器的阶数n:
n = log10((10^(0.1 * Rs) - 1) / (10^(0.1 * Rp) - 1)) / (2 * log10(Ω))
4. 计算模拟滤波器的极点:
p = -sinh((1/n) * asinh(1 / sqrt(10^(0.1 * Rs) - 1)))
5. 根据模拟滤波器的极点,计算数字滤波器的系数:
b0 = b1 = b2 = ... = bn = p^n
a0 = 1
其中,n为模拟滤波器的阶数。
最后,将数字滤波器的系数进行归一化处理,即将b0除以a0即可。
需要注意的是,由于脉冲响应不变法会引入一定的频率响应失真,因此在实际应用中需要进行补偿。
阅读全文