Desiging a very simple filter (Very Basic Sort of)???
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
Star Strider
am 8 Jul. 2012
A bandpass filter would work. Be sure to use [z, p, k] and SOS syntax.
0 Kommentare
Weitere Antworten (2)
Siehe auch
Kategorien
Mehr zu Multirate Signal Processing finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!