1. 程式人生 > >PN序列自相關特性分析

PN序列自相關特性分析

PN序列就是偽隨機序列(Pseudo—Noise Code),所謂的偽就是說這個序列隨機性很強,統計特性很好但並不是真正的隨機數,體現PN序列具有周期性。PN序列是由通過線性反饋移位暫存器實現的,移位暫存器的級數決定了其週期性的長短。

Matlab 程式碼:
參考:https://wenku.baidu.com/view/e44cdf6227d3240c8447ef44.html
https://ww2.mathworks.cn/help/comm/ref/commsrc.pn.html

clear all; close all; clc;
SampleTime=1/8;
sim('pn');%呼叫了simulink生成的模組
len=
length(pn13); N=7;%週期 N_sample=64; gt=ones(1,N_sample);%每個碼元對應的載波,即脈衝成型 pn1=pn13'; pntemp1=sigexpand(pn1,N_sample); pnx1=conv(pntemp1,gt); pn2=pn15'; pntemp2=sigexpand(pn2,N_sample);%碼元擴充套件 pnx2=conv(pntemp2,gt);%碼元成型 spn=conv(1-2*pn1,1-2*pn1(N:-1:1))/N;%自相關函式 dpn=conv(1-2*pn1,1-2*pn2(N:-1:1))/N;%
互相關函式 t=0:1/N_sample:len-1/N_sample; figure(1); subplot(4,1,1) plot(t,pnx1(1:length(t))); axis([0 61 -0.5 1.5]); title('PN13波形'); subplot(4,1,2); plot(t,pnx2(1:length(t))); axis([0 61 -0.5 1.5]); title('PN15波形'); subplot(4,1,3); stem(1:61,spn(15:75)); axis([0 61 -1.5 1.5]); title('PN13自相關波形'); subplot(4,1
,4); stem(1:61,dpn(15:75)); axis([0 61 -1.5 1.5]); title('PN(N=3)互相關波形');

simulink的使用:
新建了一個simulink檔案pn.mdl,從Library Browser新增PN序列發生器,示波器,以及匯出資料的ToWorkspace。連線完成下圖的連線。
在這裡插入圖片描述

關於PN序列發生器的配置:
有三個地方需要注意:
1序列的生成多項式
2暫存器的初始值(位數表示暫存器的個數,同時決定了週期長度,比如下面:週期=2^3-1=7)
3取樣時間間隔(體現在示波器中能看到的序列長度)
在這裡插入圖片描述

To Workspace的配置:
設定的變數名可以直接在程式碼中使用
輸出資料以二維陣列的形式輸出,也可以選其他格式
在這裡插入圖片描述

執行結果分析:
在這裡插入圖片描述