Butterworth filter: Number of coefficients?

조회 수: 14 (최근 30일)
Max Behr
Max Behr 2020년 5월 19일
댓글: Star Strider 2020년 5월 19일
Hello
I am trying to create a low pass filter. My device has a sample rate of 100 and the cutoff value should be 10 Hz.
But according to the manual the filter should also have a setting "number of coefficients". And this should be 40 in my case...
How can I implement the number of coefficients into the filter?
Thanks.
My Code:
Fs = 100;
Fco = 10;
Fn = Fs/2;
Wn = Fco/Fn;
[b,a]=butter(1,Wn,'low')
m_filtered=filter(b,a,m)

채택된 답변

Star Strider
Star Strider 2020년 5월 19일
The first argument to butter is the filter order, and the number of coefficients in the transfer function vectors will be 1 less than that, so:
Fs = 100;
Fco = 10;
Fn = Fs/2;
Wn = Fco/Fn;
n = 40;
[b,a]=butter(n-1,Wn,'low');
figure
freqz(b,a,2^14,Fs)
should do what you want.
Note that this creates an unstable filter.
Are you absolutely certain that you want to use a IIR filter here? A filter order of 40 is more typical of a FIR filter, especially for a lowpass application such as this. (If you want a FIR filter instead, use the kaiserord and fir1 functions to create it.)
  댓글 수: 8
Max Behr
Max Behr 2020년 5월 19일
Thanks again :)
I did it!
Star Strider
Star Strider 2020년 5월 19일
As always, my pleasure!
Thank you!

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

추가 답변 (0개)

카테고리

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

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by