声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1257|回复: 2

[FFT] 插值后新序列与原函数的幅值和相位误差

[复制链接]
发表于 2011-1-7 21:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 我是了了 于 2011-1-7 21:05 编辑

我原函数是:sin(100*pi*t+q),q是从1度到15度(步长为1度)可变的初相角,对原函数采样48点,进行二次插值,得到一个新序列,首先计算原函数和二次插值后的新序列在每个小区间(就是48点,47个小区间上)可能存在的最大误差(这个地方,我是在每个小区间10等分,计算这10等分点上的误差值,这样计算的结果基本和理论推导一致,如果认为不可靠,可以增加等分点数计算),结果是正确的。现在,我还需要求第一个小区间上的新序列的幅值和相位的误差!这个地方,原来论文上说,傅里叶变换后,在不同的15个初相角的情况下,第一个小区间15等分,得到225个算例,我不明白了!怎么会有225个算例?一个小区间不是只对应一个50HZ的主频么?15*15当然是225.但是对应100*pi,实际只有一个50HZ的主频,只能有一个相角的误差,不明白了,请教高人。还有就是论文所说的新序列的幅值和相位误差是如何求解?下面是我求采样值误差的matlab仿真程序,后边的怎么求解,请高人指点思路,或者帮我写一下程序。非常感谢!我这里有各学科的论文,可以相互交流,探讨!

clc;clear;
N=48;

for k=1:15  %0--15度
    for n=1:48   
        t0=n/48*0.02; t1=(n+1)/48*0.02;t2=(n+2)/48*0.02;
%         t=(n+1)/48*0.02+0.02/N/sqrt(3);
        h=(2/48*0.02)/10;
        a=0;
        for t=t0:h:t2
            II(n+(k-1)*N)=sin(100*pi*t+(k-1)/180*pi);   原函数
            III(n+(k-1)*N)=(t-t1)*(t-t2)/(t0-t1)/(t0-t2)*sin(100*pi*t0+(k-1)/180*pi)+(t-t0)*(t-t2)/(t1-t0)/(t1-t2)*sin(100*pi*t1+(k-1)/180*pi)+(t-t0)*(t-t1)/(t2-t0)/(t2-t1)*sin(100*pi*t2+(k-1)/180*pi);二次插值函数
            Rmax(n+(k-1)*N)=abs(II(n+(k-1)*N)-III(n+(k-1)*N));  求解两者的误差   
            if Rmax(n+(k-1)*N)>a
                a=Rmax(n+(k-1)*N);
            end            
        end
        Rmax(n+(k-1)*N)=a;
    end
end

plot(Rmax(1:250))
回复
分享到:

使用道具 举报

 楼主| 发表于 2011-1-9 21:31 | 显示全部楼层
悲剧,被百度搜索都到了前十几页了,但是没人能解答!
 楼主| 发表于 2011-1-11 19:39 | 显示全部楼层
有人懂这一块么?给点提示!谢谢!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-28 15:19 , Processed in 0.056456 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表