我發現在這個腳本里面 階數p的改變 會導致報錯 是不是原始資料有關系 有沒有大神可以解決一下
腳本:
function [F,D,A,theta]=exprony_ma(y,p,dt)
nm=2*p; %%% p為模型的階數
n=fix(length(y)/2); %%%%以0為方向取整
h=y(1,1:2*n)';
L=length(h);
M=L/2;
for k=1:nm
x1(:,k)=h(k:M-1+k);
end
for k=1:M
x2(k,:)=-h(nm+k);
end
B=x1\x2; %% 最小二乘法求解prony 多項式系數
B(nm+1)=1;
B1=B(nm+1:-1:1);
V=roots(B1); %% 求特征方程的根
F1=abs(log(V))/(2*pi*dt); %% 初步計算頻率
D1=log(abs(V))/(2*pi*dt); %% 初步計算衰減因子
for k=0:(2*n-1)
Va(k+1,:)=conj(V').^k; %% 范得蒙矩陣 Va
end
S1=2*(inv(conj(Va')*Va)*conj(Va')*h); %%%%%%b
[F2,I]=sort(F1); %%%頻率F1從小到達排序 換成降序
m=0;
for k=1:nm-1
if F2(k)~=F2(k+1) %%去掉其中的共軛項
continue;
end
m=m+1;
ii=I(k); %% 提取有效的元素序數
F(m)=F1(ii);
D(m)=D1(ii);
A(m)=abs(S1(ii));
theta(m)=angle(S1(ii))*180/pi;
end
result = [A(m) F(m) D(m) theta(m)];
感覺很奇怪 更改初始資料的長度也會報錯 是不是程式本身出問題了啊
uj5u.com熱心網友回復:
哥,你這里難道不需要先構建樣本矩陣嗎uj5u.com熱心網友回復:
已經建立好了。。。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/54125.html
標籤:其他
