已知一级联型数字滤波器的系统函数H(z),如何用matlab得到它的损耗曲线?
时间: 2024-05-11 10:14:48 浏览: 6
可以使用MATLAB中的freqz函数来得到一级联型数字滤波器的损耗曲线。
具体步骤如下:
1. 定义一级联型数字滤波器的系统函数H(z),可以使用zpk函数或tf函数来定义。
例如,定义一个一级低通数字滤波器,其截止频率为1000Hz:
```
num = [1 0];
den = [1 -0.9];
H = tf(num, den);
```
2. 使用freqz函数得到滤波器的频率响应。
```
[h, w] = freqz(num, den);
```
其中,h是滤波器的频率响应,w是对应的频率向量。
3. 计算得到滤波器的振幅响应。
```
amp = 20*log10(abs(h));
```
其中,abs(h)是频率响应的模值,20*log10是用来将振幅值转换为分贝值的计算公式。
4. 绘制损耗曲线。
```
plot(w/pi, amp);
xlabel('归一化频率');
ylabel('损耗(dB)');
title('一级低通数字滤波器的损耗曲线');
```
其中,w/pi是将频率向量归一化到π的范围内,这样可以更直观地表示频率。绘制出来的图像即为一级低通数字滤波器的损耗曲线。
完整代码如下:
```
num = [1 0];
den = [1 -0.9];
H = tf(num, den);
[h, w] = freqz(num, den);
amp = 20*log10(abs(h));
plot(w/pi, amp);
xlabel('归一化频率');
ylabel('损耗(dB)');
title('一级低通数字滤波器的损耗曲线');
```