matlab pn,PN序列生成代码快速参考
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,否则生成代码会复杂
matlab pn,PN序列生成代码快速参考相关推荐
- matlab直扩序列生成,基于matlab的直接序列扩频通信系统仿真毕业论文
基于matlab的直接序列扩频通信系统仿真毕业论文 基于 MATLAB 的直接序列扩频通信系统仿真1.实验目的:学习扩频通信系统技术理论基础及直接序列 DS 扩频系统基本原理,并设计出直扩通信系统模型 ...
- 每秒可产生1亿个序列号的序列生成代码 支持64台服务器同步生成
public class NextIdGen { private NextIdGen() { } /** * 获得机器id 避免机器之间的通信以余数绝对区分 * ...
- 关于matlab生成M序列的代码
#关于matlab生成M序列的代码 参考了相关书籍和网上matlab生产m序列的代码,我发现和书上的定义有些不一样(系统辨识原理及其运用-李彦俊)于是我就自己学了一个m文件来供大家参考.使用起来简单方 ...
- javaweb项目:用户(登录和注销)实现 SSM框架(mybatis-generator自动生成代码)
SSM框架的搭建环境(Spring,SpringMVC,Mybatis) 使用工具:maven.idea.tomcat用的是8.jdk版本1.8 一.整个项目的结构: 用户模块流程 pom.xml - ...
- matlab生成均匀部分散点图,应用halton序列生成均匀散点图
前言 一门课的作业要用RBF-DQ方法计算流场.简单来讲就是要在无网格的条件下用高精度格式实现流场的仿真计算.生成散点图时,用蒙特卡洛的方法得到的散点图分布不是很均匀,于是想到一种叫做halton的序 ...
- python︱写markdown一样写网页,代码快速生成web工具:streamlit 数据探索案例(六)
系列参考: python︱写markdown一样写网页,代码快速生成web工具:streamlit介绍(一) python︱写markdown一样写网页,代码快速生成web工具:streamlit 重 ...
- python︱写markdown一样写网页,代码快速生成web工具:streamlit 缓存(五)
系列参考: python︱写markdown一样写网页,代码快速生成web工具:streamlit介绍(一) python︱写markdown一样写网页,代码快速生成web工具:streamlit 重 ...
- python︱写markdown一样写网页,代码快速生成web工具:streamlit lay-out布局(四)
文章目录 1 `streamlit.beta_container()` 2 分列展示 3 按照比例分列展示 4 折叠/展开 系列参考: python︱写markdown一样写网页,代码快速生成web工 ...
- python︱写markdown一样写网页,代码快速生成web工具:streamlit 展示组件(三)
系列参考: python︱写markdown一样写网页,代码快速生成web工具:streamlit介绍(一) python︱写markdown一样写网页,代码快速生成web工具:streamlit 重 ...
- python︱写markdown一样写网页,代码快速生成web工具:streamlit 重要组件介绍(二)
python︱写markdown一样写网页,代码快速生成web工具:streamlit(一) 上篇主要是steamlit的介绍以及streamlit的一些初始化,这篇是一些组件的介绍,当然风格是直接上 ...
最新文章
- 【AI】图示:精确度(查准率)Precision、召回率(查全率)Recall
- 败了一块7600GS AGP显卡
- Could not load file or assembly 'System.Web.Extensions
- 浅析网站空间主机应该如何进行配置?
- caffe安装编译教程Ubuntu16.04(CPU)教程
- 数据库 三范式最简单最易记的解释
- ES5 every/some/reduce/reduceRight的使用与重写
- python 百度云文字识别 proxy_python使用百度文字识别功能方法详解
- Android官方开发文档Training系列课程中文版:高效显示位图之加载大位图
- Java微服务篇4——Elastic search
- idea项目名后出现中括号别名
- java pdf验签_java pdf验签
- Python day2 数据类型 字符类型 文件处理
- sf | 空间矢量对象的“聚合”操作
- nginx配置多个域名_Nginx配置多个网站/项目的简单方式
- matlab实验教程,matlab实验教程
- 数字化中台前导--企业架构TOGAF简介
- Redis安装部署(Windows/Linux)
- 求助 电脑能正常上网,但开热点手机连上用不了。开的热点显示ipv6无网络访问权限。
- 双向联想记忆网络的原理与python简单实现