加hann窗全相位比值校正法和加hann窗fft比值校正法校正方法类同,只须将二个振幅比改为振幅开方比即可。这里加hann窗是关键,过去测试时,直接调用Matlab中的hann(N)窗,频率和振幅校正效果差,见表5加hann窗全相位比值校正法测试结果。表4为加n-hann窗全相位比值校正法,其频率校正精度,相位校正精度和振幅校正精度都很高,甚至可以和表1加n-hann卷积窗apfft/apfft校正法相比,相位和振幅校正精度都很高。但apfft/apfft校正法须3N-1个取样,而全相位比值校正法只须2N-1个取样,克服了apfft/apfft法的一个缺点。现在看来全相位比值校正法也是一种不错的选择,过去窗没有正确使用。对密集频谱,apfft比值法不如apfft/apffy时移法,因时移法只涉及峰线,比值法还涉及次峰线,所以apfft/apfft只须隔2条谱线,比值法须隔5条谱线。

表6加n-hann窗fft比值校正法和表7加hann窗fft比值校正法比,表6的频率校正精度,相位校正精度和振幅校正精度都明显好於表7,说明fft比值校正法加n-hann窗有效。看来zhaoyixu在”学写程序-比值校正法”帖子中己注意到不能调用Matlab中的hann(N)窗,而用公式产生 振-hann窗。

比较表4加n-hann窗全相位比值校正法和表6加n-hann窗fft比值校正法,因apfft的泄漏小,表4频率校正精度,相位校正精度和振幅校正精度都明显好於表6。虽apfft比值校正法须2N-1个取样,而fft比值校正法只须N个取样,但从表4和表6见,无噪时N阶apfft比值法的精度好於N+1阶fft比值法的精度。

表4   加n-hann窗全相位比值校正法204839.29999999999990.99999999999972759.999999999984

102439.29999999999930.99999999999846459.999999999984

51239.29999999998970.99999999997825359.9999999999839

25639.29999999983620.99999999965486259.9999999999817

12839.29999999737840.99999999447591359.9999999996312

6419.29999995796520.99999991137418659.9999999792749

329.299999321759380.99999856871043159.9999989246668

表5   加hann窗全相位比值校正法

204839.29979896916311.000704498666459.9999999999814

102439.29959783064051.00140898299559.9999999999792

51239.29919523050921.0028179082409959.9999999999765

25639.29838873776121.0056355824731459.9999999999818

12839.29677058205441.0112702074365359.9999999999848

6419.29351360044991.0225364540300559.9999999991149

329.286917216297511.0450566433840759.9999999614661表4   加n-hann窗fft比值校正法

204839.29999936670111.0000001326550860.0000897758125

102439.29999936684011.000000132629260.0000897559346

51239.2999993691991.000000132190360.0000894184815

25639.29999941750241.0000001232482360.0000825036076

12839.30000201518230.99999966895578859.9997086611727

6419.30001456858060.99999811325109859.9978626792359

329.300094472854940.99999540530419359.9856736074141

表7     加hann窗fft比值校正法

204839.3002002767745 0.99964781701372459.9375635653786

102439.30040111331390.99929536309503759.8750505713501

51239.30080256054120.99859004124600159.7500640917667

25639.30160439847910.99717776999809559.5002706862587

12839.30320039183170.99434733469568959.00214393244

6419.3063649236880.98866162022938358.0111564495078

329.312561119329660.9771861189596156.0545743160083

表8为N=1024时不同频偏下加n-hann窗全相位比值校正法的测试结果,频率从39.0到39.9,频率校正精度,相位校正精度和振幅校正精度都好於10(-10)。不出现apfft/apfft校正法当频偏量绝对值为0.5时频率估计是会出现相差一个频率分辨率的问题

表8 不同频偏下加n-hann窗全相位比值校正法 (N=1024)

39160.0000000000001

39.09999999999950.99999999999973959.9999999999979

39.19999999999930.99999999999913659.9999999999921

39.29999999999930.99999999999846459.999999999984

39.39999999999960.99999999999795759.9999999999759

39.50.99999999999777259.9999999999723

39.60000000000040.99999999999796359.999999999978

39.70000000000070.99999999999847259.9999999999856

39.8000000000008 0.99999999999914259.999999999993

39.90000000000050.99999999999974159.9999999999982apfft比值法程序

function XfCorrect=SpectrumCorrect(N,xf,CorrectNum,WindowType)

close all;clear all;clc

fs=1024;

N=1024;

t=(-N+1:N-1)/fs;

x=3*cos(2*pi*80*t+30*pi/180)+4*cos(2*pi*150.232*t+80*pi/180)+2*cos(2*pi*253.5453*t+240*pi/180);

w2=sin(pi*(1/2:N-1/2)/N).^2;

w22=conv(w2,w2);

xx2=x.*w22;

x2=xx2(N:end)+[0 xx2(1:N-1)];

xfw=fft(x2);

xfw=xfw(1:N/2);

XfCorrectW_apfft_1024=SpectrumCorrect(N,xfw,3,2);

XfCorrectW_apfft_1024(:,1)=XfCorrectW_apfft_1024(:,1)*fs/N;

XfCorrectW_apfft_1024

function XfCorrect=SpectrumCorrect(N,xf,CorrectNum,WindowType)

XfCorrect=zeros(CorrectNum,3);

for i=1:CorrectNum

A=abs(xf);

[Amax,index]=max(A);

phmax=angle(xf(index));

if (WindowType==2)

indsecL=sqrt(A(index-1))>sqrt(A(index+1));

df=indsecL.*(2*sqrt(A(index-1))-sqrt(Amax))./(sqrt(Amax)+sqrt(A(index-1)))-(1-indsecL).*(2*sqrt(A(index+1))-sqrt(Amax))./(sqrt(Amax)+sqrt(A(index+1)));

XfCorrect(i,1)=index-1-df;

XfCorrect(i,2)=(1-df.^2).^2/(sinc(df).^2)/N/N*Amax*8;

XfCorrect(i,3)=phmax*180/pi;

xf(index-4:index+4)=zeros(1,9);

end

XfCorrect(i,3)=mod(XfCorrect(i,3),360);

XfCorrect(i,3)=XfCorrect(i,3)-(XfCorrect(i,3)>180)*360;

end

转载本文请联系原作者获取授权,同时请注明本文来自王兆华科学网博客。

链接地址:http://blog.sciencenet.cn/blog-212920-567066.html

上一篇:4cfft插值公式证明1

下一篇:Hanning窗生成公式sin(pi*(1/2:N-1/2)/N).^2

matlab 相位校正,科学网—全相位比值校正法 - 王兆华的博文相关推荐

  1. 单纯性搜索算法 matlab函数,科学网—一种有效的最优化方法——Nelder-Mead单纯形直接搜索算法 - 王福昌的博文...

    虽然MATLAB本身自带了fminsearch()函数,可以求解目标函数无梯度的最优化问题,但是感觉下面的程序在很多时候更好用,特别是自变量有边界和非线性约束的时候. 这里是John D'Errico ...

  2. java 调用matlab rank_科学网—Matlab: X is rank deficient - 李旭的博文

    Summary 开贴讨论Rank deficient matrix线性回归之过程.示例数据包含在附件中,x is a matrix whose columns represent random var ...

  3. matlab 趋势分析,科学网—SEN趋势度分析及其MATLAB实现 - 杨建华的博文

    SEN趋势度分析及其MATLAB实现 一.博文概述 1.目的 学习理解SEN趋势度分析方法及其应用,并编写简易的SEN趋势度分析函数 2.时间 2016年12月24日 3.关键词 SEN趋势度分析   ...

  4. 修改matlab fig,科学网—fig图片修改技巧 - 张坤的博文

    利用Matlab输图片时最好保存一份fig格式的文件,以备后续投稿时修改图片以满足期刊要求 1.打开Matlab-->打开需要的图片: 2.点击'Edit'-->'Figure prope ...

  5. 蹦极模型matlab仿真,科学网—蹦极的数学建模及其龙格-库塔法求解方法 - 赵也非的博文...

    论文: 蹦极的数学建模及其龙格-库塔法求解方法 在"华东师范大学首届研究生数学建模竞赛"中,获得二等奖. 发表日期: 2007年5月 摘要: 本文通过参照题中给出的数据,对蹦极者在 ...

  6. 提升matlab效率,科学网—写Matlab程序,提高运算速度的小技巧 - 吴景鹏的博文

    同样的算法和思路,不同的人写出来的程序,执行效率可能有成倍的差别.主要原因就是写代码的习惯,这里介绍点个人的小体会. 1. 向量化,少用for.很多人写Matlab代码,会沿用C语言的思路,经常用fo ...

  7. matlab+whisker,科学网—如何绘制箱线图(Box- Whisker Chart) - 陆绮的博文

    如何绘制箱线图(Box-&-Whisker Chart) 厚颜无耻的人肉翻译机小水獭又活奔乱跳滴跳出来了,本獭看到一篇文章上使用了箱线图(box-&-Whisker Chart)来表示 ...

  8. python 画风场 scipy_科学网-Python: 扩展库SciPy-刘洋洋的博文

    1 什么是SciPy? SciPy是基于Python的软件生态系统,开源,主要为数学.科学和工程服务. SciPy包含6个核心库: NumPy, SciPy library, Matplotlib, ...

  9. 科学计算机读书报告单,科学网—读书报告-20171016 - 梁斌的博文

    文章题目:Lipid and Carbohydrate Metabolism in Caenorhabditis elegans 主要作者:Jennifer L. Watts and Michael ...

最新文章

  1. c语言如何判断数据是否符合正态分布_如何判断机器学习数据集是否是线性的?...
  2. winform中openfiledialog过滤压缩文件格式_什么是最佳图像格式?不同的文件格式及其特点...
  3. python编程菱形_Python打印“菱形”星号代码方法
  4. Java中的状态设计模式–示例教程
  5. 实现两个点集的欧式距离和cos距离和索引值寻找(含有两种解法,for循环和矩阵操作)
  6. 在 GitHub 上提交代码必备指南!
  7. 基于JAVA实现的客户信息管理软件(简易)
  8. 【考研数学】视频,你喜欢看哪位老师?
  9. 树莓派摄像头,协议相关,人脸、车牌识别
  10. 图书管理系统数据库SQL设计思路
  11. esp8266 阿里云 加湿器 天猫精灵
  12. 几种ESB(企业服务总线)介绍
  13. Windows消息前缀
  14. laravel文件命名规范
  15. iOS8新功能新特性
  16. Qt学习总结之QTableWidget表格填充
  17. 传统行业+NFT然后迎来新增长点?
  18. MySQL默认数据库之sys库
  19. 极客大学产品经理训练营:运营思维 第19课总结
  20. V891-Z3735F重做系统,驱动修复汇总

热门文章

  1. AngularJS 的 IE 兼容性
  2. Hyper-V 的用途与安装
  3. Arqit公司将于2023年用卫星发送量子密钥;QC Ware发布量子线性代数API | 全球量子科技与工业快讯第二十六期
  4. 如何在PPT中同时插入多张图片且每张占一页
  5. websphere负载均衡_使用WebSphere DataPower Appliances保护JSON有效负载
  6. 更换一寸照片底色蓝色底,红色底白底一寸照怎么做ps教程简单快速快捷方法办法ps学习ps教学ps教程
  7. phpmywind 数据库 上传服务器后乱码
  8. 显卡部分性能指标 转载
  9. openwrt 配置 wifidog
  10. 编写宠物dog类python_Python编程:创建和使用类