HOW DO I GET AMPLITUDE AND FREQUENCY FROM A WAVE SIGNAL

조회 수: 11 (최근 30일)
Ron
Ron 2012년 8월 22일
답변: komal kumar 2019년 10월 1일
i have a wave signal data in the form of time and phase..how do i get the amplitude and frequency from it?

채택된 답변

Wayne King
Wayne King 2012년 8월 22일
편집: Wayne King 2012년 8월 22일
Use the discrete Fourier transform. Here is an example.
t = 0:0.001:1-0.001; % sampled at 1 kHz
x = cos(2*pi*100*t); % 100-Hz sine wave
xdft = fft(x); % Obtain the DFT
camp = 2/length(x)*xdft(101);
You see that camp is 1. Now let's change the phase.
x = cos(2*pi*100*t-pi/4); % 100-Hz sine wave -- phase shift -pi/4
xdft = fft(x); % Obtain the DFT
camp = 2/length(x)*xdft(101);
abs(camp) % amplitude
angle(camp) % phase
To get the frequency, you have to know how to convert between the DFT "bins" and a meaningful frequency
In my example, the sampling frequency is 1000 Hz, and the DFT bins are spaced at Fs/length(x). You have to keep in mind that the first bin is 0 Hz. Here I get the frequency of the maximum.
[~,index] = sort(abs(xdft),'descend');
Fs = 1000;
(index(1)*Fs)/length(x)-(Fs/length(x))
  댓글 수: 2
André Luiz Regis Monteiro
André Luiz Regis Monteiro 2014년 8월 6일
Wayne, why do you use xdft(101)? Why 101? In your example you got the frequency of the maximum, but if my signal is composed by 4 signals added, how can I get this 4 frequencies? Thanks a lot.
poornima.a A
poornima.a A 2018년 1월 29일
i am also having the same dounbt,why you had used that 101? what it means?.plz give the detailed answer sir

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

James Muller
James Muller 2012년 9월 25일
How can I get the phase angle of an obtained signal?

komal kumar
komal kumar 2019년 10월 1일
angle(101)

카테고리

Help CenterFile Exchange에서 Spectral Measurements에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by