资源描述:
《随机信号的仿真与分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验十八随机信号的仿真与分析一.实验目的利用计算机仿真随机信号,考察其数字特征,以此加深对满足各种分布的随机信号的理解。熟悉常用的信号处理仿真软件平台:matlab或c/c++语言.二.实验原理⑴随机信号的产生和定义随机信号是随机变量在时间上推进产生的过程量,它同时具有过程性和不确定性。定义如下:给定参量集T与概率空间(Ω,F,P),若对于每个,都有一个定义在(Ω,F,P)上的实随机变量X(t)与之对应,就称依赖于参量t的随机变量族为一(实)随机过程或随机信号。⑵高斯分布随机信号统计分布是正态分
2、布(高斯分布)的随机信号为高斯分布随机信号。高斯分布的随机变量概率密度函数满足下式:⑶均匀分布随机信号统计分布是均匀分布的随机信号为均匀分布随机信号。均匀分布的随机变量概率密度函数满足下式:⑷正弦随机信号给定具有某种概率分布的振幅随机变量A、角频率随机变量Ω与相位随机变量Θ,(具体概率分布与特性视应用而定),以(时间)参量t建立随机变量:。于是,相应于某个参量域T的随机变量族为正弦随机信号(或称为正弦随机过程)。-26-⑸贝努里随机信号贝努里随机变量X(s)基于一个掷币实验(s表示基本结果事件)
3、:1表示s为正面,0表示s不为正面;s不为正面的概率为P[X(s)=1]=p,s为正面的概率为P[X(s)=0]=q,其中p+q=1。若无休止地在t=n(n=0,1,2,…)时刻上,独立进行(相同的)掷币实验构成无限长的随机变量序列:,其中与n和s都有关,应记为X(n,s),于是,而且有概率:其中,p+q=1。上述的随机变量序列:通常被称为随机序列(或随机过程),也被称为(离散)随机信号,即贝努里随机信号。正式的定义如下:给定某个序列随机实验,观测某事件B发生与否,建立事件B的指示函数,而且,序
4、列随机实验间彼此统计独立并有相同的概率,于是,是一个(0,1)贝努里随机变量,相应的随机变量序列为(0,1)贝努里随机序列(或称随机信号,有时也称为随机过程)。三.实验任务与要求⑴用matlab或c/c++语言编程并仿真。-26-⑵生成满足几种概率分布的仿真随机信号,自己编写程序计算几种概率分布的仿真随机信号的特征。具体要求:①随机数的产生与测量:产生的10000个泊松分布随机数,计算它们的均值、方差与概率密度、频谱、功率谱密度,自相关函数,并绘出函数曲线。确定泊松过程是一个马尔可夫过程。②产生
5、N(0,3)与N(2,3)的随机数,计算它们的概率密度、频谱、功率谱密度,自相关函数,并绘出函数曲线。确定它们是否属于白噪声。③统计分析:二维正态分布(X,Y),N(0,1;0,4;0.5)的联合概率密度函数为其中μ1=0,σ1=1,μ2=0,σ2=4,ρ=0.5。求①;②);③)。⑶计算二维正态分布(X,Y),N(0,1;0,4;0.5)的概率密度、频谱、功率谱密度,自相关函数,并绘出函数曲线。⑷按要求写实验报告。四.实验仿真与分析1.随机信号的仿真(1)高斯分布随机信号的仿真MATLAB程序
6、:N=1000;M=0;SIGMA2=3;SIGMA=sqrt(SIGMA2);X=M+SIGMA.*randn(N,1);t=0:N-1plot(t,X);gridontitle('高斯分布的随机信号');xlabel('t');说明:M为均值,SIGMA2为其方差;用randn(N,1)函数产生一个N个样本的正态分布的列矢量;用X=M+SIGMA.*randn(N,1)仿真产生N(M,SIGMA2)的高斯分布的随机数;取t=0:N-1,用plot(t,X)对随机数进行仿真绘图。编程运行后得到
7、的高斯分布随机信号的仿真图如下:-26-(2)均匀分布随机信号的仿真程序:a=5;b=8;N=1000;x=b-(b-a).*rand(N,1);t=0:N-1;plot(t,x);title('均匀分布随机信号');说明:用rand(N,1)函数产生一个N个样本的(0,1)均匀分布的列矢量;用x=b-(b-a).*rand(N,1)仿真产生(a,b)的均匀分布随机数;取t=0:N-1,用plot(t,x)对随机数进行仿真绘图;编程运行后得到的均匀分布随机信号的仿真图如下:-26-(3)正弦随机
8、信号的仿真程序:t=0:pi/50:2*pi;fori=1:100A=rand();w=rand()*2;B=rand()*2*pi;y(i)=A*sin(w*t(i)+B);endfigure(1);plot(y,'-r');gridon;title('y=Asin(Omegat+Theta)');xlabel('t');ylabel('y');编程运行后得到的均匀分布随机信号的仿真图如下:-26-(4)贝努里随机信号的仿真:程序:p=0.5;N=50;ind=find(rand(N,1)