Creating a Chebychev Type 1 and Butterworth Notch filter

3 次查看(过去 30 天)
Hello,
I'm trying to create both a Chebychev Type 1 and Butterworth Notch filter. The filters have to produce a min attenuation of 60dB at 10Hz, with a rippe of .01dB. However, I keep getting a syntax error that I'm confused with: "The cutoff frequencies must be within the interval of (0,1)."
I guess I'm confused on how to interpret this information into code, along with filtfilt and fvtool. Is this the expected value?
%Setting up signal:
fs = 200; %Sample Frequency
Ts = 1/fs; %Sample Period
t = 0:Ts:9.9950;
x = load("data2.txt");
plot(t,x);
%My cheby1 example
b = cheby1(2,.01,.1)
x2 = filtfilt(b,1,x)
fvtool(b,1)
plot(t,x2)
I'm assuming if I'm on the right track with cheby1, butterworth should be similar.
  4 个评论
Mathieu NOE
Mathieu NOE 2021-5-15
hello
below a minor bug correction, as the cheb filter has a numerator (B) and a denominator (A) (you put 1 there which is not correct)
otherwise the rest is fine
%Setting up signal:
fs = 200; %Sample Frequency
Ts = 1/fs; %Sample Period
t = 0:Ts:9.9950;
%x = load("data2.txt");
x = randn(length(t),1);
plot(t,x);
%My cheby1 example
fc = 10;
[B,A] = cheby1(2,.01,fc/(fs/2))
x2 = filtfilt(B,A,x)
fvtool(B,A)
plot(t,x2)

请先登录,再进行评论。

回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by