1、通信原理实验四
——m序列产生、扰码和解码
一. 实验原理
1.m序列简介
m序列是最长线性移位寄存序列的简称。是由带线性反馈的移存器产生的周期最长的序列。它是周期为N=2^r-1的线性伪随机序列,r是移位寄存器阶数。
线性反馈的移存器:
m序列的特征方程:
由于m序列的性质与随机序列的基本性质极相似.所以通常将m序列称为伪随机(PN)序列。m序列具有与随机噪声类似的尖锐自相关特性,但它不是真正随机的,而是按一定的规律形式周期性的变化,具有良好的白相关和互相关特性。
2. m序列的基本性质
(1)移位相加特性
一个m序列与其任意次延迟
2、移位后产生的另一个不同序列模2相加,得到的仍是该m序列的延迟移位序列。如,0100111向右移1次产生另一个序列1010011,模2相加后的序列为1110100,相当于原序列右移3次后得到的序列。
平衡特性
在m序列的每个2^n-1周期中,"1"码元出现的数目与"0"码元出现的数目基本相等。
游程特性
“游程”是指在一个序列周期中连续排列的且取值相同的码元的合称,在一个游程中的码元的个数为游程长度。m序列中共有2^n-1个游程。其中长度为k的游程数目占总游程数的2^-k,长度为n的连"1"游程数为1,长度为n-1的连"0"的游程数为1。
(4)自相关特性
m
3、序列具有优良的自相关特性,其自相关函数:
从m序列的自相关函数可以看出,m序列是一个狭义的伪随机码。
二. 题目
针对以下系统实现对序列的随机化与去随机化:
特征方程:f(x)=1+x^14+x^15
用反馈信号对输入序列进行扰码、解码并计算0、1的游程数量。
三. 程序
clear all;
clc;
%初始状态
msig=[0 0 0 0 0 0 0 1 0 1 0 1 0 0 1];%高位到底位
n_m=length(msig);
%产生原始序列
N=2^n_m-1;
sig=S(N);
%扰码
count=0;
for i=
4、1:N;
a(i)=xor(msig(1),msig(2));
for j=1:n_m-1;
msig(j)= msig(j+1);
end;
msig(n_m)=a(i);
y(i)=xor(sig(i),a(i));
if a(i)==1;
c(i)=i;
count=count+1;;
else;
c(i)=0;
end;
p1=count/N;
end;
%计算游程
m_count=zeros(1,n_m);
p=0;
q=0;
for j=1:N-1;
if c(j)==0&&
5、c(j+1)~=0;%0游程
p=c(j+1);
m_count(p-q-1)=m_count(p-q-1)+1;
elseif c(j)~=0&&c(j+1)==0;%1游程
q=c(j);
m_count(q-p+1)=m_count(q-p+1)+1;
end;
if j==N-1;%最后一个游程
if p>q;
m_count(N-p+1)=m_count(N-p+1)+1;
else;
6、 m_count(N-q)=m_count(N-q)+1;
end;
end;
end;
%解码
msig=[0 0 0 0 0 0 0 1 0 1 0 1 0 0 1];%高位到底位
for i=1:length(y);
a=xor(msig(1),msig(2));
for j=1:n_m-1;
msig(j)= msig(j+1);
end;
msig(n_m)=a;
r(i)=xor(y(i),a);
end;
d=xor(sig,r);
d=sum(d);
%画图
t=1:100;
subplot(3,1,1);stem(t,sig(1:100));ylabel('sig');
subplot(3,1,2);stem(t,y(1:100));ylabel('msig');
subplot(3,1,3);stem(t,r(1:100));ylabel('rsig');
四.实验结果
扰码与解码:
游程计数:
(依次为游程长度为1至游程长度为15的游程个数)
其中1出现的概率P1=0.5。