萍乡高等专科学校
通信原理课程设计
课程:通信原理
题目:数字基带传输系统设计与仿真 系部:机械电子工程系 专业年级:通信技术2009级 姓名:刘媛辉 杨丹妮 李亚云 学号:09354027 09354024 09354004 指导老师:文如泉
一 、课程题目
数字基带传输系统:欲传送的01比特流+码型变换(HDB3码)+基带成型网络(采用升余弦滚降系统)+信道+码型反变换+01比特流。 二、设计要求
1. 完成一个题目。
2. 对通信系统有整体的较深入的理解。 3. 提出仿真方案。 4. 完成仿真软件的编制。 5. 仿真软件的演示。 6. 提交详细的设计报告。 三、设计目的
1. 综合应用《Matlab 编程与系统仿真》、《信号与系统》、《现代通信原理》等多门课程知识,使学生建立通信系统的整体概念。
2. 培养学生系统设计与系统开发的思想。 3. 培养学生利用软件进行通信仿真的能力。 4. 培养学生独立动手完成课题设计项目的能力。 5. 培养学生查找相关资料的能力。 四、实验条件
计算机、Matlab 软件、相关资料。 五﹑系统设计方案
数字基带传输系统:
(1)概念:未经调制的数字信号所占据的频谱是从零频或者很低频率开始,称为数字基带信号, 不经载波调制而直接传输数字基带信号的系统,称为数字基带传输系统。
(2)数字基带传输的研究的意义:
第一:在利用对称电缆构成的近程数据通信系统中广泛采用这种传输方式。 第二:数字基带传输方式迅速发展,用于低速或高速数据传输。 第三:基带传输系统的许多问题也是带通传输系统必须考虑的问题。
第四:任一个线性调制的带通传输系统,可以等效为一个基带传输系统。 (3)对传输码型的要求:
①不含直流分量且低频分量尽量少。
②应含有丰富的定时信息,以便于从接受码流中提取定时信号。 ③功率谱的主瓣宽度窄,以节省传输频带。
④不受信息源统计特性的影响,即能适应于信息源的变化。
⑤具有内在的检错能力,即码型应具有一定的规律性,以便宏观监测。 ⑥编译码简单,已降低通信延时和成本。 (4)基带传输常用码型:
AMI 码(传号交替反转码)、HDB3码(三阶高密度双极性码)、双相码、差分双相码、密勒码、CMI 码(传号反转码)、块编码等。 (5)其中本次设计采用的HDB3码。 a.HDB3码编码规则:
①1——交替变换为+1,-1
②0——连0小于等于3则用0电平表示,大于3则用特定码组替换B 0 0 V 或 0 0 0 V
③任意两个V 之间B 的个数为奇数。 b. 示例:
c.HDB3码的特点: ①有检错能力。
②解决了连“0”时位定时信息提取困难。 ③无直流分量。
④B码和V 码各自保持极性交替变化,以确保无直流分量。 ⑤可能存在误码扩散的问题。
(6)数字基带信号传输码系统组成:
①信道形成器:其功能产生适合于信道传输的基带信号波形。
②信道:是允许基带信号通过的媒介,通常为有线信道,如双绞线、同轴电缆等,其传输特性一般不满足无失真传输条件。
③接受滤波器:用来接收信号,尽可能滤除信道噪声和其他干扰,对信道特性进行均衡,使输出的基带波形有利于抽样判决。
④抽样判决器:则在传输特性不理想及噪声背景下,在规定时刻对接受器的输出波形进行抽样判决,以恢复基带信号。
⑤同步提取:用来抽样的位定时脉冲依靠同步提取电路从接受信号中提取,位定时的准确与否将直接影响判决效果。
⑥基带传输总特性:H(w)= GT(w)C(w)GR(w)若假设信道传输函数C(w)=1,于是基带系统的传输特性变为H(w)= GT(w)GR(w)。 (7)无码间串扰的传输特性的设计: ①理想低通特性
H(t)=Sa[π/Ts]←→H(W)=TsRet(W/WS)
Sa(πt/T)
信号带宽最小的波形
理想低通信号的主要缺点 a. 工程上难以实现;
b. 尾部衰减慢(冲激响应h(t)波形收敛速度较慢,拖尾以1/t速率衰减,当存在定时误差时会带来比较大的干扰)
②升余弦滚降特性:H(t)=Sa(πt/Ts)cos(aπt/Ts)/[(1-4aatt)/Ts]
H(w)=Ts ;∣w ∣ π/Ts(1-a)
升余弦滚降信号的波形与频谱:
传输宽带:B=(1+a)/2rs 频带利用率:g=rs/B=2/(1+a)
全升余弦系统:a=1
六、详细设计与编码
1. 设计方案
实验流程:
2. 设计思路:
(1)信源:生成欲传送的01比特流,将个数N 作为函数的输入;使用函数rand (1,N ),使得大于某个特定值的数值为1,反之,小于则为0。:因本实验采用HDB3码作为基带传输码型,所以使用0.75作为0和1的分界线,这样可以生成低密度的01比特流,使得在程序运行的时候,只通过连续的少量bit 就可以HDB3的编码与译码的正确性。
(2)码型编码:将生成的01比特流作为码型转换函数的输入,函数输出为码型转换后的HDB3。 流程图如下:
(3)升余弦滚降系统:
将HDB3码作为滤波器的输入,函数输出系统输出信号;利用滤波器设计器FDATool 设计Nyquist 滤波器,其中参数设定:比特传输速率Rb=16b/s每bit 抽样点数N=16,滚降因子Rolloff=0.5,其中抽样速率fs=256Hz, Nyquist带宽Band=8Hz;
(4)抽样判决:
将系统输出信号作为判决器函数的输入,进行抽样判决。选择每bit 的中心抽样进行抽样,当信号抽样值>某个特定值,则信号恢复时函数为1,若信号抽样值是某一特定值,则信号恢复时信号值设定为-1,其余恢复为0。一般判定值不设定为0,因为若有噪声等对信号进行干扰,导致系统输出信号不是理想的。 (5)码型译码:
将抽样判决后的信号作为函数的输入,进行码型反变换,函数输出为恢复了的欲传送的01比特流。编写程序时,首先进行设定标记Last_V、Last_B(初始设定默认为-1,与码型编码相对应),设定输入信号为signal ,码型译码后的信号ssignal ,其中N 为每bit 抽样点数。 3. 其函数程序流程图如下:
4.MATLAB 具有以下几个特点: (1)友好的工作平台和编程环境 (2)简单易用的程序语言
(3)强大的科学计算机数据处理能力
(4)出色的图形处理功能 (5)应用广泛的模块集合工具箱 (6)实用的程序接口和发布平台 (7)应用软件开发(包括用户界面)
编码与测试(写出源代码,分析核心代码的功能) A, 源代码 (1)主函数: clear all;
N=100;%生成的bit 个数 n=16; %每个bit 的抽样点数 signal=signalsource(N);
hdb3_signal=hdb3(signal,n);
filtersignal=filter_Nyquist(hdb3_signal); samplesignal=sampling(filtersignal,n); ssignal=reverse_hdb3(samplesignal,n);
draw(N,n,signal,hdb3_signal,filtersignal,samplesignal,ssignal); (2)信源:
function signal=signalsource(N) signal=rand(1,N)>0.75; (3)码型编码—HDB3码
①function hdb3NRZ_signal=hdb3NRZ(signal) last_V=-1; last_B=-1;
hdb3NRZ_signal=zeros(size(signal)); count=0;
for i=1:length(signal) if signal(i)==1
hdb3NRZ_signal(i)=-last_B; last_B=hdb3NRZ_signal(i); count=0; else
count=count+1; if count==4 count=0;
hdb3half_signal(i)=-last_V; last_V=hdb3NRZ_signal(i);
if hdb3NRZ_signal(i)*last_B==-1 end end end end end
②function hdb3_signal=hdb3(signal,n) %hdb3_signal=hdb3RZ(signal,n)
%函数输出hdb3_signal为码型转换后的传输码型HDB3码 a=hdb3NRZ(signal); a0=zeros(1,n/2); hdb3_signal=[];
for j=1:length(signal); a1=[];
for jj=1:n/2 a1=[a1,a(j)]; end
hdb3_signal=[hdb3_signal,a1,a0];
end
(4)基带成型网络——升余弦滚降系统
function filtersignal=filter_Nyquist(signal) %函数输入signal 为传输码型的HDB3码
filtersignal=filter(mynum,den,signal); (5)抽样判决——恢复为HDB3码
function samplesignal=sampling(signal,n) %函数输出samplesignal 为抽样判决后恢复的信息 %函数输入n 为每个bit 的抽样点数 samplesignal=[];
for i=n/2:n:length(signal) if signal(i)>0.5 for j=1:n
samplesignal=[samplesignal,1]; end
elseif signal(i)
samplesignal=[samplesignal,-1]; end else
for j=1:n
samplesignal=[samplesignal,0]; end end end
(6)码型译码——恢复为欲传输的01比特流
function signal=reverse_hdb3(hdb3_signal,n)
%函数输入hdb3_signal为经过抽样之后形成的双极性的不归零的HDB3码 signal=[]; last_B=-1; last_V=-1; j=0;
for i=n/2:n:length(hdb3_signal) j=j+1;
if hdb3_signal(i)==1|hdb3_signal(i)==-1 signal(j)=1;
if last_B*hdb3_signal(i)==1 signal(j)=0;
if last_V*hdb3_signal(i)==-1 signal(j-3)=0; end
last_B=hdb3_signal(i); else
signal(j)=0; end
end end
(7)编码与调试过程:(编程过程中遇到的问题、如何解决)
首先编写码型编码的代码的时候依照理解的HDB3码的编码规则进行编写代码,完成了双极性的HDB3码,利用bit 抽样的时候将每bit 中后1/2的抽样点设定为0,才成功调试了正确的双极性的,归零的HDB3码。
5. 运行结果及分析
a. 码型编码后的HDB 3码
b. 升余弦滚降系统输出的信号
c. 进行抽样判决之后,恢复的不归零的HDB3码
d. 码型译码的输出,恢复为欲传送的01bit 流
e. 基带后存数系统合成图:
f. 运行完程序之后的workspace
(N 为欲传送的比特个数,signal 为生成的欲传送的01比特流,n 为每bit 的抽样点数,hdb3_signal为码型编码之后的HDB3码,filtersigna l 为经过基带成型网络(升余弦滚降系统)之后的信号,samplesignal 为进行抽样判决之
后的信号, sinalsg为码型译码恢复为欲传送的01bit 流)
七﹑设计心得 :
做MATLAB 综合设计性实验的时候比较吃力,觉得使用MATLAB 编写程序好难。总是要开好多M —file 文件进行编写函数,最麻烦的是写完一个子函数在单独对其进行验证就存在一些函数输入的问题。
对通信系统的理解:①定性了分析了整个通信系统。②了解了基带传输系统研究的意义。③在进行对基带传输码型的研究后,于是选择了其中一种应用普遍的的码型—HDB3码作为本次设计项目的传输码型,也进一步加深对HDB3码编码规则的掌握。④明白基带成型网络的含义,及其传输特性方程和波形图。⑤更进一步理解了奈奎斯特准则——无码间干扰传输。
程设计的收获:。它带来了知识上的收获,是和同学们一起奋斗的一场经历。是对自己本学期以来学习《通信原理》的一个肯定,是对以后的学习的一种督促,也是对自己的未来大学校门外的生活的一个鼓励。在设计肯定会有不甚理解的地方,这就需要我们自己动手查找资料,增加的不仅是查找的资料上面的知识,更多的搜索的能力。
编程体会:①在编写代码的时候,不急于刚开始就对着电脑编写程序,一定要理解和整理出来你所想要做什么。②从前都没有画流程图的习惯,不过此次试验之前都有仔细分析,画流程图,发现在代码编写的过程中这样不仅效率高,而且成功率还快。③还有就是因为在程序中过多的嵌套过多for 循环语句和if 选择语句,所以很容易不小心就会导致代码错误,所以程序中应尽量避免。 八﹑参考资料:
[1]樊昌信 曹占娜 通信原理(第6版) 国防工业出版社
[2]刘树棠 现代通信系统(第1版) 西安交通大学出版社