lowpass filter not filtering

9 views (last 30 days)
Jay
Jay on 27 May 2019
Commented: Jay on 27 May 2019
Test of low pass filter to filter noise at a much higher frequency than the main signal. Lowpass as I've used it here doesn't seem to filter the data.
t=0:3.13e-8:1e-3;
y=sin(2*pi*200000*t); %noise
y2=sin(2*pi*20000*t); %signal
ysum=y+y2;
plot(t,ysum);
y40khz=lowpass(ysum,40000,1/3.13e-8);
plot(t,y40khz)
A test of this with a smaller ratio of filter to sample frequency works as expected.
tslow=0:1e-5:1e-3;
y=sin(2*pi*20000*tslow);
y2=sin(2*pi*4000*tslow);
ysum=y+y2;
y5khz=lowpass(ysum,5000,1/1e-5);
plot(tslow,ysum)
hold
plot(tslow,y5khz)
Why does the first filter not seem to work while the second example does?

Accepted Answer

Jan
Jan on 27 May 2019
As expected Matlab does filter the data, of course:
t=0:3.13e-8:1e-3;
y=sin(2*pi*200000*t); %noise
y2=sin(2*pi*20000*t); %signal
ysum=y+y2;
y40khz=lowpass(ysum,40000,1/3.13e-8);
plot(t, y40khz - ysum) % Show the difference
ylim([-1.5e-3, 1.5e-3])
According to the chosen filter parameters, the difference is small.
  1 Comment
Jay
Jay on 27 May 2019
Ok, thank you. Maybe I should have asked what operations should I do to extract the signal from the noisy data in this example? I was thinking that what I had tried would pass frequencies less than 40 kHz and so remove the 200 kHz 'noise'.

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!