a) 利用[z,p,K]=tf2zp(b,a)分析出系统的零点z、极点p、增益因子K; b) 定义omega=(0:511)*2*pi/512和unitcirc=exp(j*omega)得到在单位圆上512个等分点,在这些点上求频率响应 。 c) 定义polevectors1是一个1×512的矩阵,其中每一行包含这样一些复数,这些复数是由unitcirc的相应列减去一个极点位置得到的。如果p是一个极点向量,它包含了极点的位置,可以用下列命令来完成: >> polevectors1 = unitcirc - p; 用abs和atan2定义polelength1和poleangle1作为polevectors1中每一元素的幅值和相位。 d) 类似于polevectors1,定义zerovectors1,使得它是1×512的矩阵,其中包含从零点位置到unitcirc元素的向量。定义zerolength1和zeroangle1分别是这些向量的幅值和相位。 e) 画出polelength和zerolength对于omega的图。根据这些图,估计 在哪里有最大值和最小值? f) 根据增益因子K以及零、极点矢量的幅值和相位,绘制在单位圆上512个等分点上的频率响应 。
时间: 2023-05-25 22:04:38 浏览: 70
a)利用[z,p,K]=tf2zp(b,a)分析出系统的零点z、极点p、增益因子K:
假设b是系统的分子多项式系数,a是系统的分母多项式系数,则使用tf2zp函数可以得到系统的零点z、极点p和增益因子K。
[z,p,K] = tf2zp(b,a)
b)定义omega=(0:511)*2*pi/512和unitcirc=exp(j*omega)得到在单位圆上512个等分点,在这些点上求频率响应。
定义一个包含512个等分点的角度向量omega,然后使用exp函数将这些角度转换为复数。这些复数将在单位圆上均匀分布,称为unitcirc。对于每一个单位圆上的点,可以使用freqz函数求得系统在该频率的频率响应。
omega = (0:511)*2*pi/512;
unitcirc = exp(1i*omega);
freq_response = freqz(b,a,unitcirc);
c)定义polevectors1是一个1×512的矩阵,其中每一行包含这样一些复数,这些复数是由unitcirc的相应列减去一个极点位置得到的。如果p是一个极点向量,它包含了极点的位置,可以用下列命令来完成:
>> polevectors1 = unitcirc - p;
用abs和atan2定义polelength1和poleangle1作为polevectors1中每一元素的幅值和相位。
定义polevectors1为unitcirc减去极点p形成的矢量,然后使用abs和atan2函数分别计算极点向量的幅值和相位。
polevectors1 = unitcirc - p;
polelength1 = abs(polevectors1);
poleangle1 = atan2(imag(polevectors1),real(polevectors1));
d)类似于polevectors1,定义zerovectors1,使得它是1×512的矩阵,其中包含从零点位置到unitcirc元素的向量。定义zerolength1和zeroangle1分别是这些向量的幅值和相位。
类似于polevectors1,定义zerovectors1为unitcirc减去零点z形成的矢量,然后使用abs和atan2函数分别计算零点向量的幅值和相位。
zerovectors1 = unitcirc - z;
zerolength1 = abs(zerovectors1);
zeroangle1 = atan2(imag(zerovectors1),real(zerovectors1));
e)画出polelength和zerolength对于omega的图。根据这些图,估计 在哪里有最大值和最小值?
使用plot函数,将polelength1和zerolength1对于omega的图绘制在同一张图上,这可以帮助我们比较两者的变化。根据这些图,可以发现最大值和最小值分别在系统的极点和零点处。
plot(omega/(2*pi), polelength1, 'b', omega/(2*pi), zerolength1, 'r');
xlabel('Normalized Frequency');
ylabel('Magnitude');
legend('Poles','Zeros');
f)根据增益因子K以及零、极点矢量的幅值和相位,绘制在单位圆上512个等分点上的频率响应。
使用K、z和p重新定义分子和分母多项式,然后使用freqz函数使用上述512个单位圆点计算频率响应。最后,在单位圆上绘制频率响应图。
b_new = K * poly(z);
a_new = poly(p);
freq_response_new = freqz(b_new,a_new,unitcirc);
plot(real(freq_response_new), imag(freq_response_new));
xlabel('Real');
ylabel('Imaginary');
title('Frequency Response on Unit Circle');
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)