MATLAB信号处理,自相关,协方差,功率谱密度函数

今天同学上课要对一段信号,添加噪声,然后对函数进行相关分析。我写了个如下代码

close all;
x = 0:2*pi/299:2*pi;
k = sin(x);
subplot(2,4,1),plot(x,k),title( ' 原函数 ' );

把原函数设置为sinx`
然后添加0·1之间的随机噪声,并显示均值

y=rand(1,300) ; %创建一个由随机数组成的 1×300 向量。
y=y+k;
e=sum(y)/300;
subplot(2,4,2),plot(x,y,[0,2*pi],[e,e]),title( '添加噪声后原函数 ' );

然后我们画出概率密度直方图,分成20等分,计算每一部分数量

ymin=min(y);                %设置y的范围
ymax=max(y);
x=linspace(ymin,ymax,20);   %将最大最小区间分成20个等分点(19等分),然后分别计算各个区间的个数
yy=hist(y,x);               %计算各个区间的个数
yy=yy/length(y);            %计算各个区间的概率
subplot(2,4,3),bar(x,yy) ,title( '概率密度直方图分布图 ' );
grid on;%画出概率密度直方图分布图

然后我们对原图像20等分后的图形进行积分,得到概率密度函数

s=0;        
for i=2:length(x)
  b=trapz(x([1:i]),yy([1:i]));                                       %根据 X 指定的坐标或标量间距对 Y 进行积分。
  s=[s,b];                                                           %将s的值每次加b,以矩阵形式存储
end
subplot(2,4,4),plot(x,s,x,s,'*'),title( ' 概率密度函数' )             %x,s画出函数,x,s,'*'标出每一份特殊点,

然后使用相应得自相关,协方差,功率谱密度函数对函数进行分析,xcorr,xcov,pwelch用法见matlab doc

[c,n]=xcorr(y,10, 'coeff' );   %自相关函数
subplot(2,4,5),plot(n,c),title( ' 自相关函数 ' ),grid  on
[b,m]=xcov(y,10, 'coeff' );   %协方差函数
subplot(2,4,6),plot(m,b),title( ' 协方差函数 ' ),grid  on
subplot(2,4,7),pwelch(y,33,32,[],500),title( ' 功率谱密度函数 ' ),grid  on

然后结果如下,学习观看~
在这里插入图片描述

  • 12
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值