美文网首页
PN序列生成代码快速参考

PN序列生成代码快速参考

作者: monokent | 来源:发表于2015-12-15 21:59 被阅读0次

PN序列生成器的基本结构为LFSR(linear feedback shift register),在通信领域PN序列可作为测试数据源或者扰码生成器使用。基本信息和结构可参考 Matlab中的PN序列产生模块说明

pn_sequence_setupex.png

上图中,按照Matlab定义,对应的生成多项式为z^6+z+1,即[6 1 0],或者[1 0 0 0 0 1 1]

参考生成代码

[17 3 0]生成matlab代码(标准参考为[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周期应为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

遍历性(部分的,全遍历时间太长)

% 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);

对于上述8路并行代码,采用此种简洁形式的前提是满足17-3-8 >= 0,否则生成代码会复杂

相关文章

  • PN序列生成代码快速参考

    PN序列生成器的基本结构为LFSR(linear feedback shift register),在通信领域PN...

  • Flutter JSON序列化(FromJson和ToJson)

    序列化方式 手动序列化和反序列化 通过代码生成自动序列化和反序列化 对于较小项目,使用代码生成器可能会过度。对于具...

  • 温习 6+2 种排序方式

    堆排序(实现难易:⭐⭐⭐) ① 将序列生成堆,调整成最大堆② 弹出堆顶,生成新序列,重复 ① 。 快速排序(实现难...

  • flutter vscode快捷键

    mbp电脑使用: 自定义代码块 推荐两个快速生成代码块的vscode插件 中文翻译包 快速生成代码 快捷生成组件包...

  • 图形验证码

    参考:canvas代码>mcaptcha随机生成字母代码demo

  • 快速生成代码

  • k8s自定义资源类型代码自动生成

    用以下命令生成代码: 第一个报错 生成代码报错: 这个问题可以参考issue 可以参考这个文章:https://m...

  • 杭电OJ-2000

    【转】网上代码参考:http://blog.sina.com.cn/s/blog_6fb54b980100n3pn...

  • 排序算法总结(一)

    排序总结 (1) 首先我们随机生成无序序列 快速排序 快速排序的总体思路:给定一个长的没有排序的杂乱序列 随机选取...

  • 2.2 Orleans 中的代码生成

    <<返回目录 代码生成 Orleans运行时利用生成的代码以确保跨集群对象类型适当地序列化,并且生成把方法传递、异...

网友评论

      本文标题:PN序列生成代码快速参考

      本文链接:https://www.haomeiwen.com/subject/mywuhttx.html