|
Hi, All,
I have an output from a sensor with Fs=1000 data points per second.
I want to see frequency.
So i want to display a time domain signal to frequency domain.
I am not happy with the following code (from matlab help example), Could any body please help to make good conversion from time to frequency domain?
%%%%%%%%%%%%%%%
%Fs = 1000; % Sampling frequency
%T = 1/Fs; % Sample time
%L = 1000; % Length of signal
%t = (0:L-1)*T; % Time vector
%% Sum of a 50 Hz sinusoid and a 120 Hz sinusoid
%x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
%y = x + 2*randn(size(t)); % Sinusoids plus noise
%plot(Fs*t(1:50),y(1:50))
%title('Signal Corrupted with Zero-Mean Random Noise')
%xlabel('time (milliseconds)')
%%%%%%%%%%%%%%%
% here is example code
y % is data from a sensor channel % one can use y from above example
Fs=1000;
L=length(y);
NFFT = 2^nextpow2(L); % Next power of 2 from length of d
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
% Plot single-sided amplitude spectrum.
plot(f,2*abs(Y(1:NFFT/2+1)))
title('Single-Sided Amplitude Spectrum of y(t)')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')
best regards,
muzaffar
|