基于matlab的伪随机序列生成及相关函数仿真实验.doc

上传人:laozhun 文档编号:2388521 上传时间:2023-02-17 格式:DOC 页数:11 大小:83.50KB
返回 下载 相关 举报
基于matlab的伪随机序列生成及相关函数仿真实验.doc_第1页
第1页 / 共11页
基于matlab的伪随机序列生成及相关函数仿真实验.doc_第2页
第2页 / 共11页
基于matlab的伪随机序列生成及相关函数仿真实验.doc_第3页
第3页 / 共11页
基于matlab的伪随机序列生成及相关函数仿真实验.doc_第4页
第4页 / 共11页
基于matlab的伪随机序列生成及相关函数仿真实验.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《基于matlab的伪随机序列生成及相关函数仿真实验.doc》由会员分享,可在线阅读,更多相关《基于matlab的伪随机序列生成及相关函数仿真实验.doc(11页珍藏版)》请在三一办公上搜索。

1、武夷学院实验报告课程名称:_扩频通信技术及应用_ 项目名称:基于matlab的伪随机序列生成及相关函数仿真实验姓名:翁开传_专业:_通信工程_ 班级:_2_学号:_40_同组成员_无_一、 实验预习部分 注:1、实验预习部分包括实验环境准备和实验所需知识点准备。2、若是单人单组实验,同组成员填无。:1. 实验环境准备实验室的计算机和matlab软件和书本上的程序二、 实验过程记录 注:实验过程记录要包含实验目的、实验原理、实验步骤,页码不够可自行添加。:1. 实验目的1) 了解伪随机序列的相关知识。2) 了解m序列的相关知识,了解其相关特性。3) 熟悉MATLAB仿真的应用。4) 掌握伪随机码

2、的原理、软件产生,仿真分析其相关特性。2. 实验步骤1) 函数ms_generator(registers,connections)是m序列的生成函数,其中参数registers给出了移位寄存器的初始状态,connections给出了m序列的发生器。function seq=ms_generator(registers,connections)registers=0 0 0 0 1;connections=1 0 0 1 0 1;n=length(connections);L=2(n-1)-1;seq(1)=registers(n-1);for i=2:L sum=0; for m=1:(n-

3、1) sum=mod(sum+registers(m)*connections(m+1),2); end for k=(n-1):-1:2 registers(k)=registers(k-1); end registers(1)=sum; seq(i)=registers(n-1);end运行输出的结果如下2) 函数auto_corr()计算二进制序列seq的自相关函数,并画出函数曲线。在函数内调用了生成m序列的函数ms_generator(*)生成的m序列seq,然后在计算。function seq=ms_generator(registers,connections)registers=

4、0 0 0 0 1;connections=1 0 0 1 0 1;n=length(connections);L=2(n-1)-1;seq(1)=registers(n-1);for i=2:L sum=0; for m=1:(n-1) sum=mod(sum+registers(m)*connections(m+1),2); end for k=(n-1):-1:2 registers(k)=registers(k-1); end registers(1)=sum; seq(i)=registers(n-1);endfunction auto_correlation=auto_corr(s

5、eq)registers=1 0 0 0 0 ;%设置初始状态connections=1 0 1 0 0 1;%设置反馈逻辑seq=ms_generator(registers,connections);seq=-1*(seq*2-1);%负逻辑映射len=length(seq);temp=seq seq;for i=0:len-1 auto_correlation(i+1)=seq*(temp(i+1: i+len);endauto_correlationplot(0:len-1,auto_correlation);运行的结果如下3) 函数cross_corr()计算二进制序列seq1和se

6、q2的互相关函数并画出曲线。在函数内调用ms_generator(*)函数分别生成等长的M序列seq1和seq2后在计算。程序也画出了自相关函数。 function seq=ms_generator(registers,connections)%registers=0 0 0 0 1;%connections=1 0 0 1 0 1;n=length(connections);L=2(n-1)-1;seq(1)=registers(n-1);for i=2:L sum=0; for m=1:(n-1) sum=mod(sum+registers(m)*connections(m+1),2);

7、end for k=(n-1):-1:2 registers(k)=registers(k-1); end registers(1)=sum; seq(i)=registers(n-1);endfunction auto_correlation=auto_corr(seq)registers=1 0 0 0 0 ;%设置初始状态connections=1 0 1 0 0 1;%设置反馈逻辑seq=ms_generator(registers,connections);seq=-1*(seq*2-1);%负逻辑映射len=length(seq);temp=seq seq;for i=0:len-

8、1 auto_correlation(i+1)=seq*(temp(i+1: i+len);endauto_correlationplot(0:len-1,auto_correlation);function cross_correlation=cross_corr(seq1,seq2)registers1=0 0 0 0 1;%设置初始状态connections1=1 0 0 1 0 1;%设置反馈逻辑seq1=ms_generator(registers1,connections1);seq1=-1*(seq1*2-1);%负逻辑映射registers2=1 1 1 1 1;%设置初始状态

9、connections2=1 1 1 1 0 1;%设置反馈逻辑seq2=ms_generator(registers2,connections2);seq2=-1*(seq2*2-1);%负逻辑映射temp=seq2 seq2;len=length(seq2);for i=0:len-1 cross_correlation(i+1)=seq1*(temp(i+1:i+len);endauto_correlation=auto_corr(seq1);plot(0:len-1,auto_correlation,-,0:len-1,cross_correlation);legend(自相关函数,互

10、相关函数);xlabel(j);ylabel(相关函数);运行的结果如下4) 函数gold()生成一族gold序列。程序中首先生成一对m序列优先对seq1和seq2,然后按照并结构生成了一族gold序列,最后画出一个gold序列的自相关函数以及族内一对gold序列的互相关函数function seq=ms_generator(registers,connections)%registers=0 0 0 0 1;%connections=1 0 0 1 0 1;n=length(connections);L=2(n-1)-1;seq(1)=registers(n-1);for i=2:L sum

11、=0; for m=1:(n-1) sum=mod(sum+registers(m)*connections(m+1),2); end for k=(n-1):-1:2 registers(k)=registers(k-1); end registers(1)=sum; seq(i)=registers(n-1);endfunction auto_correlation=auto_corr(seq)registers=1 0 0 0 0 ;%设置初始状态connections=1 0 1 0 0 1;%设置反馈逻辑seq=ms_generator(registers,connections);

12、seq=-1*(seq*2-1);%负逻辑映射len=length(seq);temp=seq seq;for i=0:len-1 auto_correlation(i+1)=seq*(temp(i+1: i+len);endauto_correlationplot(0:len-1,auto_correlation);function cross_correlation=cross_corr(seq1,seq2)registers1=0 0 0 0 1;%设置初始状态connections1=1 0 0 1 0 1;%设置反馈逻辑seq1=ms_generator(registers1,con

13、nections1);seq1=-1*(seq1*2-1);%负逻辑映射registers2=1 1 1 1 1;%设置初始状态connections2=1 1 1 1 0 1;%设置反馈逻辑seq2=ms_generator(registers2,connections2);seq2=-1*(seq2*2-1);%负逻辑映射temp=seq2 seq2;len=length(seq2);for i=0:len-1 cross_correlation(i+1)=seq1*(temp(i+1:i+len);endauto_correlation=auto_corr(seq1);plot(0:le

14、n-1,auto_correlation,-,0:len-1,cross_correlation);legend(自相关函数,互相关函数);xlabel(j);ylabel(相关函数);function gold=gold()registers1=1 0 0 0 0 0;connections1=1 1 0 0 0 0 1;seq1=ms_generator(registers1,connections1);registers2=1 0 0 0 0 0;connections2=1 1 1 0 0 1 1;seq2=ms_generator(registers2,connections2);t

15、emp=seq2 seq2;len=length(seq2);for i=1:len gold(i, : )=mod(seq1+temp(i:i+len-1),2);endgold(len+1, : )=seq1;gold(len+2, : )=seq2;plot(0:len-1,auto_corr(gold(1, : ),-,0:len-1,cross_corr(gold(1, : ),gold(2, : ),-.);legend(自相关函数,互相关函数);xlabel(j);ylabel(相关函数);运行的结果如下三、 实验结果与讨论: 注:1、实验小结应包含实验所需知识点和实验方法的总结,实验心得体会等。2、分组实验需包含同组讨论内容。实验心得体会通过此次实验我学到了如何使用matlab产生伪随机序列,深刻体会了产生伪随机序列的原理,此次实验较之前的小实验较为综合复杂,同时也是对之前所学内容的回顾与巩固,在编写程序时也发现了自己之前一些表达方式掌握不够,将在接下来的实验中进一步巩固实验报告成绩(百分制)_ 实验指导教师签字:_

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号