随机信号分析实验报告
来源:入团申请书 发布时间:2020-08-01 点击:
H a ar r b bi in n
I In ns st ti it t u ut te e
o of f
T Te ec ch h n no o l lo og gy y
实 验 报 告 告
课程名称:
随机信号分析
院
系:
电子与信息工程学院
班
级:
姓
名:
学
号:
指导教师:
实验时间:
实验一 、 各种分布随机数得产生
(一) 实验原理 1、 、 均匀分布随机数得产生原理 产生伪随机数得一种实用方法就是同余法,它利用同余运算递推产生伪随机数序列.最简单得方法就是加同余法
为了保证产生得伪随机数能在[0,1]内均匀分布,需要M为正整数,此外常数 c 与初值 y0 亦为正整数。加同余法虽然简单,但产生得伪随机数效果不好。另一种同余法为乘同余法,它需要两次乘法才能产生一个[0,1]上均匀分布得随机数
ﻩ ﻩﻩ
式中,a为正整数。用加法与乘法完成递推运算得称为混合同余法,即
ﻩﻩ
ﻩ用混合同余法产生得伪随机数具有较好得特性,一些程序库中都有成熟得程序供选择。
常用得计算语言如 Basic、C与 Matlab 都有产生均匀分布随机数得函数可
以调用,只就是用各种编程语言对应得函数产生得均匀分布随机数得范围不同,有得函数可能还需要提供种子或初始化。
Matlab提供得函数rand()可以产生一个在[0,1]区间分布得随机数,rand(2,4)则可以产生一个在[0,1]区间分布得随机数矩阵,矩阵为2行4列。Matlab 提供得另一个产生随机数得函数就是 random(’unif’,a,b,N,M),unif 表示均匀分布,a与b就是均匀分布区间得上下界,N与M分别就是矩阵得行与列。
2、 、 随机变量得仿真 根据随机变量函数变换得原理,如果能将两个分布之间得函数关系用显式表达,那么就可以利用一种分布得随机变量通过变换得到另一种分布得随机变量。
若X就是分布函数为 F(x)得随机变量,且分布函数 F(x)为严格单调升函数,令Y=F(X),则 Y 必为在[0,1]上均匀分布得随机变量.反之,若 Y 就是在[0,1]上均匀分布得随机变量,那么 即就是分布函数为 FX(x)得随机变量。式中 F X1 ( ) 为F X ( ) 得反函数.这样,欲求某个分布得随机变量,先产生在[0,1]区间上得均匀分布随机数,再经上式变换,便可求得所需分布得随机数。
3、 高斯分布随机数得仿真 广泛应用得有两种产生高斯随机数得方法,一种就是变换法,一种就是近似法. 如果X1,X2 就是两个互相独立得均匀分布随机数,那么下式给出得 Y1,Y2
便就是数学期望为 m,方差为得高斯分布随机数,且互相独立,这就就是变换法。
另外一种产生高斯随机数得方法就是近似法.在学习中心极限定理时,曾提到 n 个在[0,1]区间上均匀分布得互相独立随机变量 Xi (i=1,2…,n),当n足够大时,其与得分布接近高斯分布.当然,只要 n 不就是无穷大,这个高斯分布就是近似得。由于近似法避免了开方与三角函数运算,计算量大大降低。当精度要求不太高时,近似法还就是具有很大应用价值得. 4、 、 各种分布随机数得仿真 有了高斯随机变量得仿真方法,就可以构成与高斯变量有关得其她分布随机变量,如瑞利分布、指数分布与分布随机变量。
( 二)
实验目得 在很多系统仿真得过程中,需要产生不同分布得随机变量。利用计算机可以很方便地产生不同分布得随机变量,各种分布得随机变量得基础就是均匀分布得随机变量.有了均匀分布得随机变量,就可以用函数变换等方法得到其她分布得随机变量。
( 三) 实验结果
附:源程序 subplot(2,2,1);
x=random(’unif’,2,5,1,1024); plot(x); title(’均匀分布随机数’) subplot(2,2,2); G1=random(’Normal',0,1,1,20000); plot(G1); title(’高斯分布随机数’) subplot(2,2,3); G2=random("Normal’,0,1,1,20000); R=sqrt(G1、*G1+G2、*G2); plot(R); title(’瑞利分布随机数’) subplot(2,2,4); G3=random("Normal’,0,1,1,20000); G4=random("Normal’,0,1,1,20000); X=G1、*G1+G2、*G2+G3、*G3+G4、*G4; plot(X); title("x^2 分布随机数')
实验 二 、 随机变量检验 (一) 实验 原理 1、均值得计算 在实际计算时,如果平稳随机序列满足各态历经性,则统计均值可用时间均值代替。这样,在计算统计均值时,并不需要大量样本函数得集合,只需对一个样本函数求时间平均即可。甚至有时也不需要计算 N 时得极限,况且也不可能。通常得做法就是取一个有限得、计算系统能够承受得 N 求时间均值与时间方差。根据强调计算速度或精度得不同,可选择不同得算法。
设随机数序列{},一种计算均值得方法就是直接计算下式中,xn 为随机数序列中得第 n 个随机数。
另一种方法就是利用递推算法,第n次迭代得均值也亦即前 n 个随机数得均值为迭代结束后,便得到随机数序列得均值 m m N
递推算法得优点就是可以实时计算均值,这种方法常用在实时获取数据得场合。
当数据量较大时,为防止计算误差得积累,也可采用式中,m1 就是取一小部分随机数计算得均值. 2、方差得计算 计算方差也分为直接法与递推法。仿照均值得做法
方差得递推算法需要同时递推均值与方差 m mnx mn n n n 1 11( )
迭代结束后,得到随机数序列得方差为
其它矩函数也可用类似得方法得到. 3、统计随机数得概率密度直方图 假定被统计得序列得最大值与最小值分别为 a 与 b。将区间等分 M(M 应与被统计得序列得个数 N 相适应,否则统计效果不好。)份后得区间为,,… , ,… , 。用,表示序列得值落在区间里得个数,统计序列得值在各个区间得个数,,则就粗略地反映了随机序列得概率密度得情况.用图形方式显示出来就就是随机数得概率密度直方图. (二)
实验目得 随机数产生之后,必须对它得统计特性做严格得检验。一般来讲,统计特性得检验包括参数检验、均匀性检验与独立性检验等.事实上,我们如果在二阶矩范围内讨论随机信号,那么参数检验只对产生得随机数一、二阶矩进行检验。我们可以把产生得随机数序列作为一个随机变量,也可以瞧成随机过程中得一个样本函数。不论就是随机变量还就是随机过程得样本函数,都会遇到求其数字特征得情况,有时需要计算随机变量得概率密度直方图等. (三)
实验结果
附:源程序 subplot(2,2,1); x=random("unif",2,5,1,1024); hist(x,2:0、2:5); title(’均匀分布随机数直方图’); s1=0 for n1=1:1024
s1=x(n1)+s1; end Mean1=s1/1024; t1=0 for n1=1:1024
t1=(x(n1)—Mean1)^2+t1; end Variance1=t1/1024; subplot(2,2,2); G1=random(’Normal",0,1,1,20000); hist(G1,—4:0、2:4); title("高斯分布随机数直方图’); s2=0 for n2=1:20000
s2=G1(n2)+s2; end Mean2=s2/20000; t2=0 for n2=1:20000
t2=(G1(n2)-Mean2)^2+t2; end Variance2=t2/20000; subplot(2,2,3); G2=random(’Normal’,0,1,1,20000); R=sqrt(G1、*G1+G2、*G2); hist(R,0:0、2:5); title("瑞利分布随机数直方图’); s3=0 for n3=1:20000
s3=R(n3)+s3; end Mean3=s3/20000; t3=0 for n3=1:20000
t3=(R(n3)—Mean3)^2+t3; end Variance3=t3/20000; subplot(2,2,4); G3=random(’Normal",0,1,1,20000); G4=random("Normal",0,1,1,20000); X=G1、*G1+G2、*G2+G3、*G3+G4、*G4; hist(X,0:0、5:30); title("x^2 分布随机数直方图’) s4=0 for n4=1:20000
s4=X(n4)+s4; end Mean4=s4/20000; t4=0 for n4=1:20000
t4=(X(n4)-Mean4)^2+t4; end 实验 三、 中心极限定理得验证 ( 一)
实验 原理 如果 n 个独立随机变量得分布就是相同得,并且具有有限得数学期望与方差,当 n 无穷大时,它们之与得分布趋近于高斯分布。这就就是中心极限定理中
得一个定理。
我们以均匀分布为例,来解释这个定理。若 n 个随机变量 Xi (i=1,2,…,n)都为[0,1]区间上得均匀分布得随机变量,且互相独立,当 n 足够大时,其与得分布接近高斯分布。
( 二)
实验目得 利用计算机产生均匀分布得随机数。对相互独立得均匀分布得随机变量做与,可以很直观瞧到均匀分布得随机变量得与,随着做与次数得增加分布情况得变化,通过实验对中心极限定理得进行验证。
( ( 三)
实验结果
分析:随n取值得增大,均匀分布随机序列求与得图形越发接近于高斯分布。
附:源程序 X0=random('unif",0,1,1,1024); X1=random(’unif’,0,1,1,1024);
X2=random('unif",0,1,1,1024); X3=random('unif',0,1,1,1024);
X4=random("unif',0,1,1,1024);
X5=random(’unif’,0,1,1,1024);
X6=random(’unif",0,1,1,1024); X7=random(’unif’,0,1,1,1024);
X8=random('unif",0,1,1,1024);
X9=random(’unif’,0,1,1,1024); G=random("normal",0,1,1,1024);
Y1=X0+X1+X2+X3+X4;
Y2=X0+X1+X2+X3+X4+X5+X6+X7+X8+X9;
subplot(2,2,1); hist(X0,0:0、2:2);
title("均匀分布随机数直方图’)
subplot(2,2,2); hist(Y1,0:0、2:6);
title(’五个均匀分布之与随机数直方图") subplot(2,2,3); hist(Y2,0:0、2:8);
title(’十个均匀分布之与随机数直方图") subplot(2,2,4); hist(G,-4:0、2:4); title("高斯分布随机数直方图")
实验 四、 中心极限定理得验证 ( 一)
实验 原理 在实际应用中,我们可以把产生得随机数序列瞧成随机过程中得一个样本函数。如果平稳随机序列满足各态历经性,则统计自相关序列可用时间自相关序列
代替。当数据得样本数有限时,也只能用有限个数据来估计时间自相关序列,统计自相关序列得估值。若各态历经序列X(n)得一个样本有 N 个数据,由于实序列自相关序列就是对称得,自相关函数得估值为
( 二) 实验目得 在随机信号理论中,自相关函数就是非常重要得概念。在实际系统仿真中也会经常计算自相关函数.通过本试验学生可以亲自动手计算自相关函数,加深对概念得理解,并增强实际动手能力. (三) ) 实验结果
分析:分别生成均值为 0 与1,方差为 1 得高斯随机数,由图形可以明显瞧出两者自相关函数得差异。
附:源程序 N=256; xn=random(’norm',0,1,1,N); Rx=xcorr(xn,'biased"); m=-N+1:N-1; subplot(2,1,1); plot(m,Rx); title("均值为0,方差为1得高斯分布得自相关函数'); axis([—N N—1 —0、5 1、5]); N=256; xn=random(’norm’,1,1,1,N); Xk=fft(xn,2*N); Rx=ifft((abs(Xk)、^2)/N); m=-N:N—1; subplot(2,1,2); plot(m,fftshift(Rx)); title(’均值为 1,方差为 1 得高斯分布得自相关函数’); axis([-N N—1 -0、5 1、5]); 实验五 、 功率谱密度 ( 一) 实验 原理 一般把平稳随机序列得功率谱定义为自相关序列得傅里叶变换。如果自相关序列就是周期序列, X(n)得功率谱与自相关序列得关系为
ﻩ 与实平稳过程一样,实平稳序列得功率谱也就是非负偶函数,即
可以证明,功率谱还可表示为
当 X(n)为各态历经序列时,可去掉上式中得统计均值计算,将随机序列 X(n)用它得一个样本序列 x(n)代替。在实际应用中,由于一个样本序列得可用数据个数 N 有限,功率谱密度也只能就是估计
式中,X( x(n)得傅里叶变换.这就是比较简单得一种估计方法,这种功率谱密度得估计方法称为周期图方法。如果直接利用数据样本做离散傅里叶变换,可得到 X( FFT 算法实现,所以得到了广泛得应用。
( 二)实验目得 在随机信号理论中,功率谱密度与自相关函数一样都就是非常重要得概念.在实际系统仿真中也会经常计算。通过本试验学生可以亲自动手,加深对概念得理解,并增强实际动手能力。
( 三)实验结果
附:源程序 N=256; x1=random("normal’,0,1,1,N); Sx1=abs(fft(x1)、^2)/N; subplot(2,1,1); plot(10*log10(Sx1)); title("均值为0,方差为 1 得高斯分布得功率谱密度'); xlabel(’f/Hz’) ylabel("Sx1/dB’)
x2=random(’normal",1,1,1,N); Sx2=abs(fft(x2)、^2)/N; subplot(2,1,2); plot(10*log10(Sx2)); title("均值为 1,方差为 1 得高斯分布得功率谱密度’); xlabel(’f/Hz')
ylabel("Sx2/dB') 实验 六、 随机信号经过 线性系统前后信号仿真
(一) ) 实验原理
需要先仿真一个指定系统,再根据需要仿真输入得随机信号,然后使这个随机信号通过指定得系统.通过对实际系统建模, 计算机可以对很多系统进行仿真。在信号处理中,一般将线性系统分解为一个全通放大器(或衰减器)与一个特定频率响应得滤波器。由于全通放大器可以用一个常数代替,因此线性系统得仿真往往只需设计一个数字滤波器。滤波器设计可采用 MATLAB 提供得函数,也可
利用相应得方法自行设计。MATLAB提供了多个设计滤波器得函数,可以很方便地设计低通、带通、高通、多带通、带阻滤波器。
( ( 二)实验 目得
系统仿真就是信号仿真处理得一个重要部分,通过该实验要求学生掌握系统仿真得基本概念,并学会系统得仿真方法。
( ( 三) ) 实验 结果
1、低通滤波器
2、带通滤波器
3、高通滤波器 4、多带通滤波器
5、带阻滤波器
附:源程序 1、X(n)
N=2000;fs=400; Nn=random("normal',0,1,1,N); t=(0:N—1)/fs; fi=random(’unif’,0,1,1,2)*2*pi; xn=sin(2*pi*50*t+fi(1))+Nn; Rx=xcorr(xn,"biased’); m=—N+1:N-1; Sx=abs(fft(xn)、^2)/N; f=(—N/2:N/2-1)*fs/N; subplot(211),plot(m,Rx); xlabel(’m’)
ylabel("Rx(m)’) title(’xn 得自相关函数"); subplot(212),plot(f,fftshift(10*log10(Sx(1:N)))); xlabel(’f/Hz") ylabel("Sx/dB") title(’xn 得功率谱密度’); 2、
低通滤波器 h=fir1(100,0、4); H=fft(h,2*N); HW=abs(H)、^2; Rx=xcorr(xn,’biased'); Sx=abs(fftshift(fft(xn,2*N))、^2)/(2*N); Sy=Sx、*HW; Ry=fftshift(ifft(Sy));
f=(-N:N—1)*fs/(2*N); m=(—N:N-1); subplot(311);plot((-N:N—1)/N,fftshift(abs(HW(1:2*N)))); title('低通滤波器"); subplot(312),plot(m,Ry); xlabel("m") ylabel("Ry(m)') title(’xn 经低通滤波器得自相关函数’); subplot(313),plot(f,fftshift(10*log10(Sy(1:2*N)))); axis([—200 200 —20 20]); xlabel("f/Hz’) ylabel('Sy/dB") title('xn 经低通滤波器得功率谱密度"); 3、带通滤波器 h=fir1(100,[0、1 0、5]); H=fft(h,2*N); HW=abs(H)、^2; Rx=xcorr(xn,"biased"); Sx=abs(fftshift(fft(xn,2*N))、^2)/(2*N); Sy=Sx、*HW; Ry=fftshift(ifft(Sy)); f=(-N:N-1)*fs/(2*N); m=(-N:N—1); subplot(311);plot((—N:N-1)/N,fftshift(abs(HW(1:2*N)))); title(’带通滤波器"); subplot(312),plot(m,Ry); xlabel(’m") ylabel(’Ry(m)’) title("xn 经带通通滤波器得自相关函数"); subplot(313),plot(f,fftshift(10*log10(Sy(1:2*N)))); axis([—200 200 -20 20]); xlabel(’f/Hz") ylabel("Sy/dB’) title(’xn 经带通滤波器得功率谱密度’); 4、高通滤波器 h=fir1(100,0、6,’high’); H=fft(h,2*N); HW=abs(H)、^2; Rx=xcorr(xn,"biased"); Sx=abs(fftshift(fft(xn,2*N))、^2)/(2*N); Sy=Sx、*HW; Ry=fftshift(ifft(Sy)); f=(-N:N-1)*fs/(2*N); m=(—N:N—1);
subplot(311);plot((-N:N—1)/N,fftshift(abs(HW(1:2*N)))); title('高通滤波器"); subplot(312),plot(m,Ry); xlabel("m’) ylabel(’Ry(m)") title('xn 经高通通滤波器得自相关函数’); subplot(313),plot(f,fftshift(10*log10(Sy(1:2*N)))); axis([-200 200 —20 20]); xlabel("f/Hz’) ylabel("Sy/dB") title('xn 经高通滤波器得功率谱密度'); 5、多带通滤波器 h=fir1(100,[0、1,0、3,0、5,0、7]); H=fft(h,2*N); HW=abs(H)、^2; Rx=xcorr(xn,'biased’); Sx=abs(fftshift(fft(xn,2*N))、^2)/(2*N); Sy=Sx、*HW; Ry=fftshift(ifft(Sy)); f=(—N:N—1)*fs/(2*N); m=(—N:N-1); subplot(311);plot((—N:N—1)/N,fftshift(abs(HW(1:2*N)))); title(’多带通滤波器’); subplot(312),plot(m,Ry); xlabel('m’) ylabel("Ry(m)")
title("xn 经多带通通滤波器得自相关函数"); subplot(313),plot(f,fftshift(10*log10(Sy(1:2*N)))); axis([-200 200 —20 20]); xlabel(’f/Hz")
ylabel("Sy/dB’)
title(’xn 经多带通滤波器得功率谱密度"); 6、带阻滤波器 h=fir1(100,[0、1,0、4],’stop’); H=fft(h,2*N); HW=abs(H)、^2; Rx=xcorr(xn,’biased"); Sx=abs(fftshift(fft(xn,2*N))、^2)/(2*N); Sy=Sx、*HW; Ry=fftshift(ifft(Sy)); f=(—N:N-1)*fs/(2*N); m=(-N:N—1); subplot(311);plot( (—N:N-1)/N,fftshift(abs (HW(1:2*N))));
title("带阻滤波器"); subplot(312),plot(m,Ry); xlabel(’m’)
ylabel("Ry(m)’) title(’xn 经带阻滤波器得自相关函数'); subplot(313),plot(f,fftshift(10*log10(Sy(1:2*N)))); axis([-200 200 -20 20]); xlabel('f/Hz") ylabel("Sy/dB") title("xn 经带阻滤波器得功率谱密度");
推荐访问:信号 随机 实验