找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4639|回复: 0
收起左侧

随机信号分析 MATLAB实验报告

[复制链接]
ID:361434 发表于 2018-6-28 23:07 | 显示全部楼层 |阅读模式
有需要的朋友可以下载
随机信号分析实验报告
实验一
新建函数GaussNum
function [ y ] = GaussNum(N,Mean,Variance )
y=zeros(1,N)                 %将Y初始化为全零数组
for k=1:12                  %产生12个相互独立均匀分布的随机数
    x=rand(1,N)
    y=y+x
end
y=Variance*(y-6)+Mean;       %根据近似累加法进行运算
程序
>> clear
y= GaussNum(100,1,2)        %调用函数GaussNum
>> max(y)                   %求最大值
ans =
    4.7050
>> min(y)                   %求最小值
ans =
   -5.4935
>> mean(y)                  %求均值
ans =
    0.9750
>> var(y)                   %求方差
ans =
    3.8814
>> plot(y)
结果
观察运行结果可知,产生的100个随机数的均值为0.9750,方差为3.8814,与理论值均值为1,方差为4比较接近。故程序较理想的产生了均值为1,方差为4的高斯随机数


实验二
N=10000;
Ts=0.001;
>> sigma=2;
>> beta=2;
>> a=exp(-beta*Ts);
>> b=sigma*sqrt(1-a*a);
>> w=normrnd(0,1,[1,N]);
>> x=zeros(1,N);
>> x(1)=sigma*w(1);
>> for i=2:N
x(i)=a*x(i-1)+b*w(i);
end
Rxx=xcorr(x)/N;                        %计算自相关函数
m=[-N+1:N-1];
Rxx0=(sigma^2)*exp(-beta*abs(m*Ts));
Plot(m*Ts,Rxx0,’b’ ,m*Ts,Rxx,’r’);

Sx=abs(fft(Rxx));                       %将Rxx进行 fft得到功率谱
fs=Ts/(2*pi);
f=(0:N-1)*fs/N/2;
Sx0=abs(fft(Rxx0));
plot(f,10*log10(Sx(1:N)),'b',f,10*log10(Sx0(1:N)),'r');
运行结果:
自相关函数
功率谱图
分析结果图可知,程序产生的平稳高斯过程的自相关函数和功率谱密度与理论值比较接近,可以用于该函数仿真。

实验三
定义产生窄带随机过程的函数Narrowbandsignal
function X=Narrowbandsignal(N,f0,deltf,fs,M)
N1=N-M;
xt=random('norm',0,1,[1,N1]);
f1=f0*2/fs;
df1=deltf/fs;
ht=fir1(M,[f1-df1 f1+df1]);
X=conv(xt,ht);
Return
定义EnvelopPhase函数产生包络相位包络平方
function [ At Ph A2 ] =EnvelopPhase( X,f0,fs )
HX=imag(hilbert(X));
[M N]=size(X);
t=0:1/fs:((N-1)/fs);
Ac=X.*cos(2*pi*f0*t)+HX.*sin(2*pi*f0*t);
As=HX.*cos(2*pi*f0*t)-X.*sin(2*pi*f0*t);
Ph=atan(As./Ac);
A2=Ac.*Ac+As.*As;
At=sqrt(A2)
end
主程序
>> N=10000;f0=10000;deltf=400;fs=22000;M=50;    %参数设置
a1=2;a2=4;a3=8;
sit1=pi/6;sit2=pi/4;sit3=pi/3;
X=Narrowbandsignal(N,f0,deltf,fs,M);              %调用产生窄带随机信号的函数
X=X/sqrt(var(X));                              %高斯过程样本归一化处理
t=0:1/fs:((N-1)/fs);
X1=X+a1*cos(2*pi*f0*t+sit1);                   %情况1
X2=X+a2*cos(2*pi*f0*t+sit2);                   %情况2
X3=X+a3*cos(2*pi*f0*t+sit3);                   %情况3
[At1 Ph1 A21]=EnvelopPhase(X1,f0,fs);            %调用产生包络、相位、包络平方的函数
[At2 Ph2 A22]=EnvelopPhase(X2,f0,fs);
[At3 Ph3 A23]=EnvelopPhase(X3,f0,fs);
LA=0:0.4:12;  GA1=hist(At1,LA);                %包络的分布直方图
GA2=hist(At2,LA);  GA3=hist(At3,LA);
plot(LA,GA1,'--',LA,GA2,'-',LA,GA3,'-');
figure
LP=-pi/2:0.05:pi/2; GP1=hist((Ph1-sit1),LP);         %相位的分布直方图
GP2=hist((Ph2-sit2),LP); GP3=hist((Ph3-sit3),LP);
plot (LP,GP1,'--',LP,GP2,'-',LP,GP3,'-');
figure
LA2=0:1:120; GA21=hist(A21,LA2);                %包络平方的分布直方图
GA22=hist(A22,LA2);  GA23=hist(A23,LA2);
plot (LA2,GA21,'--',LA2,GA22,'-',LA2,GA23,'-');
包络
相位
包络平方


完整的Word格式文档51黑下载地址:
matlab.docx (173.76 KB, 下载次数: 13)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表