HOW DO I GET FREQUENCY AND PHASE ANGLE FROM A WAVE SIGNAL

If i have a wave signal data collected at site as below, how can i get the frequency and phase angle from it?
Arrival Time: 0, 0.00013, 0.00025, 0.00038, 0.0005
Amplitude: 0.060643, 0.083724, 0.004865, 0.038468, 0.11925

댓글 수: 4

Azzi Abdelmalek
Azzi Abdelmalek 2012년 8월 26일
편집: Azzi Abdelmalek 2012년 8월 26일
can you tell us which function represent your signal ? when i ploted your signal , i did'nt find it sinusoidal
im so sorry about that..actually, the data consists of 800 points..but i only put here the first 5 points..
But i already sent the complete data to your email.Kindly check your email. Thank you very much for your attention. i really appreciate it. For your information, i just started learning matlab a week ago by myself. im looking forward for the solution.
Please do not send people files without asking them first.
Walter Robertson, im sorry.it will not happen again in the future.Thanks for the reminder.

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

답변 (2개)

Walter Roberson
Walter Roberson 2012년 8월 27일

0 개 추천

As your times are not uniform, you need a non-uniform discrete fft, sometimes abbreviated nfft and sometimes nufft and sometimes other things.
There does not appear to be any MATLAB routine or any MATLAB File Exchange routine for nfft, but see
Azzi Abdelmalek
Azzi Abdelmalek 2012년 8월 27일
편집: Azzi Abdelmalek 2012년 8월 27일
%your signal don't contain just one frequency
num=xlsread('FileName');t=num(:,1);y=num(:,2);
Y=fft(y);
[wc,w0,a0,ak,bk,c0,ck]=get_harmonics(Y,t(2)-t(1),2)
%the ck contains your frequencies
% wc contains the pulses (rd/s)
stem(wc,abs(ck)) %your Amplitude spectrum
stem(wc,angle(ck)) % your phase spectrum
% get get_harmonics on

댓글 수: 3

Azzi, in your FEX routine, what is the input argument "pas" ? It does not appear to be documented. It appears to be something like a frequency.
Ron's question implies that the signals are arriving at irregular times, but you seem to be skipping the times in this analysis.
Walter, pas is a sample time, and you are right it is not constant. maybe we can interpolate to have a constant sample time. I don't know why the sample time is changing?
pas=min(abs(diff(t)));
t1=min(t):te:max(t);
y1=interp1(t,y,t1)
Y=fft(y);
[wc,w0,a0,ak,bk,c0,ck]=get_harmonics(Y,pas,2)

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

카테고리

도움말 센터File Exchange에서 Fourier Analysis and Filtering에 대해 자세히 알아보기

질문:

Ron
2012년 8월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by