HOW DO I GET AMPLITUDE AND FREQUENCY FROM A WAVE SIGNAL

11 次查看(过去 30 天)
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
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