博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用MATLAB实现m序列的生成(MATLAB 2021a适用)
阅读量:2134 次
发布时间:2019-04-30

本文共 2974 字,大约阅读时间需要 9 分钟。

用MATLAB实现m序列的生成(MATLAB 2021a适用)

1.在MATLAB中新建脚本,命名为mseq.m,输入以下代码:

function mseq = mseq(fbconnection)n=length(fbconnection);N=2^n-1;register=[zeros(1,n-1) 1]; %移位寄存器的初始状态mseq(1)=register(n);       %m序列的第一个输出码元for i=2:N    newregister(1)=mod(sum(fbconnection.*register),2);    for j=2:n        newregister(j)=register(j-1);    end;    register=newregister;    mseq(i)=register(n);end

2.输入反馈系数

如7级m序列的反馈系数(203)8转换为二进制,为(10000011)2,此时在命令行中输入:

m = mseq([1 0 0 0 0 0 1 1]);

得到输出:

m =  列 1 至 13     1     0     0     0     0     0     0     0     1     1     1     1     1  列 14 至 26     1     1     0     0     0     0     0     0     0     1     1     1     1  列 27 至 39     1     1     1     0     0     0     0     0     0     0     1     1     1  列 40 至 52     1     1     1     1     0     0     0     0     0     0     0     1     1  列 53 至 65     1     1     1     1     1     0     0     0     0     0     0     0     1  列 66 至 78     1     1     1     1     1     1     0     0     0     0     0     0     0  列 79 至 91     1     1     1     1     1     1     1     0     0     0     0     0     0  列 92 至 104     0     1     1     1     1     1     1     1     0     0     0     0     0  列 105 至 117     0     0     1     1     1     1     1     1     1     0     0     0     0  列 118 至 130     0     0     0     1     1     1     1     1     1     1     0     0     0  列 131 至 143     0     0     0     0     1     1     1     1     1     1     1     0     0  列 144 至 156     0     0     0     0     0     1     1     1     1     1     1     1     0  列 157 至 169     0     0     0     0     0     0     1     1     1     1     1     1     1  列 170 至 182     0     0     0     0     0     0     0     1     1     1     1     1     1  列 183 至 195     1     0     0     0     0     0     0     0     1     1     1     1     1  列 196 至 208     1     1     0     0     0     0     0     0     0     1     1     1     1  列 209 至 221     1     1     1     0     0     0     0     0     0     0     1     1     1  列 222 至 234     1     1     1     1     0     0     0     0     0     0     0     1     1  列 235 至 247     1     1     1     1     1     0     0     0     0     0     0     0     1  列 248 至 255     1     1     1     1     1     1     0     0

为255位的m序列。

注释

mseq([1 0 0 0 0 0 1 1]);中的输入1 0 0 0 0 0 1 1代表各寄存器的初始状态,即本原多项式D7+D6+D5+D4+D3+D2+D1+1中各项的系数。选用不同的初始状态值对应不同的本原多项式,也会得到不同的m序列。

如果选用D7+D3+1,则只需调用mseq([0 0 1 0 0 0 1]),即可得到对应的m序列。

可以通过*primpoly()*函数获得n阶m序列的所有本原多项式:

primpoly(n,'all');

例:输入primpoly(8,‘all’),则输出为:

Primitive polynomial(s) =  D^8+D^4+D^3+D^2+1D^8+D^5+D^3+D^1+1D^8+D^5+D^3+D^2+1D^8+D^6+D^3+D^2+1D^8+D^6+D^4+D^3+D^2+D^1+1D^8+D^6+D^5+D^1+1D^8+D^6+D^5+D^2+1D^8+D^6+D^5+D^3+1D^8+D^6+D^5+D^4+1D^8+D^7+D^2+D^1+1D^8+D^7+D^3+D^2+1D^8+D^7+D^5+D^3+1D^8+D^7+D^6+D^1+1D^8+D^7+D^6+D^3+D^2+D^1+1D^8+D^7+D^6+D^5+D^2+D^1+1D^8+D^7+D^6+D^5+D^4+D^2+1ans =   285   299   301   333   351   355   357   361   369   391   397   425   451   463   487   501

另附:部分m序列的反馈系数表

部分m序列的反馈系数表

参考文献:

转载地址:http://ujugf.baihongyu.com/

你可能感兴趣的文章
Leetcode C++《热题 Hot 100-41》75.颜色分类
查看>>
Leetcode C++《热题 Hot 100-42》78.子集
查看>>
Leetcode C++《热题 Hot 100-43》94.二叉树的中序遍历
查看>>
Leetcode C++ 《第175场周赛-1 》5332.检查整数及其两倍数是否存在
查看>>
Leetcode C++ 《第175场周赛-2 》5333.制造字母异位词的最小步骤数
查看>>
Leetcode C++ 《第175场周赛-3》1348. 推文计数
查看>>
Leetcode C++《热题 Hot 100-44》102.二叉树的层次遍历
查看>>
Leetcode C++《热题 Hot 100-45》338.比特位计数
查看>>
读书摘要系列之《kubernetes权威指南·第四版》第一章:kubernetes入门
查看>>
Leetcode C++《热题 Hot 100-46》739.每日温度
查看>>
Leetcode C++《热题 Hot 100-47》236.二叉树的最近公共祖先
查看>>
Leetcode C++《热题 Hot 100-48》406.根据身高重建队列
查看>>
《kubernetes权威指南·第四版》第二章:kubernetes安装配置指南
查看>>
Leetcode C++《热题 Hot 100-49》399.除法求值
查看>>
Leetcode C++《热题 Hot 100-51》152. 乘积最大子序列
查看>>
[Kick Start 2020] Round A 1.Allocation
查看>>
Leetcode C++ 《第181场周赛-1》 5364. 按既定顺序创建目标数组
查看>>
Leetcode C++ 《第181场周赛-2》 1390. 四因数
查看>>
阿里云《云原生》公开课笔记 第一章 云原生启蒙
查看>>
阿里云《云原生》公开课笔记 第二章 容器基本概念
查看>>