随机信号分析实验报告基于MATLAB语言.docx

上传人:b****6 文档编号:3624418 上传时间:2022-11-24 格式:DOCX 页数:27 大小:423.31KB
下载 相关 举报
随机信号分析实验报告基于MATLAB语言.docx_第1页
第1页 / 共27页
随机信号分析实验报告基于MATLAB语言.docx_第2页
第2页 / 共27页
随机信号分析实验报告基于MATLAB语言.docx_第3页
第3页 / 共27页
随机信号分析实验报告基于MATLAB语言.docx_第4页
第4页 / 共27页
随机信号分析实验报告基于MATLAB语言.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

随机信号分析实验报告基于MATLAB语言.docx

《随机信号分析实验报告基于MATLAB语言.docx》由会员分享,可在线阅读,更多相关《随机信号分析实验报告基于MATLAB语言.docx(27页珍藏版)》请在冰豆网上搜索。

随机信号分析实验报告基于MATLAB语言.docx

随机信号分析实验报告基于MATLAB语言

 

实验一随机序列的产生及数字特征估计

实验目的

1.学习和掌握随机数的产生方法。

2.实现随机序列的数字特征估计。

实验原理

1.随机数的产生

随机数指的是各种不同分布随机变量的抽样序列(样本值序列)。

进行随机信号仿真分析时,需要模拟产生各种分布的随机数。

在计算机仿真时,通常利用数学方法产生随机数,这种随机数称为伪随机数。

伪随机数是按照一定的计算公式产生的,这个公式称为随机数发生器。

伪随机数本质上不是随机的,而且存在周期性,但是如果计算公式选择适当,所产生的数据看似随机的,与真正的随机数具有相近的统计特性,可以作为随机数使用。

(0,1)均匀分布随机数是最最基本、最简单的随机数。

(0,1)均匀分布指的是在[0,1]区间上的均匀分布,U(0,1)。

即实际应用中有许多现成的随机数发生器可以用于产生(0,1)均匀分布随机数,通常采用的方法为线性同余法,公式如下:

序列

为产生的(0,1)均匀分布随机数。

定理1.1若随机变量X具有连续分布函数

,而R为(0,1)均匀分布随机变量,则有

2.MATLAB中产生随机序列的函数

(1)(0,1)均匀分布的随机序列函数:

rand

用法:

x=rand(m,n)

功能:

产生m×n的均匀分布随机数矩阵。

(2)正态分布的随机序列

函数:

randn

用法:

x=randn(m,n)

功能:

产生m×n的标准正态分布随机数矩阵。

如果要产生服从

分布的随机序列,则可以由标准正态随机序列产生。

(3)其他分布的随机序列

分布

函数

分布

函数

二项分布

binornd

指数分布

exprnd

泊松分布

poissrnd

正态分布

normrnd

离散均匀分布

unidrnd

瑞利分布

raylrnd

均匀分布

unifrnd

chi2rnd

3.随机序列的数字特征估计

对于遍历过程,可以通过随机序列的一条样本函数来获得该过程的统计特征。

这里我们假定随机序列X(n)为遍历过程,样本函数为x(n),其中n=0,1,2,……N-1。

那么,X(n)的均值、方差和自相关函数的估计为

利用MATLAB的统计分析函数可以分析随机序列的数字特征。

(1)均值函数

函数:

mean

用法:

m=mean(x)

功能:

返回按1.3式估计X(n)的均值,其中x为样本序列x(n)。

(2)方差函数

函数:

var

用法:

sigma2=var(x)

功能:

返回按(1.4)式估计X(n)的方差,其中x为样本序列x(n),这一估计为无偏估计。

(3)互相关函数

函数:

xcorr

用法:

c=xcorr(x,y)

c=xcorr(x)

c=xcorr(x,y,'opition')

c=xcorr(x,'opition')

功能:

xcorr(x,y)计算X(n)与Y(n)的互相关,xcorr(x)计算X(n)的自相关。

option选项可以设定为:

'biased'有偏估计

'unbiased'无偏估计

'coeff'm=0时的相关函数值归一化为1

'none'不做归一化处理

实验内容及实验结果

1.采用线性同余法产生均匀分布随机数1000个,计算该序列均值和方差与理论值之间的误差大小。

改变样本个数重新计算。

程序代码:

y=1;

k=7;

N=10^10;

xn=[];

fori=1:

1000

y=mod(y*k,N);

x=y/N;

xn=[xnx];

end

m=mean(xn)

n=var(xn)

me=0.5-m

ne=1/12-n

实验结果:

m=0.4813

n=0.0847

me=0.0187

ne=-0.0013

改变样本数量重新计算:

(理论值m=0.5n=1/12)

样本数量

m

误差

n

误差

100

0.4164

0.0836

0.0901

0.0068

500

0.4668

0.0332

0.0859

0.0026

1000

0.4813

0.0187

0.0847

0.0013

10000

0.4973

0.0027

0.0848

0.0015

50000

0.5009

0.0009

0.0837

0.0004

100000

0.4996

0.0004

0.0836

0.0003

2.参数为

的指数分布的分布函数为

利用反函数法产生参数为0.5的指数分布随机数1000个,测试其方差和相关函数。

程序代码:

j=1:

1999;

y=1;

k=7;

N=10^10;

xn=[];

fori=1:

1000

y=mod(y*k,N);

x=y/N;

xn=[xnx];

end

y=(-2)*log(1-xn);

n=var(y)

c=xcorr(y,'coeff');

plot(j-1000,c);

实验结果:

方差n=3.7596

自相关函数:

3.产生一组N(1,4)分布的高斯随机数(1000个样本),估计该序列的均值、方差、和相关函数。

程序代码:

i=1:

1000;

j=1:

1999;

x=normrnd(1,2,1,1000);

m=mean(x)

n=var(x)

c=xcorr(x,'coeff');

subplot(211);

plot(i,x);

title(‘随机序列’);

subplot(212);

plot(j-1000,c);

title(‘自相关函数’);

 

实验结果:

均值m=1.0082

方差n=3.8418

实验小结

本次实验对随机数的生成做了练习。

具体来说,包括线性同余法,生成已知分布函数的随机数,rand函数等,还有就是有关均值、方差、相关的调用函数。

 

实验二随机过程的模拟与数字特征

实验目的

1.学习利用MATLAB模拟产生随机过程的方法。

2.熟悉和掌握特征估计的基本方法及其MATLAB实现。

实验原理

1.正态分布白噪声序列的产生

MATLAB提供了许多产生各种分布白噪声序列的函数,其中产生正态分布白噪声序列的函数为randn。

函数:

randn

用法:

x=randn(m,n)

功能:

产生m×n的标准正态分布随机数矩阵。

如果要产生服从

分布的随机序列,则可以由标准正态随机序列产生。

如果

2.相关函数估计

MATLAB提供了函数xcorr用于自相关函数的估计。

函数:

xcorr

用法:

c=xcorr(x,y)

c=xcorr(x)

c=xcorr(x,y,'opition')

c=xcorr(x,'opition')

功能:

xcorr(x,y)计算X(n)与Y(n)的互相关,xcorr(x)计算X(n)的自相关。

Option选项可以设定为:

'biased'有偏估计。

'unbiased'无偏估计。

'coeff'm=0时的相关函数值归一化为1。

'none'不做归一化处理。

3.功率谱估计

对于平稳随机序列X(n),如果它的相关函数满足

那么它的功率谱定义为自相关函数

的傅里叶变换:

功率谱表示随机信号频域的统计特性,有着重要的物理意义。

我们实际所能得到的随机信号的长度总是有限的,用有限长度的信号所得的功率谱只是真实功率谱的估计,称为谱估计或谱分析。

功率谱估计的方法有很多种,以下是两种通用谱估计方法。

(1)自相关法先求自相关函数的估计

,然后对自相关函数做傅里叶变换。

其中N表示用于估计样本序列的样本个数。

(2)周期图法

先对样本序列x(n)做傅里叶变换

其中

,则功率谱估计为

MATLAB函数periodogram实现了周期图法的功率谱估计。

函数:

periodogram

用法:

[Pxx,w]=periodogram(x)

[Pxx,w]=periodogram(x,window)

[Pxx,w]=periodogram(x,window,nfft)

[Pxx,f]=periodogram(x,window,nfft,fs)

periodogram(...)

功能:

实现周期图法的功率谱估计。

其中:

Pxx为输出的功率谱估计值;

f为频率向量;

w为归一化的频率向量;

window代表窗函数,这种用法种对数据进行了加窗,对数据加窗是为了减少功率谱估计中因为数据截断产生的截断误差,表2.1列出了产生常用窗函数的MATLAB函数

窗函数

MATLAB函数

窗函数

MATLAB函数

矩形窗

boxcar

Blackman窗

blackman

三角窗

triang

Chebyshev窗

chebwin

Hanning窗

hann

Bartlett窗

bartlett

Hamming

hamming

Kaiser窗

kaiser

nfft设定FFT算法的长度;

fs表示采样频率;

如果不指定输出参数(最后一种用法),则直接会出功率谱估计的波形。

实验内容及实验结果

1.按如下模型产生一组随机序列

其中

是均值为1,方差为4的正态分布白噪声序列。

估计过程的自相关函数和功率谱。

程序代码:

w=normrnd(1,4,1,1024);

x

(1)=w

(1);

i=2;

whilei<1025

x(i)=0.8*x(i-1)+w(i);

i=i+1;

end

R=xcorr(x);

[S,W]=periodogram(x);

subplot(3,1,1);plot(x);title('x(n)');axistight;

subplot(3,1,2);plot(R);title('R(m)');axistight;

subplot(3,1,3);plot(S);title('S(W)');axistight;

实验结果:

2.设信号为

其中

为正态分布白噪声序列,试在N=256和N=1024点时,分别产生随机序列

,画出

的波形并估计

的相关函数和功率谱。

N=256:

程序代码:

N=256;

n=1:

1:

N;

w=randn(1,N);

f1=0.05;

f2=0.12;

x=sin(2*pi*f1*n)+2*cos(2*pi*f2*n)+w(n);

R=xcorr(x);

[S,W]=periodogram(x);

subplot(3,1,1);plot(x);title('x(n)');axistight;

subplot(3,1,2);plot(R);title('R(m)');axistight;

subplot(3,1,3);plot(S);title('S(W)');axistight;

实验结果:

N=1024:

程序代码:

N=1024;

n=1:

1:

N;

w=randn(1,N);

f1=0.05;

f2=0.12;

x=sin(2*pi*f1*n)+2*cos(2*pi*f2*n)+w(n);

R=xcorr(x);

[S,W]=periodogram(x);

subplot(3,1,1);plot(x);title('x(n)N=256');axistight;

subplot(3,1,2);plot(R);title('R(m)N=256');axistight;

subplot(3,1,3);plot(S);title('S(W)N=256');axistight;

实验结果:

实验小结

本次实验对随机序列的产生进行了复习,对自相关函数与功率谱密度的产生进行了练习。

并且验证了自相关函数与功率谱密度呈傅立叶变换关系。

 

实验三随机过程通过线性系统的分析

实验目的

1.理解和分析白噪声通过线性系统后输出的特性。

2.学习和掌握随机过程通过线性系统后的特性,验证随机过程的正态化问题。

实验原理

1.白噪声通过线性系统

设连续线性系统的传递函数为

,输入白噪声的功率谱密度为

,那么系统输出的功率谱密度为

输出自相关函数为

输出相关系数为

输出相关时间为

输出平均功率为

上述式子表明,若输入端是具有均匀谱的白噪声,则输出端随机信号的功率谱主要由系统的幅频特性

决定,不再是常数。

2.等效噪声带宽

在实际中,常常用一个理想系统等效代替实际系统的H(ω),因此引入了等效噪声带宽的概念,他被定义为理想系统的带宽。

等效的原则是,理想系统与实际系统在同一白噪声的激励下,两个系统的输出平均功率相等,理想系统的增益等于实际系统的最大增益。

实际系统的等效噪声带宽为

3.线性系统输出端随机过程的概率分布

(1)正态随机过程通过线性系统

若线性系统输入为正态过程,则该系统输出仍为正态过程。

(2)随机过程的正态化

随机过程的正态化指的是,非正态随机过程通过线性系统后变换为正态过程。

任意分布的白噪声通过线性系统后输出是服从正态分布的;宽带噪声通过窄带系统,输出近似服从正态分布。

实验内容及实验结果

设白噪声通过图3.1所示的RC电路,分析输出的统计特性。

图3.1RC电路

(1)试推导系统输出的功率谱密度、相关函数、相关时间和系统的等效噪声带宽。

经计算,结果如下:

传输函数

输出功率谱密度

输出自相关函数为:

其中

相关时间为:

等效噪声带宽为:

若输入为高斯白噪声,则输出均值为0,方差

,服从高斯分布,概率密度函数为:

(2)采用Matlab模拟正态分布白噪声通过上述RC电路,观察输入和输出的噪声波形以及输出噪声的概率密度。

程序代码:

R=10;

C=0.1;

b=1/(R*C);

n=1:

1:

128;

h=b*exp(-n*b);

x=randn(1,4096);

y=conv(x,h);

[fyyi]=ksdensity(y);

subplot(3,1,1)

plot(x);axistight;

title('x(n)');

subplot(3,1,2)

plot(y);axistight;

title('y(n)');

subplot(3,1,3)

plot(fy);axistight;

title('fy');

运行结果:

(3)模拟产生均匀分布的高斯白噪声通过上述RC电路,观察输入和输出的噪声波形以及输出噪声的概率密度。

程序代码:

R=10;

C=0.1;

b=1/(R*C);

n=1:

1:

256;

h=b*exp(-n*b);

x=rand(1,1024);

x=x-0.5;

y=conv(h,x);

[fyyi]=ksdensity(y);

subplot(3,1,1);plot(x);title('x(n)');axistight;

subplot(3,1,2);plot(y);title('y(n)');axistight;

subplot(3,1,3);plot(fy);title('fy');axistight;

运行结果:

(4)改变RC电路的参数(电路的RC值),重做

(2)和(3),与之前的结果进行比较。

a)改变RC的值为100000.1

高斯输入:

均匀分布输入:

b)改变RC的值为100.001

高斯输入:

均匀分布输入:

实验小结

若线性系统输入为正态过程,则该系统输出仍为正态过程。

非正态随机过程通过线性系统后变换为正态过程。

任意分布的白噪声通过线性系统后输出是服从正态分布的;宽带噪声通过窄带系统,输出近似服从正态分布。

低通系统通带过窄时,输出与输入差别很大,因为只有低频可以通过,高频量被抑制了。

实验四窄带随机过程的产生及其性能测试

实验目的

1.理解和分析白噪声通过线性系统后输出的特性。

2.掌握窄带随机过程的特性,包括均值(数学期望)、方差、相关函数及功率谱密度等。

实验原理

1.窄带随机过程的莱斯表达式

任何一个实平稳窄带随机过程X(t)都可以表示为

上式称为莱斯表达式,根据上式可以模拟产生窄带随机过程,具体过程如图4.1所示。

图4.1窄带随机过程的产生

2.窄带随机过程包络与相位的概率密度

包络的概率密度为

,服从瑞利分布。

相位的概率密度为

,呈均匀分布。

3.窄带随机过程包络平方的概率密度

包络平方的概率密度为

,为指数概率密度函数。

实验内容及实验结果

1.按图4.1所示结构框图,基于随机过程的莱斯表达式,用MATLAB产生一满足条件的窄带随机过程。

程序代码

n=1:

1:

1024;

h=exp(-n);

c1=randn(1,1024);

a=conv(c1,h);

c2=randn(1,1024);

b=conv(c2,h);

fc=10000;

i=1;

x=zeros(1,1024);

whilei<1025

x(i)=a(i)*cos(2*pi*fc*i)-b(i)*sin(2*pi*fc*i);

i=i+1;

end

plot(x);

title('x');axistight;

实验结果

2.画出该随机过程的若干次实现,观察其形状。

实验结果

3.编写MATLAB程序计算该随机过程的均值函数、自相关函数、功率谱、包络、包络平方及相位的一维概率密度,画出相应的图形并给出解释。

程序代码:

n=1:

1:

1024;

h=exp(-n);

c1=randn(1,1024);

a=conv(c1,h);

c2=randn(1,1024);

b=conv(c2,h);

fc=10000;

i=1;

x=zeros(1,1024);

whilei<1025

x(i)=a(i)*cos(2*pi*fc*i)-b(i)*sin(2*pi*fc*i);

i=i+1;

end

subplot(3,2,1);plot(x);title('x');axistight;

%-----------------------均值&自相关函数-------------------------

m=mean(x)

R=xcorr(x);

subplot(3,2,2);plot(R);title('R(x)');axistight;

%-----------------------功率谱密度-------------------------

[S,w]=periodogram(x);

subplot(3,2,3);plot(S);title('S(w)');axistight;

%-----------------------包络-------------------------

A=zeros(1,1024);

i=1;

while(i<1025)利用循环,根据

得到包络

A(i)=sqrt(a(i)^2+b(i)^2);

i=i+1;

end

[fAj]=ksdensity(A);

subplot(3,2,4);plot(fA);title('f(A)');axistight;

%-----------------------包络平方-------------------------

i=1;

while(i<1025)%利用循环得到包络的平方

A2(i)=A(i)^2;

i=i+1;

end

[fA2j]=ksdensity(A2);

subplot(3,2,5);plot(fA2);title('f(A^2)');axistight;

%-----------------------相位-------------------------

i=1;

while(i<1025)%根据

得到包络相位

fai(i)=atan(b(i)/a(i));

i=i+1;

end

[fpj]=ksdensity(fai);

subplot(3,2,6);plot(fp);title('f(p)');axistight;

 

实验结果:

m=0.0038

均值约等于0

包络的概率密度近似为瑞利分布

包络平方的概率密度近似为指数概率密度

包络的相位近似为均匀分布,此时样本数为1024

 

如果加大样本数至32768,则相位的概率密度函数就更接近于均匀分布了

实验小结

通过本次实验我学会了基于随机过程的莱斯表达式产生窄带随机过程的方法。

掌握了窄带随机过程的特性,包括均值、方差、相关函数及功率谱密度等。

通过实验验证了窄带随机过程包络的概率密度分布为瑞丽分布,相位的概率密度分布为均匀分布,包络平方的概率密度分布为指数分布。

实验总结

总结这四次随机信号分析实验,我觉得收获最大的地方便是学会利用MATLAB进行随机信号分析。

经过此次实验之后,我掌握了随机信号的初始化,信号的各种分析方法,同时也通过MATLAB的画图功能直观的了解了随机信号处理之后的结果。

通过这次实验,我收获了很多,同时也非常感谢老师的教导,才有了这样的成果。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1