基于matlab的扩频通信设计.pdf
目 录 1 扩频通信的基本原理1 1.1 扩频通信1 1.2 直接序列扩频2 1.3 WALSH 函数2 1.4 BPSK3 1.5 高斯加性白噪声(AWNG)3 2 MATLAB 仿真 4 2.1 仿真原理框图4 2.2 程序模块4 3 仿真结果分析11 3.1 误码率11 3.2 信噪比11 3.3 问题的分析和解决12 4 仿真程序13 5 课程设计心得21 Abstract 22 参考文献23 1扩频通信的基本原理1 1.11.1 扩频通信扩频通信1 所谓扩展频谱通信,可简单表述如下:“扩频通信技术是一种信息传输方式,其信号所占有的频带宽度远大于所传信息必需的最小带宽;频带的扩展是通过一个独立的码序列来完成,用编码及调制的方法来实现的,与所传信息数据无关;在接收端则用同样的码进行相关同步接收、解扩及恢复所传信息数据”。扩频通信的基本特点,是传输信号所占用的频带宽度(W)远大于原始信息本身实际所需的最小带宽(B),其比值称为处理增益(Gp)。总之,我们用扩展频谱的宽带信号来传输信息,就是为了提高通信的抗干扰能力,即在强干扰条件下保证可靠安全地通信。这就是扩展频谱通信的基本思想和理论依据。扩频通信的性能。扩频通信的可行性是从信息论和抗干扰理论的基本公式中引伸而来的。信息论中关于信息容量的仙农(Shannon)公式为:C=Blog2(1+SN)其中:C 为信道容量(即极限传输速率),B 为信号频带宽度,S 为信号功率,N 为噪声功率。Shannon 公式说明,在给定的传输速率不变的条件下,频带宽度和信噪比P 可以互换,即可以通过增加频带宽度,在信噪比较低的情况下传输信息。扩展频谱以换取信噪比要求的降低,正是扩频通信的重要特点,并由此为扩频通信的应用奠定了基础。扩频通信的一个重要参数是扩频增益,反映了系统抗干扰能力的强弱,是对信噪比改善程度的度量,定义为接收机相关器输出信噪比和输入信噪比之比,即 (1)其中:Rs 为扩频码的传输速率,Rd 为信息数据的传输速率,Bs 为扩频码的带宽,Bd 为信息数据的带宽。按照扩展频谱的方式不同,现有的扩频通信系统可分为直接序列(DS)扩频、跳频(FH)、跳时(TH)、线性调频(chirp)以及上述几种方式的组合。扩频通信常用的扩频码主要有PN 序列、GOLD 序列、WALSH 码和OVSF 码。PN 码即伪噪声序列也称之为伪随机序列,是用确定性方法产生的序列,但它却近似具有随机产生序列所希望的某些关键随机特性。其中最常见的伪随机序列是m 序列。而扩频通信调制方式一般采用频率调制(FM)或相位调制(PM)的方式来进行数据调制,在码分多址通信中,其调制多采用 BPSK、DPSK、QPSK、MPSK 等方式。在码分多址通信中最常用BPSK(二相移相键控)。1.21.2 直接序列扩频直接序列扩频 直接序列扩频就是直接用具有高码率的扩频码序列在发送端去扩展信号的频谱。而在接收端,用相同的扩频码序列去进行解扩,将展宽的扩频信号还原成原始的信息。直扩通信系统原理如图1 所示。在发送端输入的信息先经信息调制形成调频或调相数字信号,然后由扩频码发生器产生的扩频码序列去调制数字信号以展宽信号的频谱,再将展宽后的宽带信号调制到射频发送出去。在接收端,接收机接收到宽带射频信号后,首先将其变频至中频,然后通过同步电路捕捉发送来的扩频码的准确相位,由此产生与发送来的伪随机码相位完全一致的接收用的伪随机码,作为扩频解调用的本地扩频码序列,最后经信息解调,恢复成原始信息输出。由此可见,直扩通信系统要进行三次调制和相应的解调,分别为信息调制、扩频调制和射频调制,以及相应的信息解调、解扩和射频解调。与一般通信系统比较,扩频通信就是多了扩频调制和解扩部分。1.3 WALSH1.3 WALSH 函数函数 WALSH 函数是一种非正弦的完备正交函数系,具有理想的互相关特性,两两之间的互相关函数为0,亦即它们是正交的。因而在码分多址同心中,WALSH 函数可以作为地址码使用。在本设计中,就使用了WALSH码。它仅有可能的取值:1和1(或0和1),比较适合于用来表达和处理数字信号。1.4 BPSK 二进制移相键控(BPSK)调制是载波相位按基带脉冲变化的一种数字调制方式。BPSK 的信号形式一般表示为e0(t)=nang(t-nT s)co sXc t(6)(2)这里,g(t)是脉宽为T s 的单个矩形脉冲,而an 的统计特性为 an=+1,概率为P-1,概率为(1-P)绝对移相BPSK 存在相位模糊,因此实际应用中多采用相对移相2DPSK 的调制方式。这只要在信号源后加一个码变换,且在解调端的抽样判决器后加一个码反变换器。BPSK 信号产生的方法有调相法和相位选择法两大类。在具体实现时,我们取每码元两个载波,每载波抽样16 个点,即每码元抽样32 点。因此,用调相法实现时,我们可以方便地用数字乘法器实现,具体方法见图2。图2 调相法 1.5 高斯加性白噪声(AWNG)白噪声是指功率谱密度在整个频域内均匀分布的噪声。即其功率谱密度:(为常数),(3)白噪声的自相关函数:因为,所以其自相关函数为:(4)由式(4)可知,白噪声的自相关函数仅在时才不为零;而对于其他任意的,它都为零。这说明只有在时才相关,而它在任意两个时刻上的随机变量都是不相关 的。但是带限的白噪声就不是这样的自相关函数了,因为其功率谱密度是窗函数(线段),而不是一条直线。加性高斯白噪声(AWGN)从统计上而言是随机无线噪声,其特点是其通信信道上的信号分布在很宽的频带范围内。高斯白噪声的概念。白指功率谱恒定;“高斯”指幅度取各种值时的概率 p(x)是高斯函数;“加性”指 噪声独立于有用信号,不随信号的改变而改变。2.MATLAB 仿真2 2.12.1 仿真原理方框图仿真原理方框图 根据选题的设计要求,我们采用四个用户的数据,首先在发送端将四个用户的数据分别进行调制(包括 Walsh 扩频调制和 BPSK 调制),然后再将已调用户信号进行相加,输入带有 AWNG 高斯加性白噪声的信道中。在接收端,将从信道送出的信号进行解调(包括 BPSK 解调和 Walsh 解调)。最后,通过判决器输出还原后的信号,将还原信号和原始信号进行比较,用误码计数器统计误码个数。方框图如图 3 图 3 仿真系统框图 2.2 程序模块 2.2.1 Walsh 函数的产生 产生 Walsh 函数的源代码如下:User1 User4 Walsh 扩频 Walsh 扩频 BPSK 调制 BPSK 调制 相 加 信道 BPSK 调制 Walsh 扩频 判决 User 计数 function A=walsh(x)H2=1 1;1-1;%2阶哈达码 NH2=H2*(-1);H4=H2 H2;H2 NH2;%4阶哈达码 NH4=-1*H4;H8=H4 H4;H4 NH4;%8阶哈达码 NH8=-1*H8;H16=H8 H8;H8 NH8;%16阶哈达码NH16=-1*H16;H32=H16 H16;H16 NH16;%32阶哈达码NH32=-1*H32;H64=H32 H32;H32 NH32;%64阶哈达码 NH64=-1*H64;H128=H64 H64;H64 NH64;%128阶哈达码 NH128=-1*H128;switch x case 2 A=H2;case 4 A=H4;case 8 A=H8;case 16 A=H16;case 32 A=H32;case 64 A=H64;case 128 A=H128;otherwise disp(error);end 在本实验中我们采用 16 阶哈达码对用户数据进行 Walsh 扩频调制,只要调用函数N=16;B=walsh(N),即可产生扩频增益为 N16 的扩频码。2.2.2 发送端 实验中我们把发送端的各个子模块写在一个函数中,由 main 函数进行调用,发送模块的函数名为 send_module(nA,N,m,B),其中 nA 为用户 A 通过调用 MATLAB 自带的fix(unifrnd(0,255)函数,产生一个字节的随机信号;N 为哈达码的阶数;m 为 N 阶哈达码的第 m 行,即 Walsh 扩频码。函数返回两组值,nA_2,ChannelA中 nA_2 表示用户 A数据从十进制转换为二进制,并分解为适合电路传输的双极性数字基带信号(例如,nA=112,则 nA_2=+1+1+1-1-1-1-1-1),可以做为误码计数器的原始比较信号。而 ChannelA 表示用户 A 数据调制后的最终数据。图 4 是用户 A 调制过程的各个波形。发送端函数调用的源代码如下:for i=1:4 switch i case 1%nA=input(用户 A 数据 nA=);nA=fix(unifrnd(0,255);%产生一个字节随机信号 m=i+1;figure(1);nA_2,ChannelA=send_module(nA,N,m);case 2%nB=input(用户 B 数据 nB=);nB=fix(unifrnd(0,255);%产生一个字节随机信号 m=i+1;figure(2);nB_2,ChannelB=send_module(nB,N,m);case 3%nC=input(用户 C 数据 nC=);nC=fix(unifrnd(0,255);%产生一个字节随机信号 m=i+1;figure(3);nC_2,ChannelC=send_module(nC,N,m);case 4%nD=input(用户 D 数据 nD=);nD=fix(unifrnd(0,255);%产生一个字节随机信号 m=i+1;figure(4);nD_2,ChannelD=send_module(nD,N,m);otherwise disp(error);end i=i+1;end 图 4 用户 A 直接序列扩频通信调制 图 5 用户 B 直接序列扩频通信调制 图 6 用户 C 直接序列扩频通信调制 图 7 用户 D 直接序列扩频通信调制 2.2.3 信道 如图 8 所示,是信道两端信号的波形。将用户 A、B、C、D 已调信号相加后,送入传输信道中,用高斯加性白噪声对信道中的信号进行干扰。本实验调用 MATLAB 自带的awgn(Channel,snr,measured)函数,其中,Channel 是所有用户已调信号的和,snr 是信道的信噪比。信道传输的源代码如下:figure(5);Channel=ChannelA+ChannelB+ChannelC+C hannelD;q=1:1:128*8;subplot(2,1,1);plot(q,Channel);title(发射信号)axis(1 1024-4.4 4.4)snr=0.00001;%信道的信噪比,单位dB y=awgn(Channel,snr,measured);subplot(2,1,2);plot(q,y);axis(1 1024-4.4 4.4)title(接收信号)图 8 awng 信道发送端和接收端波形 2.2.4 接收端 接收函数的函数名为 receive_module(N,y,m),其中 N 为哈达码的阶数,y 为接收信号,m 为 N 阶哈达码的第 m 行,即 Walsh 扩频码。返回值 receiveA 表示接收对用户 A 发送的信号进行解调后还原的信号,作为最后差错计数器还原比较信号。接收端解调过程的具体源代码如下:for i=1:4;switch i case 1 m=i+1;figure(6);receiveA=receive_module(N,y,m);case 2 m=i+1;figure(7);receiveB=receive_module(N,y,m);case 3 m=i+1;figure(8);receiveC=receive_module(N,y,m);case 4 m=i+1;figure(9);receiveD=receive_module(N,y,m);otherwise disp(error);end i=i+1;end 如图 9 所示,是接收端信号解调过程中各个子模块的波形图。图 9 用户 A 直接序列扩频通信解调 图 10 用户 B 直接序列扩频通信解调 图 11 用户 C 直接序列扩频通信解调 图 12 用户 D 直接序列扩频通信解调 for i=1:4;switch i case 1 m=i+1;figure(6);receiveA=receive_module(N,y,m);case 2 m=i+1;figure(7);receiveB=receive_module(N,y,m);case 3 m=i+1;figure(8);receiveC=receive_module(N,y,m);case 4 m=i+1;figure(9);receiveD=receive_module(N,y,m);otherwise disp(error);end i=i+1;end 2.2.5 差错计数器 将 4 个用户的发送函数和接收函数的返回值逐位进行比较。差错计数器源代码如下:send=nA_2;nB_2;nC_2;nD_2%发送端用户原始数据 receive=receiveA;receiveB;receiveC;receiveD%接收端还原后的数据 count=0;%统计误码个数 for i=1:32 if send(i)=receive(i)count=count+1;end end disp(误码个数);3 仿真结果分析 3.1 误码率 在数字通信中,误码率是一项主要的性能指标。在实际测量数字通信系统的误码率时,一般测量结果与信源送出信号的统计特性有关。通常认为二进制信号中 0 和 1 是以等概率随机出现的,所以测量误码率时最理想的信源应是随机信号发生器。由于 Walsh 函数是周期性的伪随机序列,因而可作为一种较好的随机信源。扩频序列通过终端机和信道后,输出仍为扩频序列。在接收端,本地产生一个同步的扩频码,与收码序列逐位相乘再求规格化内积,再与发送端信源码进行比较,一旦有错,误码计数器加一。误码率的数学表达式为:100%eES (5)其中 S 是信码个数,e 是误码个数,E 就是误码率。3.23.2 信噪比信噪比 测量通信系统的性能时,常常要使用噪声发生器,由它给出具有所要求的统计特性和频率特性的噪声,并且可以随意控制其强度,以便得到不同信噪比条件下的系统性能。在实际测量中,往往需要用到带限高斯白噪声。本实验中的噪声主要有两类,一类是用户间相互干扰的噪声,由于用户信息经过扩频具有伪随机性,所以又可称为伪噪声;另一类是我们自己添加到信道的高斯加性白噪声 AWNG,它独立于信源信号。信噪比计算是数学表达式为:222210log10log10log)sssnnsrESNRE (6)其中sE 为信码发射功率,nE 为噪声功率,s 为信源码,r 为信宿码,计算结果单位为dB。本实验设计,为了更好的验证系统性能,我们特意增加噪声幅度,在用户为四不变的前提下,减小 awng 的信噪比,我们把 awng(Channel,snr,measured)函数中的信噪比 snr 取值在-1010,-10(-4)范围内。只运行用户 A 的误码率和信噪比得图 13.从图13 可以看到系统的误码率随信道信噪比的变化,有递减的趋势,当信噪比接近于 0 时,系统误码率接近于 0;当信噪比接近负无穷时,系统误码率接近于 100。如图 13 图 13 用户 A 的误码率与信噪比关系曲线 3.3 问题的分析和解决(1)BPSK 解调 按照传统方法,对于式子:11()(cos()cos()cos()cos(2)22cacacaz tw tw tw t (6)如果要获得cos()a,要用低通滤波器,滤除高频信号cos(2)caw t,但是滤波器算法复杂,并且实现起来往往不太理想,不能确保有用信号不被滤除,噪声信号不会残留。于是,利用 MATLAB 强大的运算能力,用数学的方法反推出cos()a。从信道接收到的信号用数学式子表示为:cos()()caw tn t,其中cos()caw t表示用户 A 已调信号,()n t为信道噪声,包括其它用户信号和高斯加性白噪声。为了方便计算,我们舍去了噪声部分()n t,然后将接收到的信号()y t直接代入计算。具体数学推导过程如下:()cos()(cos()()cos()ccacy tw tw tn tw t 11121cos()*cos()()11cos()cos(2)()2211cos()cos(2)cos()sin(2)sin()()2211cos()cos(2)cos()sin(2)1cos()()2211cos()cos(2)cos()22cacacaacacaacacaacaw tw tn tw tn tw tw tn tw tw tn tw t2sin(2)1cos()caw t (7)从(7)式中可以看出,只要解方程求出cos()a,即可实现 BPSK 的解调。这里,我们利用 MATLAB 强大的运算功能,采用符号函数进行求反运算。具体实现源代码如下:syms wc t x;%y为接收信号,wc为载波频率,t为时间,x为解调信号,即cos()a y=x/2+cos(2*wc*t)*x-sin(2*wc*t)*sqrt(1-x2)/2;fi=finverse(y,x)%finverse为求反函数 运算结果得到为:fi=(x*sin(2*wc*t)+1/2*(4*x2*sin(2*wc*t)2-2*cos(2*wc*t)*sin(2*wc*t)2+2*sin(2*wc*t)2+8*x2*cos(2*wc*t)-8*x2)(1/2)/sin(2*wc*t)(8)替换符号后如下:cos()a=(y*cos(wc*t)*sin(2*wc*t)+1/2*(4*y*cos(wc*t)2*sin(2*wc*t)2-2*cos(2*wc*t)*sin(2*wc*t)2+2*sin(2*wc*t)2+8*y*cos(wc*t)2*cos(2*wc*t)-8*y*cos(wc*t)2)(1/2)/sin(2*wc*t)(9)注意,在 MATLAB 中数组之间的运算,符号“*、/、”应该换成“.*、./、.”。(2)Walsh 解扩 我们知道,在现代通信系统中,大多采用数字通信。而对于直接序列扩频系统,大都需要在接收端末端加上一个积分器,利用 Walsh 函数的正交性进行解扩。在数字通信系统中,积分器转换为累加器,我们在 CDMA 通信原理中找到了理论依据,通过求规格化内积,求一个用户码片内所有扩频码累加以后求平均值。于是,我们得到了一个比较平整的解调波形。4.仿真程序(1)主函数 main.m%*main.m*clear clc%N=input(walshN=);N=16;for i=1:4 switch i case 1%nA=input(AnA=);nA=fix(unifrnd(0,255);%m=i+1;figure(1);nA_2,ChannelA=send_module(nA,N,m);case 2%nB=input(BnB=);nB=fix(unifrnd(0,255);%m=i+1;figure(2);nB_2,ChannelB=send_module(nB,N,m);case 3%nC=input(CnC=);nC=fix(unifrnd(0,255);%m=i+1;figure(3);nC_2,ChannelC=send_module(nC,N,m);case 4%nD=input(DnD=);nD=fix(unifrnd(0,255);%m=i+1;figure(4);nD_2,ChannelD=send_module(nD,N,m);otherwise disp(error);end i=i+1;end figure(5);Channel=ChannelA+ChannelB+ChannelC+ChannelD;q=1:1:128*8;subplot(2,1,1);plot(q,Channel);title()axis(1 1024-5 5)snr=0000.1;y=awgn(Channel,snr,measured);subplot(2,1,2);plot(q,y);axis(1 1024-15.5 15.5)title()for i=1:4;switch i case 1 m=i+1;figure(6);receiveA=receive_module(N,y,m);case 2 m=i+1;figure(7);receiveB=receive_module(N,y,m);case 3 m=i+1;figure(8);receiveC=receive_module(N,y,m);case 4 m=i+1;figure(9);receiveD=receive_module(N,y,m);otherwise disp(error);end i=i+1;end%send=nA_2;nB_2;nC_2;nD_2;receive=receiveA;receiveB;receiveC;receiveD;count=0;for i=1:32 if send(i)=receive(i)count=count+1;end end disp();(2)walsh.m function A=walsh(x)H2=1 1;1-1;%2阶哈达码 NH2=H2*(-1);H4=H2 H2;H2 NH2;%4阶哈达码 NH4=-1*H4;H8=H4 H4;H4 NH4;%8阶哈达码 NH8=-1*H8;H16=H8 H8;H8 NH8;%16阶哈达码 NH16=-1*H16;H32=H16 H16;H16 NH16;%32阶哈达码 NH32=-1*H32;H64=H32 H32;H32 NH32;%64阶哈达码 NH64=-1*H64;H128=H64 H64;H64 NH64;%128阶哈达码 NH128=-1*H128;switch x case 2 A=H2;case 4 A=H4;case 8 A=H8;case 16 A=H16;case 32 A=H32;case 64 A=H64;case 128 A=H128;otherwise disp(error);end (3)send_module.m function data_2,I=send_module(n,N,unum)B=walsh(N);data=dec2base(n,2);data_2=ones(1,8)*(-1);for i=1:8;da=n/2;n=fix(da);if(da-n)0;data_2(i)=1;else data_2(i)=-1;end i=i+1;end C=ones(1,128);i=1;for k=1:8;for u=(k-1)*128+1:k*128;D(u)=data_2(k).*C(i);u=u+1;i=i+1;end k=k+1;i=1;end q=1:1:128*8;subplot(5,1,1)plot(q,D);%生成用户数据的波形 axis(1 1024-1.2 1.2)title(直接序列扩频通信调制部分)ylabel(用户m(t))n2=128/N;n3=ones(1,n2);n6=1;for n4=1:N for n5=(n4-1)*n2+1:n4*n2;E(n5)=B(unum,n4).*n3(n6);n5=n5+1;n6=n6+1;end n4=n4+1;n6=1;end F=E E E E E E E E;subplot(5,1,2)plot(q,F);%循环生成Walsh码 axis(1 1024-1.2 1.2)ylabel(Walsh码p(t);G=D.*F*(-1);subplot(5,1,3)plot(q,G);%直接序列扩频 axis(1 1024-1.2 1.2)ylabel(c(t)=m(t)*p(t);T=n2;w=2*pi/T;H=sin(w*q);subplot(5,1,4)plot(q,H);axis(1 1024-1.2 1.2)ylabel(载波);I=H.*G*(-1);subplot(5,1,5)plot(q,I);axis(1 1024-1.2 1.2)ylabel(BPSK已调波);(3)receive_module.m function receive_signal=receive_module(N,y,unum);K=walsh(N);q=1:1:128*8;n2=128/N;T=n2;w=2*pi/T;L=sin(w*q);subplot(5,1,1)plot(q,L);axis(1 1024-1.2 1.2)ylabel(载波);title(直接序列扩频通信解调部分)R=y.*L;P=1./2./(16+9.*sin(2.*w.*q).*sin(2.*w.*q).*(12.*sin(2.*w.*q).*cos(2.*w.*q).*R+20.*sin(2.*w.*q).*R+4.*sqrt(9.*sin(2.*w.*q).*sin(2.*w.*q).*cos(2.*w.*q).*cos(2.*w.*q).*R.*R+48.*sin(2.*w.*q).*sin(2.*w.*q).*cos(2.*w.*q).*R.*R-41.*R.*R.*sin(2.*w.*q).*sin(2.*w.*q)-32.*cos(2.*w.*q).*sin(2.*w.*q).*sin(2.*w.*q)+66.*sin(2.*w.*q).*sin(2.*w.*q).*sin(2.*w.*q).*sin(2.*w.*q)+32.*sin(2.*w.*q).*sin(2.*w.*q)+32.*R.*R.*cos(2.*w.*q)-32.*R.*R-18.*sin(2.*w.*q).*sin(2.*w.*q).*sin(2.*w.*q).*sin(2.*w.*q).*cos(2.*w.*q)+27.*sin(2.*w.*q).*sin(2.*w.*q).*sin(2.*w.*q).*sin(2.*w.*q).*sin(2.*w.*q).*sin(2.*w.*q)-27.*sin(2.*w.*q).*sin(2.*w.*q).*sin(2.*w.*q).*sin(2.*w.*q).*R.*R)./sin(2.*w.*q);subplot(5,1,2)plot(q,P);%BPSK解调 axis(1 1024-1.5 1.5)ylabel(BPSK解调);n3=ones(1,n2);n6=1;for n4=1:N for n5=(n4-1)*n2+1:n4*n2;E(n5)=K(unum,n4).*n3(n6);n5=n5+1;n6=n6+1;end n4=n4+1;n6=1;end F=E E E E E E E E;%F为对应用户的Walsh码序列 V=P.*F;subplot(5,1,3)plot(q,V);axis(1 1024-1.5 1.5)ylabel(Walsh解扩);sum=0;for n7=1:8;for n8=1:128 sum=sum+V(n8+(n7-1)*128)/128;n8=n8+1;end R(n7)=sum;sum=0;n7=n7+1;end S=ones(1,128);n7=0;for n7=1:8;for n8=(n7-1)*128+1:n7*128;for n9=1:128;U(n8)=S(n9).*R(n7);n9=n9+1;end n8=n8+1;end n7=n7+1;end subplot(5,1,4)plot(q,U);%利用Walsh函数的正交性求规格化内积 axis(1 1024-1 1)ylabel(解调);for n10=1:128*8 if U(n10)=0 W(n10)=1;else W(n10)=-1;end n10=n10+1;end subplot(5,1,5)plot(q,W);%判决器 axis(1 1024-1.2 1.2)ylabel(判决器);%接收端还原后信号 i=0;for n7=1:8;receive_signal(n7)=W(n7+i*128);i=i+1;end (4)SNR function count=SNR(snr)%N=input(walshN=);N=16;for i=1:4 switch i case 1%nA=input(AnA=);nA=fix(unifrnd(0,255);%m=i+1;nA_2,ChannelA=send_module(nA,N,m);case 2%nB=input(BnB=);nB=fix(unifrnd(0,255);%m=i+1;nB_2,ChannelB=send_module(nB,N,m);case 3%nC=input(CnC=);nC=fix(unifrnd(0,255);%m=i+1;nC_2,ChannelC=send_module(nC,N,m);case 4%nD=input(DnD=);nD=fix(unifrnd(0,255);%m=i+1;nD_2,ChannelD=send_module(nD,N,m);otherwise disp(error);end i=i+1;end Channel=ChannelA+ChannelB+ChannelC+ChannelD;q=1:1:128*8;y=awgn(Channel,snr,measured);for i=1:4;switch i case 1 m=i+1;%figure(6);receiveA=receive_module(N,y,m);case 2 m=i+1;receiveB=receive_module(N,y,m);case 3 m=i+1;receiveC=receive_module(N,y,m);case 4 m=i+1;receiveD=receive_module(N,y,m);otherwise disp(error);end i=i+1;end%send=nA_2 receive=receiveA;receiveB;receiveC;receiveD count=0;for i=1:8;if send(i)=receive(i)count=count+1;end end disp();count (5)用户A误码率计算 clear clc count=0;for i=-4:10 for k=1:10 snr=-10i count=count+SNR(snr);k=k+1;end EBR=count/1200;ebr(i+5)=EBR;figure(10);loglog(snr,EBR,b*);grid on;hold on;i=i+1;end ebr snr=-10(-4)-10(-3)-10(-2)-10(-1)-100-101-102-103-104-105-106-107-108-109-1010;plot(snr,ebr,r:);title(误码率与信噪比关系曲线)xlabel(信噪比(dB);ylabel(误码率);hold off 5.课程设计心得 经过本次课程设计,我们对 Matlab 和移动通信相关知识点更加熟悉了解。尤其是matlab 程序编程的使用。经过查阅了大量的文献和不断的实践,由一开始的不知从何入手到渐渐理解了整个设计的原理和具体设计的思路,并且一遍又一遍的重复实践,直到我们期望的结果实现,那种解决一个难题的成就感不是一个两个词能够形容的,可以说,痛并快乐着。在团队合作方面,我们团队有比较明确的分工,例如,上网和到图书馆查找资料,设计原理框图,编写、调试程序,撰写设计报告等等。而且有时候不能只是做自己的任务,还要充分了解其他成员的任务和情况,一起讨论遇到的问题,共同思考出方案。这次实习使我们充分认识到团队合作的重要性和必然性!更重要的是,这次课程设计的内容是我们以后从事通信系统研究和工作的基础。在毕业前的这次练笔,无疑也是一次巩固知识的机会。在各种专业面试中更增加了一个筹码。Design of spread spectrum communication system based on MATLAB AbstractAbstract In this paper,MATLAB-based spread spectrum communication system design.For us to introduce a spread spectrum communication system in the basic principles of spread spectrum system and all important modules to conduct a detailed theoretical introduction,such as Walsh functions and its characteristics,BPSK modulation and demodulation methods,and the high places like the nature of white noise Awng characteristics and so on.All of the theoretical basis for follow-up procedures of the MATLAB simulation to lay the foundation.Part in the MATLAB simulation procedures can be broadly divided into the majority of 6,respectively,the main function,sending module,receiver module,AWNG channel,Walsh function and error counters.Through the main function of each call Functions,4 users realize the random data to send and receive,at the same time generated before the 4 users in the entire transfer process changes in a variety of waveform diagram of the system signal to noise ratio and bit error rate Analysis of the relationship.Spread spectrum communication is an important branch of communications and channel the direction of development of communication systems.Spread-spectrum technology,with strong anti-interference ability,confidentiality,and easy to realize the advantages of multiple access communications,so the technology is receiving increasing attention,which is select the reason for research.Key words:Key words:spread spectrum Walsh MATLAB 参考文献 1.李