在matlab中生成m序列

摘要:
实验环境为matlab2013b1。首先,编写一个mseq M文件,内容为:函数[mseq]=M_sequencen=length;N=2^N-1;寄存器=[zeros1];%移位寄存器的初始状态mseq=寄存器;%m序列的第一个输出符号fori=2:Nnewregister=mod;forj=2:nnewregister=寄存器(j-1);终止register=新寄存器;mseq=寄存器;End2.在matlab中打开文件。3.在matlab的命令行窗口中执行命令“primpoly”,以获得7 M阶序列的所有原始多项式。如果你想得到其他顺序的m序列,你可以自己改变数字7。读者可以尝试自己选择其他本原多项式。

实验环境为matlab2013b

1、首先编写一个mseq.m文件,内容为:

function[mseq]=m_sequence(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、在matlab中打开这个文件

3、在matlab的命令行窗体中执行

primpoly(7,'all')

这个命令的目的是得到7阶M序列的全部本原多项式。假设想得到其它阶的m序列,自行改动数字7就可以。

4、得到的结果为

Primitive polynomial(s) = 
 
D^7+D^1+1
D^7+D^3+1
D^7+D^3+D^2+D^1+1
D^7+D^4+1
D^7+D^4+D^3+D^2+1
D^7+D^5+D^2+D^1+1
D^7+D^5+D^3+D^1+1
D^7+D^5+D^4+D^3+1
D^7+D^5+D^4+D^3+D^2+D^1+1
D^7+D^6+1
D^7+D^6+D^3+D^1+1
D^7+D^6+D^4+D^1+1
D^7+D^6+D^4+D^2+1
D^7+D^6+D^5+D^2+1
D^7+D^6+D^5+D^3+D^2+D^1+1
D^7+D^6+D^5+D^4+1
D^7+D^6+D^5+D^4+D^2+D^1+1
D^7+D^6+D^5+D^4+D^3+D^2+1


ans =


   131
   137
   143
   145
   157
   167
   171
   185
   191
   193
   203
   211
   213
   229
   239
   241
   247
   253


5、输入mseq([1 0 0 0 0 0 1])

6、便可得到一个127位的m序列,整理之后为

1000000111111101010
1001100111011101001
0110001101111011010
1101100100100011100
0010111110010101110
0110100010011110001
0100001100000


说明。

1 0 0 0   0 0 1这个输入參数的物理意义为各寄存器的初始状态,其数学意义是所选用的本原多项式D^7+D^1+1中D^1到D^7的各个系数。

读者能够试试自行选用其它本原多项式。得到不同的m序列。

比如假设选用D^7+D^3+1,则仅仅需调用

mseq([0 0 1 0 0 0 1]),得到的m序列为

1000000100100110100
1111011100001111111
0001110110001010010
1111101010100001011
0111100111001010110
0110000011011010111
0100011001000

免责声明:文章转载自《在matlab中生成m序列》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇数据库主键到底是用自增长(INT)好还是UUID好容器之docker基础下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【试题汇总】图像处理职位面试题汇总(1)

Matlab编程部分 1. Matlab 中读、写及显示一幅图像的命令各是什么? 解:第一、Matlab中读图像函数是imread( )。imread 函数用于读入各种图像文件,其一般的用法为:[X,MAP]=imread(‘filename’,‘fmt’) 其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename为读取的...

用MATLAB做聚类分析

用MATLAB做聚类分析 近期工作关系用到Matlab做聚类分析。所谓聚类分析,其目的在于将研究的数据样本划分为不同类别。Matlab的统计工具箱提供了相应的分析工具。相关概念在网上可以找到不少资料,这里推荐两个博客供大家参考。 pluskid的漫谈 Clustering 系列:http://blog.pluskid.org/?page_id=78...

matlab怎么同时显示imshow 两幅图片

matlab怎么同时显示imshow 两幅图片 matlab怎么同时显示imshow 两幅图片 方法一:subplot()函数 subplot(2,1,1); subplot(2,1,2); 分上下或者左右显示两张图片... 例如: 原始图片分两个窗口显示: hehe=uint8(hehe); figure(1) imshow(he), title('原始...

matlab环境配置

一.环境变量设置 AMD处理器:右键单击我的电脑 属性 — >高级 —> 环境变量 —> 系统变量 —> 新建 变量名:BLAS_VERSION,值为安装目录atlas_Athlon.dll.路径是相对的,根据的安装的路径来设置变量的值,如默认安装于C盘则设为C:MATLAB7inwin32atlas_Athlon.dll. atl...

matlab初探寻

1 matlab 2 <iframe src="http://player.bilibili.com/player.html?aid=74994893&cid=128293306&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfu...

MATLAB绘制概率图(probplot)

通过MATLAB可以很容易地绘制数据的概率图(pp图),直观地检查数据是否满足某种特定的分布。 normplot(data) wblplot(data) probplot('lognormal',data)probplot('rayleigh',data) probplot('weibull',data)probplot('exponential',da...