Frequence of the signal
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (1)
Paulo Silva
el 13 de Dic. de 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 comentarios
Paulo Silva
el 13 de Dic. de 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
Ver también
Categorías
Más información sobre AI for Signals en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!