首页 > 编程知识 正文

matlab产生阶跃序列,matlab产生m序列函数

时间:2023-05-03 15:31:49 阅读:108264 作者:1866

基于MATLAB的m序列生成与CDMA扩频和解扩实现目录基于MATLAB的m序列生成与CDMA扩频和解扩实现一、什么是m序列? 1.1概念和理解1.2序列的生成条件1.3序列的生成1.4基于MATLAB的m序列的生成2、2、CDMA扩频和解扩2.1直接序列码分多址介绍2.2基于MATLAB的扩频和解扩

一、什么是m系列? 1.1概念和理解m序列采用n级线性移位寄存器的周期为P=2^ n-1,码分多址(CDMA )主要采用周期为P=2^ 15-1的短PN序列和P=2^42-1的长PN序列这两种长度的m序列。

用于随机信号源的伪随机序列发生器。 它也被用于数据加扰和秘密通信领域。

1.2生成序列条件线性移位反馈寄存器能否生成m序列的条件,如下图所示,由其反馈系数Ci决定。

将八进制转换为二进制代入即可。 例如,以m序列的级数n=4为例,其周期为15,反馈系数从23 (八进制)变换为二进制时为10011,因此C0=1,C1=0,C2=0,C3=1,C4=1。 因此,将C1-C4设为0011。

1.3发生m序列以4个阶段的m序列为例,该序列代码发生器如下图所示,假设初始状态X1~X4为0001,另外,由于4个阶段的m序列的反馈系数为23,C1-C4为0011,所以发生定时表如下图所示

可以看出,从初始状态0到时钟14正好是周期15,时钟15是初始0的状态,所以对应的4个阶段的m序列是100010011010111,这产生4个阶段的m序列。 其他类别m序列的生成也是同样的,但是在更高次的m序列中反馈系数的选择不同,得到的m序列也不同。 (随手画的有点丑) ) )。

1.4用MATLAB实现m系列的生成(1)编写mseq函数实现可编程控制器的运行:

function [ mseq ]=mseq [ FB connection ] n=length [ FB connection ]; N=2^n-1; Register=[Zeros(1,n-1 )1] %移位寄存器的初始状态需要修正每次的初始状态mseq(1)=register(n ) n )。 %m序列的第一个输出码元forI=2:nnewregister(1)=mod (FB connection.* register ),2 ); forj=2:nnewRegister(j )=register (j-1 ); 结束; register=newregister; mseq(I )=register(n ) n; end调用该函数,输出即可:

mesq=mseq([001]; %从左到右,C1 C2 C3等mseq函数参数对m序列的反馈系数为二进制plot(mesq ) axis ([ 015,01.5 ] ); 模拟图如下。

模拟结果与计算结果一致,产生了m序列。

二、二、CDMA扩频和解扩的2.1直接序列码分多址介绍了需要传输的具有一定带宽的信号,利用另一个带宽远大于信号带宽的高速伪随机码进行调制,对原始数据信号的带宽进行扩频,即扩展。 接收端使用完全相同的伪随机码与接收到的信号进行相关处理,将宽带信号变换为原始的窄带信号,即解扩,实现信息通信。 这次使用的伪随机码是m系列码。

在进行扩频解扩操作之前编写并调用各模块的函数。

2.2通过MATLAB实现扩散和扩散(1) suiji.m (为了随机生成用户的信息信号) ) ) ) )。

function[x]=suiji(L ) x=rand(1) 1,l ); x(find ) x0.5 ) )=-1; x(find(x=0.5 ) )=1; end(2) de_mod.m (用于进行用户信息信号的扩展) )。

%参数c是要使用的伪随机码%参数x是输入的信息信号%参数y是获得的扩展后的信号functiony=ds_mod(c,x ) tmp=c*x; y=tmp(3360; end(3) de_demod.m (为了进行扩频信号解扩) ) ) ) ) )。

%参数c是要使用的伪随机码%参数y是扩展信息信号%参数y是获得的解扩展后的信号functionx=ds_demod(c,y ) tmp=reshape(y,length ) c ) x=tmp*c; x=x '; end(4) main.m (为了进行实现扩频解扩的操作) ) ) ) ) )。

clc; clear all; n=4; %是以周期15序列进行扩频和频率分解的x_num=10; %传输信息符号数量x=suiji(x_num ); %生成随机数subplot(X(411 ) plot ) x )的title (原始信息); c=mseq([001 ); %从左到右,用于m序列的mseq函数参数(诸如C1 C2 C3 )的反馈系数23变成二进制初始值X1X2X3X4,分别是0001 (412 ) y=ds_mod ) : ),x ) %扩频plot(y ); title (扩频后信息信号); subplot(413 ) Y_AWGN=awgn(Y ) y,1 ); plot(y_awgn; title (加性高斯白噪声扩频信号); x_result=ds_demod(c(: ),Y_AWGN ); x_result(find ) x_result=0) )=1; x_result(find ) x_result0) )=-1; subplot(414 ) plot (x _ result ); title (扩展解除后的信息); 作为伪随机码,使用周期为15的m序列进行调制后的结果,模拟图示于图。

总结:从仿真图中可以看出,原始信号经扩频后长度扩大了15倍,倍数是周期,加了AWGN后,扩频信号变得很难辨别,但通过m序列的调制,发送与接收端用m序列进行调制,最终解扩后得到了原始的窄带信号,故实现了信息通信。

各位同学读完文章觉得有用的话,一键三连支持一波哈!!!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。