Desiging a very simple filter (Very Basic Sort of)???

2 views (last 30 days)
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....

Accepted Answer

Star Strider
Star Strider on 8 Jul 2012
A bandpass filter would work. Be sure to use [z, p, k] and SOS syntax.

More Answers (2)

Arun Sharma
Arun Sharma on 9 Jul 2012
Thanks for your help... Can you pls give me an example to do so...
I searched on internet and MATLAB help got some advance topic....
pls tell me how to make a Bandpass filter...
Thanks in Advance

Arun Sharma
Arun Sharma on 9 Jul 2012
Is There anyone who can tell me.. how to make a simple Bandpass Filter..
Pls help its very urgent

Products

Community Treasure Hunt

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

Start Hunting!