Problem with toolbox filter design?
Show older comments
Hi everybody, I need help with disigning filters in matlab:
I was designed a bandpass filter in the toolbox and export it like an object to my workspace, then I tried to filter data with it using the comand filtfilt, the problem es that this comand don't recognize this filter as a matrix so when i use the follow linecommand: a11=filtfilt(Fil1,a1); i recived the follow error "Not enough input arguments". The Fs frecuency of the filter is 1000Hz, the Flowpass is 10Hz and the Fhighpass is 14Hz. Apass 1dB. Type Chebychev Type 1.
thanks
Answers (1)
Wayne King
on 15 Jun 2013
Edited: Wayne King
on 15 Jun 2013
Assume that Fil1 is your filter object, if you enter
class(Fil1)
does it return dfilt.df2sos?
If so, then depending on what version of MATLAB you are using, try:
out = filtfilt(Fil1.sosMatrix,Fil1.ScaleValues,a1);
where a1 is your data.
If you have an older version of MATLAB where the above command does not work, write back.
7 Comments
Stefan Leiva
on 15 Jun 2013
Edited: Stefan Leiva
on 15 Jun 2013
Wayne King
on 16 Jun 2013
Did the command at least run? It did not throw an error?
Do you have NaNs in your data? If you have any NaNs in your data, then you will only get NaNs out.
Stefan Leiva
on 16 Jun 2013
Wayne King
on 16 Jun 2013
That is strange because I don't have any trouble with your filter. Can you try this:
n = 0:499;
x = cos(0.01*pi*n)+sin(pi/4*n)+randn(size(n));
y = filtfilt(Fil1.sosMatrix,Fil1.ScaleValues,x);
Do you get NaNs in your output with the above?
Stefan Leiva
on 16 Jun 2013
Edited: Stefan Leiva
on 16 Jun 2013
Wayne King
on 17 Jun 2013
Are you using the MathWorks' version of filtfilt()? If you enter
>>which filtfilt
what do you get returned?
Stefan Leiva
on 17 Jun 2013
Categories
Find more on Digital Filtering in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!