2nd Order Digital Butterworth filter

48 views (last 30 days)
Aman
Aman on 26 Mar 2012
Hi Guys,
I need help designing a 2nd order low pass Butterworth filter with a frequency cut off of 12 Hz that is to be bi-directionally filtering the data.
How do I go about designing a filter like this in Matlab?
I realize there is a function 'butter' to design a lowpass filter, but was kind of confused on applying it to my matrix that has about 9 columns and 30,000 rows, and I need to apply the filter for every row.
Thanks for your help in advance!
  4 Comments
Jan
Jan on 26 Mar 2012
I'm sure "9 columns and 30'000 rows" mean "columns of length 9 and rows of length 30'000".
Aman
Aman on 26 Mar 2012
yes I meant 9X30000 matrix

Sign in to comment.

Answers (1)

Jan
Jan on 26 Mar 2012
[B, A] = butter(2, 12 / (Freq * 0.5), 'high');
filtered = transpose(filtfilt(B, A, transpose(Signal)));
Freq is the frequency of your signal. If you need a low-pass filter change the 'high'. See help butter on demand.
  3 Comments
Honglei Chen
Honglei Chen on 26 Mar 2012
Designing the filter is independent to your signal. Once the filter is designed, you can filter your signal using filter function, such as filter(B,A,Signal)
Aman
Aman on 26 Mar 2012
ah ok that makes much more sense, thank you

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!