基于matlab下的m序列波形產(chǎn)生

在通信系統(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)生的周期最長的序列。

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序列:

image.png
%產(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í),加油

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,420評論 6 13
  • 好愛他。 可是他從這里跳下去了。 下面是什么? 下面是無底洞。 他永遠在里面下墜。 我永遠在洞邊等他。
    某個嗚啦啦的神經(jīng)病閱讀 110評論 0 0
  • 2016年2月12日 生命向上,親子相長 第97篇 宸宸3歲4月,詩詩3月 春節(jié)狀態(tài)——此段可跳過 這個春節(jié),維爸...
    雪維他閱讀 364評論 0 0
  • 還是這樣 買好一個人的車票 即將回家的旅途 充當著流浪 到車站,到家 拖著不多的行李 也要自己看守 沒有片刻休閑 ...
    鳳回閱讀 218評論 2 1

友情鏈接更多精彩內(nèi)容