|
前面发帖求助,我的需求是:一个信号的基波在25k和30k之间随机变化,测其相位,频率和幅值。
试了一些方法,首先是加窗函数,各种窗都试了,包括自卷积混合窗,幅值精度还行,频率也还凑合,相位简直不能看,准的时候很准,不准的时候不能叫误差,相差太远。
后来用了时移相位差校正法,相位还是不太行。
再用了双窗全相位时移校正法,相位精度还可以了,0.1度吧,
具体理论就不介绍了。
说一下的我对该FFT方法的测试过程:
采样点N=256;
采样频率fs在25k*20~30k*30随机变化
测试信号由7个信号叠加:
幅值:7个0~100的随机数
相位:7个-90度~90度的随机数
7个信号频率分别是下列各自范围内的随机数:25k-30k,35k~40k, 45k~50k, 55k~60k, 65k~70k, 75k~80k, 85k~90k
运行1000次,取基波每次实际相位和FFT计算相位的误差
1000次中最大误差不超过0.1度。
只有MATLAB文件。
那么问题来了,有人把这个M文件移植成C吗?
|
|