带通巴特沃斯滤波器

21日视图(30天)
古格列尔莫Giambartolomei
评论道: 明星黾 2017年3月2日
你好,我想做一个带通巴特沃斯滤波器以滤波器的信号。明星黾的帮助下,我已经做了一个高通滤波器:
冷冻铸造= 1;%截止频率
(z,磷、钾)=黄油(8 Fcp / (Fsp / 2)“高”);
(sos, g) = zp2sos (z,磷、钾);
% fvtool (sos,“分析”、“频率”)
deltap1filtfilt = filtfilt (sos, g, deltap_1);
我试图做一个带通巴特沃斯滤波器的迹象(https://it.mathworks.com/matlabcentral/answers/272316 - - -巴特沃斯滤波器如何与带通- 10 - 500 -抽样率- 1000)但它不工作。我的采样频率是600 Hz,我想看见仅仅从1 Hz有助于50赫兹频率。非常感谢你!
2的评论
古格列尔莫Giambartolomei
你好简·西蒙,我试着与链接的迹象我发布;我写:
Wp = 49 [1] / Fsp / 2;
Ws = (0.5 - 49.5) / Fsp / 2;
Rp = 1;
Rs = 25;
[n, n] = buttord (Wp、Ws Rp, Rs);
[b] =黄油(n, Wn);
(sos, g) = tf2sos (b);
% fvtool (sos,“分析”、“频率”)
deltap1filtfilt = filtfilt (sos, g, deltap_1);
这并不工作。我试着:
Fcp_low = 1;%低截止频率
Fcp_high = 50;%高截止频率
(z,磷、钾)=黄油(8 [Fcp_low Fcp_high) / (Fsp / 2),“带通”);
(sos, g) = zp2sos (z,磷、钾);
% fvtool (sos,“分析”、“频率”)
deltap1bpfiltfilt = filtfilt (sos, g, deltap_1);
最后一个代码似乎工作!

登录置评。

接受的答案

明星黾
明星黾 2017年3月1日
有一个错误在代码中,可以防止你正确计算通带和阻带。
这个计算:
Wp = 49 [1] / Fsp / 2;
给你这些通带:
Wp =
0.0005 - 0.0245
然而,通带你 想要 是:
Wp = 49 [1] / (Fsp / 2);
Wp =
0.002 - 0.098
这些会给你正确的结果。周围的括号 “(Fsp / 2)” 让所有的差异。
如果你想设计一个滤波器与滚边陡峭,巴特沃斯滤波器并不是最好的选择。我将使用一个切比雪夫型 二世 设计。
的代码 - - - - - -
Fsp = 1000;%创建数据
Fn = Fsp / 2;
Wp = 1.0 [49] / Fn;
Ws = 50 [0.5] / Fn;
Rp = 10;
Rs = 30;
[n, Ws] = cheb2ord (Wp、Ws Rp, Rs);
(z,磷、钾)= cheby2 (n, Rs, Ws);
(sos, g) = zp2sos (z,磷、钾);
图(1)
Fsp freqz (sos、2 ^ 16日)
集(次要情节(2,1,1),“XLim”,100年[0])%“变焦”轴
集(次要情节(2,1,2),“XLim”,100年[0])%“变焦”轴
切比雪夫型的通带波纹 二世 过滤器是无关紧要的,因为过滤器有一个平坦的通带。允许他们 10 dB允许您设计一个稳定的过滤器。
2的评论
明星黾
明星黾 2017年3月2日
我的荣幸。
它看起来像它应该工作。这取决于你想要的过滤特性。
过滤器我张贴在我的回答是你最初的描述你的问题。巴特沃斯滤波器不能有效地这样做。
我将比较两个过滤器的设计最适合您的应用程序。

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!