找回密码
 注册
关于网站域名变更的通知
查看: 385|回复: 1
打印 上一主题 下一主题

离散频谱的能量重心校正法程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-2-27 17:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
程序如下:function resultCorrect=spectrumcorrectenergymethodshare(inputDate,correctNum,fs)
' L. \2 D5 ^/ m%功能:离散频谱校正能量重心法,适用单频点信号校正,只采用了加汉宁窗的结果
1 \& y6 o* U7 J7 C%注意:信号的模型为Acos(2*pi*f*t+pha),注意t从0开始,correctNum为采用校正的正点数,汉宁窗通常采用两点就可以获得很高的精度' Y3 [1 M6 G; A- N* \
%输入:inputDate待分析数据,数据长度为偶数,统一为行向量;fs采样频率5 y9 J5 y2 ~( @; W
%输出:resultCorrect校正后的频率,幅值,相位结果
7 f9 K1 k' ~/ o3 G$ {resultCorrect=zeros(1,3);   
- U3 F: t0 m5 L( J1 `8 bN=length(inputDate);    %数据长度
. ?( l- _# J, n9 s* Aw=hann(N,'periodic');   %生成汉宁窗5 F% a* I" N& D: w# _3 {" ]5 @
fftDate=fft(inputDate.*w');  : L( Y- |& J* r  r- r0 R
k=2.667;                %汉宁窗恢复系数
/ r% g0 E8 E- X! M6 a5 }fftDate=fftDate(1:N/2)/N*2;      %单边复数谱  ) u/ a) v- [, H/ y8 o
fftDateMag=abs(fftDate);         %单边幅值谱
9 L9 {# W4 c" V' o" PfftDatePower=fftDateMag.^2;      %单边功率谱  y. e% S, c) v  m+ e) @8 K
[~,maxIndex]=max(fftDatePower);     %功率最大值对应位置
( k( M# Z* r! n0 ~maxAngle=angle(fftDate(maxIndex));  %最大值处对应的相位  # k( f6 q% v+ }4 S
dn=-correctNum:correctNum;4 [8 `1 T+ G6 _+ t
f=sum((maxIndex+dn).*fftDatePower(maxIndex+dn))/sum(fftDatePower(maxIndex+dn));   %归一化校正频率      
6 e+ D3 ^9 {4 g, m3 o  y1 t: UresultCorrect(1,1)=(f-1)*fs/N;       %频率校正结果,注意matlab下标是从1开始的
( ?: [1 [4 x9 l* Q* N5 x: m/ @resultCorrect(1,2)=sqrt(k*sum(fftDatePower(maxIndex+dn)));    %校正幅值结果            , I5 X5 k  V8 {+ }$ r7 q
resultCorrect(1,3)=maxAngle+pi*(maxIndex-f);                  %校正相位结果' O3 ?2 c2 S, k* @3 T; o
resultCorrect(1,3)=mod(resultCorrect(1,3),2*pi);
& T& K0 Y& c9 l: [resultCorrect(1,3)=resultCorrect(1,3)-(resultCorrect(1,3)>pi)*2*pi;    %象限定在(-pi,pi]  
: G  T, @; d( ?0 Zend
3 S* A; ~# W& G4 o+ [! U可仿真看下效果,误差还是很小的
& x3 c/ d' O, A8 d2 `  Rt=0:0.01:1-0.01;
; ?% d7 n1 D# i& Sx=4.2*cos(2*pi*5.4*t+0.4);
+ b" x- a4 O0 s9 w0 nresultCorrect=spectrumcorrectenergymethodshare(x,2,100)
) N1 i9 T! C  eresultCorrect =
/ H3 U/ V; C) m" A3 i5 _2 m1 u6 J! l: g, `. z
     5.3993    4.1995    0.40218 k/ \* |4 O# U5 ~4 }4 R% K: O- _8 b
" y6 U) m% z2 b" T# y( {, v
! G( |7 k) y; `7 w# S+ Q

( t' O" {6 ^' m/ Z- |
游客,如果您要查看本帖隐藏内容请回复
% }' W7 {) n' Z

该用户从未签到

2#
发表于 2020-2-27 18:16 | 只看该作者
离散频谱的能量重心校正法程序
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 23:30 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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