用matlab绘制系统函数的DTFT

freqz函数( frequency response of digital filter)

对于一个输入离散序列,输出离散序列的离散时间系统,我们可以用它的系统函数H(Z)来描述这个系统。求这个系统函数的DTFT,可以得到这个系统的幅频响应相频响应

一般形式:[h,w]=freqz(b,a,n)

  • b:H(z)分子多项式构成的数组
  • a:H(z)分母多项式构成的数组
  • n:0~Π内取样的点数,默认512点
  • h:复数形式的频率响应数组
  • w:对应于h的各个数字角频率数组
    例1:
    求系统函数H (z) = (0.8 - 0.44 z^-1 + 0.36 z^-2 + 0.02 z^-3)/(1 + 0.7 z^-1 - 0.45 z^-2 - 0.3 z^-3)的DTFT
b=[0.8,-0.44,0.36,0.02];
a=[1,0.7,-0.45,-0.3];
[h,w]=freqz(b,a);

subplot(2,2,1)
plot(w/pi,real(h));grid
title('实部')
xlabel('\omega/\pi');ylabel('幅度')

subplot(2,2,2)
plot(w/pi,imag(h));grid
title('虚部')
xlabel('\omega/\pi');ylabel('幅度')

subplot(2,2,3)
plot(w/pi,abs(h));grid
title('幅度谱')
xlabel('\omega/\pi');ylabel('幅度')

subplot(2,2,4)
plot(w/pi,angle(h));grid
title('相位谱')
xlabel('\omega/\pi');ylabel('相位(rad)')

在这里插入图片描述
例2:
给出H(Z)=1/(1-αz^-1)的幅频曲线,α取0.9或-0.9

b=[1];a1=[1,-0.9];a2=[1,0.9];
w=linspace(0,2*pi,512);
h1=freqz(b,a1,w);
h2=freqz(b,a2,w);
plot(w/pi,abs(h1),w/pi,abs(h2),':');
xlabel('\omega/\pi');ylabel('幅度');
legend('\alpha=0.9','\alpha=-0.9');

在这里插入图片描述

  • 15
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据线

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值