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

业力皮条客

我试图绘制由巴特沃斯低通滤波器滤波后的序列的频率响应。我的极点和零点图很好,但似乎无法正确绘制频率响应。当我这样做时,我的坐标轴总是不合比例。我尝试使用Matlab的bode函数无济于事。我一直在使用的样本输入就是这样buttdes(1000, 2500, -3, -20, 20000)任何帮助深表感谢!!到目前为止,这是我的代码:

function buttdes(fpass, fstop, dp, ds, fs)

%// Design a discrete-time Butterworth filter

%// BUTTDES(fpass, fstop, dp, ds, fs) designs and plots the bode plot

%// of the resulting analog-equivalent filter that has been

%// designed to match the analog parameters fpass (in Hz),

%// fstop (in Hz), dp (in dB) and ds (in dB).

%// fs is the sample rate in Hz

wp = fpass/fs;        
ws = fstop/fs;
WpT = 2 * tan(wp / 2);
WsT = 2 * tan(ws / 2);
qp = log10(10^-(dp/10)-1);
qs = log10(10^-(ds/10)-1);

N = ceil((qs-qp) / 2 / log10(WsT / WpT)); 
WcT = WpT * 10^(-qp/2/N);

k = 0:N-1;
skT = WcT * exp(j*pi*(2*k+N+1)/2/N);

b = real(prod(skT./(skT -2))) * poly(-ones(1, N));
a = real(poly(-(skT+2)./(skT-2)));

zplane(b, a);
Chipaudette

要扩展Navan的评论,您可以使用freqz命令来计算和绘制滤波器的频率响应。freqz在信号处理工具箱中,因此,如果您没有该工具箱,则需要另一种方法。

freqz通常绘制两幅图:(1)幅值响应的一幅图和(2)相位响应的一幅图。如果只需要幅度响应,可以像这样绘制它

%compute the filter response
npoints = 1000;  %how many points to you want?   
[h,f]=freqz(b,a,npoints,fs);
response_dB = 10.*log10(h.*conj(h));
response_deg = 180/pi*angle(h);

% make plot
figure;
semilogx(f,response_dB);
xlabel('Frequency (Hz)');
ylabel('Response (dB)');

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

scipy中的带通巴特沃斯滤波器频率

来自分类Dev

在MATLAB中对图像进行高通巴特沃斯滤波器

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

使用fft的Matlab低通滤波器

来自分类Dev

C/C++ 中的巴特沃斯 BP 滤波,奇怪的频谱

来自分类Dev

Matlab FIR滤波器

来自分类Dev

Matlab滤波器矩阵

来自分类Dev

高通滤波器Matlab

来自分类Dev

平均滤波器Matlab

来自分类Dev

低通滤波器和采样频率

来自分类Dev

使用 Matlab 从滤波器设计器接收相同的系数

来自分类Dev

如何在Matlab中使用椭圆滤波器获取edf数据

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Matlab-在系统上使用低通滤波器

来自分类Dev

Web音频滤波器降低增益而不是滤波频率

来自分类Dev

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

来自分类Dev

Matlab:带通滤波器的卷积不会削减不需要的频率

来自分类Dev

使用MATLAB中的系数在C ++中进行FIR滤波器设计,滤波器未给出正确的结果

来自分类Dev

如何使用带通滤波器正确实现均衡

来自分类Dev

如何使用带通滤波器正确实现均衡

来自分类Dev

在MATLAB中使用自回归(AR)滤波器对某些随机信号进行滤波

Related 相关文章

热门标签

归档