宋老师:
我最近用您的程序验证一种滤波算法,发现当信号频率为50.0002~49.9998HZ时,校正得到的信号相位与信号发生时相位是一致的,当信号频率偏离50HZ再远一些校正到的信号相位与信号发生时相位相差较大。难道是因为频谱泄漏导致的吗?以下是我改的程序:
fs=6250;N=1024*1024*8; %采样频率和数据点数
A=1.9; f=49.9997; phi=300*pi/180; %信号的幅值,频率和初相位
n=0:N-1; t=n/fs; %时间序列
sig=A*sin(2*pi*f*t+phi); %信号的表达式
x(1) = sig(1);
mi = 1; mq = 0;
m = 0.1 * (mi + mq);
mi = mi - m;
mq = mq + m;
for i=2:N
x(i) = sig(i) * mi + sig(i-1) * mq;
end
%加窗和进行快速傅里叶变换并画图
W = (boxcar(N))';
z= x.*W; %加矩形窗
y=fft(z,N);
mag=abs(y)*2/N; %求得傅里叶变换后的振幅
phi=angle(y);
% phi=mod