PN序列自相關特性分析
阿新 • • 發佈:2018-12-08
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的配置:
設定的變數名可以直接在程式碼中使用
輸出資料以二維陣列的形式輸出,也可以選其他格式
執行結果分析: