直接序列扩频通信

阅读: 评论:0

MATLAB仿真直接序列扩频通信
1. 摘要
太阳能电池板制作 直接序列扩频通信系统DS-CDMA)因其抗干扰性强、 隐蔽性好、易于实现码分多址(CDMA)、抗多径干扰、直扩通信速率高等众多优点,而被广泛应用于许多领域中。针对频通信广泛的应用,本文用MATLAB工具箱中的SIMULINK通信仿真模块和MATLAB函数对直接序列扩频通信系统进行了分析和仿真,使其更加形象和具体。
关键字:扩频通信  m序列  gold正交序列  matlab仿真
2.引言
直接序列扩频(DSSS— Direct Sequence Spread Spectrum)技术是当今人们所熟知的扩频技术之一。这种技术是将要发送的信息用伪随机码(PN码)扩展到一个很宽的频带上去,在接收端,用与发端扩展用的相同的伪随机码对接收到的扩频信号进行相关处理,恢复出发送的信息。
它是二战期间开发的,最初的用途是为军事通信提供安全保障, 是美军重要的无线保密通信技术。这种技术使敌人很难探测到信号。即便探测到信号,如果不知道正确的编码,也不可能将噪声信号重新汇编成原始的信号。有关扩频通信技术的观点是在1941年由好莱坞女演员Hedy Lamarr 和钢琴家George Antheil提出的。基于对控制的安全无线通信的思路,他们申请了美国专利#2.292.387。不幸的是,当时该技术并没有引起美国军方的重视,直到十九世纪八十年代才引起关注,将它用于敌对环境中的无线通信系统。
直序扩频解决了短距离数据收发信机、如:卫星定位系统(GPS)3G移动通信系统、WLAN (IEEE802.11a, IEEE802.11b, IEE802.11g)和蓝牙技术等应用的关键问题。扩频技术也为提高无线电频率的利用率(无线电频谱是有限的因此也是一种昂贵的资源)提供帮助。
3.直接序列扩频  DS-SS是直接用具有高码率的扩频码序列在发送端去扩展信号的频谱。而在收端,用相同的扩频码序列去进行解扩,把展宽的扩频信号还原成原始的信息。
4.DS-CDMA通信系统原理图
在实验中,我们采用;两种扩频码进行仿真。M序列和正交Gold序列,扩频后的数据通过脉冲成型滤波器后通过信道同时到达接收端,在接收端分别对不同用户信息数据进行解扩,恢复各个用户的原始信息。
5.仿真设计步骤
  1m序列的DS-CDMAAWGN下的性能的仿真。
  2、正交Gold序列的DS-CDMAAWGN下的性能的仿真。
  3、对比两个扩频码在AWGN信道下的性能曲线,分析哪种扩频码更适合在AWGN信道中传输,传输衰减最小,对比m序列和正交Gold序列的抗干扰能力。
6.实验仿真运行结果
 
从图中可以看出,由于正交Gold序列在完全同步时,它们的互相关值为0,因此其BER性能并不随着用户数的增加而恶化。在信噪比为2 4 6时误比特率基本相同。由图可以看出来当误比特率仿真时候小于10-3时结果就会有一定的偏差。但还是可以看出正交Gold
压力容器封头
列比M序列的性能要好。
所以,初步得出结论:正交Gold序列在AWGN信道下的抗干扰能力更强,衰减比,序列要小。
  对比图4-1和图4-3,显然M序列在瑞利衰落信道下的性能要比能过AWGN信道下的性能要差 
7.总结
对于本仿真而言,已基本完成了设计任务书的设计和研究目的,通过用MATLABDS-CDMA系统的仿真调试、结果分析,让我组熟悉了DS-CDMA的工作原理,加深了对扩频通信的认识,并深刻的了解PN码在不同信道的衰落情况。通过仿真结果中波形的直观方式,更让我们了解到了系统衰减的规律。
但是在本设计中也存在着缺陷与不足
1、在本设计中过程中可能由于程序过于复杂,信息本身所占用的带宽偏大,用来传输信息的带宽相对不够大,造成结果并不明显,信息衰减严重。
2、在设计中只考虑到加性高斯信道所带来的干扰,在实际通信信道却是复杂多变,存在着各种各样的情况,所以最后的接收信号是在很简单的干扰下得出。要想应用于实际中,必须加入各种噪声来考虑,以实现真实系统的设计。
3、实验中,我们选择加大传输带宽,来弥补其他干扰带来的影响,可能会造成消耗过大,浪费带宽的结果,实际应用中是不实用的。只能作为仿真,进行研究。
即使如此,在本次设计的整个过程中,以上的结果已经令我们受益匪浅。
硅胶海绵条通信系统的性能分析和仿真,随着通信技术、信息技术和计算机技术的发展以及网络系统的大量应用,显得越来越重要。
参考文献
自锁器[1] 刘学勇,编著.通信系统建模与仿真(电子工业出版社)
[2] 邓薇,编著.MATALB函数速查手册(人民邮电出版社)
[3] 【美】William C.Y.Lee,.移动通信工程理论和应用(第二版)(人民邮电出版社)
[4] 王华奎,李艳萍等编著.移动通信原理与技术(清华大学出版社)
程序
%1.函数mseq用于产生m序列:
function [mout] = mseq(n, taps, inidata, num)
% ****************************************************************
%说明: 函数mseq用于产生num个阶数为nm序列
% n            : m序列的阶数n
% taps        : 反馈寄存器的连接位置
% inidata    : 寄存器的初始值序列
% num      : 输出的m序列的个数
% mout      : 输出的m序列,如果num>1,则每一行为一个m序列
% ****************************************************************
if nargin < 4                                    %输入参数判断
    num = 1;
end
mout = zeros(num,2^n-1);                        %寄存器输出值的初始化,全0
fpos = zeros(n,1);                              %反馈寄存器连接位置的初始化
fpos(taps) = 1;                                  %反馈寄存器连接位置
for ii=1:2^n-1
   
    mout(1,ii) = inidata(n);                    % 寄存器的输出值
    temp        = mod(inidata*fpos,2);          % 计算反馈数据
    inidata(2:n) = inidata(1:n-1);            % 寄存器移位一次
    inidata(1)    = temp;                        % 更新第1个寄存器的值
   
end
if num > 1                                          %如果要输出多个m序列,生成其他m序列
    for ii=2:num
        mout(ii,:) = shift(mout(ii-1,:),1);    %shift函数完成序列的循环移位,上一个序列向右循环移位
    end
end
%2.函数goldseq用于产生gold序列
function [gout] = goldseq(m1, m2, num)
% ****************************************************************
% m1 : m序列1
% m2 : m序列2
% num  : 生成的Gold序列个数
% gout : 生成的Gold序列输出
% ****************************************************************
if nargin < 3                                  %如果没有指定生成的Gold序列个数,默认为1
    num = 1;
end
gout = zeros(num,length(m1));
for ii=1:num                                    %根据Gold序列生成方法生成Gold序列
    gout(ii,:) = xor(m1,m2);
共享空调    m2        = shift(m2,1);
end
%函数shift用于完成循环移位
function [outregi] = shift(inregi,shiftr)
% ****************************************************************
% inregi      : 输入序列
% shiftr      : 循环右移的位数
% outregi    : 输出序列
% ****************************************************************
v  = length(inregi);                                %输入序列的长度
outregi = inregi;                                  %输出序列初始化为输入序列
shiftr = rem(shiftr,v);                                %求余,使移位的值在[0, v]之间金属防护罩
if shiftr > 0
    outregi(:,1:shiftr) = inregi(:,v-shiftr+1:v);    %循环移位把最后shiftr位移到前shiftr
    outregi(:,1+shiftr:v) = inregi(:,1:v-shiftr);    %完成剩余的移位
elseif shiftr < 0
    outregi(:,1:v+shiftr) = inregi(:,1-shiftr:v);

本文发布于:2023-05-28 14:33:02,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/117390.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:序列   扩频   技术   信号   系统   信道   进行
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图