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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
程序如下:function resultCorrect=spectrumcorrectenergymethodshare(inputDate,correctNum,fs)
% h/ Y3 k5 A, V* R6 m1 `! M: W+ _%功能:离散频谱校正能量重心法,适用单频点信号校正,只采用了加汉宁窗的结果& M( r8 O4 V) O8 u: h0 ?' v$ k- \
%注意:信号的模型为Acos(2*pi*f*t+pha),注意t从0开始,correctNum为采用校正的正点数,汉宁窗通常采用两点就可以获得很高的精度6 c& f! I6 o! @( a6 O& m1 i
%输入:inputDate待分析数据,数据长度为偶数,统一为行向量;fs采样频率4 X+ g" ?2 K2 x0 f
%输出:resultCorrect校正后的频率,幅值,相位结果3 W" j6 k* i  e% R8 b, Z* j
resultCorrect=zeros(1,3);   ! e* G$ M+ r2 I# R3 ?
N=length(inputDate);    %数据长度% P: s/ m1 q' t
w=hann(N,'periodic');   %生成汉宁窗4 Z/ H3 d- X5 ^# [1 F
fftDate=fft(inputDate.*w');  - d: \4 X& x9 w
k=2.667;                %汉宁窗恢复系数
. M8 D+ ~3 |6 L7 @! D  u. rfftDate=fftDate(1:N/2)/N*2;      %单边复数谱  
+ s2 p9 j) `' h7 X) [fftDateMag=abs(fftDate);         %单边幅值谱
( F6 l) b% L) ~' {; h+ c* hfftDatePower=fftDateMag.^2;      %单边功率谱* J: A# s% B, D9 x* Y2 U$ F4 Z
[~,maxIndex]=max(fftDatePower);     %功率最大值对应位置8 y6 ]. Y6 h3 y; |* q6 Y5 l; D
maxAngle=angle(fftDate(maxIndex));  %最大值处对应的相位  
, h4 c0 J) }6 h! m/ J8 ^/ Wdn=-correctNum:correctNum;# I5 s9 _" h/ i2 w( A, a2 g
f=sum((maxIndex+dn).*fftDatePower(maxIndex+dn))/sum(fftDatePower(maxIndex+dn));   %归一化校正频率      
+ l/ N, t  H* E% Q7 Z, `0 RresultCorrect(1,1)=(f-1)*fs/N;       %频率校正结果,注意matlab下标是从1开始的
7 K$ H& Y: [& XresultCorrect(1,2)=sqrt(k*sum(fftDatePower(maxIndex+dn)));    %校正幅值结果            
+ ^6 |6 W) }& o" M1 ?3 \5 @* L" _7 B& HresultCorrect(1,3)=maxAngle+pi*(maxIndex-f);                  %校正相位结果
* Y8 T. @0 r: dresultCorrect(1,3)=mod(resultCorrect(1,3),2*pi);( z) Q  M3 s& X* H
resultCorrect(1,3)=resultCorrect(1,3)-(resultCorrect(1,3)>pi)*2*pi;    %象限定在(-pi,pi]  0 Y+ o" a! T6 n8 Z' R/ o
end7 H9 C1 L* e( v7 C) E
可仿真看下效果,误差还是很小的' M- I" H: ]' J# {) E
t=0:0.01:1-0.01;
6 K& j4 [2 h- O# ^! R" ]% Dx=4.2*cos(2*pi*5.4*t+0.4);- `+ ]& [$ Z; P, B& a2 ?( Y- u
resultCorrect=spectrumcorrectenergymethodshare(x,2,100)+ @5 n+ o4 I8 S& I+ d# y9 O) L0 P
resultCorrect =3 B9 L$ n* d$ k( \; o" i
5 z4 O7 H$ p* j  y& [' N  X
     5.3993    4.1995    0.4021
. e2 J* S7 T0 G  \+ `/ L
( Q+ |5 \" Y, A; h4 V6 D+ L
# W5 K! q- X& p+ `( U
$ T* S" ?' f- `- J) p2 U
游客,如果您要查看本帖隐藏内容请回复
" N1 ?3 `& }, R, a- h" \

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-3 21:58 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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