资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
武夷学院实验报告课程名称:_扩频通信技术及应用_ 项目名称:基于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,connections
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号