请问用matlab进行谐波分析,用的是fft加窗插值算法.加窗的程序我会写,插值的程序怎样写?你会吗?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 09:45:37
请问用matlab进行谐波分析,用的是fft加窗插值算法.加窗的程序我会写,插值的程序怎样写?你会吗?

请问用matlab进行谐波分析,用的是fft加窗插值算法.加窗的程序我会写,插值的程序怎样写?你会吗?
请问用matlab进行谐波分析,用的是fft加窗插值算法.加窗的程序我会写,插值的程序怎样写?你会吗?

请问用matlab进行谐波分析,用的是fft加窗插值算法.加窗的程序我会写,插值的程序怎样写?你会吗?
%% Hanning FFT
hw=hann(N,'periodic');
Xh=fft(x.*hw');
Xh=Xh(1:N/2)*2;
Xhabs=abs(Xh);
for i= 1 :m
[Amax,index]=TriFind(Xhabs,floor((i*f0-15)/fsN),ceil((i*f0+15)/fsN)); % 搜索区域极大值及其下标
if(index==-1)
Fn(i,4) = 0;
An(i,4) = 0;
Pn(i,4) = 0;
else
% 下面是插值部分
if(Xhabs(index-1) > Xhabs(index+1))
a2 = Xhabs(index-1) / Xhabs(index);
r2 = (2-a2)/(1+a2);
k02 = index -1;
else
a2 = Xhabs(index) / Xhabs(index+1);
r2 = (2-a2)/(1+a2);
k02 = index;
end
Fn(i,4) = (k02+r2-1)*fs/N;
An(i,4) = 2*pi*r2*(1-r2*r2)*Xhabs(k02)/(N*sin(r2*pi));
Pn(i,4) = phase(Xh(k02))-pi*r2;
Pn(i,4) = mod(Pn(i,4),pi);
if(abs(r2)