基于matlab的伪随机序列生成及相关函数仿真实验.doc_第1页
基于matlab的伪随机序列生成及相关函数仿真实验.doc_第2页
免费预览已结束,剩余9页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武夷学院实验报告课程名称:_扩频通信技术及应用_ 项目名称:基于matlab的伪随机序列生成及相关函数仿真实验姓名:翁开传_专业:_通信工程_ 班级:_2_学号:_40_同组成员_无_一、 实验预习部分 注:1、实验预习部分包括实验环境准备和实验所需知识点准备。2、若是单人单组实验,同组成员填无。:1. 实验环境准备实验室的计算机和matlab软件和书本上的程序二、 实验过程记录 注:实验过程记录要包含实验目的、实验原理、实验步骤,页码不够可自行添加。:1. 实验目的1) 了解伪随机序列的相关知识。2) 了解m序列的相关知识,了解其相关特性。3) 熟悉matlab仿真的应用。4) 掌握伪随机码的原理、软件产生,仿真分析其相关特性。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-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=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(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-1 auto_correlation(i+1)=seq*(temp(i+1: i+len);endauto_correlationplot(0:len-1,auto_correlation);运行的结果如下3) 函数cross_corr()计算二进制序列seq1和seq2的互相关函数并画出曲线。在函数内调用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); 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-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;%设置初始状态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(自相关函数,互相关函数);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=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);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,connections1);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:len-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);temp=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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论