unable to use Low pass filter on experimental data

3 views (last 30 days)
Hi there
I am trying to filter som data but i get the warning: " Unable to use a value of type 'digitalFilter' as an index."
sfilter = Fx';
noise = 0.5*randn(size(tA));
xfilter = noise + sfilter;
figure()
plot(xfilter)
dfilter = designfilt('lowpassfir', 'FilterOrder', 5, 'CutoffFrequency', 11, 'SampleRate', fs);
yfilter = filter(dfilter,xfilter);
plot(yfilter)
Where,
sfilter is a 1 x 59992 row vector
Fx' is a 1 x 59992 row vector
noise is a 1 x 59992 row vector
xfilter is a 1 x 59992 row vector
tA is a 1 x 59992 row vector
I hope you can help

Accepted Answer

Star Strider
Star Strider on 14 Sep 2019
When I substitute some vectors for the missing data, the posted code runs for me without error.
The filter function should take a digitalFilter object.
Do you have a variable called ‘filter’?
To see if you do, run this:
q = which('filter','-all')
if the first result is:
filter is a variable.
You have found the problem. (This is called ‘overshadowing’ a MATLAB function.) Ths solution is to rename the variable.
  2 Comments
Ammar Alfaili
Ammar Alfaili on 14 Sep 2019
thanx a lot. it's hard to keep track on all the variables when dealing with a long code
Have a nice day :)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!