随机信号分析实验报告
信息25班
2120502123
赵梦然
作业题三:
利用Matlab产生一个具有零均值、单位方差的的高斯白噪声随机序列X(n),并通过一脉冲响应为
的线性滤波器。
(1) 产生一个具有零均值、单位方差的的高斯白噪声随机序列X(n),检验其一维概率密度函数是否与理论相符。
(2) 绘出输入输出信号的均值、方差、自相关函数及功率谱密度的图形,讨论输出信号服从何种分布。
(3) 试产生在[-1,+1]区间均匀分布的白噪声序列,并将其替换高斯白噪声通过上述系统。画出此时的输出图形,并观察讨论输出信号服从何种分布。
作业要求
(1) 用MATLAB 编写程序。最终报告中附代码及实验结果截图。
(2) 实验报告中必须有对实验结果的分析讨论。
提示:
(1) 可直接使用matlab中已有函数产生高斯白噪声随机序列。可使用hist函数画出序列的直方图,并与标准高斯分布的概率密度函数做对比。
(2) 为便于卷积操作,当N很大时,可近似认为h(N)=0。卷积使用matlab自带的conv函数。
(3) 分析均值、方差等时,均可使用matlab现有函数。功率谱密度和自相关函数可通过傅里叶变换相互获得。傅里叶变换使用matlab自带的fft函数。
(4) 作图使用plot函数。
一、作业分析:
本题主要考察的是加性高斯白噪声相关问题,因此构造一个高斯白噪声十分重要,故在本题中使用randn函数随机生成一个个符合高斯分布的数据,并由此构成高斯白噪声;而且由于白噪声是无法完全表示的,故此根据噪声长度远大于信号长度时可视为高斯白噪声,构造了一个长度为2000的高斯白噪声来进行试验。
2、作业解答:
(1)matlab程序为:
x-1000:1:1000;
k=1*randn(1,length(x));% 生成零均值单位方差的高斯白噪声。
[f,xi]=ksdensity(x);%利用ksdensity函数估计样本的概率密度。
subplot(1,2,1);
plot(x,k);
subplot(1,2,2);
plot(xi,f);
实验结果为:
结果分析:
ksdensity(x)函数可以通过采样近似的估计样本的概率密度,(1)中估计的概率密度如上图右边所示,易发现其基本符合高斯分布,与实验开始时设定的生成高斯白噪声是相符合的。
(2)matlab程序为:
x=-1000:1:1000;
k=1*randn(1,length(x));% 生成零均值单位方差的高斯白噪声。
a=mean(k);%求均值
b=var(k);%求方差
[m1,m2]=xcorr(k,'unbiased');%求自相关函数
subplot(4,1,1);
plot(x,a,'.');
title('均值');
subplot(4,1,2);
plot(x,b,'.');
title('方差');
subplot(4,1,3);
plot(m2,m1);
title('自相关函数');
subplot(4,1,4);
periodogram(k,ones(numel(k),1),2000,0.0005)%求功率谱密度
以上为求输入信号的均值、方差、自相关函数、功率谱密度。
实验结果为:
结果分析:
从图上可以看出均值为0,方差为1,自相关函数在t=0处有一个冲击,功率谱密度基本在30dB处上下波动。根据数据,可以判断出输入信号服从均值为0,方差为1的高斯分布。
matlab程序:
x=-1000:1:1000;
k=1*randn(1,length(x));%高斯白噪声
x=-200:1:200;
h=0.*(x<0)+power(0.8,x).*(x>=0);%滤波器的时域形式
y=conv(k,h);%输出信号,两个信号进行卷积
a=mean(y);%求均值
b=var(y);%求方差
[m1,m2]=xcorr(y,'unbiased');%求自相关函数
subplot(4,1,1);
plot(x,a,'.');
title('均值');
subplot(4,1,2);
plot(x,b,'.');
title('方差');
subplot(4,1,3);
plot(m2,m1);
title('自相关函数');
subplot(4,1,4);
periodogram(y,ones(numel(y),1),2000,0.0005)%求功率谱密度
以上为求输出信号的均值、方差、自相关函数、功率谱密度。
实验结果:
结果分析:
从图上可以看出均值为0,方差为2.5,自相关函数在t=0处有一个冲击,功率谱密度基本在30dB处上下波动。根据这些数据,可以判断出输入信号服从均值为0,方差为2.5的高斯分布。由此可以得到结论:若线性系统输入为高斯过程,则输出服从高斯分布。
(3)matlab程序:
x=-1000:1:1000;
k=rand(1,length(x))-rand(1,length(x));%产生在[-1,+1]区间均匀分布的白 噪声序列
x=-200:1:200;
h=0.*(x<0)+power(0.8,x).*(x>=0);%滤波器的时域形式
y=conv(k,h);%输出信号,两个信号进行卷积
[f,xi]=ksdensity(y);%利用ksdensity函数估计样本的概率密度。
x=-1200:1:1200;
subplot(1,2,1);
plot(x,y);
subplot(1,2,2);
plot(xi,f);
实验结果为:
结果分析:
左侧为在[-1,1]区间均匀分布的白噪声通过线性滤波器后,输出的波形。为了分析这个信号服从什么分布,依旧借助ksdensity(y)函数,通过采样近似的估计样本的概率密度,估计的概率密度为右侧图形,从图形形状上来看大致应该服从高斯分布。
三、实验总结
通过实验,理解了高斯白噪声的产生以及对系统的影响,深入了解了高斯白噪声的均值、方差、自相关函数以及功率谱密度等参数。同时也熟悉了与高斯白噪声相关的matlab相应语句,为日后的学习打下了基础。
相关参考
1、《随机信号分析》常建平 李海林 科学出版社
2、《详解MATLAB数字信号处理》张德峰 电子工业出版社
3、《MATLAB仿真在信号处理中的应用》用subplot函数徐明远 刘增力 西安电子科技大学出版社
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论