直接序列扩频Matlab程序

合集下载

直接序列扩频系统matlab仿真

直接序列扩频系统matlab仿真

直接序列扩频通信系统仿真一、实验的背景及内容1、直接扩频通信的背景扩频通信,即扩展频谱通信(Spread Spectrum Communication),它与光纤通信、卫星通信,一同被誉为进入信息时代的三大高技术通信传输方式。

有关扩频通信技术的观点是在1941年由好莱坞女演员Hedy Lamarr和钢琴家George Antheil提出的。

基于对鱼雷控制的安全无线通信的思路,他们申请了美国专利#2.292.387[1]。

不幸的是,当时该技术并没有引起美国军方的重视,直到十九世纪八十年代才引起关注,将它用于敌对环境中的无线通信系统。

解决了短距离数据收发信机、如:卫星定位系统(GPS)、移动通信系统、WLAN(IEEE802.11a, IEEE802.11b, IEE802.11g)和蓝牙技术等应用的关键问题。

扩频技术也为提高无线电频率的利用率(无线电频谱是有限的因此也是一种昂贵的资源)提供帮助。

扩频通信技术自50年代中期美国军方便开始研究,一直为军事通信所独占,广泛应用于军事通信、电子对抗以及导航、测量等各个领域。

直到80年代初才被应用于民用通信领域。

为了满足日益增长的民用通信容量的需求和有效地利用频谱资源,各国都纷纷提出在数字峰窝移动通信、卫星移动通信和未来的个人通信中采用扩频技术,扩频技术现已广泛应用于蜂窝电话、无绳电话、微波通信、无线数据通信、遥测、监控、报警等等的系统中。

2、实验的内容及意义本次实验主要研究了直接序列扩频系统,建立了直接序列扩频系统的matlab仿真模型,在信道中存在高斯白噪声和干扰的情况下,对系统的在不同扩频增益下的误码率性能进行了仿真及分析。

近年来,随着超大规模集成电路技术、微处理器技术的飞速发展,以及一些新型元器件的应用,扩频通信在技术上已迈上了一个新的台阶,不仅在军事通信中占有重要地位,而且正迅速地渗透到了个人通信和计算机通信等民用领域,成为新世纪最有潜力的通信技术之一因此研究扩频通信具有很深远的意义。

直接序列扩频通信系统与MATLAB仿真

直接序列扩频通信系统与MATLAB仿真

直接序列扩频通信系统与MATLAB仿真摘要:扩频通信系统具有的较强的抗干扰能力,保密性好、易于实现多址保密通信等特点,正从军事应用向民用通信发展。

本文主要介绍了直接序列扩频系统的模型,并利用MATLAB对直扩系统实现仿真。

关键词:扩频通信系统;直接序列扩频;伪随机码;仿真0引言扩频通信(即扩展频谱通信),一般是指用比信号带宽宽得多的频带宽度来传输信息的技术。

随着通信容量的不断增加,频率资源愈发紧张,为了缓解这一突出问题,通常在窄带通信系统中,主要是通过频率划分来防止各信道之间的干扰。

但是,随着扩频通信的研究和运用,由于其对接收端要求强相关性,使得频率可以重复使用,提高了频率利用率。

同时扩频通信的抗干扰能力强,现在已经广泛应用于移动电话、无线电微波通信、无线数据通信、跟踪和报警等系统中。

1扩频通信的理论基础信息论中关于信息容量的仙农(Shannon)公式为其中C为信道容量;W为信号频带宽度;S/N为信噪比。

由式1可得到以下结论:在信道容量C不变的条件下,可用不同带宽W和信噪比S/N组合来传输。

即可以通过增加信号带宽,实现在比较低的信噪比下传送信息。

这样使得有用信号的功率接近噪声的功率甚至淹没在噪声之下,从而具有很好的隐蔽性。

扩频通信就是用扩展频谱来换取信噪比要求的降低,这正是扩频通信的主要特点和理论依据。

扩频通信从早期用于军事保密通信,到现在广泛用于民用通信系统中,并成为现代通信主要发展的方向,是因为它具有窄带通信系统无法比拟的优良性能。

1)抗干扰性强,误码率较低。

接收机必须采用相关检测才能对PN码相同的扩频信号进行解扩,同频信号或其他干扰经解扩后,带宽被展宽,具有良好的抑制能力。

因此误码率也比较低,一般可低于l0-10,完全能满足国内相关系统对通道传输质量的要求。

2)可以实现码分多址。

因为在扩频通信中是采用扩频码序进行扩频调制,可以利用不同的扩频码序列之间较强的自相关性和较弱的互相关性,在接收端利用相关检测技术进行解扩。

基于matlab的直序扩频通信系统的仿真设计

基于matlab的直序扩频通信系统的仿真设计

基于matlab的直序扩频通信系统的仿真摘要根据扩频理论,用MATLAB对直接序列扩频通信系统进行了仿真。

根据香农定理和科捷尔尼科夫潜在抗干扰理论,通过MATLAB的仿真平台对直扩通信系统进行了仿真,建立了扩频通信系统仿真模型,详细讲述了各个模块的设计,接收端同步捕获过程采用数字匹配滤波器的原理。

在给定的仿真条件下,对仿真程序进行了运行测试,得到了预期的仿真结果。

关键词:直接序列扩频;通信;MATLABDirect sequence spread spectrum communication system basedon matlab simulationAbstractIn this paper, based on the spread spectrum theory, I use MATLAB to simulate the direct sequence spread spectrum.According to the shannon theorem and jie's nico's potential interference theory, direct sequence spread spectrum is simulated by the simulation platform which is offered by MATLAB. And it tells the story of the design of various modules in detail. The receiver synchronization capture process adopts the principle of digital matched filter. In a given simulation conditions, I run the test simulation program and get the expectant simulation results.Key Words:direct sequence spread spectrum, communication, MATLAB目录1绪论31.1 扩频通信的概述31.2扩频通信的发展与应用32 直接序列扩频通信52.1理论基础52.2扩频通信系统的指标62.3扩频通信的种类72.4直接序列扩频通信系统72.5 扩频序列122.6 扩频序列的同步捕获162.6.1 扩频序列的伪码同步162.6.2 扩频序列的同步捕获173 直接扩频系统MATLAB仿真263.1 直接扩频MATLAB仿真组成框图263.2 m序列发生器263.3 高斯噪声263.4干扰和解扩判决273.5仿真结果分析273.6实验心得29附录29参考文献32致331 绪论1.1 扩频通信的概述扩频通信与光纤通信、卫星通信一同被誉为进入信息时代的三大高技术通信传输方式,它是指发送的信息被展宽到一个很宽的频带上,在接收端通过相关接收,将信号恢复到信息带宽的一种系统[1]。

直接序列扩频系统抗同频干扰的MATLAB仿真8.29(可靠性分析12月)

直接序列扩频系统抗同频干扰的MATLAB仿真8.29(可靠性分析12月)

直接序列扩频系统抗同频干扰的MATLAB仿真Simulation of DSSS System with Co-Channel Interference byMATLAB陈吉文,郭伟(西安电子科技大学机电工程学院,陕西西安710071)Chen Ji-wen, Guo Wei(Mechanical-electronic Engineering Institue,Xi’dian University, Shanxi Xi’an 710071)摘要:文中介绍了同频干扰和扩展频谱通信技术,利用MATLAB提供的可视化工具Simulink建立了同频干扰下直接序列扩频通信系统的模型,详细说明了各模块的设计。

在给定仿真条件下,运行了仿真模型,得到了预期的仿真结果,验证了该系统的可行性以及在实际工程中的应用价值。

关键词:同频干扰;直接序列扩频系统; MATLAB;仿真中图分类号:TN914.4 文献标识码:B 文章编号:Abstract:The theory of the Co-Channel Interference and spread spectrum communication technology were introduced in this paper, the simulation model of DSSS (Direct Sequence Spread Spectrum) communication system with Co-Channel Interference was built by using SIMULINK,a visible tool provided by MATLAB, and each module was introduced in detail. With the designed simulation conditions, the simulation model was run and the anticipant results were gained, by which the feasibility and application value in actual engineering of the system was verified.Key words:Co-Channel Interference;DSSS; MATLAB; simulationCLC number: Document code: B Article ID:1 引言在实际的工程应用中有时需要改进传统的扩频系统,重新设计符合工程要求的扩频系统。

直接扩频系统的MATLAB仿真

直接扩频系统的MATLAB仿真

扩频通信系统
• 扩频通信的基本特点,是传输信号所占用的频带 宽度(W)远大于原始信息本身实际所需的最小(有 效)带宽(F),其比值称为处理增益Gp。 • 扩频通信的可行性,是从信息论和抗干扰理论的 基本公式中引伸而来的。信息论中关于信息容量 的香农(Shannon)公式为:
C WLong
2
(1 P / N )
请老师批评指正!
答辩结束
直接扩频系统的MATLAB仿真
• 解扩后的数据
致谢
• 毕设期间我遇到很多问题,在此,很感谢老师同 学们给予我各方面的帮助,特别要感谢我的指导 老师,王鲁杰老师,王老师的细心和认真的工作 态度是值得我们每个人学习的,从开题到现在, 在王老师的指导下,我懂得了太多东西,相信这 些在我今后的学习生活中都有着非常重要的意义。 • 另外虽然本次设计基本顺利完成,但是其中任然 存在很多问题,还望老师体谅。
• 式中: C --- 信道容量(用传输速率度量) W --- 信号频带宽度 P --- 信号功率 N --- 白噪声功率
扩频通信系统
• 扩频通信的主要特点: 1. 抗干扰性强,误码率低 2. 易于同频使用,提高了无线频谱利用率 3. 抗多径干扰;可以实现码分多址 4. 隐蔽性好,对各种窄带通信系统的干扰很小 5. 扩频通信自身具有加密功能,保密性强,便于开 展各种通信业务 6. 扩频通信安装简便,易于维护,也十分小巧可靠, 便于安装,便于扩展 7. 扩频设备一般采用积木式结构,组网方式灵活, 方便统一规划,分期实施,利于扩容。
论文主要内容
• 论文主要内容可分为以下几点:
1. MATLAB仿真工具
2. 扩频通信系统
3. 直接序列扩频通信系统
4. 直接扩频系统的MATLAB仿真

直接序列扩频通信的MATLAB仿真研究

直接序列扩频通信的MATLAB仿真研究

图 3(f)BPSK 解调波形
图 2 Monte Carlo 仿真模型 在直扩系统中,采用 MATLAB 工具箱中的伪随机序列函数来生成 伪随机码序列。此中的 PN 码是具有多个码位的 0,1 序列,它们是经过 严格挑选的,具有良好的自相关性,但彼此之间却近似是相互正交,与 线性无关,在众多码型中,它们很容易识别出与自己相同的码型,而不 容易与其它码型混淆。利用在发射机中 PN 序列,将窄带的信息序列扩
科技信息
直接序列扩频通信的 MATLAB 仿真研究
海南省海军 4802 工厂遥监控中心 郭世璞
[摘 要]扩频通信是现代通信系统中新的通信方式,它具有较强的抗干扰、抗衰落和抗多径性能,频谱利用率高的特点。直序扩频 通信系统因其抗干扰性好、隐蔽性好、直扩通信速率高、有很强的保密性能等优点被广泛的应用。本文以扩频通信理论为基础,用 MATLAB 工具箱中的 Simulink 通信仿真模块和 MATLAB 函数对直接序列扩频通信系统进行了仿真分析,在给定条件下运行了仿真 程序,得到了预期的结果。 [关键词]扩频通信 直接扩频 MATLAB Simulink
展为宽带信号送入信道传输,在接收端将接收的宽带信号与发送端同 步的 PN 序列相乘,解扩出窄带的信息序列,而各种干扰信号被与 PN 序 列的相乘处理扩展为宽带形式,最终将干扰信号的能量削弱 W R 倍。在调制器中,信息序列的带宽扩展为 W = BC ,由于传输中普遍存 在干扰,因此在仿真时必须考虑到干扰信号对判决器判决结果的影 响。假设在信号传输过程中受到干扰信号为余弦形式作用,则该信号 电流为 i(t) = Aj cos(2πfjt) ,式中: fj 为发送信号带宽内的干扰频率。 i(t) 与 c(t) 相乘使余弦形式的干扰变为宽带干扰,其能量谱密度为 J0 = Pj/W ,式中: Pj = Aj2/2 为干扰信号的平均能量。 为了更直观地

matlab扩频通信仿真代码

matlab扩频通信仿真代码

《MATLAB扩频通信仿真代码探究》一、概述MATLAB是一种功能强大的数学软件工具,广泛应用于科学和工程领域。

扩频通信是一种在通信系统中应用较多的技术,能够提高通信系统的安全性和抗干扰性。

本文将就MATLAB中扩频通信仿真代码进行探究,以了解其原理和实现。

二、扩频通信技术简介扩频通信是通过在发送端用高速码对数据进行调制,从而增大信号带宽,提高信噪比,以实现更可靠的数据传输。

在接收端,可以利用相同的高速码进行解调,将信号还原为原始数据。

扩频通信技术包括直接序列扩频(DSSS)和正交频分复用(OFDM)等多种方式。

三、MATLAB中的扩频通信仿真代码在MATLAB中,可以利用其丰富的工具箱和函数库,快速实现扩频通信系统的仿真。

通过编写相应的代码,可以模拟扩频通信系统中的传输、接收、信道建模等过程,对系统性能进行评估和优化。

我们需要定义扩频序列,可以选择PN序列或者其他扩频序列。

在发送端,利用扩频序列对数据进行调制,形成扩频信号。

接下来,在信道模型中加入噪声和干扰,模拟真实通信环境。

在接收端,利用相同的扩频序列进行解调,将信号恢复为原始数据。

通过仿真可以得到系统的误码率、传输速率、抗干扰性等性能参数,对系统进行优化和改进。

四、个人观点和理解扩频通信技术在现代通信系统中起着重要作用,其在军事通信、无线网络、卫星通信等领域有着广泛的应用。

利用MATLAB的强大功能,可以快速进行扩频通信系统的仿真和分析,为工程实践提供重要参考。

通过深入学习和探究MATLAB中的扩频通信仿真代码,可以更好地理解扩频通信技术的原理和实现方法,为相关领域的研究和开发提供有力支持。

在总结回顾本文内容时,我们了解了MATLAB中扩频通信仿真代码的实现原理和应用。

通过对扩频通信技术的深入学习和实践,可以更好地掌握通信系统的设计和优化方法,为信息通信领域的发展贡献力量。

总结:通过对MATLAB扩频通信仿真代码的探究,我们深刻理解了扩频通信技术的原理和实现方法,并认识到MATLAB在通信系统仿真中的重要作用。

直接序列扩频和解扩通信matlab代码

直接序列扩频和解扩通信matlab代码

序列扩频和解扩通信是数字通信中的重要技术之一,通过扩频技术可以实现信息的加密传输和抗干扰能力的提高。

Matlab是一种强大的科学计算软件,它提供了丰富的工具和函数,非常适合用来实现序列扩频和解扩通信系统的模拟和仿真。

本文将通过实际的代码示例,介绍如何使用Matlab实现直接序列扩频和解扩通信系统。

一、直接序列扩频通信系统在直接序列扩频通信系统中,发送端的数据序列经过扩频码序列的点对点乘积,实现信号的扩频。

接收端利用相同的扩频码序列对接收到的信号进行点对点乘积,实现信号的解扩。

以下是Matlab代码示例:1. 生成随机的发送数据序列```matlabN = 1000; 数据序列长度data = randi([0,1],1,N); 生成随机的0/1序列```2. 生成随机的扩频码序列```matlabchip_seq = 2 * randi([0,1],1,N) - 1; 生成随机的±1序列作为扩频码```3. 进行数据序列和扩频码序列的点对点乘积```matlabspread_data = data .* chip_seq; 数据序列点对点乘以扩频码序列```4. 绘制发送端的信号波形```matlabt = 0 : 1/N : 1-1/N; 时间序列subplot(3,1,1);plot(t,data);title('原始数据序列');subplot(3,1,2);plot(t,chip_seq);title('扩频码序列');subplot(3,1,3);plot(t,spread_data);title('扩频后的信号波形');```二、直接序列解扩通信系统在直接序列解扩通信系统中,接收端利用与发送端相同的扩频码序列对接收到的信号进行解扩。

以下是Matlab代码示例:1. 接收到的扩频信号经过与扩频码序列的点对点乘积```matlabreceived_data = spread_data .* chip_seq; 接收到的信号点对点乘以扩频码序列```2. 进行积分处理得到解扩后的数据序列```matlabintegrated_data = sum(reshape(received_data,[],10)); 对接收数据进行10倍超采样和积分处理output_data = integrated_data > 0; 得到解扩后的数据序列```3. 绘制接收端的信号波形和解扩后的数据序列```matlabsubplot(2,1,1);plot(t,received_data);title('接收到的信号波形');subplot(2,1,2);stem(output_data);title('解扩后的数据序列');```通过以上代码示例,我们实现了直接序列扩频和解扩通信系统的Matlab仿真。

基于matlab的直接序列扩频通信系统仿真

基于matlab的直接序列扩频通信系统仿真

基于matlab的直接序列扩频通信系统仿真基于MATLAB的直接序列扩频通信系统仿真1.实验原理:直接序列扩频(DSSS)是直接利用具有高码率的扩频码系列采用各种调制方式在发端与扩展信号的频谱,而在收端,用相同的扩频码序去进行解扩,把扩展宽的扩频信号还原成原始的信息。

它是一种数字调制方法,具体说,就是将信源与一定的PN码(伪噪声码)进行摸二加。

例如说在发射端将"1"用11000100110,而将"0"用00110010110去代替,这个过程就实现了扩频,而在接收机处只要把收到的序列是11000100110就恢复成"1"是00110010110就恢复成"0",这就是解扩。

这样信源速率就被提高了11倍,同时也使处理增益达到 10DB以上,从而有效地提高了整机倍噪比。

1.1 直扩系统模型直接序列扩频系统是将要发送的信息用伪随机码(PN码)扩展到一个很宽的频带上去,在接收端用与发送端相同的伪随机码对接收到的扩频信号进行相关处理,恢复出发送的信号。

对干扰信号而言,与伪随机码不相关,在接收端被扩展,使落入信号通频带内的干扰信号功率大大降低,从而提高了相关的输出信噪比,达到了抗干扰的目的。

直扩系统一般采用频率调制或相位调制的方式来进行数据调制,在码分多址通信中,其调制多采用BPSK、DPSK、QPSK、MPSK 等方式,本实验中采取BPSK方式。

直扩系统的组成如图1所示,与信源输出的信号a(t)是码元持续时间为Ta的信息流,伪随机码产生器产生伪随机码c(t),每个伪随机码的码元宽度为Tc (Tc<<Ta)。

将信息码与伪随机码进行相乘或模二加,产生一速率与伪随机码速率相同的扩频序列,这时信息带宽已经被展宽(如图2b),然后用扩频序列去调制载波,则信号频谱被搬移到射频上(如图2c )。

在接收端,接收到的信号经混频后,用与发射同步的伪随机码对中频信号进行相关解扩,将信号的频带恢复为信息的频带,然后再进行解调,恢复出所传送的信息a(t)。

基于matlab的直接序列扩频通信系统仿真1

基于matlab的直接序列扩频通信系统仿真1

基于直接扩频序列技术的BPSK系统的仿真设计报告摘要:本文首先介绍了直接序列扩频系统的模型,然后概要阐述了常用的伪随机码以及扩频技术的优点,最后利用MATLAB对BPSK直扩系统进行了仿真。

关键词:直接序列扩频;伪随机码;BPSK;仿真1 引言扩频技术是扩展频谱通信(SSC—Spread Spectrum Communication)的简称,它是随着在军事通信中的应用发展起来的,由于其具有其它一般通信方式不具备的抗于扰强,抗多径衰落好,保密性好等一系列的优点,因此近年来它在民用通信中的应用也开始越来越受到人们的重视。

这次主要研究扩频通信系统中常用直接扩频序列技术的BPSK系统调制方式。

2 直接序列扩频系统直接序列扩频系统又称为直接序列调制系统或伪噪声系统(PN系统),简称为直扩系统,是目前应用较为广泛的一种扩展频谱系统。

人们对直扩系统的研究最早,如美军的国防卫星通信系统(AN-VSC-28)、全球定位系统(GPS)、航天飞机通信用的跟踪和数据中继卫星系统(TDRSS)等都是直扩技术应用的实例。

2.1直扩系统模型直接序列扩频系统是将要发送的信息用伪随机码(PN码)扩展到一个很宽的频带上去,在接收端用与发送端相同的伪随机码对接收到的扩频信号进行相关处理,恢复出发送的信号。

对干扰信号而言,与伪随机码不相关,在接收端被扩展,使落入信号通频带内的干扰信号功率大大降低,从而提高了相关的输出信噪比,达到了抗干扰的目的。

直扩系统一般采用频率调制或相位调制的方式来进行数据调制,在码分多址通信中,其调制多采用BPSK、DPSK、QPSK、MPSK等方式。

直扩系统的组成如图1所示,与信源输出的信号a(t)是码元持续时间为Ta的信息流,伪随机码产生器产生伪随机码c(t),每个伪随机码的码元宽度为Tc (Tc<<Ta)。

将信息码与伪随机码进行相乘或模二加,产生一速率与伪随机码速率相同的扩频序列,这时信息带宽已经被展宽(如图2b),然后用扩频序列去调制载波,则信号频谱被搬移到射频上(如图2c )。

直接序列扩频通信系统的MATLAB仿真毕业论文

直接序列扩频通信系统的MATLAB仿真毕业论文

直接序列扩频通信系统的MATLAB仿真毕业论文摘要直接扩频序列调制是用速率很高的伪噪声码序列与信息码序列模二相加后(波形相乘)得带复合码序列,用复合码序列去制载波相位,从而获得直接扩频序列信号的。

直接扩频通信具有低截获概率、抗干扰能力强以及易于实现码分多址等优点,在抗干扰通信及民用移动通信中都得到了广泛的应用。

先阐述了扩频通信的基本原理、主要性能指标及其工作特点,然后根据香农定理在抗下扰理论,借助工具箱和仿真算法,建立了直接序列扩频通信系统仿真模型。

通过分析无干扰时的误码率仿真曲线与理论计算值,证明了所建仿真模型的正确性。

在MATLAB程序仿真部分,主要分为6大部分,分别为主函数,发送模块,接收模块,AWNG信道,Walsh函数和差错计数器。

通过主函数对各个子函数的调用,实现4个用户的随机数据的发送和接收,同时生成前4个用户在整个传输过程中的各种波形变化图,并对系统信噪比与误码率关系进行分析。

扩频通信是通信的一个重要分支和信道通信系统的发展方向。

扩频技术具有抗干扰能力强,保密性好,易于实现多址通信等优点,因此该技术越来越受到人们的重视,这也是选择本次课题研究的原因所在。

关键词:直接序列扩频信号,通信,MATLABABSTRACTDirect-sequence spread spectrum transmitters (DS-SS) use a periodical pseudo-random sequence (PN sequence) to modulate the baseband signal,and exploit the modulated signal to control the phase of carrier wave. Because DS signals show many advantages such as anti-jamming capability. low probability of interception. multiple access capability and so on. direct sequence spread spectrum signals have been widely applied for secure communications and mobile communications known as Code Division Multiple Access System.This thesis expounds the basic principles of spread spectrum communication, and then article mainly acts according to the Shannon theorem.with the aid of matlab toolbox. it has established the direct sequence spread spectrum communications system simulation model which does not have when the disturbance through the analysis corror rate simulation curve and theory predicted value, had proven constructs the simulation model the accuracy.In the MATLAB simulation part, mainly divides into six parts, respectively is given priority to function, sending module, receiving module, AWNG channel, Walsh function and error counter. Through the main function of each function call, realize four user random data sending and receiving, at the same time generate before four users throughout the various waveform variation in the process of transmission, and the relationship between signal to noise ratio and bit error rate of the system were analyzed.Spread spectrum communication is an important branch of communication and channel development direction of communication system. Spread spectrum technology has the features such as strong anti-jamming capability, the secrecy good, the advantages of easy to realize multiple access communication, therefore the technology more and more get the attention of people, this is also why choose this topic research.第一章绪论人类社会进入到了信息社会,通信现代化是人类社会进入信息时代的重要标志。

直接序列扩频DSSS系统及其MATLAB仿真

直接序列扩频DSSS系统及其MATLAB仿真
A 理工科 研
直接序 列扩频 D S S S系统及其 MA L B仿真 TA
叶培 毅
( 东华 大 学
中图分 类号 : N9 T 文献标识码 : A
上海
210 ) O83
文章编号 :6 2 7 9 ( 0 9) 5 2 2 0 1 7— 8 4 2 0 0 — 6— 1


扩频通信 系统是指 待传 输 的信息 的频谱用某个特定
的抗干扰 的能力 。然而 , 扩频 系统护的干扰抑制 能力总是有限的。
满 足不 了社会 的需求。在 窄带通信 中, 主要依 靠波道划分来防止信 道之间发生干扰。扩频通信发送功率极低( 6 O , 了相关 1 5 m 采用 — 接收技术 , 且可工作在信道噪声和热噪声背景 中, 易于在同一地区 重复使用 同一频率 , 也可与现今各种 窄带通信共享同一频率资源 。
参 考 文献
【】 l 张玲华, 玉. 郑宝 随机信号处理 E 清华大学出版社, 0 : 3 京: 2 3 0. O 2 【1 2 查光明, 熊贤柞. 扩频通信. : 西安 西安电子科技大学出版社, 9: 3 . 1 o 一5 9 l
端的 P N序列发生 器产生的与之同步的 Pቤተ መጻሕፍቲ ባይዱN序列相乘。 过程被称 此
32 抗 干扰 性 强 。 码 率 低 . 误
在实际的扩频通信 中存 在着大量的干扰 因素 ,若扩频增益不够大 或扩频技术 主要用 于实现多址时 ,若不采用其 他途 径对窄带干扰 进行抑 制 , 将会大 大影响 系统的性 能 , 导致 系统容量大 幅度减少 , 所 以必须在接收机中采用专门的干扰抑 制技术 。 直接序列扩频通信 系统 中的窄带干扰抵 消技术 ,主要有时域 自 适应滤波技术 和变换 域抵消技术等 。现代 军事通信面临着纷繁 复杂 的干扰环境 , 因此具备足够 的抗干扰能力 , 是未来通信发展至 关重要 的因素 , 这要求能够识别和抑制各种干扰。扩频通信早期主 要应 用于军事 目的 , 从世 纪年代末 、 年代初 开始 , 扩频 技术在 民用

直接扩频Matlab仿真实验报告m序列

直接扩频Matlab仿真实验报告m序列

西 安 邮 电 大 学实验名称:基于Matlab 直接序列扩频系统性能仿真一、 实验目的通过仿真,进一步掌握m 序列产生方法及其性能,重点掌握直接序列扩频通信系统原理及性能。

二、 实验环境Win10 Matlab2015b三、 实验内容● 产生n=7时203对应的m 序列,并给出其NRZ 波形的自相关函数;● 选用相位差16个码片的两条序列兼做地址和扩频码,构造码分系统,仿真其通信原理;●仿真AWGN 和单频干扰下系统的BER 性能。

四、 实验原理扩频通信的可行性是从香农公式引申而来2log (1+S/N)C W其中,C 为系统信道容量(bit/s );W 为系统信道带宽;N 为噪声功率S 为信号功率。

由上式可以看出,可以从两种途径提高信道容量C ,即加大带宽W 或提高信噪比S/N 。

也就是说当信道容量C 一定时,信道带宽W 和信噪比S/N 是可以互换的,增加带宽可以降低对信噪比的要求,可以使有用信号的功率接近甚至湮没在噪声功率之下。

扩频通信就是通过增加带宽来换取较低的信噪比,这就是扩频通信的基本思想和理论依据。

当信噪比无法提高时,可以加大带宽,达到提高信道容量的目的。

直接序列扩频的原理是,在发射端把有用信号与伪随机序列相乘(或者模二加),使信号的频谱展宽到一个很宽的范围,然后用扩展后的序列去调制载波。

在接收端,把接收到的信号用相同的伪随机序列相乘,有用信号与伪随机码相关,相乘后恢复为扩频前的信号。

输入的数据信息为d(t)(设基带带宽为B 1),由伪随机编码(如m 序列)调制成基带带宽为B 2的宽带信号,由于扩频信号带宽大于数据信号带宽,所以信号扩展的带宽由伪随机码控制,而与数据信号无关。

经扩频调制的信号再经射频调制后即可发送。

直扩系统的原理框图接收端收到发送来的信号,经混频得到中频信号后,首先通过同步电路捕捉并跟踪发端伪码的准确相位,由此产生与发端伪码相位完全一致的伪随机码作为扩频解扩的本地扩频码,再与中频信号进行相关解扩,恢复出扩频前的窄带信号,而在解扩处理中,干扰和噪声与伪随机码不相关故被扩展,通过滤波使之受到抑制,这样就可在较高的解扩输出信噪比条件下进行信息解调解码,最终获得信息数据。

基于matlab的直接序列扩频通信设计

基于matlab的直接序列扩频通信设计

兰州理工大学计算机与通信学院2010年秋季学期移动通信课程设计题目:基于MATLAB的Walsh函数的产生专业班级:通信工程07级(2)班姓名:王旭东学号: 07250229 指导教师:贾科军成绩:摘要本文研究的是基于MATLAB的扩频通信系统设计。

为我们介绍了扩频通信系统的基本原理,并对扩频系统的各个重要模块进行详细的理论介绍,如Walsh函数的产生及其特性,BPSK的调制和解调方法,以及高斯加性白噪声AWNG的特点等等。

所有的理论依据为后续的MATLAB程序仿真奠定基础。

在MATLAB程序仿真部分,主要分为6大部分,分别为主函数,发送模块,接收模块,AWNG信道,Walsh函数和差错计数器。

通过主函数对各个子函数的调用,实现4个用户的随机数据的发送和接收,同时生成前4个用户在整个传输过程中的各种波形变化图,并对系统信噪比与误码率关系进行分析。

扩频通信是通信的一个重要分支和信道通信系统的发展方向。

扩频技术具有抗干扰能力强,保密性好,易于实现多址通信等优点,因此该技术越来越受到人们的重视,这也是选择本次课题研究的原因所在。

关键词: 扩频; walsh;MATLAB;目录1扩频通信的基本原理 (1) (1) (2)1.3 WALSH函数 (2)1.4 BPSK (3)高斯加性白噪声(AWNG) (3)2 MATLAB仿真 (4) (4)程序模块 (4)3仿真结果分析 (11) (11) (11)问题的分析和解决 (12)4仿真程序 (13)5课程设计心得 (21)Abstract (22)参考文献 (23)1.扩频通信的基本原理[1][1]所谓扩展频谱通信,可简单表述如下:“扩频通信技术是一种信息传输方式,其信号所占有的频带宽度远大于所传信息必需的最小带宽;频带的扩展是通过一个独立的码序列来完成,用编码及调制的方法来实现的,与所传信息数据无关;在接收端则用同样的码进行相关同步接收、解扩及恢复所传信息数据”。

实验七 直接序列扩频系统仿真

实验七  直接序列扩频系统仿真

实验七直接序列扩频系统(扩频部分)仿真(一)实验目的直接序列扩频通信系统(DSSS)是目前应用最为广泛的系统。

在发送端,直扩系统将发送序列用伪随机序列扩展到一个很宽的频带上去,在接受端又用相同的扩频序列进行解扩,回复出原有信息。

由于干扰信息与伪随机序列不相关,扩频后能够使窄带干扰得到有效的抑制,提高输出信噪比。

系统框图如下图所示:本次实验只要求完成扩频编码部分,信号在信道的传输以及在接收端的解扩部分作为课后同学们自己学习。

(二)实验设备计算机,Matlab软件(三)实验要求本实验属于设计实验,请根据(四)实验内容的步骤,附上实验程序和仿真结果图。

请在页眉处填写班级、学号、姓名,并将实验报告命名为“实验七_学号_姓名”,并通过FTP上传至指定文件夹。

(四)实验内容1)设计一个7位双极性的m序列。

(参照前面做的实验四)2)设计一个5位随机的待发送的二进制序列。

3)利用产生的7位双极性m序列对待发送的二进制序列进行扩频,画出扩频前原始信号和扩频后的信号。

图1 基本扩频系统(扩频部分)仿真流程图1、生成m序列(请参照实验四)采用n=3级的移位寄存器产生7位长的m序列,移位寄存器结构如图1:图1 移位寄存器结构各寄存器初值分别为[1 1 1],参照该移位寄存器的结构图和表1,用Matlab 语言编写程序,生成m序列。

表1D1 D2 D31 0 0 1 0 1 1 11111111扩频序列5位随机二进制比特7位双极性m序列D1 D2 D3+时钟脉冲输出- 2 -7位单极性m序列程序参考程序如下Function m=my_m()clear all;clc;D1=1;D2=1;D3=1;N=7;m=zeros(1,N);for i=1:Nm(i)=D3;D1old=D1;D1=xor(D2,D3);D3=D2;D2=D1old;endstem(m);ylabel('m 序列');title('移位寄存器产生的7位M序列');end请自己编写程序生成初始状态为[0 0 1]的7位双极性的m序列,提示:请在7位单极性的m序列的程序基础上修改。

直接序列扩频系统MATLAB仿真(BPSK调制)

直接序列扩频系统MATLAB仿真(BPSK调制)

目录一、背景 (4)二、基本要求 (4)三、设计概述 (4)四、Matlab设计流程图 (5)五、Matlab程序及仿真结果图 (6)1、生成m序列及m序列性质 (6)2、生成50位随机待发送二进制比特序列,并进行扩频编码 (7)3、对扩频前后信号进行BPSK调制,观察其时域波形 (9)4、计算并观察扩频前后BPSK调制信号的频谱 (10)5、仿真经awgn信道传输后,扩频前后信号时域及频域的变化 (11)6、对比经信道前后两种信号的频谱变化 (12)7、接收机与本地恢复载波相乘,观察仿真时域波形 (14)8、与恢复载波相乘后,观察其频谱变化 (15)9、仿真观察信号经凯萨尔窗低通滤波后的频谱 (16)10、观察经过低通滤波器后无扩频与扩频系统的时域波形 (17)11、对扩频系统进行解扩,观察其时域频域 (18)12、比较扩频系统解扩前后信号带宽 (19)13、比较解扩前后信号功率谱密度 (20)14、对解扩信号进行采样、判决 (21)15、在信道中加入2040~2050Hz窄带强干扰并乘以恢复载波 (24)16、对加窄带干扰的信号进行低通滤波并解扩 (25)17、比较解扩后信号与窄带强干扰的功率谱 (27)六、误码率simulink仿真 (28)1、直接扩频系统信道模型 (28)2、加窄带干扰的直扩系统建模 (29)3、用示波器观察发送码字及解扩后码字 (30)4、直接扩频系统与无扩频系统的误码率比较 (31)5、不同扩频序列长度下的误码率比较 (32)6、扩频序列长度N=7时,不同强度窄带干扰下的误码率比较 (33)七、利用Walsh码实现码分多址技术 (34)1、产生改善的walsh码 (35)2、产生两路不同的信息序列 (36)3、用两个沃尔什码分别调制两路信号 (38)4、两路信号相加,并进行BPSK调制 (39)5、观察调制信号频谱,并经awgn信道加高斯白噪和窄带强干扰.. 406、接收机信号乘以恢复载波,观察时域和频域 (42)7、信号经凯萨尔窗低通滤波器 (43)8、对滤波后信号分别用m1和m2进行解扩 (44)9、对两路信号分别采样,判决 (45)八、产生随机序列Gold码和正交Gold码 (47)1、产生Gold码并仿真其自相关函数 (48)2、产生正交Gold码并仿真其互相关函数 (50)九、实验心得体会 (51)直接序列扩频系统仿真一、背景直接序列扩频通信系统(DSSS)是目前应用最为广泛的系统.在发送端,直扩系统将发送序列用伪随机序列扩展到一个很宽的频带上去,在接受端又用相同的扩频序列进行解扩,回复出原有信息。

直接序列扩频系统matlab仿真

直接序列扩频系统matlab仿真
扩频过程:将信息信号与扩 频码进行调制,实现频谱扩 展
仿真结果:展示扩频与解扩 频过程的效果图和性能指标
结论:分析仿真结果,总结 直接序列扩频系统的性能优
势和适用场景
系统性能评估与优化
评估指标:包括频谱效率、抗干扰性能、抗多径干扰能力等。
仿真实验:通过MATL AB进行仿真实验,对系统性能进行评估。 优化方法:针对仿真实验中存在的问题,提出相应的优化方法,提高系统 性能。 性能比较:将优化后的系统性能与其他同类系统进行比较,验证优化效果。
扩频增益分析
扩频增益定义:扩频增益是指扩频通信系统所提供的信噪比改善程度,是衡量扩频系统性能的重 要参数。
扩频增益计算方法:扩频增益可以通过计算扩频前后的信噪比来获得,即扩频前信噪比与扩频后 信噪比之比。
仿真结果分析:通过对直接序列扩频系统的 MATL AB仿真,可以获得扩频前后的信噪比数据,进 而计算出扩频增益。
MATL AB是一款由MathWorks公司开发的商业数学软件
它主要用于算法开发、数据可视化、数据分析以及数值计算
MATL AB提供了丰富的库函数和工具箱,方便用户进行各种计算和分析
在直接序列扩频系统的仿真中,MATL AB可以用于搭建仿真模型、生成扩频码以及进行信号处理 等操作
Simulink模块库介绍
调制与解调过程仿真
调制过程:将信息信号调制到载 波信号上,实现频谱的扩展
仿真实现:利用MATL AB编程实 现调制与解调过程的模拟
添加标题
添加标题
添加标题
添加标题
解调过程:将调制信号解调还原 成原始信息信号的过程
仿真结果分析:对仿真结果进行 性能分析和评估
扩频与解扩频过程仿真
解扩频过程:将接收到的信 号与相同的扩频码进行解调, 恢复出原始信号

直序扩频通信matlab仿真DIRECTSEQUENCESPREADSPECTRUMTECHNIQUES.doc

直序扩频通信matlab仿真DIRECTSEQUENCESPREADSPECTRUMTECHNIQUES.doc

Lab2 Direct Sequence Spread Frequency Techniques直序扩频通信仿真ContentAbstract-------------------------------------------------------------------------------------------3 Experiment Background----------------------------------------------------------------------3 Experiment Procedure------------------------------------------------------------------------5 Analysis and Conclusion---------------------------------------------------------------------10 Reference --------------------------------------------------------------------------------------10 Appendix----------------------------------------------------------------------------------------121. AbstractThe objective of this lab experiment is to learn the fundamentals of the direct sequence spread spectrum and code division multiple address techniques. To get familiar with the direct sequence spread spectrum modulator and demodulator.And the direct sequence spread spectrum system can be shown as:Figure 1. Direct sequence spread spectrum system2. Experiment Background2.1 Introduction of Direct Sequence Spread Spectrum [1]In telecommunications, direct-sequence spread spectrum (DSSS) is a modulation technique. As with other spread spectrum technologies, the transmitted signal takes up more bandwidth than the information signal that is being modulated. The name 'spread spectrum' comes from the fact that the carrier signals occur over the full bandwidth (spectrum) of a device's transmitting frequency.Figure 2.1 Procedure to generate a DSSS signal2.2 Generation of Direct Sequence Spread SpectrumTo generate a spread spectrum signal one requires:1. A modulated signal somewhere in the RF spectrum2. A PN sequence to spread it2.3 Features of Direct Sequence Spread SpectrumDSSS has some features as following:1. DSSS phase-modulates a sine wave pseudorandomly with a continuous string of pseudonoise (PN) code symbols called "chips", each of which has a much shorter duration than an information bit. That is, each information bit is modulated by a sequence of much faster chips. Therefore, the chip rate is much higher than the information signal bit rate.2. DSSS uses a signal structure in which the sequence of chips produced by the transmitter is known a priori by the receiver. The receiver can then use the same PN sequence to counteract the effect of the PN sequence on the received signal in order to reconstruct the information signal.2.4 Transmission of Direct Sequence Spread SpectrumDirect-sequence spread-spectrum transmissions multiply the data being transmitted by a "noise" signal. This noise signal is a pseudorandom sequence of 1 and −1 values, at a frequency much higher than that of the original signal, thereby spreading the energy of the original signal into a much wider band.The resulting signal resembles white noise, like an audio recording of "static". However, this noise-like signal can be used to exactly reconstruct the original data at the receiving end, by multiplying it by the same pseudorandom sequence (because 1 × 1 = 1, and −1 × −1 = 1). This process, known as "de-spreading", mathematically constitutes a correlation of the transmitted PN sequence with the PN sequence that the receiver believes the transmitter is using.For de-spreading to work correctly, the transmit and receive sequences must be synchronized. This requires the receiver to synchronize its sequence with the transmitter's sequence via some sort of timing search process. However, this apparent drawback can be a significant benefit: if the sequences of multiple transmitters are synchronized with each other, the relative synchronizations the receiver must make between them can be used to determine relative timing, which, in turn, can be used to calculate the receiver's position if the transmitters' positions are known. This is the basis for many satellite navigation systems.The resulting effect of enhancing signal to noise ratio on the channel is called process gain. This effect can be made larger by employing a longer PN sequence and more chips per bit, but physical devices used to generate the PN sequence impose practical limits on attainable processing gain.If an undesired transmitter transmits on the same channel but with a different PN sequence (or no sequence at all), the de-spreading process results in no processing gain for that signal. This effect is the basis for the code division multiple access (CDMA) property of DSSS, which allowsmultiple transmitters to share the same channel within the limits of the cross-correlation properties of their PN sequences.As this description suggests, a plot of the transmitted waveform has a roughly bell-shaped envelope centered on the carrier frequency, just like a normal AM transmission, except that the added noise causes the distribution to be much wider than that of an AM transmission.In contrast, frequency-hopping spread spectrum pseudo-randomly re-tunes the carrier, instead of adding pseudo-random noise to the data, which results in a uniform frequency distribution whose width is determined by the output range of the pseudo-random number generator.3. Experiment Procedure3.1. Generate the pseudo random numbers sequences (m sequence) with a polynomial as following151398751)(x x x x x x x p ++++++=The polynomial ∑==n k k k x c x p 0)(is corresponding to the LFSR of the Figure 3.1, where 1=k c denotes a connection.Figure 3.1 Linear feedback shift registerAs the polynomial )(x p shows, we can get the LFSR in this experiment with 14 orders (n=14).Figure 3.2 n=15 LFSRAs Figure 3.2 shows, the feedback output 15a has a relationship with the registers.01521369788710515a c a c a c a c a c a c a ⊕⊕⊕⊕⊕=Hence, we can get the longest m sequence as 327671215=-. In this experiment, I take themessage data rate as 1bit/s, which means Tb=1. Here, the input sequence is initialized as (1 0 1 1 0 1 1 1 0 1 1 0 0). I take the PN sequence data rate as Tc=1/64bit/s, because the spreading gain is 64, in another word, Tb/Tc=64. And I can get the waveform of M sequences and message (input data) as follows:Figure 3.3 Input message data waveformFigure 3.4 M sequences waveformIn this experiment, in fact, both message data and m sequences are single polar codes. In Matlab we use a simple function to change them into double polar codes, which are easy to produce the BPSK signal (phase reversing).3.2. Generate a spreading signal d(t), and the producing formula as following:cdtt)(t)(*)(bHere we can get the waveform of d(t) comparing to b(t) and c(t).Figure 3.5 c(t) (red) and d(t) (green)Because b(t) equals 1 at the interval (0,1) and -1 at the interval (1,2), the d(t) is reversed at the interval (1,2) as Figure 3.5 shows. Now, I have get the spreading sequences d(t) with the data rate as 64bits/s.3.3. Modulate the spreading sequences d(t) to be the BPSK signalBy using the formula of BPSK, I can get the BPSK signal of spreading sequences d(t).)2sin(*)()(t f t d t s c π=In this experiment, I take the carrier frequency as 128Hz. I can get the BPSK waveform as Figure 3.6.Figure 3.6 BPSK of d(t)At the same time, I should keep a PN sequence signal that has the same length as the spreading signal d(t) to keep the synchronization between the transmitter and receiver.3.4. In an AWGN channel to transmit the BPSK signal.First of all, I get the AWGN signal as followFigure 3.7 AWGN signalWe can find that the AWGN signal has large number of harmonics and it’s power spectral density is uniform and it’s amplitude distribution obeys the Gauss distribution. In our transmitting channel, I add the noise to the BPSK signal and I take the SNR equals 10. Then I get the signal as shown in Figure 3.8.Figure 3.8 BPSK signal adding AWGN3.4. Recover our message data b(t)Firstly, I use two synchronized circuit to despread and demodulate the receiving signal.)(*)2sin(*)()(t s t f t c t r c π=Then I use a matching filter to take the value at the time Tb.Figure 3.9 Matching filter (1)Figure 3.10 Matching filter (2)As we can see, because of the effect of AWGN, in each Tb time interval, the matching filter output has some differences. However, I can still get the nearly maximum and minimum value at the time points Tb+n*Tb (N=1,2,3,..,N and N equals the length of the message data).Secondly, I do the judgment for maximum and minimum value. Obviously, the y(Tb) get the maximum value, the recovery bit will be 1 and the last time will be Tb, to be inverse, the recovery bit will be -1.Here I can find that the output signal in our receiver is the same as that in transmitter.Figure 3.11 Output signal on the receiver4. Analysis and Conclusion4.1. Spectrum SpreadDigital communication has played a more important role than analog communication. In digital communication, the fastest speed of data transmission is seen to be the bandwidth of digital channel, which is also called the capacity of the channel. We can know that the larger the capacity, the stronger the ability of anti-interference, because of the Shannon theorem:)/1(log 2N S B C +=B is the bandwidth of frequency spectrum. Obviously, when I enlarge the capacity, the bandwidth will be wider. This is also the reason I use the high baud rate m sequence to spread the message data bandwidth.4.2. Matching FilterIn this experiment, the matching filter is achieved by using a simple function in Matlab which is ‘xcorr ’. This is a function used to calculate the cross-correlation of two sequences. As we know, in fact, matching filter is just like an autocorrelation calculating function.4.3. The advantages of m sequence (double polar)The characteristic of autocorrelation of m sequence is very good. I can know it from the following result.⎩⎨⎧-==otherwise NN N when R /12,,01)(ττ I can find that when the N is very large which is just like that in this experiment, 0)(≈τR . This is very good for the multichannel processing.In CDMA system, I take orthogonal code to encode different users ’ message data. However, the characteristics of cross-correlation and autocorrelation of orthogonal code is bad for the multichannel systems. In order to improve this phenomenon, I should multiple m sequences to the orthogonal codes.APPENDIXSome Parts of Matlab CodesI. DSSS (main function)clear;%the PAM input digital sequence and the first input of PN producer p=[1 0 1 1 0 1 1 1 0 1 1 0 0];%get 0 1 0 0 1pn_in=[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0];%get 0 0 0 0 0 0 0 0 0 0 0 %the period of input signalTb=1;%the period of PN sequence signalTc=1/256;%produce the PN sequencepn_sq=PN_Producer(pn_in);pn_dou=zero_double(pn_sq);p_dou=zero_double(p);%square wave%[x1,y1]=square_wave(p_dou,Tb);%[a2,b2]=size(x1);%[x2,y2]=square_wave(pn_dou,Tc);%plot(x1,y1);%get the signal after spreading frequcecy operationb_dou=PN_Signal(p_dou,pn_dou,Tb,Tc);%the synchronization of PNp_syn=PN_Syn(p_dou,pn_dou,Tb,Tc);%the carry signal periodT_carry=1/512;%get the carry signal by PSKwc=2*pi*1/T_carry;[psks,tpsk]=PSK_Producer(b_dou,wc,Tc);[a1,b1]=size(tpsk);fs=b1-1;N=400;FSpectrum(psks,fs,N);%plot(tpsk,psks);%axis([0 1.6 -2 2]);%grid on;%add the noise to the PSK signal by AWGNin_signal=awgn(psks,10);%the SNR is 20%fs=b1-1;%N=400;%FSpectrum(in_signal,fs,N);%plot(tpsk,in_signal);%the recovery signalsignal_corr=Signal_Recover(in_signal,tpsk,p_syn,wc,Tc,Tb); II. PN_Producer (produce the m-sequence)function y=PN_Producer(x)m_sq(1).a=x;m_sq(2).a=x;m_sq(1).c=[1 0 0 0 0 1 0 1 1 1 0 0 0 1 0 1 ];%get1 0 0 0 0 1 0 1 1 1 0 0 0 1 0 1 get1 1 0 0 1[l_min,l_max]=size(m_sq(1).c);n=2;%the first digit of m-sequencepn_out(1)=m_sq(2).a(1);%the m-sequence producer for shifting first timem_sq(2).a(l_max)=m_sq(1).c(2)*m_sq(1).a(l_max-1);for i=1:1:(l_max-2)if m_sq(2).a(l_max)==(m_sq(1).c(2+i)*m_sq(1).a(l_max-i-1)) m_sq(2).a(l_max)=0;elsem_sq(2).a(l_max)=1;endendfor j=0:1:(l_max-2)m_sq(2).a(1+j)=m_sq(2).a(2+j);endfor j1=1:1:(l_max-1)m_sq(3).a(j1)=m_sq(2).a(j1);endpn_out(n)=m_sq(2).a(1);n=n+1;%to check whether the m-sequence becomes back to the original sequence if isequal(m_sq(3).a,m_sq(1).a)pn_check=1;else pn_check=0;end%the whole shifting operation and produce the PNwhile pn_check==0m_sq(2).a(l_max)=m_sq(1).c(2)*m_sq(2).a(l_max-1);for i=1:1:(l_max-2)if m_sq(2).a(l_max)==(m_sq(1).c(2+i)*m_sq(2).a(l_max-i-1))m_sq(2).a(l_max)=0;elsem_sq(2).a(l_max)=1;endendfor j=0:1:(l_max-2)m_sq(2).a(1+j)=m_sq(2).a(2+j);endfor j1=1:1:(l_max-1)m_sq(3).a(j1)=m_sq(2).a(j1);endpn_out(n)=m_sq(3).a(1);if isequal(m_sq(3).a,m_sq(1).a)pn_check=1;else pn_check=0;endn=n+1;end%return the PN codefor i4=1:1:(n-2)y(i4)=pn_out(i4);endIII. PN_Signal (generate the signal after spreading spectrum) function y=PN_Signal(p,pn_in,Tb,Tc)N=fix(Tb/Tc);[a,b]=size(p);[a1,b1]=size(pn_in);c=fix(b*N/b1)pn_original=pn_in;if c>0for j=0:1:cpn_in=horzcat(pn_in,pn_original);endelsepn_in=pn_in;ends1=1;e1=N;for i=1:1:bif p(i)==1for m=s1:1:e1y(m)=pn_in(m);s1=1+N*i;e1=N+N*i;endelsefor m=s1:1:e1y(m)=p(i)*pn_in(m);s1=1+N*i;e1=N+N*i;endendendendIV. PSK_Producer (generate the BPSK signal)function [y,z]=PSK_Producer(x,wc,Tb)[a,b]=size(x);%sampling the PSK signal and produce them the N is 1:2 for i=1:1:bstart1=(i-1)*Tb;end1=i*Tb;%Tb is the period of PN sequenceTcs(i).s=linspace(start1,end1,50);if x(i)==1c_sq(i).s=sin(wc*Tcs(i).s);elsec_sq(i).s=(-1)*sin(wc*Tcs(i).s);endendy=c_sq(1).s;z=Tcs(1).s;for j=1:1:(b-1)y=horzcat(y,c_sq(j+1).s);z=horzcat(z,Tcs(j+1).s);endendV. PN_Syn (generate the synchronized PN sequence)function y=PN_Syn(p,pn_in,Tb,Tc)N=fix(Tb/Tc);[a,b]=size(p);[a1,b1]=size(pn_in);c=fix(b*N/b1);pn_original=pn_in;if c>0for j=0:1:cpn_in=horzcat(pn_in,pn_original);endelsepn_in=pn_in;ends1=1;e1=N;for i=1:1:bfor m=s1:1:e1y(m)=pn_in(m);s1=1+N*i;e1=N+N*i;endendendVI. Signal_Recover (receiver)function y=Signal_Recover(x,tpsk,pn_syn,wc,Tb,Tc)m_signal=sin(wc*tpsk);[t_sqr,pn_syn_sqr]=square_wave(pn_syn,Tb);c_psk=x.*pn_syn_sqr;N=fix(Tc/Tb);[a2,b2]=size(tpsk);t_gap=b2/50/N;mid=50*N;for i2=1:1:midt_corr_mid(i2)=tpsk(i2);end[t_corr,t_corr_mid]=corr_x(t_corr_mid,Tb,N);for k=1:1:t_gapfor k2=1:1:(50*N)k3=k2+(k-1)*50*N;in_psk(k).s(k2)=c_psk(k3);in_sin(k).s(k2)=m_signal(k3);endym=xcorr(in_psk(k).s,in_sin(k).s);%[t_corr,t_corr_mid]=corr_x(t_corr_mid,Tb,N);if ym(mid)>0y(k)=1;elsey(k)=0;endif k==2plot(t_corr,ym,'g*:');axis([0 2 -2000 2000]);hold on;grid on;%elseif k==3%plot(t_corr,ym,'mx:');%axis([0 12.8 -2000 2000]);%hold on;%grid on;elsedisp('nice');endendendVII. square_wave (generate the square wave signal)function [fss,sqrs]=square_wave(p,g)%square wave sampling frequencyfs(1).s=linspace(0,g,50);[a,b]=size(p);%discrete ones in different time pointfor i=1:1:(b-1)if p(i)==1sqr_p(i).s=ones(1,50);elsesqr_p(i).s=(-1)*ones(1,50);endfs(i+1).s=linspace(0+g*i,g+g*i,50);end%the last time intervalif p(b)==1sqr_p(b).s=ones(1,50);elsesqr_p(b).s=(-1)*ones(1,50);endfss=fs(1).s;sqrs=sqr_p(1).s;for i2=1:1:(b-1)fss=horzcat(fss,fs(i2+1).s);sqrs=horzcat(sqrs,sqr_p(i2+1).s);endendVIII. zero_double (cover the single polar signal to the double polar signal) function y=zero_double(x)[a,b]=size(x);for i=1:1:bif x(i)==0y(i)=-1;elsey(i)=x(i);endendend。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

直接序列扩频Matlab程序
直接序列扩频通信可以有效地抵抗来自信道中的窄带干扰。

在一个直扩通信系统中,扩频是通过伪噪声序列(PN)对发送的信息数据进行调制来实现的。

在接收端,原伪噪声序列和所收信号的相关运算可将窄带干扰扩展到DS信号的整个频带,使干扰等效为幅度较低频谱较平
坦的噪声;同时,将DS信号解扩, 恢复原始信息数据。

- The direct sequence spread spectrum correspondence may effectively resist from the channel in selective interference. Straight expands in the communications system in, the wide frequency is (PN) carries on through the false noise sequence to the transmission information data modulates realizes. In the receiving end, the original false noise sequence and receives the signal the correlation operation to be possible to expand the selective interference to the DS signal entire frequency band, causes the disturbance equivalent for a scope lower frequency spectrum smoother noise; At the same time, expands the DS signal solution, restores the primary information data.
======================
function [Y]=DSSS(X, mode)
% 完成DSSS调制解调功能
% mode=[1,2]. 1进行调制,2进行解调,未指定时自动完成调制和解调两个功能。

switch nargin
case 0
X='This is a test.';
Y=DSSS(X);
return
case 1
Y1=DSSS(X, 1);
Y2=DSSS(Y1, 2);
Y=Y2;
return;
case 2
if mode==1%调制
D=ones(1,7);
m_sequence=Msequence(D);
X_length=length(X);
ascii_value=abs(X);
ascii_binary=zeros(X_length,7);
%将数据转换为ASCII二进制码
for ii=1:X_length
ascii_binary(ii,:)=Binary(ascii_value(ii));
end
subplot(2,3,1);plot(reshape(ascii_binary,1,X_length*7));title('A:输入数据');
%扩频
Sp_expand=zeros(X_length,127*7);
for ii=1:X_length
for jj=1:7
Sp_expand(ii,127*jj-126:127*jj)=xor(m_sequence,ascii_binary (ii,jj));
end
end
subplot(2,3,2);plot(reshape(Sp_expand,1,X_length*127*7));title('B:数据扩展');
%将扩频码转换为BPSK(1,-1)序列
for ii=1:X_length
for jj=1:127*7
if~(Sp_expand(ii,jj))
Sp_expand(ii,jj)=-1;
end
end
end
Sp_expand_bpsk=reshape(Sp_expand,1,X_length*127*7);
subplot(2,3,3);plot(Sp_expand_bpsk);title('C:BPSK调制')
Y=Sp_expand_bpsk;
elseif mode==2%解调
D=ones(1,7);
m_sequence=Msequence(D);
%将BPSK双极性转换为单极性
l=length(X)/(127*7);
X_length=length(X);
for ii=1:X_length
if X(ii)==-1
X(ii)=0;
end
end
Sp_expand=reshape(X,l,127*7);
subplot(2,3,4);plot(X);title('D:数据传输');
ascii_binary=zeros(l,7);
Demodulate_binary=zeros(l,127*7);
%接收处解调
for ii=1:l
for jj=1:7
Demodulate(ii,127*jj-126:127*jj)=xor(m_sequence,
Sp_expand(ii,127*jj-126:127*jj));
end
end
for ii=1:l
for jj=1:7
ascii_binary(ii,jj)=Demodulate(ii,127*jj-126);
end
end
subplot(2,3,6);plot(reshape(ascii_binary,1,l*7));title('E:数据输出');
%将ASCII二进制转换为输出数据
A=zeros(1,l);
for ii=1:l
A(ii)=Ascii(ascii_binary(ii,:));
end
Y=char(A);
else
mode=1;
end
return
end
%代码主体,执行中画出各点波形。

%ASCII数值二进制比特转换
function [YY]=Binary(Z1)
z=zeros(1,7);
z(1)=mod(Z1,2);
a=floor(Z1/2);
for ll=1:6
z(ll+1)=mod(a,2);
a=floor(a/2);
if a==0
break;
end
end
YY=z;
%二进制比特转换为ASCII数值
function [ZZ]=Ascii(Z2)
l=length(Z2);
A=0;
for ii=1:l
A=Z2(ii)*2^(ii-1)+A;
end
ZZ=A;
%生成m序列
function [Y]=Msequence(X)
switch nargin
case 0
Y=Msequence(X);
return
case 1
l=length(X);
mp_register=X;
out_sequence=zeros(1,2^l-1);
sum_xor=0;
for ii=1:2^l-1
out_sequence(ii)=mp_register(l);
sum_xor=xor(mp_register(l),mp_register(l-1)); for jj=1:l-1
mp_register(l-jj+1)=mp_register(l-jj);
end
mp_register(1)=sum_xor;
if mp_register==X
break;
end
end
Y=out_sequence;
return
end。

相关文档
最新文档