matlab产生随机信号并计算自相关函数与协方差 下载本文

内容发布更新时间 : 2024/11/16 22:52:55星期一 下面是文章的全部内容请认真阅读。

clc; clear all;

Signal_1=rand(1,2000);%产生随机信号 Signal_1 Signal_2=rand(1,2000);%产生随机信号 Signal_2 %Signal_3=[Signal_1;Signal_2]; n=length(Signal_1);

Signal_1_2=Signal_1.^2;% 计算 Signal_1 的每个元素的平方 Signal_2_2=Signal_1.^2;

Signal_1_aver1=sum(Signal_1)/n; % 利用定义计算Signal_1 的均值 Signal_1_aver2=mean(Signal_1);% 利用mean函数计算Signal_1的 均值 Signal_1_2_aver=sum(Signal_1_2)/n; %计算Signal_1_2 的均值 Signal_2_aver=mean(Signal_2); for i=1:n

Signal_1_3(1,i)=Signal_1(1,i)-Signal_1_aver1;

end %产生一个新的矩阵,即 Signal_1的每个元素减去Signal_1的均值 Signal_1_3_aver=sum(Signal_1_3.^2)/n;%公式(1.2.9)计算Signal_1_3的方差,也是Signal_1的方差

Signal_1_D2=Signal_1_2_aver-Signal_1_aver1^2;%公式(1.2.10),得结果与公式(1.2.9)一样

D=std(Signal_1);%计算Signal_1的标准差

Signal_1_D1=std(Signal_1)^2;%通过先求向量的标准差再求平方,算得的结果与直接用函数var算到的结果相同,也是Signal_1的方差

Signal_1_D3=var(Signal_1);% 利用var函数求向量Signal_1的方差 %R_Signal_1=xcorr(Signal_1);%用库函数xorr求Signal_1自相关函数 %R_Signal_2=xcorr(Signal_2);%用用库函数xorr求Signal_2自相关函数 %Sig1_Sig2_C=cov(Signal_3);

R1_Signal_1_Signal_2=cov(Signal_1,Signal_2);

R2_Signal_1_Signal_2=mean((Signal_1-Signal_1_aver2).*(Signal_2-Signal_2_aver));

R3_Signal_1_Signal_2=mean(Signal_1.*Signal_2)-Signal_1_aver2*Signal_2_aver;

R_Signal_1=mean(Signal_1_2); R_Signal_2=mean(Signal_2_2);

C=R_Signal_1-Signal_1_aver2*Signal_1_aver2; subplot(3,2,1);

plot(Signal_1);title('随机信号Signal_1');axis([0 2000,-1 2]); subplot(3,2,2);

plot(Signal_2);title('随机信号Signal_2');axis([0 2000,-1 2]);

subplot(3,2,3);%将画布分为 2行2列,在 第1行第1列画Signal_1_R自相关函数,并写上标题Signal_1自相关函数

plot(Signal_1_R);title('Signal_1自相关函数');

subplot(3,2,4);%将画布分为 2行2列,在 第1行第2列画Signal_2_R自相关函数,并写上标题Signal_2自相关函数

plot(Signal_2_R);title('Signal_2自相关函数'); subplot(3,2,5);

plot(Sig1_Sig2_C);title('随机信号Signal_1,Signal_1协方差');axis([0 2000,-1 1]);

随机信号Signal1210-10500100015002000Signal1自相关函数1000500001000200030004000随机信号Signal1,Signal1协方差10-10500100015002000随机信号Signal2210-10500100015002000Signal2自相关函数1000500001000200030004000