如何在MATLAB中绘制数字滤波器的频率响应?

用户名

我正在尝试绘制频率响应。我被要求filter在MATLAB中使用,但是由于我已经阅读了手册,所以我仍然不了解它如何执行Z转换。

我的数字滤波器的脉冲响应如下所示:

for i=1:22;
   y(i)= 0;
end
x(22) = 1;
for k=23:2523
    x(k) = 0;
end
for n = 22:2522;
    y(n) = ((1/21)*x(n))+((20/21)*y(n-21));
end
plot(y);

这只是一个反馈系统 y[n] = 1/21*x[n] + 20/21*y[n-21]

以下是我为计算Z上述系统变换而进行的计算,最终确定了脉冲响应:

Z(y) = Z((1/21)*x(n)+(20/21)*y(n-21))

Y(Z) = (1/21)X(Z)+(20/21)*Z.^-21Y(Z)

Z(Z)-(20/21)*Z.^-21Y(Z) = (1/21)X(Z)

Y(Z)(1-(20/21)*Z.^-21) = (1/21)X(Z)  // divide by X(Z)*(1-(20/21)*Z.^-21)

Y(Z)/X(Z) = (1/21)/(1-(20/21)*Z.^-21)

H(Z) = (1/21)/(1-(20/21)*Z.^-21) // B = 1/21, A = 20/21

H(Z) = (B*Z.^21)/(Z.^21-A)

如何绘制的频率响应H(Z)我应该使用filter吗?

侦探眼

从Matlab的filter文档中:

使用分别由分子系数和分母系数b和a定义有理传递函数对输入数据x进行滤波

如您所知,过滤脉冲输入会给您脉冲响应。然后剩下来获得那些ba系数。您可以直接从差分方程中获得

y[n] = 1/21*x[n] + 20/21*y[n-21];

(如上面有理传递函数链接中所示)或等效地由您得出的有理传递函数得出:

%H(Z) = (B*Z.^21)/(Z.^21-A)

无论哪种情况,您都应获得以下ab系数:

a = [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -20/21];
% or equivalently: a=zeros(22,1); a(1)=1; a(22)=-20/21;
b = [1/21];

因此,

% setup the impulse input
x = zeros(2500,1);
x(1) = 1;

% compute the impulse response
y = filter(b, a, x);

可以按照以下步骤绘制此脉冲响应:

plot(y);

至于这与转换的关系H(Z),可以使用Laurent级数展开来评估您获得的闭合形式表达式,该展开式具有时域y(脉冲响应)级数的系数

但是,H(z)在复杂平面|z| > RR=power(20/21,1/21)在您所在的情况下)会聚区域中定义的分析函数更典型地绘制频率响应,其对应H(z)于在单位圆上评估的频率响应(即,对于满足|z|=1或等效z = exp(j * theta)于θ在[0-2pi]范围内的复数)。计算H(z)该单位圆上等距点的值的有效方法是对脉冲响应进行FFT:

FrequencyResponse = fft(y);
figure(1);
plot(abs(FrequencyResponse));
figure(2);
plot(phase(FrequencyResponse));

PS如果您具有信号处理工具箱(尽管需要使用filterfft则可以在单个调用中完成的计算freqzfilter

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在MATLAB中绘制数字滤波器的频率响应?

来自分类Dev

如何使用Matlab绘制巴特沃斯滤波器的频率响应

来自分类Dev

Matlab中的傅立叶变换和LTI滤波器以及频率响应

来自分类Dev

信号。黄油带通错误:数字滤波器的临界频率必须为0 <Wn <1

来自分类Dev

绘制双二阶滤波器的频率响应

来自分类Dev

绘制双二阶滤波器的频率响应

来自分类Dev

查找带通滤波器的频率响应

来自分类Dev

如何在Matlab中编码卷积核的频率响应

来自分类Dev

重复1-2-1滤波器的频率响应

来自分类Dev

如何在MATLAB中设计窄带截止滤波器

来自分类Dev

Matlab中的数字滤波未得到预期的结果

来自分类Dev

如何在matlab中将图像与内核/滤波器相乘

来自分类Dev

如何在MatLAB / Octave中创建1/3八度频带滤波器

来自分类Dev

如何在MATLAB中制作多个陷波滤波器?

来自分类Dev

带通滤波器无法在Matlab中过滤不想要的频率

来自分类Dev

如何在C中实现IIR滤波器?

来自分类Dev

如何在 tensorflow 中训练卷积滤波器

来自分类Dev

如何在python中创建带阻滤波器

来自分类Dev

在MATLAB中实现均值滤波器

来自分类Dev

Matlab中滤波器的逆FT

来自分类Dev

Matlab中的FIR滤波器

来自分类Dev

Matlab中的滤波器系数

来自分类Dev

如何在Gabor滤波器中计算空间频率?

来自分类Dev

MR8滤波器组中的最大滤波器响应是多少?

来自分类Dev

Matlab FIR滤波器

来自分类Dev

Matlab滤波器矩阵

来自分类Dev

高通滤波器Matlab

来自分类Dev

平均滤波器Matlab

来自分类Dev

低通滤波器和采样频率