Matlab实现M序列的产生及其自相关序列Word格式文档下载.docx
- 文档编号:22719711
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:8
- 大小:42.60KB
Matlab实现M序列的产生及其自相关序列Word格式文档下载.docx
《Matlab实现M序列的产生及其自相关序列Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Matlab实现M序列的产生及其自相关序列Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。
任务要求
1、利用Matlab实现M序列的产生及其自相关序列。
2、观察成形信号波形。
参考文献
1.樊昌信,曹丽娜编著,通信原理(第六版),国防工业出版社,2006
2.吴先用,邹学玉,一种m序列伪码发生器的产生方法[J].测控技术,2003,,22(9)
3.肖国镇,梁传甲,王育民.伪随机序列及其应用。
[M].长沙:
国防工业出版社,1985.
4.吕辉,何晶,王刚。
伪随机序列中本原多项式生成算法[J],计算机工程。
审查意见
指导教师签字:
教研室主任签字:
2010年12月27日
1需求分析
伪随机信号既有随机信号所具有的优良的相关性,又有随机信号所不具备的规律性.因此,伪随机信号既易于从干扰信号中被识别和分离出来,又可以方便地产生和重复,其相关函数接近白噪声的相关函数,有随机噪声的优点,又避免了随机噪声的缺点.伪随机序列具有可确定性、可重复性,易于实现相关接受或匹配接受,故有很好的抗干扰性能.因此伪随机序列在相关辩识、伪码测距、导航、遥控遥测、扩频通信、多址通信、分离多径、误码测试、线形系统测量、数据加扰、信号同步等方面均有广泛的应用.m序列是伪随机序列中最重要的一种,是最长线性移位寄存器序列,m序列易于实现,具有优良的自相关特性,在直扩通信系统中用于扩展要传递的信号。
可以通过移位寄存器,利用MATLAB编程产生m序列。
2概要设计
m序列是最长线性反馈移位寄存器序列的简称,m序列是由带线性反馈的移位寄存器产生的.
由n级串联的移位寄存器和和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。
带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化。
其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。
n级线性移位寄存器的如图1所示:
图1n级线性移位寄存器
图中
表示反馈线的两种可能连接方式,
=1表示连线接通,第n-i级输出加入反馈中;
=0表示连接线断开,第n-i级输出未参加反馈。
因此,一般形式的线性反馈逻辑表达式为
将等式左面的
移至右面,并将
代入上式,则上式可改写为
定义一个与上式相对应的多项式
其中x的幂次表示元素的相应位置。
式称为线性反馈移位寄存器的特征多项式,特征多项式与输出序列的周期有密切关系.当F(x)满足下列三个条件时,就一定能产生m序列:
(1)F(x)是不可约的,即不能再分解多项式;
(2)F(x)可整除
这里
;
(3)F(x)不能整除
,这里q<
p.
满足上述条件的多项式称为本原多项式.这样产生m序列的充要条件就变成了如何寻找本原多项式.
根据m序列的特征方程:
并根据其联接多项式编写Matlab程序.
3运行环境
硬件环境:
Windowxp
软件环境:
Matlab
4开发工具和编程语言
5详细设计
主程序:
%m序列发生器及其自相关
clearall;
closeall;
g=19;
%G=10011;
state=8;
%state=1000
L=1000;
%m序列产生
N=15;
mq=mgen(g,state,L);
%m序列自相关
ms=conv(1-2*mq,1-2*mq(15:
-1:
1))/N;
figure
(1)
%subplot(222)
stem(ms(15:
end));
axis([063]);
title('
m序列自相关序列'
)
figure
(2)
%m序列构成的信号(矩形脉冲)
N_sample=8;
Tc=1;
dt=Tc/N_sample;
t=0:
dt:
Tc*L-dt;
gt=ones(1,N_sample);
mt=sigexpand(1-2*mq,N_sample);
mt=conv(mt,gt);
%subplot(221);
plot(t,mt(1:
length(t)));
m序列矩形成形信号'
st=sigexpand(1-2*mq(1:
15),N_sample);
s=conv(st,gt);
st=s(1:
length(st));
rt1=conv(mt,st(end:
1))/(N*N_sample);
figure(3)
%subplot(223)
plot(t,rt1(length(st):
length(st)+length(t)-1));
m序列矩形成形信号的自相关'
);
xlabel('
t'
t=-20:
20;
gt=sinc(t/Tc);
st2=sigexpand(1-2*mq(1:
s2=conv(st2,gt);
st2=s2;
rt2=conv(mt,st2(end:
figure(4)
%subplot(224);
t1=-55+dt:
plot(t1,rt2(1:
length(t1)));
m序列since成形信号的自相关'
调用的子程序如下:
(1):
function[out]=mgen(g,state,N)
%输入g:
m序列生成多项式(10进制输入)
%state:
寄存器初始状态(10进制输入)
%N:
输出序列长度
%testg=11;
state=3;
gen=dec2bin(g)-48;
M=length(gen);
curState=dec2bin(state,M-1)-48;
fork=1:
N
out(k)=curState(M-1);
a=rem(sum(gen(2:
end).*curState),2);
curState=[acurState(1:
M-2)];
end
(2)
(3):
function[out]=sigexpand(d,M)
N=length(d);
out=zeros(M,N);
out(1,:
)=d;
out=reshape(out,1,M*N);
6调试分析
在调试程序中出现过以下问题:
Undefinedfunctionorvariable'
sigexpand'
.后来查出是子程序定义和调用方面出的差错,经过修改,成功排除了错误。
m序列的输出波形在每次运行程序后不尽相同,这是由m序列特性决定的,它是一种伪随机序列。
7测试结果
图2m序列自相关序列
图3m序列矩形成形信号
图4m序列矩形成形信号的自相关
图5m序列since成形信号的自相关
8参考文献
心得体会
本次课程设计完全实现了设计要求,利用软件实现m序列的生成及成形信号,通过这次实践不但加深了我对m序列的了解,而且对MATLAB编程有了很好的掌握,在不断的程序调错中提高了自己寻错的能力。
m序列可以软件实现,也可以硬件实现,但是通过本次设计可以看到软件设计的许多优点。
在课程设计的过程中,我查询了大量的资料,通过相关资料的查阅,还掌握了通信领域的有关知识,扩大了知识面。
课程设计是一个十分有价值、有意义的实践活动,把一个课题设计好不是一步到位的,而是一个经过反复修改,不断调试的过程,其间有困难也有乐趣,使我对工程实践有了一个更加深刻的认识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 实现 序列 产生 及其 相关