eguang8116 发表于 2008-8-3 14:55

能量重心校正法的频率误差曲线为什么得不到正确的

代码如下,是针对矩形窗的
%以下是误差分析
%1.矩形窗函数能量重心校正法误差分析
nn=1;%1代表3点卷积幅值修正
m=100;%误差曲线图的横坐标点数
E_f_1=zeros(1,m);
f_1=linspace(-0.5,0.5,m);%范围是-0.5到0.5
G_juxing=(sinc(f_1).^2);%矩形窗的频谱函数
for j=2:m-1%暂时没有考虑首尾两点的情况
    f0_1_fz=0;
    f0_1_fm=0;
    for i=-nn:nn
      f0_1_fz=f0_1_fz+(f_1(j)+i).*(sinc(f_1(j)+i).^2);%分子表达式
      f0_1_fm=f0_1_fm+(sinc(f_1(j)+i).^2);%分母表达式
    end
    f0_1=f0_1_fz/f0_1_fm;
    E_f_1(j)=f_1(j)-f0_1;%相对误差值
end
figure
plot(f_1,E_f_1);grid on;

感觉程序没什么问题啊,但是得到的曲线和资料上的不一致,不知道是什么原因啊

eguang8116 发表于 2008-8-3 22:58

期待高手解答

我觉得理论上来讲,在-0.5或者是0.5处的频率误差是最大的,但是资料上讲的不是这样啊,不知道那个图是怎样得到的

eguang8116 发表于 2008-8-4 08:30

大家帮忙啊

我试验了一下hanning窗的频率误差曲线和矩形窗的曲线差不多

eguang8116 发表于 2008-8-4 14:45

没人知道么,大家帮忙啊

yangzj 发表于 2008-8-4 16:39

请问你看的是哪个资料里的?

yangzj 发表于 2008-8-4 17:02

是资料里求误差的公式写错了,图没有错.能量重心法的依据是离散窗谱的能量重心无穷逼近原点.
那么程序中求误差时不是与f0_1相对,而应该是相对于原点0的差值.
非常感谢您指出的错误.

eguang8116 发表于 2008-8-5 09:08

非常感谢飞天客的答复

我参考的资料是 离散频谱校正 一书,还有一些pdf资料,我发现公式都是一样的啊,但是我照公式就是得不到书上的图

我现在把倒数第四句改为E_f_1(j)=f0_1-0;就得到书上的图了,非常感谢飞天客:lol

yangzj 发表于 2008-8-5 10:23

虽然书经过了好几轮校正,但还是难免有不少有问题,发现有问题的地方,还请多多批评指教,以帮助改正.

eguang8116 发表于 2008-8-19 13:04

为什么我通过以上程序计算得到的曲线,虽然形状大体上是一致的,但是具体的数值却不相同?矩形窗频率误差最大约是百分之19左右,但是资料上的数值是0.163,n=1(3点卷积),为什么啊

eguang8116 发表于 2008-8-19 13:06

参考文献是《离散频谱的能量重心校正法》

eguang8116 发表于 2008-8-19 13:10

而且做hanning窗的频率误差曲线时当n=2时与资料上的大体形状都不一样,为什么呢

eguang8116 发表于 2008-8-25 10:20

大家帮忙啊
页: [1]
查看完整版本: 能量重心校正法的频率误差曲线为什么得不到正确的