如何使用请求_ _ _zfreqz在 MATLAB 中,如果我有一个没有分母的传递函数

信息处理 matlab 在家工作 转换功能
2022-01-26 15:18:36

所以我有传递函数:

H[z]=1+2z1+z2

我必须H(ejω)ω=0,π/4,π/4

我已经使用欧拉公式手动完成了计算,但现在任务要求我将这些图与freqzMATLAB 中使用的图进行比较。我似乎找不到关于如何使用这种类型的传递函数做到这一点的说明。

2个回答

您只需指定a = 1(因为分母等于)。所以你得到1

b = [1,sqrt(2),1];
a = 1;
N = 512;
[H,w] = 频率 (b,a,N);

您可以将其与分析解决方案进行比较:

H2 = 1 + sqrt(2)*exp(-1i*w) + exp(-1i*2*w);
最大(绝对(H2-H))%8.0825e-16

对于仅在特定频率下的评估,您需要指定其中至少包含两个频率的频率向量(请参阅MATLAB 的 freqz)。下面是在频率处进行评估的 MATLAB 代码。ω=0,π/4,π/2,3π/4,and π

>> [h, w] = freqz([1, sqrt(2), 1], 1, [0 , pi/4, pi/2, 3*pi/4 pi])

h =

   3.4142 + 0.0000i   2.0000 - 2.0000i   0.0000 - 1.4142i  -0.0000 - 0.0000i   0.5858 + 0.0000i


w =

         0    0.7854    1.5708    2.3562    3.1416

>> 

对于上述结果的可视化,请参见幅度响应,即,在下面用红色标记的五个频率绘制。20log10(|H(ω)|)

在此处输入图像描述

请注意,对于你有(见上面的代码结果) 还因为零点在 对应的量级未显示在上面的单边幅值响应图中,但您可以在处看到渐近趋势。±3π/4

H(±3π4)=020log10(|H(±3π4)|)=
z=22±j22withz=ejω
ω=3π/43π/4