📄 mainar.m
字号:
function [dv,wnv]=mainar(order,t,SNR)
%参数识别主函数
%=========================
%获得信号并进行标准化处理
y=signal(t);
y0=mean(y);
vy=std(y);
y=(y-y0)./vy;
%=========================
%在已知信号中加白噪声
%sigPower = sum(abs(y.^2))/length(y);
%noisePower=sigPower/SNR;
%x=y+sqrt(noisePower)*randn(1,length(y));
x=awgn(y,SNR,'measured');
plot(t,x)
%=================================
%用最小二乘法进行AR建模
a=arlsq(x,order);
%================================
%求差分方程的解
c=roots(a);
%===============================
%结合经典Prony法求阻尼比dv和固有频率wnv
syms alp f
[d,wn]=solve('alp=-wn*d','f=wn/(2*pi)*sqrt(1-d^2)','wn','d');
nd=length(d);
sti=t(2)-t(1);%采样时间间隔
for i=1:length(c)
alp=1/sti*log(abs(c(i)));
f=1/(2*pi*sti)*atan(imag(c(i))/real(c(i)));
dv(1:nd,i)=eval(d);
wnv(1:nd,i)=eval(wn);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -