initial phase angle calculation
    9 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
hello
I have this signal
clear all;clc;
t=0:0.0001:10;
tt=t(1:100000);%take 100 000 samples
a=30*pi/180; %phase (calculated form deg. to rad.)
b=90*pi/180; %phase (calculated form deg. to rad.)
ia=5*cos(2*pi*10*tt-a)+7*cos(2*pi*50*tt-b);
fs=1/0.0001; %sampling frequency
X=fft(ia); %FFT
df=fs/length(X); %frequency resolution
f=(0:1:length(X)/2)*df; %frequency axis
subplot(2,1,1);
M=abs(X)/length(ia)*2; %amplitude spectrum
plot(f,M(1:length(f)));
subplot(2,1,2);
P=angle(X)*180/pi; %phase spectrum (in deg.)
plot(f,P(1:length(f)));
this technique do not give a good results; I want any technique to get the right "a" an "d" the initial phase angle of 10 HZ and 50 HZ;
I know it is a hard question but please help me
Risposta accettata
  Jeremy
      
 il 23 Gen 2015
        I ran your code it and seems to be working as-is. -30 and -90 deg at 10 and 50Hz
Più risposte (1)
  Jeremy
      
 il 23 Gen 2015
         You can't expect them to be zero degrees just because there is no signal defined there.  With no content at those frequencies, the angle shown will a result of spectral leakage and numerical noise.  Zero degrees is no more valid than any other angle and you should always be looking a the PSD or something else to see which frequencies have a significant response.
3 Commenti
  Jeremy
      
 il 27 Gen 2015
				This is the correct method, any other method will be a round about way of doing the same thing.
Vedere anche
Categorie
				Scopri di più su Fourier Analysis and Filtering in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!