📄 corrcoef.m
字号:
%--随机产生一信号序列其相邻信号自相关系数为0.2
%--随机产生一信号序列其相邻信号自相关系数为0.2
n=randn(1,200); %--n为高斯白噪声
a=zeros(1,200);
a(1,1)=n(1,1);
for i=2:200 %--信号序列用高斯白噪声序列表示
a(1,i)=n(1,i)+0.2*a(1,i-1);
end
c=zeros(1,200);
for i=1:199 %--信号序列进行移位操作
c(1,i)=a(1,i+1);
end
c(1,200)=0;
d=corrcoef(a,c); %--验证a,c的互相关系数即相邻信号的互相关系数
f=mean(a); %--验证信号序列的均值
%--随机产生一信号序列其相邻信号自相关系数为0.8
n1=randn(1,200); %--n1为高斯白噪声
a1=zeros(1,200);
a1(1,1)=n1(1,1);
for i=2:200 %--信号序列用高斯白噪声序列表示
a1(1,i)=n1(1,i)+0.8*a1(1,i-1);
end
c1=zeros(1,200);
for i=1:199 %--信号序列进行移位操作
c1(1,i)=a1(1,i+1);
end
c1(1,200)=0;
d1=corrcoef(a1,c1); %--验证a1,c1的互相关系数即相邻信号的互相关系数
f1=mean(a1); %--验证信号序列的均值
%--作图所产生的两列信号
b=1:200;
figure(1)
subplot(211)
plot(b,a,'r:.')
grid on
title('series whose corrcoef is 0.2')
subplot(212)
plot(b,a1,'r:.')
grid on
title('series whose corrcoef is 0.8');
hold on;
%2.求两信号序列的自相关函数:
%--求第一组序列的自相关函数
m=zeros(1,200);
for i=0:199
s=1;
l=zeros(1,200);
for j=i+1:200
l(1,s)=a(1,j);
s=s+1;
end
m(1,i+1)=a*rot90(l,-1); %--求步长为i自相关函数值
end
%--求第二组序列的自相关函数
m1=zeros(1,200);
for i=0:199
s1=1;
l1=zeros(1,200);
for j=i+1:200
l1(1,s1)=a1(1,j);
s1=s1+1;
end
m1(1,i+1)=a1*rot90(l1,-1); %--求步长为i自相关函数值
end
%--分别作两信号序列的自相关函数图
b=1:200;
figure(2)
subplot(211)
plot(b,m,'r');
grid on
title('selfcorr figure for data whose corcoef is 0.2')
subplot(212)
plot(b,m1,'r');
grid on
title('selfcorr figure for data whose corcoef is 0.8');
hold on;
% 3.求两信号序列的功率普密度函数:
%--分别求两信号序列的功率谱密度函数
A=fft(a,200);
Paa=A.*conj(A)/200; %--第一组信号序列的功率谱密度函数
A1=fft(a1,200);
Paa1=A1.*conj(A1)/200; %--第二组信号序列的功率谱密度函数
f=1000*(0:100)/200; %--频域采样,分辨率5Hz
figure(3)
subplot(211)
plot(f,Paa(1:101),'r')
title('Frequency content for signal1')
xlabel('frequency (Hz)')
grid on
subplot(212)
plot(f,Paa1(1:101),'r')
title('Frequency content for signal2')
xlabel('frequency (Hz)')
grid on;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -