Frequence of the signal
5 views (last 30 days)
Show older comments
Hi , How I can calculate frequence of the signal in the matlab ?? Is there any function do that in matlab ?? can you give me sample example to do that .. Help me plazzzzze :"(
4 Comments
Answers (1)
Paulo Silva
on 13 Dec 2011
From the MATLAB documentation of the fft function:
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)')
NFFT = 2^nextpow2(L); % Next power of 2 from length of y
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)|')
%I added the next lines to find the value
%find maximum value, it should be the fundamental frequency (approximated)
[C,I]=max(2*abs(Y(1:NFFT/2+1)))
f(I)
6 Comments
Paulo Silva
on 13 Dec 2011
1- Find the peaks (findpeaks function from S.P. toolbox or similar code)
2- Find the time T between two of those peaks
3- F=1/T
See Also
Categories
Find more on AI for Signals in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!