通信原理课设报告信息论的基本计算数字信号频带传输系统设计文档格式.docx
《通信原理课设报告信息论的基本计算数字信号频带传输系统设计文档格式.docx》由会员分享,可在线阅读,更多相关《通信原理课设报告信息论的基本计算数字信号频带传输系统设计文档格式.docx(29页珍藏版)》请在冰点文库上搜索。
评分成绩
1.选题合理、目的明确。
(10分)
2.设计方案正确,具有可行性、创新性。
(20分)
3.设计结果。
(硬件成果、软件程序)(25分)
4.态度认真、学习刻苦、遵守纪律。
(10分)
5.设计报告的规范化、参考文献充分。
(不少于5篇)(10分)
6.答辩。
(25分)
总分(100)
备注:
成绩等级:
优(90分—100分)、良(80分—89分)、中(70分—79分)、及格(60分—69分)、60分以下为不及格。
五、课程设计参考资料
教材:
《通信原理》第5版,主编:
樊昌信,出版社:
国防工业出版社,2004年。
参考书:
《MATLAB通信仿真与应用》,主编:
刘敏,出版社:
北京邮电大学出版社,2004年。
附:
课程设计报告装订顺序:
封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。
正文的格式:
一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;
行距为22。
正文的内容:
一、课题的主要功能;
二、课题的功能模块的划分(要求画出模块图);
三、主要功能的实现;
四、程序调试;
五、总结;
六、附件(所有程序的原代码,要求对程序写出必要的注释);
七、评分表。
目录
1、课题名称1
2、课程设计的方案和基本原理1
2.1信息论基本计算1
2.2数字信号频带传输系统设计1
3、课程设计步骤3
3.1信息论基本计算的设计步骤3
3.2数字信号频带传输系统的设计步骤4
4、课程设计结果和结果分析5
4.1信息论的基本运算结果5
4.2数字信号频带传输系统设计6
5、心得体会14
6、附件(源代码)14
6.1信息论基本计算14
6.2数字信号基带传输系统17
7、参考文献23
8、评分表24
1、课题名称
(1)信息论基本计算。
(2)数字信号频带传输系统设计
2、课程设计的方案和基本原理
2.1信息论基本计算
2.1.1平均信息量:
平均每个符号所能提供的信息量。
H(X)
2.1.2离散信道容量:
信道容量是信道所能传送的最大的信息量。
C=maxI(X;
Y)R=I(X;
Y)=H(X)-H(X\Y)
2.1.3信源编码过程:
Huffman编码的意义是,用最少的编码长度来表达符号的信息。
为了使平均码长度最小,将发生概率较大的符号用比较短的码组来表示,将发生概率较小的符号用较长的码组实现,以得到最佳的变长编码,减少冗余度,提高系统传输的效率。
2.2数字信号频带传输系统设计
在数字信号频带传输系统中最基本的调制和解调方式有ASK,,FSK,PSK,2DPSK和QAM这几种,下面将依次介绍其调制和解调的过程:
2.2.1振幅键控(ASK):
在振幅键控中载波幅度是随着基带信号的变化而变化的。
使载波在二进制基带信号1或0的控制下通或断,即用载波幅度的有或无来代表信号中的“1”或“0”,这样就可以得到2ASK信号,这种二进制振幅键控方式称为通—断键控(OOK)。
其时域数学表达式为:
(1)
式中,A为未调载波幅度,
为载波角频率,
为符合下列关系的二进制序列的第n个码元:
(2)
综合式1和式2,令A=1,则2ASK信号的一般时域表达式为:
式中,Ts为码元间隔,
为持续时间[-Ts/2,Ts/2]内任意波形形状的脉冲(分析时一般设为归一化矩形脉冲),而
就是代表二进制信息的随机单极性脉冲序列。
采用相乘电路产生二进制ASK信号时,用基带信号A(t)与载波cosw0t相乘就得到已调信号输出。
2ASK信号解调时可采用相干解调法和包络检波法,包络检波法解调器是用整流器和低通滤波器构成的;
相干解调中相乘电路需要有相干载波cosw0t,它必须从接收信号中提取,并且和接收信号的载波同频同相,所以这种方法比包络检波法要复杂得多。
2.2.2频移键控(FSK):
2FSK信号是用载波频率的变化来表征被传信息的状态的,被调载波的频率随二进制序列0、1状态而变化,即载频为
时代表传0,载频为
时代表传1。
显然,2FSK信号完全可以看成两个分别以
和
为载频、以
为被传二进制序列的两种2ASK信号的合成。
2FSK信号的典型时域波形如图15-5所示,其一般时域数学表达式为
式中,
,
是
的反码,即
2FSK信号的产生是用二进制基带矩形脉冲信号去调制一个调频器,使其能够输出两个不同频率的码元。
2FSK信号的接收也分为相干和非相干两类。
采用相干接收法时,接收信号经过并联的两路带通滤波器、与本地相干载波相乘和低通滤波后,进行抽样判决。
2PSK信号是用载波相位的变化表征被传输信息状态的,通常规定0相位载波和π相位载波分别代表传1和传0。
设二进制单极性码为an,其对应的双极性二进制码为bn,则2PSK信号的一般时域数学表达式为:
其中:
2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在这种绝对移相的方式中,由于发送端是以某一个相位作为基准的,因而在接收系统也必须有这样一个固定基准相位作参考。
2.2.3相移键控(PSK和DPSK):
2DPSK是利用相邻码元载波相位的相对值表示基带信号“0”和“1”的,它的调制原理与2FSK的调制原理类似,也是用二进制基带信号作为模拟开关的控制信号轮流选通不同相位的载波,完成2DPSK调制,其调制的基带信号和载波信号分别从“PSK基带输入”和“PSK载波输入”输入,差分变换的时钟信号从“PSK-BS输入”点输入。
2DPSK信号的解调,主要两种方法。
第一种方法是直接比较相邻码元的相位,从而判决接收码元是“0”还是“1”。
为此,需要将前一码元延迟1码元时间,然后将当前码元的相位和前一码元的相位作比较。
第二种方法是先把接收信号当做绝对相移信号进行相干解调,解调后的码元序列是相对码;
然后将此相对码做逆码变换,还原成绝对码,即原基带信号码元序列。
2.2.4正交幅度调制/解调(QAM):
一个正交幅度调制(QAM)信号采用两个正交载波,每一个载波被一个独立的信息比特序列所调制,QAM可以看作是振幅调制和相位调制的结合。
3、课程设计步骤
3.1信息论基本计算的设计步骤
3.1.1信源平均信息量的计算(以高斯分布的信源为例):
通过系统产生一个高斯随机信源,再求出它的平均信息量。
3.1.2离散信道容量的计算(以输入符号等概分布为例):
编写aveinformation(Theaveragemutualinformation)函数求出平均互信息,编写disentropy(DiscreteEntropy)函数,求出离散信息熵,调用aveinformation函数和disentropy函数得出hf和hx,最后信道容量c=hx-hf。
3.1.3信源编码过程(以Huffman编码为例):
先编写huffman函数,对系列排序并求出huffman编码。
调用huffman函数得出编码后的码字。
3.2数字信号频带传输系统的设计步骤
3.2.1振幅键控(ASK)、频移键控(FSK)和相移键控(PSK和DPSK):
先用t=0:
0.01:
10;
y=sin(2*pi*t);
语句产生载波信号,然后用ones和zeros矩阵产生基波信号,最后运用各种键控对载波和基带信号进行处理,画出原始基带信号的波形图和频谱图、各种调制前的波形图和频谱图以及调制后波形图和频谱图。
3.2.2正交幅度调制/解调(QAM):
用randint函数产生随机整数,然后用qammod函数进行QAM调制,最后画出原始信号的波形、进行QAM调制的波形和调制后频谱以及解调后的波形和频谱。
4、课程设计结果和结果分析
4.1信息论的基本运算结果
4.1.1信源平均信息量的计算(以高斯分布的信源为例):
图1.信源平均信息量的计算结果
4.1.2离散信道容量的计算(以输入符号等概分布为例):
图2.离散信道容量的计算结果
4.1.3信源编码过程(以Huffman编码为例)
图3.哈夫曼编码过程
4.2数字信号频带传输系统设计
4.2.1ASK调制/解调技术:
ASK调制/解调时,原始信号为‘1’则调制信号为一个完整周期的正弦波,原始信号为‘0’时则调制信号也为‘0’;
调制信号经过解调后信号恢复成原始信号,其中数字基带信号为010*******。
图4.原始信号波形和频谱
图5.原始信号经过ASK调制后的波形和频谱
图6.调制过的信号经过ASK解调后的波形和频谱
4.2.2FSK调制/解调技术:
FSK调制/解调时,原始信号为‘1’时则调制信号为1.5个周期的正弦波信号,原始信号为‘0’时则调制信号为一个周期的正弦波信号;
图7.原始信号波形和频谱
图8.原始信号经过FSK调制后的波形和频谱
图9.调制过的信号经过FSK解调后的波形和频谱
4.2.3PSK调制/解调技术:
PSK调制/解调时,原始信号为‘1’时则调制信号为一个周期的正弦波信号,原始信号为‘0’时则调制信号为一个周期的正弦波信号,但他们的初始相位相差180°
;
图10.原始信号波形和频谱
图11.原始信号经过PSK调制后的波形和频谱
图12.调制过的信号经过FSK解调后的波形和频谱
4.2.4DPSK调制/解调技术:
其中数字基带信号为010*******。
图13.原始信号波形和频谱
图14.原始信号经过DPSK调制后的波形和频谱
图15.调制过的信号经过FSK解调后的波形和频谱
4.2.516/64QAM调制/解调技术:
图16.原始信号
图17.16QAM冲击信号及调制后的频谱
图18.经过16QAM解调后的波形及频谱
5、心得体会
这是我们第二次运用MATLAB软件做课程设计,第一次是这个学期开学时做的数字信号处理课程设计,由于对MATLAB软件的运用有了一定的了解,这次做起课程设计来没有上次那样困难。
虽然这次课程设计有两周的时间,但还是感觉时间很紧,因为这次课设要做的事情还是挺多的。
老师给我们的课设任务书上要求我们我们每个人至少要做两个题,第一个题“信息论的基本计算”是每个人都必须做的,然后根据我们的学号再分配一个题目,我这次分配的是数字信号频带传输系统设计,这个题目又分为5个小题目,所以是挺多的。
拿到课程设计任务书后我就开始查找资料。
我先阅读了老师发给我们的电子档的《MATLAB通信仿真及应用实例详解》,但对着电脑屏幕看这PDF格式的电子书实在是费劲。
然后我就到图书馆去借来了刘敏编写的《MATLAB通信仿真与应用》。
通过两天的阅读对通信仿真有了初步的了解后就开始编写程序,开始写的程序老是有错误,通过多次阅读资料和请教老师及同学最后终于得到了符合要求的正确的程序。
这次课程设计我感受良多。
在这次课设中我遇到了许许多多的问题,有时候还真有放弃的想法,但最终还是没有放弃,因为我知道这些问题正好暴露我学习上存在的知识的积累的不足,通过解决这些问题就能学到很多的东西。
这次课程设计也使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能真正锻炼出解决问题的能力。
两周的课程设计终于做完了,回想这两周来的虽然很累,但在辛勤的老师的指导下和同学的帮助下顺利的完成了这次课设,我心里还是很开心的。
6、附件(源代码)
6.1信息论基本计算
6.1.1、信源平均信息量的计算(高斯分布的信源)
x=randn(1,100000);
%产生N(0,1)高斯源
px=1/sqrt(2*pi)*exp(-(x-1).^2/2);
%计算概率
disp(‘信源熵/信源平均信息量’);
l=-mean(log2(px))%计算熵
6.1.2、编程实现离散信道容量的计算(以输入符号等概分布为例)
functionr=aveinformation(x,n)%参数x表示概率矩阵,n是符号的数目
r=0;
fori=1:
n
r=r-x(i)*log(x(i))/log
(2);
end
disp('
此离散信源的平均信息量为:
'
);
r
%直接在命令窗口中调用aveinformation函数,也可以在其它函数中调用aveinformation([0.25,0.25,0.25,0.25],4)
%求互信息的函数文件如下
functionr=disentropy(x,f,nx,my)
%x为输出的信源分布,f为转移概率矩阵,nx为输出的符号可选个数
%my为输出的符号个数
sum=0;
nx
forj=1:
my
%通过式子p(x,y)=p(x)p(y/x)来求p(x,y),用t表示
t=f(i,j)*x(i);
%求平均互信息量
ift~=0
sum=sum-t*log(f(i,j))/log
(2);
end;
end;
disp('
平均互信息量为:
r=sum;
%利用函数aveinformation来求信源的熵,利用函数disentropy来求平均互信息量
x=[0.25,0.25,0.25,0.25];
f1=[3/8,3/8,1/4,0,0,0
0,3/8,3/8,1/4,0,0
0,0,3/8,3/8,1/4,0
0,0,0,3/8,3/8,1/4,];
hf1=disentropy(x,f1,4,6);
hx=aveinformation(x,4);
离散信道容量:
c1=hx-hf1%信道容量
6.1.3、哈弗曼编码的实现
%哈弗曼编码的实现函数如下
function[h,l]=huffman(p)
if(length(find(p<
0))~=0)
error('
Notaprob,negativecomponent'
if(abs(sum(p)-1)>
10e-10)
Notaprob.vector,componentdonotaddto1'
)
n=length(p);
q=p;
m=zeros(n-1,n);
n-1
[q,l]=sort(q);
m(i,:
)=[l(1:
n-i+1),zeros(1,i-1)];
q=[q
(1)+q
(2),q(3:
n),1];
c(i,:
)=blanks(n*n);
c(n-1,n)='
0'
;
c(n-1,2*n)='
1'
fori=2:
c(n-i,1:
n-1)=c(n-i+1,n*(find(m(n-i+1,:
)==1))-(n-2):
n*(find(m(n-i+1,:
)==1)));
c(n-i,n)='
c(n-i,n+1:
2*n-1)=c(n-i,1:
n-1);
c(n-i,2*n)='
i-1
c(n-i,(j+1)*n+1:
(j+2)*n)=c(n-i+1,n*(find(m(n-i+1,:
)==j+1)-1)+1:
n*find(m(n-i+1,:
)==j+1));
end
fori=1:
n
h(i,1:
n)=c(1,n*(find(m(1,:
)==i)-1)+1:
find(m(1,:
)==i)*n);
ll(i)=length(find(abs(h(i,:
))~=32));
end
l=sum(p.*ll);
%在命令窗口或M文件里调用haffman函数
p=[1/16,1/16,1/8,1/4,1/2];
[h,l]=huffman(p)
6.2数字信号基带传输系统
6.2.1ASK调制/解调
clearall;
t=0:
%载波信号
x=[zeros(1,100),ones(1,100),zeros(1,100),zeros(1,100),ones(1,100),zeros(1,100),ones(1,100),zeros(1,100),ones(1,100),zeros(1,101)];
%数字基带信号010*******
s_2ask=x.*y;
%幅频键控
recos=s_2ask.*y;
meg=find(recos>
0);
%找出大于一的那一位
demo(meg)=1;
meg=find(recos==0);
demo(meg)=0;
figure
(1)%原始信号
subplot(211)plot(t,x);
grid;
title(‘原始信号’);
xlabel(‘时间’);
ylabel(‘幅度’);
axis([0,10,-0.1,1.1]);
subplot(212);
f=0:
1/(length(x)-1):
fx=fft(x);
plot(f,abs(fx));
title(‘原始信号频谱’);
xlabel(‘频率’);
figure
(2)%调制后的信号
subplot(211);
plot(t,s_2ask);
grid;
title(‘ASK调制’);
subplot(212)
s_2askf=fft(s_2ask);
plot(f,abs(s_2askf));
title(‘ASK调制频谱’);
figure(3)%解调后的信号
subplot(211)
plot(t,demo);
title(‘ASK解调’);
demof=fft(demo);
plot(f,abs(demof));
title(‘ASK解调频谱’);
6.2.2FSK调制/解调
s_2fsk=sin(t.*(2*pi+pi*x));
%频移键控
recos1=s_2fsk.*sin(t.*(2*pi+pi*x)+pi*(x-1));
meg1=find(recos1>
demo1(meg1)=1;
meg1=find(recos1<
demo1(meg1)=0;
figure
(1)%原始信号
plot(t,x);
xlabel(‘时间’);
title(‘原始信号频谱’);
xlabel(‘频率’);
figure
(2)%FSK调制后的信号
plot(t,s_2fsk);
title(‘FSK调制’)xlabel(‘时间’);
s_2fskf=fft(s_2fsk);
plot(f,abs(s_2fskf));
title(‘FSK调制信号频谱’);
figure(3)%FSK解调后的信号
plot(t,demo1);
title(‘FSK解调’);
demof1=fft(demo1);
plot(f,abs(demof1));
title(‘FSK解调后信号频谱’);
6.2.3PSK调制/解调
s_2psk=(2*x-1).*y;
%相移键控
recos2=s_2psk.*y
meg2=find(recos2>
demo2(meg2)=1;
meg2=find(recos2<
demo2(meg2)=0;
1/(length