sin(2*pi f t+phi) という単純な正弦関数があります。位相信号φを取得したい。FFT を使用して phi を計算しようとしました。matlabでは、次のことを行います
f=200; %frequency of sine wave
overSampRate=30; %oversampling rate
fs=overSampRate*f; %sampling frequency
phase = 3/5*pi; %desired phase shift in radians
nCyl = 5; %to generate five cycles of sine wave
t=0:1/fs:nCyl*1/f; %time base
x=sin(2*pi*f*t+phase); %replace with cos if a cosine wave is desired
NFFT=1024; %NFFT-point DFT
X=fft(x,NFFT); %compute DFT using FFT
XX=2*abs(X(1:NFFT/2+1));
[tt ind]=max(XX);
phase_Estimate=angle(X(ind);
この結果は私にはほとんど意味がありません。たとえば、phi=0.523 の場合、phase_Estimate は -0.98 となります。