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('添加噪声后原函数 ');
用subplot函数
然后我们画出概率密度直⽅图,分成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
然后结果如下,学习观看~

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。