how to filter a signal
94 views (last 30 days)
Show older comments
rohith bharadwaj
on 9 Sep 2017
Commented: Star Strider
on 3 Feb 2021
I have a signal and I filtered the signal using a cheby1 filter. the frequencies of the signal range from 0.058 to 349Hz. I had to remove frequencies above 0.7Hz. after filtering the signal again when I find the frequencies I'm getting frequencies above 0.7Hz.
0 Comments
Accepted Answer
Star Strider
on 9 Sep 2017
I showed you how to correctly design a filter here. If you want to design a filter to remove all frequencies above 0.7 Hz, design a lowpass filter, specify the passband frequency as 0.7/Fn and the stopband at 0.72/Fn. Use a Chebyshev Type II filter for this, instead of a Type I, since you now want a relatively flat passband.
9 Comments
Wietse van Geel
on 3 Feb 2021
Edited: Wietse van Geel
on 3 Feb 2021
EDIT: found your previous post in the link! I'll try that first
Thank you for this helpful post. I'm designing a filter for the first time, and find it quite challenging.
Could you clarify the above answer by explaining how the last part, ending with:
[soslp,glp] = zp2sos(z,p,k);
can be implemented as a filter?
This part works fine for me:
[b,a] = cheby2(1,0.5,0.7/325,'low');
fil=filter(b,a,y);
And playing around with the numbers and plotting the results give some idea of what happens.
Best,
Wietse
Star Strider
on 3 Feb 2021
Wietse van Geel — My pleasure!
I have switched over to elliptic filters, since they are much more computationally efficient and generally perform much better. The code would now be:
Fs = 650
Fn = Fs/2; % Nyquist Frequency (Hz)
Wp = 0.7/Fn; % Passband Frequency (Normalised)
Ws = 0.72/Fn; % Stopband Frequency (Normalised)
Rp = 1; % Passband Ripple (dB)
Rs = 50; % Stopband Ripple (dB)
[n,Wp] = ellipord(Wp,Ws,Rp,Rs); % Filter Order
[z,p,k] = ellip(n,Rp,Rs,Wp,'low'); % Filter Design
[soslp,glp] = zp2sos(z,p,k); % Convert To Second-Order-Section For Stability
figure(5)
freqz(soslp, 2^16, Fs) % Filter Bode Plot
fil = filtfilt(soslp,glp,y); % Filter Signal
.
More Answers (1)
kani mozhi
on 10 Sep 2018
hi... i m wrk in bci data competition iii dataset 1.which filter have to use and please give the matlab code.. i m new in this area
0 Comments
See Also
Categories
Find more on Digital Filter Analysis in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!