0

FFT から 2 つのコサイン関数間の位相差を抽出したいと考えています。コサイン関数は、x1(n)=cos(2*pi fi n) および x2(n)=cos(2*pi fi (nm)) です。DFT プロパティに基づくと、次のようになります。

DFT(x1(n))= X1(f);
DFT(x2(n))= exp( (-j*2*pi*m*fi)/N )X1(f)

したがって、DFT(x1(n)) と DFT(x2(n)) の位相差は (-2*pi m fi)/N に等しくなります。ただし、私の matlab コードから得られた結果はまったく異なります。私のコードは次のとおりです

 clc
clear all
Fs = 250;                    % Sampling frequency
T = 1/Fs;                     % Sample time
iniPhase=pi/6;
fin=120;
t=0:(1/Fs):2;
xu = cos(2*pi*fin*(t)) ;
xd = cos(2*pi*fin*(t)+iniPhase) ;
NFFT=length(xu);
NFFT=256;

Xu = fftshift(xu);
FFTXu = 2*fft(Xu,NFFT);
SpecXu=2*abs(FFTXu(1:NFFT/2+1));

Xd = fftshift(xd) ;
FFTXd = 2*fft(Xd,NFFT);
SpecXd=2*abs(FFTXd(1:NFFT/2+1));


[tt ind]=max(SpecXd(1:NFFT/2+1));

Phased=(angle( FFTXd));
Phaseu=(angle( FFTXu));
theta=(Phased(ind))-(Phaseu(ind));
4

1 に答える 1

0

フーリエ変換のシフト特性から、x1(n) と x2(n) のスペクトルが得られました。

DFT(x1(n))= X1(f);
DFT(x2(n))= exp( (-j*2*pi*m*fi)/N )X1(f);

次に、位相係数が次の式から得られることは明らかです。

DFT(x2)/DFT(x1), 

だがしかし

angle(DFT(x2) - DFT(x1)).
于 2015-04-19T01:51:58.827 に答える