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

更新时间:2023-10-04 01:13:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

武夷学院实验报告

课程名称:_扩频通信技术及应用_ 项目名称:基于matlab的伪随机序列生成及相关函数仿真实验

姓名:翁开传__专业:__通信工程___ 班级:__2__学号:_40__同组成员_无___ 一、 实验预习部分1: 1. 实验环境准备 实验室的计算机和matlab软件和书本上的程序 1

注:1、实验预习部分包括实验环境准备和实验所需知识点准备。

2、若是单人单组实验,同组成员填无。

二、 实验过程记录2: 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

注:实验过程记录要包含实验目的、实验原理、实验步骤,页码不够可自行添加。

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); end function 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))'; end auto_correlation plot(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); end function 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))'; end auto_correlation plot(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))'; end

本文来源:https://www.bwwdw.com/article/d4bd.html

Top