PN序列生成代碼快速參考

PN序列生成器的基本結(jié)構(gòu)為LFSR(linear feedback shift register),在通信領(lǐng)域PN序列可作為測(cè)試數(shù)據(jù)源或者擾碼生成器使用?;拘畔⒑徒Y(jié)構(gòu)可參考 Matlab中的PN序列產(chǎn)生模塊說明

pn_sequence_setupex.png

上圖中,按照Matlab定義,對(duì)應(yīng)的生成多項(xiàng)式為z^6+z+1,即[6 1 0],或者[1 0 0 0 0 1 1]

參考生成代碼

[17 3 0]生成matlab代碼(標(biāo)準(zhǔn)參考為[17 14 0])

%% serial for PN17 [17,3,0]
pn = ones(1,17);
N = 2^17-1;
M = 2*N;
for i=1:M
    outpn(1,i) = pn(17);
    pn17 = pn(17);
    pn14 = pn(14);
    pn(17:-1:2) = pn(16:-1:1);
    pn(1) = xor(pn17, pn14);
end

上面生成的PN17周期應(yīng)為2^17-1

% verify the period of PN seq 
equRcrd = 1;
for k = 1:N
    if outpn(k) ~= outpn(k+N) 
        equRcrd = 0;
    end
end
equRcrd

遍歷性(部分的,全遍歷時(shí)間太長)

% Traversal
% only for 1:100, due to the long running time
% you can change the traversal range 
ofst = 1000;
for i=(1+ofst):(10+ofst) %N-17
    cnt(i)=0;
    for k=(i+1):N-16
        if outpn(i:i+16) == outpn(k:k+16)
            cnt(i) = cnt(i)+1;
        end
    end
end
max(cnt)

并行8路[17 3 0] (輸出為小端 little endian)

pn_p8 = ones(1,17);
N_p8 = 2^17/8;
for i=1:N_p8
    outpn_p8(:,i) = pn_p8(17:-1:10);
    pn_p8_copy = pn_p8;
    pn_p8(17:-1:9) = pn_p8(9:-1:1);
    pn_p8(8:-1:1) = xor(pn_p8_copy(17:-1:10),pn_p8_copy(14:-1:7));
end

VHDL代碼, 并行8路 (輸出為小端 little endian)

d_output(7) <= pn17_pd(10); 
d_output(6) <= pn17_pd(11);
d_output(5) <= pn17_pd(12);
d_output(4) <= pn17_pd(13);
d_output(3) <= pn17_pd(14);
d_output(2) <= pn17_pd(15);
d_output(1) <= pn17_pd(16);
d_output(0) <= pn17_pd(17);

pn17_pd(17 downto 9) <= pn17_pd(9 downto 1);
pn17_pd(8 downto 1)  <= pn17_pd(17 downto 10) xor pn17_pd(14 downto 7);

對(duì)于上述8路并行代碼,采用此種簡潔形式的前提是滿足17-3-8 >= 0,否則生成代碼會(huì)復(fù)雜

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

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評(píng)論 19 139
  • ———————————————回答好下面的足夠了---------------------------------...
    恒愛DE問候閱讀 1,846評(píng)論 0 4
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,366評(píng)論 25 708
  • 1.秦嶺為什么成為我國的南北方的分界線?有哪些珍惜野生動(dòng)物? 因?yàn)榍貛X在中國的中部 而且很長,形成一道天然屏障。 ...
    凱旋城閱讀 617評(píng)論 0 0
  • 1. 起因 玫瑰生了第二個(gè)女兒,婆婆是等她滿月后才姍姍來遲。月子里,玫瑰的父母一直在照顧玫瑰,看她婆婆來了,就回家...
    親哥拜閱讀 542評(píng)論 0 0

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