z域H(z)=z/(z-0.9)的数字滤波器的截止频率是多少
时间: 2024-04-01 21:30:58 浏览: 93
根据z域传递函数H(z)=z/(z-0.9),我们可以将其转换为对应的数字滤波器的频率响应,从而求出数字滤波器的截止频率。
将H(z)进行因式分解,可以得到
H(z) = z / (z - 0.9) = 1 + 0.9 / (z - 0.9)
此时,H(z)可以看作是一个一阶IIR滤波器的级联。根据一阶IIR滤波器的频率响应公式,其频率响应为:
H(e^(jω)) = 1 / (1 - a * e^(-jω))
其中,a为滤波器的衰减系数,根据H(z)的形式,可知a=0.9。
令|H(e^(jωc))| = 1/√2,即
|1 / (1 - 0.9 * e^(-jωc))| = 1/√2
将等式两边取模并化简,得到
|cos(ωc) - 0.9 + j sin(ωc)| = 1/√2
移项并平方,得到
(cos(ωc) - 0.9)^2 + sin^2(ωc) = 1/2
化简可得
2 cos(ωc) - 1.8 = 0
解得
cos(ωc) ≈ 0.9
因此,ωc ≈ arccos(0.9) ≈ 0.424 radians/sample。
注意,这里的频率单位是单位圆上的弧度频率。如果需要将其转化为实际的频率,需要乘以采样频率。因此,z域H(z)=z/(z-0.9)的数字滤波器的截止频率约为0.424倍采样频率。
相关问题
编制程序,用MATLAB 软件求三阶FIR 数字滤波器 H(z) =1- 0.9z^-1+0.64z^-2-0.576z^-3
可以使用MATLAB中的fir1函数来设计一个三阶FIR数字滤波器,该函数需要指定滤波器的阶数和截止频率。由于这个题目已经给出了滤波器的系数,我们可以直接将系数输入到fir1函数中。
以下是MATLAB代码:
```matlab
% 滤波器系数
b = [1, -0.9, 0.64, -0.576];
% 采样率
Fs = 1000;
% 截止频率
Fc = 100;
% 计算归一化截止频率
Wn = Fc / (Fs/2);
% 计算滤波器的传递函数
H = freqz(b, 1, 1024);
% 绘制滤波器的幅频特性
freq = linspace(0, Fs/2, length(H));
plot(freq, abs(H));
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Frequency Response of FIR Filter');
```
这个代码中,我们首先定义了滤波器的系数b。然后我们指定了采样率Fs和截止频率Fc,计算出了归一化截止频率Wn。接着,我们使用MATLAB中的freqz函数计算了滤波器的传递函数,并使用plot函数绘制了滤波器的幅频特性。
用脉冲响应不变法设计一个切比雪夫型数字带通滤波器,要求通带频带0.3π<=w<=0.7π,通带最大衰减Rp=1dB,阻带截止频率ws1=0.1pi,ws2=0.9pi,阻带最小衰减As=15dB,滤波器采样频率Fs=2000Hz。
首先,根据通带最大衰减Rp和阻带最小衰减As可确定通带和阻带的通透性。对于切比雪夫型数字带通滤波器,通带和阻带通透性的单位化参数分别为:
$\epsilon=\sqrt{10^{0.1Rp}-1}=0.0974$
$\delta=\sqrt{10^{0.1As}-1}=3.982$
根据通带和阻带的通透性,可以计算出归一化通带和阻带截止频率:
$\Omega_{p1}=\arccos{(1-\epsilon)}=0.3128$
$\Omega_{p2}=\arccos{(1+\epsilon)}=0.6872$
$\Omega_{s1}=\arccos{(1/\delta)}=0.1001\pi$
$\Omega_{s2}=\arccos{(\delta)}=0.8999\pi$
接下来,根据使用的方法确定滤波器的阶数和截止频率。由于需要使用脉冲响应不变法,因此需要先确定模拟滤波器的阶数和截止频率,再进行离散化。根据切比雪夫型滤波器的通带截止频率,选择1阶模拟带通滤波器即可。模拟带通滤波器的单位化参数为:
$\Omega_0=\sqrt{\Omega_{p1}\Omega_{p2}}=0.4841\pi$
$B=\Omega_{p2}-\Omega_{p1}=0.3744\pi$
使用标准公式计算得到模拟滤波器的传递函数:
$H_a(s)=\frac{1}{1+\epsilon\sqrt{\frac{1}{1-\epsilon^2}}(\frac{s}{\Omega_0})^2}$
离散化时采用双线性变换:
$s=\frac{2}{T}\frac{1-z^{-1}}{1+z^{-1}}$
得到离散化后的数字滤波器传递函数:
$H(z)=\frac{b_0+b_1z^{-1}+b_2z^{-2}}{1+a_1z^{-1}+a_2z^{-2}}$
其中,
$b_0=0.2590,b_1=0,b_2=-0.2590$
$a_1=-0.4307,a_2=0.1799$
将数字滤波器传递函数展开,可以得到数字滤波器的差分方程:
$y[n]=0.2590(x[n]+x[n-2])-0.4307y[n-1]+0.1799y[n-2]$
该滤波器的结构如下图所示:
![image.png](attachment:image.png)
经过Matlab模拟验证,该滤波器的频率响应满足设计要求。
阅读全文