shajue 发表于 2013-10-28 21:29

全相位fft能求初始信号相位吗

看全相位fft的原理,好像只能求一段信号的中间点的相位。
以下是一段求中间点,即t=0处的相位值的仿真程序。
那如果在工程应用中,很多时候都是要求信号初始点的相位。那全相位fft是否能胜任?
即将t改为 t=(0:2*N-2)/fs; y改为实际采集到的信号,求t=0时刻的信号相位。
close all;clc;clear all;
N=1024;
fs=2048;
w=2*pi;
% t=(0:2*N-2)/fs;
t=(-N+1:N-1)/fs;
y=1.0*exp(j*(w*t*49.1+50.0*pi/180))+0.8*exp(j*(w*t*149.2+100*pi/180))+0.6*exp(j*(w*t*249.3+150*pi/180))+0.4*exp(j*(w*t*349.4+200*pi/180))+0.2*exp(j*(w*t*449.5+250*pi/180));
y1 = y(N:end);
win =hanning(N)';;
win1 = win/sum(win);
y11= y1.*win1;
y11_fft = fft(y11,N);
a1 = abs(y11_fft);
p1 = mod(phase(y11_fft)*180/pi,360);
y2 = y(1:2*N-1);
win =hanning(N)';;
winn =conv(win,win);%apFFT须要卷积窗
win2 = winn/sum(winn);
y22= y2.*win2;
y222=y22(N:end)+;%构成长N的apFFT输入数据
y2_fft = fft(y222,N);
a2 = abs(y2_fft);
p2=mod( phase(y2_fft)*180/pi,360);
ee=mod((p1-p2)/180/(1-1/N),1);
aa=(a1.^2)./a2;
subplot(4,1,1),stem(a2,'.');title('apFFT振幅谱');ylim();xlim();grid
subplot(4,1,2),stem(p2,'.');title('初相位校正谱');ylim();xlim();grid
subplot(4,1,3);stem(ee,'.');title('频率校正谱');ylim([-1,1]);xlim();grid
subplot(4,1,4);stem(aa,'.');title('振幅校正谱');ylim();xlim();grid
r=round(*N/fs)
disp('相位校正值')
p2(r+1)
disp('频率校正值')
(ee(r+1)+floor(*N/fs))*fs/N
disp('振幅校正值')
aa(r+1)

sunyuxinhe 发表于 2013-10-29 00:07

把参考文献列出来看看
页: [1]
查看完整版本: 全相位fft能求初始信号相位吗