⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zonghe.m

📁 matlab环境下的高斯白噪声生成
💻 M
字号:
clear
n=1;
for t=0:0.1:2
    x=(exp(-0.8*t))*220e3*sin(2*pi*1.9*t)+(exp(0.3*t))*220e3*sin(2*pi*0.5*t);
    y(n)=x;
    n=n+1;
end
t=0:0.1:2;
x=y;
dt=0.1;
%去直流分量
L = length(x);
s=0;
for i=1:L
s=s+x(i);
end
xp=s/L;
for i=1:L
x(i)= x(i)-xp;
end
%去除奇异分量(阶越,下跌,膨大)
y=x;
x=[];
for i=1:2
    x(i)=y(i);
end
for i=3:L
    x(i)=(y(i-2)-4*y(i-1)+3*y(i))/2/dt;
end
%%去噪声
%
%y=[];
%y=x;
%x=[];
%x=hilbert(y);
%低通滤波
[n,fo,mo,w]=remezord([2.5 3],[1 0],[0.01 0.1],10);
b=remez(n,fo,mo,w);
y=fftfilt(b,x);
dt = 0.1;
s=x;
L = length(s);
pe = ceil(L/2);
R  = [];
k = 0;   
% 形成扩展阶矩阵
for i=1:pe
    for j=1:pe
        R(i,j)=0;
        for n=pe+1:L
            R(i,j)= R(i,j)+s(n-j)*conj(s(n-i));
        end
    end
end    
[U,S,V] = svd(R);  % 分解
[m,n] = size(R);
h = min(m,n);
cro = [];
for ks = 1:h;
    cro = [cro,S(ks,ks)];
end
ccro = cro/cro(1);
% 估计阶数
for pp = 1:h
    if ccro(pp)>=1e-6
        pp = pp + 1;
    else 
        break;
    end
end
p = pp-1;
RE = R(2:end,2:p+1);
b  = R(:,1);
b = b(2:end);
a = pinv(RE)*(-b);
R1 = R(1,:);
R1 = R1(1:p+1);
a1 = [1 a'];
Ep = sum(R1.*a1);
P = [1 a'];
z = roots(P)
%% 估计序列X
kk = 1:p;
X(kk) = s(kk);
for pp = p+1:L
    ll = 1:p;
  X(pp) = sum(-a'.*s(pp-ll));
    pp = pp+1;
end
Zh = [];
for mm = 0:L-1
    Zh = [Zh,z.^mm];
end
Z = Zh';
Z = conj(Z);
Zhh  = Z';
b=2*inv(Zhh*Z)*Zhh*X';
A=abs(b)
f=angle(z)/2/pi/dt
a=log(abs(z))/dt
theta = angle(b)/pi*180
plot(X,':r');
hold on;
plot(s,'-.b');
hold on;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -