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