以香农编码为信源编码74循环码为信道编码的2FSK信号的调制解调.docx

上传人:b****3 文档编号:5058807 上传时间:2022-12-12 格式:DOCX 页数:10 大小:96.38KB
下载 相关 举报
以香农编码为信源编码74循环码为信道编码的2FSK信号的调制解调.docx_第1页
第1页 / 共10页
以香农编码为信源编码74循环码为信道编码的2FSK信号的调制解调.docx_第2页
第2页 / 共10页
以香农编码为信源编码74循环码为信道编码的2FSK信号的调制解调.docx_第3页
第3页 / 共10页
以香农编码为信源编码74循环码为信道编码的2FSK信号的调制解调.docx_第4页
第4页 / 共10页
以香农编码为信源编码74循环码为信道编码的2FSK信号的调制解调.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

以香农编码为信源编码74循环码为信道编码的2FSK信号的调制解调.docx

《以香农编码为信源编码74循环码为信道编码的2FSK信号的调制解调.docx》由会员分享,可在线阅读,更多相关《以香农编码为信源编码74循环码为信道编码的2FSK信号的调制解调.docx(10页珍藏版)》请在冰豆网上搜索。

以香农编码为信源编码74循环码为信道编码的2FSK信号的调制解调.docx

以香农编码为信源编码74循环码为信道编码的2FSK信号的调制解调

目 录

 

1课程设计目的………………………………………………………………………………1

2课程设计正文………………………………………………………………………………1

2.1调制原理……………………………………………………………………………1

2.2解调原理……………………………………………………………………………3

2.3程序分析……………………………………………………………………………3

3课程设计总结………………………………………………………………………………9

4参考文献……………………………………………………………………………………9

1课程设计目的

通过我们对这次CDIO二级项目的学习和理解,综合运用课本中所学到的理论知识完成一个以香农编码为信源编码、(7,4)循环码为信道编码的2FSK信号调制解调的课程设计。

以及锻炼我们查阅资料、方案比较、团结合作的能力。

学会了运用MATLAB编程来实现2FSK调制解调过程,并且输出其调制及解调过程中的波形,并且讨论了其调制和解调效果,增强了我们的动手能力,为以后学习和工作打下了基础。

2课程设计正文

本次课程设计我们所做的课题是一个以香农编码为信源编码、(7,4)循环码为信道编码的2FSK信号调制解调的CDIO项目,这就要求我们需要完成信源编码、信道编码、信号的调制解调以及误码率分析等问题。

图1 数字通信系统模型

数字信号的传输方式分为基带传输和带通传输,在实际应用中,大多数信道具有带通特性而不能直接传输基带信号。

为了使数字信号在带通信道中传输,必须使用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。

这种用数字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。

2.1调制原理

用基带信号

对高频载波的瞬时频率进行控制的调制方式叫做调频,在数字调制系统中则称为频移键控(FSK)。

频移键控在数字通信中是使用较早的一种调制方式,这种方式实现起来比较容易,抗干扰和抗衰落的性能也较强。

其缺点是占用频带较宽,频带利用串不够高,因此,额移键控主要应用于低、中速数据的传输,以及衰落信道与频带较宽的信道。

频移键控是利用载波的频率变化来传递数字信息。

在2FSK中,载波的频率随二进制基带信号在

两个频率点间变化。

故其表达式为:

 

假设二进制序列s(t)为l01001时,则2FSK信号的波形如图2.1.2所示

图2 2FSK信号的波形

从图中可以看出,一个2FSK信号可以看成是两个不同载频的2ASK信号的叠加。

因此,2FSK信号的时域表达式又可写成

式中:

g(t)为单个矩形脉冲,脉宽为

的反码,若

=1,则

=0;若

=0,则

=1,于是

分别是第n个信号码元的初相位。

在移频键控中,

不携带信息,通常可令和为零。

2.2 解调原理

数字调频信号的解调方法很多,如相干检测法、包络检波法、过零检测法、差分检测法等。

过零检测法较其他三种分析方法更简单,下面我们以过零检测法为例来解释一下解调原理。

单位时间内信号经过零点的次数多少,可以用来衡量频率的高低。

数字调频波的过零点数随不同载频而异,故检出过零点数可以得到关于频率的差异,这就是过零检测法的基本思想。

过零检测法方框图及各点波形如图2.2.4所示。

在图中,2FSK信号经限幅、微分、整流后形成与频率变化相对应的尖脉冲序列,这些尖脉冲的密集程度反映了信号的频率高低,尖脉冲的个数就是信号过零点数。

把这些尖脉冲变换成较宽的矩形脉冲,以增大其直流分量,该直流分量的大小和信号频率的高低成正比。

然后经低通滤波器取出此直流分量,这样就完成了频率——幅度变换,从而根据直流分量幅度上的区别还原出数字信号“1”和“0”。

图3  过零检测法方框图及各点波形图

2.3程序分析

2.3.1香农编码实现程序

%求解给定信源符号概率的香农编码

n=input('输入信源符号个数n=');

p=zeros(1,n);

fori=1:

n

p(1,i)=input('输入信源符号概率:

');

end

ifsum(p)~=1

error('输入概率不符合概率分布')

end

y=fliplr(sort(p));%从大到小的排序

D=zeros(n,4); %生成7*4的零矩阵

D(:

1)=y; %把y赋给零矩阵D的第一列

fori=2:

n

D(1,2)=0;%令第一行第二列的元素为0

D(i,2)=D(i-1,1)+D(i-1,2);%第二列其余的元素用此式求得,即为累加概率

end

fori=1:

n

D(i,3)=-log2(D(i,1));%求第三列的元素

D(i,4)=ceil(D(i,3));%求第四列的元素,对D(i,3)向无穷方向取最小正整数

end

A=D(:

2); %取出D中第二列元素

B=D(:

4);%取出D中第四列元素

forj=1:

n

C=shancode(A(j),B(j))%自定义编码函数

End

定义编码函数:

functionC=shancode(A,B)%定义对累加概率求二进制的函数

C=zeros(1,B); %生成零矩阵用于存储生成的二进制数,对二进制的每一位进行操作

temp=A;    %temp赋初值

fori=1:

B  %累加概率转化为二进制,循环求二进制的每一位,A控制生成二进制的位数

temp=temp*2;

iftemp>1

temp=temp-1;

C(1,i)=1;

else

C(1,i)=0;

end

end

2.3.2循环码编码

(7,4)循环码为一组码长为7位二进制数,其中4位信息位,3位由信息经运算产生的监督码,自定义一个生成矩阵或监督矩阵利用循环码编码原理编辑程序如下。

function[ ]=coding(a)

%(7,4)循环码编码程序%

a=input('输入信息元序列(请按格式输入,如[0101]):

');

n=7;k=4;

G=[1011];

stage=[000]; %寄存器初始化%

fori=1:

k

temp=a(i);

s_stage=stage;

stage

(1)=xor(temp,s_stage(3));

stage(3)=s_stage

(2);

stage

(2)=xor(s_stage

(1),stage

(1));

temp

stage

end  

%多项式除法运算,stage中存储寄存器的值,s_stage为stage上次时序中存储的数值,经四次移位后,存储的数值即为于是多项式的系数%

y=[astage(3)stage

(2)stage

(1)] 

%将信息码字以及寄存器数值一次输出,即为系统循环码码字%

y=[yy(7)];t=[0:

1:

7];

stairs(t,y)

axis([07-12])  %输出方波波形     

end

若输入序列为[1001],则输出序列为[1001110],图形如下。

图4 方波波形图

2.3.32FSK调制及解调

2FSK为二进制频移键控,用一组二进制序列控制载波的频率,故已调信号的频率只有两个取值,在本次仿真中调制和解调均直接调用函数,具体程序如下。

%2FSK调制

F1=400; %载频1

Fs=8000; %系统采样频率

F2=800;  %载频2

M=2;   %进制数

SN=25; %信噪比

tiaozhi=fskmod(y,M,F1,F2,Fs);

z1=awgn(tiaozhi,SN,'measured');  %加入高斯白噪声,模拟实际传输信道

%2FSK解调

z2=fskdemod(z1,M,F1,F2,Fs);

2.3.4循环码译码

译码是根据编码的生成矩阵,将所有许用码组和接收码组进行查询比较,得到原码组,实现程序如下。

function[ ]=decoding(Receive)

n=7;k=4;

g=[1011];

Receive=input('输入接收码元序列(请按格式输入,如[0101110]):

');

stage=[000]; %寄存器初始化%

fori=1:

n

temp=Receive(i);

s_stage=stage;

stage

(1)=xor(temp,s_stage(3));

stage(3)=s_stage

(2);

stage

(2)=xor(s_stage

(1),s_stage(3));

end

S=[stage(3),stage

(2),stage

(1)]; %多项式除法运算,取余项存于寄存器中%

e=S %错误图样%

ife==0

c=Receive

input('输入码字无误,Receive=c\n');

else

ei=[0000000];

ife==[001]

ei=[0000001];

elseife==[010]

ei=[0000010];

elseife==[100]

ei=[0000100];

elseife==[011]

ei=[0001000];

elseife==[110]

ei=[0010000];

elseife==[111]

ei=[0100000];

elseife==[101]

ei=[1000000];

end

%查表法确定ei%

ei

c=[xor(Receive

(1),ei

(1)),xor(Receive

(2),ei

(2)),xor(Receive(3),ei(3)),xor(Receive(4),ei(4)),xor(Receive(5),ei(5)),xor(Receive(6),ei(6)),xor(Receive(7),ei(7))]

%c=Receive+ei%

c=[cc(7)];

t=[0:

1:

7];

stairs(t,c)

axis([07-12]) %输出方波波形%

end

end

在本次系统仿真中,也可直接调用Matlab中的循环码编码函数,其调用格式如下。

y=encode(x,7,4,'cyclic')。

x表示输入码组,y为输出对应循环编码。

2.3.5香农译码

香农译码也是类似循环译码,香农编码时由概率确定的唯一码组,将其唯一码组对应一个信源符号序列,利用查询法,若有与码组中对应的序列,则输出该码组所对应的信源符号,这种不适合信源符号数众多的情况,只适合信源个数比较少的情况,例如传输数字、字母等有限符号个数。

其中误码率如下图所示。

图5 误码率

3课程设计总结

本次课程设计我做的课题是以香农编码为信源编码、(7,4)循环码为信道编码的2FSK信号的调制解调,通过这次CDIO课程设计,让我重新复习了2FSK的调制与解调技术,并通过对香农编码和(7,4)循环码的实现让我也加深了对信源编码和信道编码的理解,与此同时,在程序的运行和实现的一遍又一遍的重复中,也让我基本熟悉掌握了Matlab的使用方法,当然,在实验的过程中,一件又一件的问题摆在我的面前,让我逐步的认识到自己知识的贫乏与欠缺,这让我意识到,无论在以后的学习还是工作中,都不能泛泛地学习,而应将学到的东西用于实践,从而深刻地把握理论知识。

由于这次课题看似简单,但很多时候多一个人的想法可能就多了一份成功的希望。

所以这就要求我们培养团结合作的团队精神,我相信无论走到哪里,这在我们的现实生活中都是必须的。

4、参考文献

[1]樊昌信曹丽娜.通信原理(第六版)国防工业出版社,2006.2

[2]曹雪红张宗橙.信息论与编码(第二版)清华大学出版社,2009.2

课程设计

评语

 

课程设计

成绩

 

指导教师

(签字)

年月日

 

 

 

 

 

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1