在通信系統(tǒng)中的隨機噪聲會使模擬信號產(chǎn)生失真,是數(shù)字信號產(chǎn)生誤碼,并且他還是限制信道容量的一個重要因素。因此,人們經(jīng)常希望消除或減少通信系統(tǒng)中的隨機噪聲。
但是,有時候人們會希望獲得隨機噪聲。比如,在實驗室對通信設(shè)備或系統(tǒng)性能進行測試,可能要故意加入一定的噪聲。又比如在戰(zhàn)爭通信中,實現(xiàn)高保密的通信,也希望利用隨機噪聲來迷惑敵方。
那么就來了一個名字“偽隨機序列”,他具有類似于隨機噪聲的某些統(tǒng)計特性,同時又能夠重復(fù)產(chǎn)生。所以運用廣泛,今天來講講m序列。
m序列是最長線性反饋移位寄存器序列的簡稱。它是由帶線性反饋的移存器產(chǎn)生的周期最長的序列。

從上圖可以看出,先設(shè)置初始狀態(tài),之后根據(jù)框圖的原型來進行移位,進行mod2運算。這樣最后移位15次后又回到初始狀態(tài)(1,0,0,0)。所以除了全零狀態(tài),一共可以用15種。
一般來說,一個n級線性反饋移存器可能產(chǎn)生的最長周期等于2^n-1

接下來是matlab代碼
close all; clear all; clc;
fb=200000;
upsample_NUM=20; %每個符號的采樣點數(shù)目
BIT_NUM=520;
load RC_LPF.mat;
close all為關(guān)閉所有窗口,clear all為清除所有變量,clc清除命令
這里加載了一個LPF文件。
下面的公式可以作為依據(jù)直接產(chǎn)生m序列:

%產(chǎn)生m序列
%m序列本原多項式:x^3+x+1, x^4+x+1, x^5+x^2+1,x^6+x+1, x^7+x^3+1
% g3=[0 1 1];
% g4=[0 0 1 1];
% g5=[0 0 1 0 1];
% g6=[0 0 0 0 1 1];
% g7=[0 0 0 1 0 0 1];
g8=[0 0 0 1 1 1 0 1];
這里的要求是2的8次方的m序列,所以m的本原多項式可以得出。g8為特征多項式表示的數(shù)組模式,就相當于反饋系數(shù)cof,注意一開頭的都是0;
%下面產(chǎn)生m=8的序列
m=length(g8);
N=2^m-1;
register=[zeros(1,m-1) 1]; %移位寄存器的初始狀態(tài)
new_register=zeros(1,m);
m_seq_out8=zeros(1,N+1);
m_seq_out8(1)=register(m);
for i=2:N
new_register(1)=mod(sum(g8.*register),2); %移存器與反饋系數(shù)進行模2加,更新移存器第1個數(shù)
for j=2:m
new_register(j)=register(j-1); %更新移存器其他數(shù)
end
register=new_register;
m_seq_out8(i)=register(m); %輸出
end
m_seq_out9=2*m_seq_out8-1; %雙極性變換
seq_byte=zeros(1,32); %32字節(jié),每個字節(jié)8bit,m序列被存放在該32字節(jié)中
產(chǎn)生m=8的序列,當然N=2^m-1,這是最長周期,設(shè)置移位寄存器的初始狀態(tài),m-1列的0,最后是1,應(yīng)該是[00000001],即a7為1,其他為0.。
接下來的循環(huán)語句就是更新移存器,定義了新的變量new_register保存新的數(shù)據(jù),最后返還給register。最后m序列數(shù)據(jù)都被存在32個字節(jié)中。
for i=1:32
for j=1:8
seq_byte(i)=seq_byte(i)*2;
if m_seq_out8((i-1)*8+j)==1
seq_byte(i)=seq_byte(i)+1;
end
end
end
data1=zeros(1,20*length(m_seq_out9)); %將采樣率擴展20倍,每個bit對應(yīng)20個樣值
for i=1:length(m_seq_out9)
for j=1:20
data1(20*(i-1)+j)=m_seq_out9(i);
end
end
data2=[data1,data1,data1,data1];
data3=convn(data2,LPF1); %LPF1為低通濾波器,對應(yīng)抽樣率為(20*200KSPS=4 MSPS)
i=1:length(data3);
figure;
plot(i,data3);
接下來的語法嵌套for循環(huán),最后將data和LPF進行卷積,也就是說在頻域進行相乘,這時候會出現(xiàn)“吉布斯”效應(yīng),就是低通濾波器產(chǎn)生的峰值谷值會比一跌個8.5%左右,所以產(chǎn)生了這樣的波形。

這樣就產(chǎn)生了想要的波形~
把需要的語法熟悉,matlab和c語言語法很相似。任何模型都是需要算法作為基礎(chǔ)的,好好學(xué)習(xí),加油