Desiging a very simple filter (Very Basic Sort of)???
1 view (last 30 days)
Show older comments
I want to generate a very simple Filter which removes the noise at-least little bit from a signal (Sinusoidal of 100Hz Frequency).
I don't want to use the complex filter's.
this is my Signal
fSampling = 10000; %Sampling Frequency
tSampling = 1/fSampling; %Sampling Time
L = 10000; %Length of Signal
t = (0:L-1)*tSampling; %Time Vector
F = 100; %Frequency of Signal
%%Signal without noise
xsig = sin(2*pi*F*t);
I calculate its Fourier Transform as Follow:-
NFFT = 2^nextpow2(L);
Xsig = fft(xsig,NFFT)/L;
f1 = fSampling/2*(linspace(0,1,NFFT/2+1));
plot(f1,2*abs(Xsig(1:NFFT/2+1)),'r');
grid on
axis([-50 500 0 1.1])
title('\itSingle-Sided Amplitude Spectrum of xsig(t)')
xlabel('\itFrequency (Hz) \rightarrow')
ylabel('|Xsig(f)| \rightarrow');
Then i add a Little bit of Noise into it as follow:-
xnoise = xsig + 0.45*randn(size(t));
Then calculates its Fourier Transform again...
Now i want to remove the noise from this signal and want to retrieve a pure sinusoidal signal..
Pls Some Body help me....
0 Comments
Accepted Answer
Star Strider
on 8 Jul 2012
A bandpass filter would work. Be sure to use [z, p, k] and SOS syntax.
0 Comments
More Answers (2)
See Also
Categories
Find more on Spectral Measurements in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!