-
大小: 1KB文件類型: .m金幣: 1下載: 1 次發(fā)布日期: 2021-05-18
- 語言: Matlab
- 標(biāo)簽: TLS_ESPRIT??諧波檢測??matlab??
資源簡介
function [jx,SNR,result]=mytlsesprit(x,M,k,dt)
% 實(shí)現(xiàn)《基于快速TLS_ESPRIT的間諧波檢測算法》張濱生 1.4
% intput x:原始數(shù)據(jù)
% intput M:時間窗寬度
% intput dt:采樣間隔
% output jx:擬合數(shù)據(jù)
% output Ad:振幅
% output Qd:相位
% output ad:衰減因子
% output fd:振蕩頻率
% output result=[Ad,Qd,ad,fd]
代碼片段和文件信息
function?[jxSNRresult]=mytlsesprit(xMkdt)
%?實(shí)現(xiàn)《基于快速TLS_ESPRIT的間諧波檢測算法》張濱生?1.4
%?intput?x:原始數(shù)據(jù)
%?intput?M:時間窗寬度
%?intput?dt:采樣間隔
%?output?jx:擬合數(shù)據(jù)
%?output?Ad:振幅
%?output?Qd:相位
%?output?ad:衰減因子
%?output?fd:振蕩頻率
%?output?result=[AdQdadfd]
%求取數(shù)據(jù)長度、時間窗
N=length(x);
L=N+1-M;
%%?建立數(shù)據(jù)矩陣
X=zeros(LM);
for?i=0:L-1
????X(i+1:)=x(i+1:i+M-1+1);
end
%%?求取頻率估計(jì)
%奇異值分解
[RXEXUX]=svd(X);
%截取信號子空間,k的求取方法??
%?k=length(find(EX>0.00001));
Us=UX(:1:k);
%分解子空間
[mn]=size(UX);
U1=Us(1:m-1:);
U2=Us(2:m:);
%?tic
%構(gòu)建矩陣D并進(jìn)行SVD分解
D12=[U2U1];
%?tic
[RDEDUD]=svd(D12);
%?toc
%提取U12U22
U12=UD(1:
評論
共有 條評論