Frequence of the signal
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (1)
Paulo Silva
am 13 Dez. 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 Kommentare
Paulo Silva
am 13 Dez. 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
Siehe auch
Kategorien
Mehr zu AI for Signals finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!