필터 지우기
필터 지우기

how to filter a signal

조회 수: 66 (최근 30일)
rohith bharadwaj
rohith bharadwaj 2017년 9월 9일
댓글: Star Strider 2021년 2월 3일
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.

채택된 답변

Star Strider
Star Strider 2017년 9월 9일
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
Wietse van Geel
Wietse van Geel 2021년 2월 3일
편집: Wietse van Geel 2021년 2월 3일
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
Star Strider 2021년 2월 3일
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
Use the filtfilt function to do the actual filtering:
fil = filtfilt(soslp,glp,y); % Filter Signal
.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

kani mozhi
kani mozhi 2018년 9월 10일
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

카테고리

Help CenterFile Exchange에서 Filter Design에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by