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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
程序如下:function resultCorrect=spectrumcorrectenergymethodshare(inputDate,correctNum,fs)
! l) s  V2 t% u7 j%功能:离散频谱校正能量重心法,适用单频点信号校正,只采用了加汉宁窗的结果4 W" ?2 q" K; j8 H8 F! L' K
%注意:信号的模型为Acos(2*pi*f*t+pha),注意t从0开始,correctNum为采用校正的正点数,汉宁窗通常采用两点就可以获得很高的精度$ @5 \& l2 e  U  Z9 g4 ?# A
%输入:inputDate待分析数据,数据长度为偶数,统一为行向量;fs采样频率
3 E$ Z  w& {0 J0 y( ]& P5 ], p" o%输出:resultCorrect校正后的频率,幅值,相位结果  N% _* ?( y9 L1 k' S6 p! h6 h
resultCorrect=zeros(1,3);   
( U" Y. J2 t/ \' l+ y& k0 PN=length(inputDate);    %数据长度
- f( {7 t9 w3 \  L( ?- m  V4 ~; Tw=hann(N,'periodic');   %生成汉宁窗
. w# Z& w2 J) w) t7 v# IfftDate=fft(inputDate.*w');  
4 W7 [/ x5 V9 T; {1 sk=2.667;                %汉宁窗恢复系数; g5 Z4 Z; j5 f2 q& o$ \$ n- X
fftDate=fftDate(1:N/2)/N*2;      %单边复数谱  + @, `- g" c% Z" d1 j1 b$ P& W
fftDateMag=abs(fftDate);         %单边幅值谱
; w. d: z8 u* D9 wfftDatePower=fftDateMag.^2;      %单边功率谱
+ T# n& u# t, v, @9 s& W8 Y[~,maxIndex]=max(fftDatePower);     %功率最大值对应位置/ W7 S( {1 ^) Z% k
maxAngle=angle(fftDate(maxIndex));  %最大值处对应的相位  & D* f: R: {3 i" a
dn=-correctNum:correctNum;9 k. P& Z6 Q+ \$ R4 Y1 X
f=sum((maxIndex+dn).*fftDatePower(maxIndex+dn))/sum(fftDatePower(maxIndex+dn));   %归一化校正频率      0 ?* e4 C' k9 r
resultCorrect(1,1)=(f-1)*fs/N;       %频率校正结果,注意matlab下标是从1开始的$ f5 d: |1 p; e
resultCorrect(1,2)=sqrt(k*sum(fftDatePower(maxIndex+dn)));    %校正幅值结果            " a4 W* ]8 E9 K* `4 D% ]1 k: e
resultCorrect(1,3)=maxAngle+pi*(maxIndex-f);                  %校正相位结果
; n6 s/ {! T: D1 EresultCorrect(1,3)=mod(resultCorrect(1,3),2*pi);
; b; N# ~- g. K5 E1 H( C1 r0 e8 r5 ?resultCorrect(1,3)=resultCorrect(1,3)-(resultCorrect(1,3)>pi)*2*pi;    %象限定在(-pi,pi]  ) ~  w: C8 z1 [/ Z! h- t$ }
end
  B5 |* s* v$ a0 ^: M可仿真看下效果,误差还是很小的
3 [# J* e: }/ |. St=0:0.01:1-0.01;2 N; [4 Y1 N4 F/ C' V
x=4.2*cos(2*pi*5.4*t+0.4);
$ e) u7 c. P& D9 h" u) U5 ZresultCorrect=spectrumcorrectenergymethodshare(x,2,100)0 z7 B( q% n) n- D9 f! {
resultCorrect =; Q' f+ Q6 @) h7 w% G9 B* A
# S$ E. v+ F! \7 p, |
     5.3993    4.1995    0.4021$ L' c  N6 T* J8 ]+ @2 ]
! j. b1 L5 s6 X3 p) G9 f. J

! z7 [, r; O- q& |5 o" J# {. }  w, v7 @0 j7 I- r. g/ U
游客,如果您要查看本帖隐藏内容请回复

' w& n- P9 M! I. a9 S; ]

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 02:24 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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