资源描述
%matlab程序:生成m序列和相关性分析
clc;
N=5;
connections=gfprimfd(N,'all');%生成级数为5时所有本原多项式系数序列矩阵
f1=connections(2,:); %取一组本原多项式序列,此系数为45(100101)
f2=connections(3,:); %取另一组本原多项式序列,此系数为75(111101)
registers1=[0 0 0 0 1];%给定寄存器的初始状态
registers2=[0 0 0 0 1];%取相同的初始状态
L=2^N-1; %周期长度
sum2=0;
sum1=0;
for k=1:L
seq1(k)=registers1(N); %第一组m序列
seq2(k)=registers2(N); %第二组序列
for j=1:N %进行模2加
sum1=sum1+f1(j+1)*registers1(j); %各级寄存器送参与模2加的值
sum1=mod(sum1,2);
sum2=sum2+f2(j+1)*registers2(j); %各级寄存器送参与模2加的值
sum2=mod(sum2,2);
end
for t=N:-1:2 %寄存器移位
registers1(t)=registers1(t-1);
registers2(t)=registers2(t-1);
end
registers1(1)=sum1; registers2(1)=sum2;
sum1=0; sum2=0;
end
disp(f1); %显示反馈系数序列
disp(seq1); %显示第一组m序列
m1=xcorr(seq1,’unbiased’); %计算自相关函数
figure;stem(m1/max(m1));
title('m1的自相关函数'); %画出m1序列的自相关函数
disp(f2);
disp(seq2);
m2=xcorr(seq2,’unbiased’);
figure;stem(m2/max(m2));
title('m2的自相关函数');%画出m2序列的自相关函数
R12= xcorr(seq1,seq2,’unbiased’)
figure;plot(R12/max(R12));
title('m2,m1的互相关函数');%画出m1,m2序列的互相关特性
s=fftshift(abs(fft(seq1,2*L)).^2); s=s/max(s);
figure;plot(s);
分析:由图知m序列具有良好的自相关特性,但其互相关特性并不理想,存在多值
展开阅读全文