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

上传人:b****0 文档编号:17001507 上传时间:2023-07-21 格式:DOCX 页数:10 大小:58.79KB
下载 相关 举报
基于某matlab地伪随机序列生成及相关函数仿真实验.docx_第1页
第1页 / 共10页
基于某matlab地伪随机序列生成及相关函数仿真实验.docx_第2页
第2页 / 共10页
基于某matlab地伪随机序列生成及相关函数仿真实验.docx_第3页
第3页 / 共10页
基于某matlab地伪随机序列生成及相关函数仿真实验.docx_第4页
第4页 / 共10页
基于某matlab地伪随机序列生成及相关函数仿真实验.docx_第5页
第5页 / 共10页
基于某matlab地伪随机序列生成及相关函数仿真实验.docx_第6页
第6页 / 共10页
基于某matlab地伪随机序列生成及相关函数仿真实验.docx_第7页
第7页 / 共10页
基于某matlab地伪随机序列生成及相关函数仿真实验.docx_第8页
第8页 / 共10页
基于某matlab地伪随机序列生成及相关函数仿真实验.docx_第9页
第9页 / 共10页
基于某matlab地伪随机序列生成及相关函数仿真实验.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《基于某matlab地伪随机序列生成及相关函数仿真实验.docx》由会员分享,可在线阅读,更多相关《基于某matlab地伪随机序列生成及相关函数仿真实验.docx(10页珍藏版)》请在冰点文库上搜索。

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

基于某matlab地伪随机序列生成及相关函数仿真实验

武夷学院实验报告

课程名称:

_扩频通信技术及应用_项目名称:

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

姓名:

翁开传__专业:

__通信工程___班级:

__2__学号:

_40__同组成员_无___

一、实验预习部分:

1.实验环境准备

实验室的计算机和matlab软件和书本上的程序

 

二、实验过程记录:

1.实验目的

1)了解伪随机序列的相关知识。

2)了解m序列的相关知识,了解其相关特性。

3)熟悉MATLAB仿真的应用。

4)掌握伪随机码的原理、软件产生,仿真分析其相关特性。

2.实验步骤

1)函数ms_generator(registers,connections)是m序列的生成函

数,其中参数registers给出了移位寄存器的初始状态,connections

给出了m序列的发生器。

functionseq=ms_generator(registers,connections)

registers=[00001];

connections=[100101];

n=length(connections);

L=2^(n-1)-1;

seq

(1)=registers(n-1);

fori=2:

L

sum=0;

form=1:

(n-1)

sum=mod(sum+registers(m)*connections(m+1),2);

end

fork=(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,然后在计算。

functionseq=ms_generator(registers,connections)

registers=[00001];

connections=[100101];

n=length(connections);

L=2^(n-1)-1;

seq

(1)=registers(n-1);

fori=2:

L

sum=0;

form=1:

(n-1)

sum=mod(sum+registers(m)*connections(m+1),2);

end

fork=(n-1):

-1:

2

registers(k)=registers(k-1);

end

registers

(1)=sum;

seq(i)=registers(n-1);

end

functionauto_correlation=auto_corr(seq)

registers=[10000];%设置初始状态

connections=[101001];%设置反馈逻辑

seq=ms_generator(registers,connections);

seq=-1*(seq*2-1);%负逻辑映射

len=length(seq);

temp=[seqseq];

fori=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后在计算。

程序也画出了自相关函数。

functionseq=ms_generator(registers,connections)

%registers=[00001];

%connections=[100101];

n=length(connections);

L=2^(n-1)-1;

seq

(1)=registers(n-1);

fori=2:

L

sum=0;

form=1:

(n-1)

sum=mod(sum+registers(m)*connections(m+1),2);

end

fork=(n-1):

-1:

2

registers(k)=registers(k-1);

end

registers

(1)=sum;

seq(i)=registers(n-1);

end

functionauto_correlation=auto_corr(seq)

registers=[10000];%设置初始状态

connections=[101001];%设置反馈逻辑

seq=ms_generator(registers,connections);

seq=-1*(seq*2-1);%负逻辑映射

len=length(seq);

temp=[seqseq];

fori=0:

len-1

auto_correlation(i+1)=seq*(temp(i+1:

i+len))';

end

auto_correlation

plot(0:

len-1,auto_correlation);

functioncross_correlation=cross_corr(seq1,seq2)

registers1=[00001];%设置初始状态

connections1=[100101];%设置反馈逻辑

seq1=ms_generator(registers1,connections1);

seq1=-1*(seq1*2-1);%负逻辑映射

registers2=[11111];%设置初始状态

connections2=[111101];%设置反馈逻辑

seq2=ms_generator(registers2,connections2);

seq2=-1*(seq2*2-1);%负逻辑映射

temp=[seq2seq2];

len=length(seq2);

fori=0:

len-1

cross_correlation(i+1)=seq1*(temp(i+1:

i+len))';

end

auto_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序列的互相关函数

functionseq=ms_generator(registers,connections)

%registers=[00001];

%connections=[100101];

n=length(connections);

L=2^(n-1)-1;

seq

(1)=registers(n-1);

fori=2:

L

sum=0;

form=1:

(n-1)

sum=mod(sum+registers(m)*connections(m+1),2);

end

fork=(n-1):

-1:

2

registers(k)=registers(k-1);

end

registers

(1)=sum;

seq(i)=registers(n-1);

end

functionauto_correlation=auto_corr(seq)

registers=[10000];%设置初始状态

connections=[101001];%设置反馈逻辑

seq=ms_generator(registers,connections);

seq=-1*(seq*2-1);%负逻辑映射

len=length(seq);

temp=[seqseq];

fori=0:

len-1

auto_correlation(i+1)=seq*(temp(i+1:

i+len))';

end

auto_correlation

plot(0:

len-1,auto_correlation);

functioncross_correlation=cross_corr(seq1,seq2)

registers1=[00001];%设置初始状态

connections1=[100101];%设置反馈逻辑

seq1=ms_generator(registers1,connections1);

seq1=-1*(seq1*2-1);%负逻辑映射

registers2=[11111];%设置初始状态

connections2=[111101];%设置反馈逻辑

seq2=ms_generator(registers2,connections2);

seq2=-1*(seq2*2-1);%负逻辑映射

temp=[seq2seq2];

len=length(seq2);

fori=0:

len-1

cross_correlation(i+1)=seq1*(temp(i+1:

i+len))';

end

auto_correlation=auto_corr(seq1);

plot(0:

len-1,auto_correlation,'-',0:

len-1,cross_correlation);

legend('自相关函数','互相关函数');

xlabel('j');

ylabel('相关函数');

functiongold=gold()

registers1=[100000];

connections1=[1100001];

seq1=ms_generator(registers1,connections1);

registers2=[100000];

connections2=[1110011];

seq2=ms_generator(registers2,connections2);

temp=[seq2seq2];

len=length(seq2);

fori=1:

len

gold(i,:

)=mod(seq1+temp(i:

i+len-1),2);

end

gold(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('相关函数');

运行的结果如下

 

三、实验结果与讨论:

实验心得体会

通过此次实验我学到了如何使用matlab产生伪随机序列,深刻体会了产

生伪随机序列的原理,此次实验较之前的小实验较为综合复杂,同时也

是对之前所学内容的回顾与巩固,在编写程序时也发现了自己之前一些

表达方式掌握不够,将在接下来的实验中进一步巩固

 

实验报告成绩(百分制)__________实验指导教师签字:

__________

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2