基于卷积编码的扩频通信系统软件平台设计 打印要点.docx

上传人:b****6 文档编号:12103176 上传时间:2023-06-04 格式:DOCX 页数:23 大小:359.01KB
下载 相关 举报
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第1页
第1页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第2页
第2页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第3页
第3页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第4页
第4页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第5页
第5页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第6页
第6页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第7页
第7页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第8页
第8页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第9页
第9页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第10页
第10页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第11页
第11页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第12页
第12页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第13页
第13页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第14页
第14页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第15页
第15页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第16页
第16页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第17页
第17页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第18页
第18页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第19页
第19页 / 共23页
基于卷积编码的扩频通信系统软件平台设计 打印要点.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于卷积编码的扩频通信系统软件平台设计 打印要点.docx

《基于卷积编码的扩频通信系统软件平台设计 打印要点.docx》由会员分享,可在线阅读,更多相关《基于卷积编码的扩频通信系统软件平台设计 打印要点.docx(23页珍藏版)》请在冰点文库上搜索。

基于卷积编码的扩频通信系统软件平台设计 打印要点.docx

基于卷积编码的扩频通信系统软件平台设计打印要点

 

基于卷积编码的扩频通信系统

软件平台设计

 

班级:

通信131

姓名:

崔校通

学号:

201300484316

目录

一设计内容及要求3

1.1设计目的3

1.2设计任务4

1.3设计内容4

二设计原理5

2.1数据源5

2.2卷积编码5

2.3m序列发生器6

2.4扩频与解扩6

2.4.1扩频6

2.4.2解扩7

2.5Viterbi译码7

2.6可靠度评估8

三软件仿真及结果分析9

3.1信源调制9

3.1.1信息码生成模块9

3.1.2卷积编码9

3.1.3伪随机码生成模块10

3.1.4扩频调制模块11

3.1.5BPSK调制模块12

3.2信息传输13

3.2.1加噪模块13

3.3信宿解调14

3.3.1BPSK解调模块14

3.3.2解扩模块15

3.3.3Viterbi译码16

3.4性能分析19

3.4.1卷积扩频分析19

3.4.2信源信宿比较20

3.4.3频谱分析20

四心得体会22

参考文献23

 

前言

扩频通信是现代通信系统中新的通信方式,它具有较强的抗干扰、抗衰落和抗多径性能,频谱利用率高。

扩频信号是不可预测的、伪随机的宽带信号,其带宽远大于要传输的数据(信息)带宽,同时接收机中必须有与宽带载波同步的副本。

在发端输人的信息先调制形成数字信号,然后由扩频码发生器产生的扩频码序列去调制数字信号以展宽信号的频谱,展宽后的信号再调制到射频发送出去。

在接收端收到的宽带射频信号,变频至中频,然后由本地产生的与发端相同的扩频码序列去相关解扩,再经信息解调,恢复成原始信息输出。

通信系统都要进行3次调制和相应的解调。

一次调制为信息调制。

与一般通信系统比较,多了扩频调制和解扩部分。

扩频通信具备如下特征:

(1)数字传输方式;

(2)传输信号的带宽远大于被传信息带宽;(3)带宽的展宽,是利用与被传信息无关的函数(扩频函数)对被传信息的信元重新进行调制实现的;(4)接收端用相同的扩频函数进行相关解调(解扩),求解出被传信息的数据。

用扩频函数(也称伪随机码)调制和对信号相关处理是扩频通信有别于其他通信的两大特点。

 

一设计内容及要求

1.1设计目的

(1)学习通信中的纠错编码技术及其主要应用;

(2)掌握扩频通信原理技术及其特点,了解其在通信系统中特别是第三代移动通信系统所采用的码分多址(CDMA)技术中的应用;

(3)学会用C或MATLAB软件方法设计一般通信系统;

(4)学习CDMA手机的信息处理过程,掌握其基带电路主要组成部分和工作原理及功能;模拟CDMA手机的信息处理过程。

完成基带电路主要组成部分的软件平台设计并评估系统的可靠性。

1.2设计任务

(1)建立CDMA手机处理信息的卷积编码扩频通信系统

(2)软件实现卷积编码和Viterbi译码的算法

(3)软件实现扩频通信系统的扩频与解扩

(4)评估卷积编码扩频通信系统的可靠性

1.3设计内容

本次课程设计主要实现的任务有:

建立卷积编码扩频通信系统;软件实现卷积编码和Viterbi译码的算法;软件实现扩频通信系统的扩频与解扩;评估卷积编码扩频通信系统的可靠性。

系统设计的总体框图如图1-1:

m序列发生器

判决数据

Viterbi

译码

解扩

信道

扩频

卷积编码

数据源

图1-1

二设计原理

2.1数据源

随机产生b(t)={b(0),b

(1),b

(2),……}的二进制数据

2.2卷积编码

卷积码(又称连环码),是由伊莱亚斯(P.Elis)提出的一种非分组码。

它把k比特信息段编成n比特的码组,该码组不仅同当前的k比特信息段有关,而且还同前面的(N-1)个信息段有关联(N为大于1的整数)。

通常,把卷积码记作(n,k,N),其中k为输入码元数,n为输出码元数,N为约束长度,表示编码器的存储器级数。

卷积编码属于信道编码,主要用来纠正码元的随机差错,它是以牺牲效率来换取可靠性,利用增加监督位,进行检错和纠错。

卷积码编码器是一个由k个输入端、n个输出端,且具有(N-1)或m节移位寄存器构成的有限状态记忆系统,通常称为时序网络,其原理如图2-1所示。

图2-1

2.3m序列发生器

二进制的m序列是一种重要的伪随机序列,有良好的自相关特性,有时称为伪噪声序列。

m序列是最长线性移位寄存器序列的简称。

顾名思义,m序列是由多级移位寄存器或其延迟元件通过线性反馈产生的最长的码序列。

它能产生的的最大长度的码序列为2^n-1位。

2.4扩频与解扩

将编码输出与扩频码相乘,即完成扩频;将扩频后的信号(叠加有噪声)与扩频码相乘,即为解扩。

2.4.1扩频

扩频通信的基本特点是传输信号所占用的频带宽度(W)远大于原始信息本身实际所需的最小(有效)带宽(DF),其比值称为处理增益Gp,其中Gp=W/DF。

任何信息的有效传输都需要一定的频率宽度,为了充分利用有限的频率资源,增加通路数目,人们广泛选择不同调制方式,采用宽频信道(同轴电缆、微波和光纤等)和压缩频带等措施,同时力求使传输的媒介中传输的信号占用尽量窄的带宽。

因现今使用的电话、广播系统中,无论是采用调幅、调频或脉冲编码调制制式,Gp值一般都在十多倍范围内,统称为“窄带通信”,而扩频通信的Gp值,高达数百、上千,称为 “宽带通信”。

如图图2-2为扩频系统能够一般原理图:

图2-2

2.4.2解扩

正如在一般的窄带通信中,已调信号在接收端都要进行解调来恢复所传的信息。

在扩频通信中接收端则用与发送端相同的扩频码序列与收到的扩频信号进行相关解调,恢复所传的信息。

换句话说,这种相关解调起到解扩的作用。

即把扩展以后的信号又恢复成原来所传的信息。

这种在发端把窄带信息扩展成宽带信号,而在收端又将其解扩成窄带信息的处理过程,会带来一系列好处。

弄清楚扩频和解扩处理过程的机制,是理解扩频通信本质的关键所在。

基本的扩频过程就是在收端产生与发端完全相同的PN码,对收到的扩频信号,在平衡调制器中再一次进行二相相移键控调制。

可以看出发端相移键控调制后的信号在收端又被恢复成原来的载波信号。

当然一个必要的条件是本地的PN码信号的相位必须和收到的相移后的信号在相移点对准,才能正确地将相移后的信号再翻转过来。

2.5Viterbi译码

Viterbi译码算法是一种卷积码的解码算法。

卷积码的Viterbi译码是根据接收码字序列寻找编码时通过网格图最佳路径的过程,找到最佳路径即完成了译码过程,并可以纠正接收码字中的错误比特。

所谓“最佳”,是指最大后验条件概率:

P(C/R)=maxj[P(Cj/R)],其译码流程为:

(1)根据接收码符号计算出相应的分支量度值;

(2)进入某一状态的分支量度与其前状态路径量度累加求和;

(3)比较到达当前状态的新的路径量度的大小,选择最大者作为新的状态路径量度存储起来,并保存与此路径对应的码字;

(4)对所有状态都实施上述加、比、选运算;

(5)在每一译码时刻,满足延时就从256条留存路径中,选择路径量度最大的一条路径作为译码数输出;

(6)进入下一译码时刻,重复以上步骤,直至译码结束。

2.6可靠度评估

用误码率(BER)指标,计算公式

……

比较两个数据

三软件仿真及结果分析

3.1信源调制

3.1.1信息码生成模块

code_length=20;%信息码元个数

N=1:

code_length;

rand('seed',0);

x=sign(rand(1,code_length)-0.5);%信息码从0、1序列变成-1、1序列

x1=rectpulse(x,800);%每个码元内采样800个点

plot(x1);

axis([016000-1.51.5]);

title('信源信息码序列');

gridon;

生成信息码的波形图

3.1.2卷积编码

functionoutput=cnv_encd(g,k0,input)

ifrem(length(input),k0)>0

input=[input,zeros(size(1:

k0-rem(length(input),k0)))];

end

n=length(input)/k0;

ifrem(size(g,2),k0)>0

error('Error,gisnotoftherightsize.')

end

l=size(g,2)/k0;

n0=size(g,1);

u=[zeros(size(1:

(l-1)*k0)),input,zeros(size(1:

(l-1)*k0))];

u1=u(l*k0:

-1:

1);

fori=1:

n+l-2

u1=[u1,u((i+l)*k0:

-1:

i*k0+1)];

end

uu=reshape(u1,l*k0,n+l-1);

output=reshape(rem(g*uu,2),1,n0*(l+n-1));

********************************************************

g=[00101001;00000001;10000001];

k0=2;input=[10011100110000111];

output=cnv_encd(g,k0,input)

********************************************************

g=[101;111];k0=1;

channel_output=[01101111010001];

[decoder_output,survivor_state,cumulated_metric]=viterbi(g,k,channel_output)

 

3.1.3伪随机码生成模块

functiony=mgen(g,state,N)

%输入g:

m序列生成多项式(10进制输入)

%state:

寄存器初始状态(10进制输入)

%N:

输出序列长度

figure

(1)

g=19;state=8;N=2000;

gen=dec2bin(g)-48;

M=length(gen);

curState=dec2bin(state,M-1)-48;

fork=1:

N

y(k)=curState(M-1);

a=rem(sum(gen(2:

end).*curState),2);

curState=[acurState(1:

M-2)];

end

x_code=sign(y-0.5);

pn=rectpulse(x_code,8);%每个伪码元内采样8个点

plot(pn);

axis([0600-1.51.5]);

title('伪随机码序列');

gridon;

生成伪随机码的波形图

3.1.4扩频调制模块

gt=x1.*pn;

plot(gt);

axis([01000-1.51.5]);

title('复合码序列');

gridon;

生成的复合码波形图

3.1.5BPSK调制模块

%用BPSK调制

fs=20e6;

f0=30e6;

fori=1:

2000

AI=2;

dt=fs/f0;

n=0:

dt/7:

dt;%一个载波周期内采样8个点

cI=AI*cos(2*pi*f0*n/fs);

x_bpsk((1+(i-1)*8):

i*8)=gt((1+(i-1)*8):

i*8).*cI

end

plot(x_bpsk);

axis([0200-2.52.5]);

title('BPSK调制后的波形');

gridon;

生成BPSK调制后的波形图

3.2信息传输

3.2.1加噪模块

sigma=0.1;

nt=sigma*randn(1,20);

nt1=rectpulse(nt,800);

gt1=gt+nt1;

fs=20e6;

f0=30e6;

fori=1:

2000

AI=2;

dt=fs/f0;

n=0:

dt/7:

dt;%一个载波周期内采样8个点

cI=AI*cos(2*pi*f0*n/fs);

x_bpsk1((1+(i-1)*8):

i*8)=gt1((1+(i-1)*8):

i*8).*cI

end

plot(x_bpsk1);

axis([0200-2.52.5]);

title('加噪后已调波的波形');

gridon;

生成加噪后已调波的波形图

3.3信宿解调

3.3.1BPSK解调模块

AI=1;

dt=fs/f0;

n=0:

dt/7:

dt;%一个载波周期内采样八个点

cI=AI*cos(2*pi*f0*n/fs);

fori=1:

2000

s((1+(i-1)*8):

i*8)=x_bpsk1((1+(i-1)*8):

i*8).*cI;

end

plot(s);

axis([0200-2.52.5]);

title('解调后的波形');

gridon;

生成BPSK解调后的波形图

3.3.2解扩模块

%相关解扩

jk_code=s.*pn;

%低通滤波

wn=5/1000000;%截止频率wn=fn/(fs/2),这里fn为扩频码的带宽5M

b=fir1(16,wn);

H=freqz(b,1,16000);

xx=filter(b,1,jk_code);

plot(xx);

axis([016000-1.51.5]);

title('解扩并滤波后的波形');

gridon;

生成解扩后的波形图

3.3.3Viterbi译码

function[decoder_output,survivor_state,cumulated_metric]=viterbi(g,k,channel_output)

n=size(g,1);

ifrem(size(g,2),k)~=0

error('Sizeofgandkdonotagree')

end

ifrem(size(channel_output,2),n)~=0

error('channeloutputnotoftherightsize')

end

L=size(g,2)/k;

number_of_states=2^((L-1)*k);

forj=0:

number_of_states-1

forl=0:

2^k-1

[next_state,memory_contents]=nxt_stat(j,l,L,k);

input(j+1,next_state+1)=l;

branch_output=rem(memory_contents*g',2);

nextstate(j+1,l+1)=next_state;

output(j+1,l+1)=int_state(branch_output);

end

end

state_metric=zeros(number_of_states,2);

depth_of_trellis=length(channel_output)/n;

channel_output_matrix=reshape(channel_output,n,depth_of_trellis);

survivor_state=zeros(number_of_states,depth_of_trellis+1);

fori=1:

depth_of_trellis-L+1

flag=zeros(1,number_of_states);

ifi<=L

step=2^((L-i)*k);

else

step=1;

end

forj=0:

step:

number_of_states-1

forl=0:

2^k-1

branch_metric=0;

binary_output=bin_state(output(j+1,l+1),n);

forll=1:

n

branch_metric=branch_metric+metric(channel_output_matrix(ll,i),binary_output(ll));

end

if((state_metric(nextstate(j+1,l+1)+1,2)>state_metric(j+1,1)+branch_metric)|flag(nextstate(j+1,l+1)+1)==0)

state_metric(nextstate(j+1,l+1)+1,2)=state_metric(j+1,1)+branch_metric;

survivor_state(nextstate(j+1,l+1)+1,i+1)=j;

flag(nextstate(j+1,l+1)+1)=1;

end

end

end

state_metric=state_metric(:

2:

-1:

1);

end

fori=depth_of_trellis-L+2:

depth_of_trellis

flag=zeros(1,number_of_states);

last_stop=number_of_states/(2^((i-depth_of_trellis+L-2)*k));

forj=0:

last_stop-1

branch_metric=0;

binary_output=bin_state(output(j+1,1),n);

forll=1:

n

branch_metric=branch_metric+metric(channel_output_matrix(ll,i),binary_output(ll));

end

if((state_metric(nextstate(j+1,1)+1,2)>state_metric(j+1,1)+branch_metric)|flag(nextstate(j+1,1)+1)==0)

state_metric(nextstate(j+1,1)+1,2)=state_metric(j+1,1)+branch_metric;

survivor_state(nextstate(j+1,1)+1,i+1)=j;

flag(nextstate(j+1,1)+1)=1;

end

end

state_metric=state_metric(:

2:

-1:

1);

end

state_sequence=zeros(1,depth_of_trellis+1);

state_sequence(1,depth_of_trellis)=survivor_state(1,depth_of_trellis+1);

fori=1:

depth_of_trellis

state_sequence(1,depth_of_trellis-i+1)=survivor_state((state_sequence(1,depth_of_trellis+2-i)+1),depth_of_trellis-i+2);

end

decoder_output_matrix=zeros(k,depth_of_trellis-L+1);

fori=1:

depth_of_trellis-L+1

dec_output_deci=input(state_sequence(1,i)+1,state_sequence(1,i+1)+1);

dec_output_bin=bin_state(dec_output_deci,k);

decoder_output_matrix(:

i)=dec_output_bin(k:

-1:

1)';

end

decoder_output=reshape(decoder_output_matrix,1,k*(depth_of_trellis-L+1));

cumulated_metric=state_metric(1,1);

3.4性能分析

3.4.1卷积扩频分析

3.4.2信源信宿比较

3.4.3频谱分析

通过以上图形可以得出的结论如下:

在加入卷积后,系统的抗干扰能力比没有加卷积的时候强;加入扩频比不加扩频的时候抗干扰能力强,并且扩频因子越大,系统的抗干扰能力越强。

在相同条件下,码率越小系统的抗干扰能力越好。

四心得体会

转眼间方向课程设计就结束了。

这次课程设计也是我们大学学习中的最后一次课程设计了,因此对于这次课程设计我也更加珍惜,比以前更加认真对待。

回想以前的多次课程设计,似乎也觉得这次比以前学到的东西要多。

毕竟这次课程设计是我们专业方向的课设,对专业只是的要求也比较高,不仅让我们能巩固到进入大学以来所学的专业知识,更让我们提前体会到进入社会后从事专业技术工作的状态。

这次课程设计要求我们用到MATLAB软件工具或者是C语言进行软件的编程,来实现课设中所要求的卷积编码和Viterbi译码的算法以及实现扩频通信系统的扩频与解扩。

这就要求我们对MATLAB和C语言能够熟练应用,面对复杂的程序编写刚开始我和我的小组成员有点儿手足无措,不知从哪里入手,但经过老师对课设原理的基本讲解后,我们对课设实现的基本模块也有了初步了解。

在这个基础上我们有从图书馆借来MATLAB的相关书籍来作为参考,也把和《通信原理》课本相关的知识内容进行了巩固。

最后我们针对课设原理的模块各个击破,最后终于把程序完成了,病进行了相关的仿真和调试。

通过这次课设又让我进一步学习到了小组合作的重要性,也学到了在面对困难及问题的时候不能慌张,要仔细认真的从中一步步找错误,急于求成只能让问题更复杂。

在以后毕业的工作中更需要这种合作精神以及严谨认真的态度。

这些对我们以后的发展都很重要。

参考文献

【1】兴雯等.扩展频谱通信及其多址技术[M].西安:

西安电子科技大学出版社, 2004.【2】蓉,李署坚.扩频通信技术[J].无线电工程,2001,(S1).

【3】淑君,柳铎.浅谈扩频通信技术及其应用[J].山东电子,2004,(01).

【4】孟令彪.无线扩频通信技术述略[J].商场现代化,2004,(15).1998,(06).

【6】徐明元,邵玉斌.matlab仿真在通信与电子工程中的应用[M].西安电子科技大学出版社,2001

【7】郭海燕,毕红军.MATLAB在伪随机码的生成及仿真中的应用[J].计算机仿真,21(3),2004.3

 

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

当前位置:首页 > 自然科学 > 物理

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

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