通信系统课群综合课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计任务书
学生姓名:专业班级:
指导教师:工作单位:
题目:通信系统课群综合训练与设计
初始条件:MATLAB 软件,电脑,通信原理知识
要求完成的主要任务:
1、利用仿真软件(如Matlab或SystemView),或硬件实验系统平台上设
计完成一个典型的通信系统
2、学生要完成整个系统各环节以及整个系统的仿真,最终在接收端或者精
确或者近似地再现输入(信源),计算失真度,并且分析原因。

指导教师签名:2013 年1 月1 0日系主任(或责任教师)签名:2013 年1 月10 日
目录
摘要 (2)
Abstract (3)
1设计任务 (5)
2实验原理分析 (6)
2.1 PCM原理介绍 (6)
2.1.1 抽样(Sampling) (6)
2.1.2 量化(quantizing) (7)
3. 基带传输HDB3码 (15)
4.信道传输码汉明码 (17)
5.PSK调制解调原理 (18)
6. AWGN(加性高斯白噪声) (21)
7.仿真结果 (23)
8.心得体会 (28)
9.参考文献 (30)
附录 (31)
摘要
通信系统是一个十分复杂的系统,在具体实现上有多种多样的方法,但总的过程却是具有共性的。

对于一个模拟信号数字化传输,过程可分为数字化,信源编解码,信道编解码,调制解调,加扰等。

本实验利用MATLAB实现了PCM编码,HDB3码,汉明码,psk调制,AWGN及对应的解调过程,完整实现了一个通信系统的全部过程。

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

关键字:通信系统,调制,解调,matlab
Abstract
Communication system is a very complicated system in the implementation of a variety of methods. But the process has general characters. For a analog signal digital transmission, the process can be divided into digital, source decoding, channel decoding, modem, scrambling, etc. This experiment using MATLAB the delta modulation, Miller code, hamming code, PSK modulation, AWGN and the corresponding demodulation process, complete implements a communication system of all process.
MATLAB is a high-level technical computing language and interactive environment for algorithm development, data visualization, data analysis, and numeric computation. Using MATLAB, you can solve technical computing problems faster than with traditional programming languages, such as C, C++, and Fortran.
Key words:communication system,modulation,demodulation,MATLAB
1设计任务
完成整个系统各环节以及整个系统的仿真,最终在接收端或者精确或者近似地再现输入(信源),计算失真度,并且分析原因。

信源:自己构造一时间函数,数字化方式:PCM,基带码:HDB3,信道码:汉明码,调制方式:PSK,信道类型:AWGN ;解调,信道解码,基带解码,数模转换的过程与输入端对应。

图1.1 典型的通信系统
与上图对应,信息源首先经过PCM数字化在经过HDB3码进行基带编码和汉明码
信道得到原信号的二进制码,由于先进行汉明码编码不改变码字的极性二HDB3会改变
码字极性所以在后来的设计中先进行汉明码再进行HDB3,对于整个信号只要解码与编
码的过程相对应就是一样的;然后再进过PSK调制,由于是有极性的HDB3码,进行
PSK调制颇为复杂,接着进入AWGN;再到接受设备经过解调再译码后模数转换得到
原始信号。

本实验采用的数子通信系统,是利用数字信号来传递信息的通信系统,原理图如图
1.2
图1.2数字通信系统模型
2实验原理分析
2.1 PCM 原理介绍
模拟信号数字化必须经过三个过程,即抽样、量化和编码,以实现话音数字化的脉
冲编码调制(PCM ,Pulse Coding Modulation )技术。

2.1.1 抽样(Sampling)
图2.1 抽样原理图
信息源
信源编
信道编
数字调
数字解
信道译码
信源译
受信者

噪声源
离散时间信号通常是有连续时间信号经周期采样得到的。

完成采样功能的器件称为采样器,下图所示为采样器的示意图。

图中Xa(t)表示模拟信号,Xa(nt)表示采样信号,T为采样周期,n=0,1,2,…。

一般可以把采样器视为一个每隔T秒闭合一次的电子开关S。

在理想情况下,开关闭合时间τ满足τ<<T。

实际采样过程可视为脉冲调幅过程,Xa(t)为调制信号,被调脉冲载波p(t)是周期为T、脉宽为τ的周期脉冲串。

当τ→0时的理想采样情况是实际采样的一种科学的、本质的抽象,同时可使数学推导得到简化。

下面主要讨论理想采样。

2.1.2 量化(quantizing)
抽样信号虽然是时间轴上离散的信号,但仍然是模拟信号,其样值在一定的取值范围内,可有无限多个值。

显然,对无限个样值一一给出数字码组来对应是不可能的。

为了实现以数字码表示样值,必须采用“四舍五入”的方法把样值分级“取整”,分的级数越多,即量化级差或间隔越小,量化噪声也越小。

2.1.3 A压缩律:
所谓A压缩律也就是压缩器具有如下特性的压缩律:
其中,A为压缩系数;y为归一化的压缩器输出电压;x为归一化的压缩器输入电压。

图画出了A为某一取值的归一化压缩特性。

A律压缩特性是以原点奇对称的,为了简便,图中只给出了正半轴部分。

图2.2 A压缩律特性
上图中,x和y都在-1和+1之间,取量化级数为N(在y方向上从-1到+1被均匀
划分为N个量化级),则量化间隔为
当N很大时,在每一量化级中压缩特性曲线可看作是直线,因此有
式中,xi 为第i个量化级间隔的中间值。

因此
为了使量化信噪比不随信号x变化,也就是说在小信号时的量化信噪比不因x
的减
小而变小,即应使各量化级间隔与x成线性关系,即
则式2.1可写成
(2.1)

其中k
为比例常数。

当量化级数很大时,可以将它看成连续曲线,因而式(3.2)成为线性微分方程
解此微分方程
其中c 为常数。

为了满足归一化要求,当x=1时,
y=1,代入式(3.3)可得
故所得结果为

如果压缩特性满足上式
,就可获得理想的压缩效果,其量化信噪比和信号幅度无关。

满足上式的曲线如下图所示,由于其没有通过坐标原点,所以还需要对它作一定的修改。

图2.3 理想压缩特性曲线
(2.2)
(2.3)
(2.4)
A律压缩特性就是对式(3.4)修改后的函数。

在上图中,通过原点作理想压缩特性曲线的切线oc
,将oc、cd作为实际的压缩特性。

修改以后,必须用两个不同的方程来描述这段曲线,以切点c为分界点,
线段oc的方程:
设切点c的坐标为(x1,y1)
斜率为
则由式(3.4)可得
所以线段oc的方程为
所以当x=x1时,y1=1/k时,有
因此有
所以,切点坐标为(exp[-(k-1)],1/k) ,令

将它代入式(3.5),就可得到以切点c为边界的段的方程为
(2.5)
因cd段的方程,满足式(3.4),所以由该式可得
由以上分析可见,经过修改以后的理想压缩特性与图5中所示的曲线近似,而式(3.6)式(3.7)和式(3.4)完全一样。

13折线:实际中,A压缩律通常采用13折线来近似,13折线法如图7-4-7所示,图中先把轴的
[0,1]区间分为8个不均匀段。

图2.4折线示意图
其具体分法如下:
a.将区间[0,1]一分为二,其中点为1/2,取区间[1/2,1]作为第八段;
b.将剩下的区间[0,1/2]再一分为二,其中点为1/4,取区间[1/4,1/2]作为第七段;
c.将剩下的区间[0,1/4]再一分为二,其中点为1/8,取区间[1/8,1/4]作为第六段;
d.将剩下的区间[0,1/8]再一分为二,其中点为1/16,取区间[1/16,1/8]作为第五段;
(2.6) (2.7)
e.将剩下的区间[0,1/16]再一分为二,其中点为1/32,取区间[1/32,1/16]作为第四段;
f.将剩下的区间[0,1/32]再一分为二,其中点为1/64,取区间[1/64,1/32]作为第三段;
g.将剩下的区间[0,1/64]再一分为二,其中点为1/128,取区间[1/128,1/64]作为第二段;h.最后剩下的区间[0,1/128]作为第一段。

然后将y轴的[0,1]区间均匀地分成八段,从第一段到第八段分别为[0,1/8],(1/8,2/8],(2/8,3/8],(3/8,4/8],(4/8,5/8],(5/8,6/8],(6/8,7/8],(7/8,1]。

分别与x 轴的八段一一对应。

采用上述的方法就可以作出由八段直线构成的一条折线,该折线和A压缩律近似,图3.6中的八段线段的斜率分别为:
表1 各段落的斜率
段落 1 2 3 4 5 6 7 8
斜率16 16 8 4 2 1 1/2 1/4 从上表中可以看出,除一、二段外,其他各段折线的斜率都不相同。

图7-4-8中只画出了第一象限的压缩特性,第三象限的压缩特性的形状与第一象限的压缩特性的形状相同,且它们以原点为奇对称,所以负方向也有八段直线,总共有16个线段。

但由于正向一、二两段和负向一、二两段的斜率相同,所以这四段实际上为一条直线,因此,正、负双向的折线总共由13条直线段构成,这就是13折线的由来。

从A律压缩特性中可以看出,取A=87.6主要基于下述两个原因:
1 使压缩特性曲线在原点附近的斜率为16;
2 当用13折线逼近时,的八段量化分界点近似为1/2^n(n=0,1,2,…,7)。

从表1可以看出,当要求满足x=1/2^n时,相应有y=1-n/8代入式中,有
因此有
将上式代入式(7.4-16),就可以得到对应A=94.4时的压缩特性
(2.8)
此压缩特性如果用13折线逼近,除了第一段落起始点外,其余各段落的分界点的x、y都应满足式(3.8)。

在13折线中,第一段落起始点要求的x、y都应该为零,而若按照式(3.8)计算时,当x=0时,y→-∞;而当y=0,x=1/2^8。

因此,需要对式(3.8)的压缩特性曲线作适当的修正,我们可以在原点和点(1/2^7,1/8)之间用一段直线代替原来的曲线,这段直线的斜率是1/8÷1/2^7=16。

为了找到一个能够表示修正后的整个压缩特性曲线的方程,将式(3.8)变成
(2.9)
从上式中可以看出,它满足x=0时,y=0;x=1时,y=1。

虽然式(3.9)在其他点上会有误差,但x在区间(1/128,1]内,1+255x都能和原来的256x比较接近。

所以,在绝大部分范围内的压缩特性仍和A律压缩特性非常接近,只有在x→0的小信号部分和A 律压缩特性有些差别。

若在式(3.9)中,令μ=255,则式(3.9)可写成
(2.10)
式(3.10)的压缩特性与μ律压缩特性完全一致。

(2)按照量化的维数分,量化分为标量量化和矢量量化。

标量量化是一维的量化,一个幅度对应一个量化结果。

而矢量量化是二维甚至多维的量化,两个或两个以上的幅度决定一个量化结果。

以二维情况为例,两个幅度决定了平面上的一点。

而这个平面事先按照概率已经划分为N个小区域,每个区域对应着一个输出结果(码数,codebook)。

由输入确定的那一点落在了哪个区域内,矢量量化器就会输出那个区域对应的码字(codeword)。

矢量量化的好处是引入了多个决定输出的因素,并且使用了概率的方法,一般会比标量量化效率更高。

3. 基带传输HDB3码
HDB3码(三阶高密度双极性码,three step high density bipolar codes)是AMI码的改进型,HDB3中“3阶”的含义是,限制连0数不超过3位。

为减少连0数,有的做法采取“扰码”,按一定规则将多个连0分散,尽量使码序列随机化。

有效的办法是采用HDBn(n=1, 2, 3),一般多使用n=3,它克服了AMI码长连0串现象,并具有以下特点: 基带信号无直流成分,且只有很少的低频成分;连0串符号最多只有3个,利于定时信息的提取;不受信源统计特性的影响。

首先将消息代码变换成AMI码;然后检查AMI码中的连0情况,当无4个或4个以上的连0串时,则保持AMI的形式不变;若出现4个或4个以上连0串时,则将1后的第4个0变为与前一非0符号(+1或-1)同极性的符号,用V表示(+1记为+V,-1记为-V);最后检查相邻V符号间的非0符号的个数是否为偶数,若为偶数,则再将当前的V符号的前一非0符号后的第1个0变为+B或-B符号,且B的极性与前一非0符号的极性相反,并使后面的非0符号从V 符号开始再交替变化。

举例如表2-1所示。

表2-1 HDB3码的编码举例
1
-
表2-1的HDB3编码举例用波形表示如图2-2所示。

图中,(a)表示单极性非归零码,(b)和(c)表示HDB3码。

1
1
1
1
1
1
1
0 +1 +1 +1 +B +V -1 -1 -V -1 -1
0 0 0 0 0 0 0 -1 -1 -1 -B -V +V +1 +1 +1
0 0 0
0 0 0 0 0 (a )
(b )
(c )
图2-2 HDB3编码波形示意图
4.信道传输码汉明码
线性分组码是一类重要的纠错码,应用很广泛。

在(n,k)分组码中,若督元是按线性关系相加而得到的,则称其为线性分组码。

现在以(7,4)分组码为例来说明线性分组码的特点。

设其码字为A=[a6,a5,a4,a3,a2,a1,a0],其中前4位是信息元,后3位是监督元,可用下列线性方程组来描述该分组码,产生监督元:
a2 = a6 + a5 + a4
a1 = a6 + a5 + a3 (2.3 .1)
a0 = a6 + a4 + a3
显然,这3个方程是线性无关的。

经计算可得(7,4)码的全部码字,如表2-2所示。

表2-2 (7,4)码的全部码字
5 0 1 0 1 1 0 1 13 1 1 0 1 0 1 0
6 0 1 1 0 0 1 1 14 1 1 1 0 1 0 0
7 0 1 1 1 0 0 0 15 1 1 1 1 1 1 1
不难看出,上述(7,4)码的最小码距d0=3,它能纠1个错或检2个错。

汉明码是能够纠正单个错误的线性分组码,其特点是:最小码距d0=3,码长n与监督位满足n=2r-1的关系,上述的(7,4)线性分组码就是一个汉明码。

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

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

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

数字调制技术的两种方法:①利用模拟调制的方法去实现数字式调制,即把数字调制看成是模拟调制的一个特例,把数字基带信号当做模拟信号的特殊情况处理;②利用数字信号的离散取值特点通过开关键控载波,从而实现数字调制。

这种方法通常称为键控法,比如对载波的相位进行键控,便可获得相移键控(PSK)基本的调制方式。

其基本波形如图1.2-5所示
图1.2-5 PSK基本波形
(1)调制原理
数字调相:如果两个频率相同的载波同时开始振荡,这两个频率同时达到正最大值,同时达到零值,同时达到负最大值,它们应处于"同相"状态;如果其中
一个开始得迟了一点,就可能不相同了。

如果一个达到正最大值时,另一个达到负最大值,则称为"反相"。

一般把信号振荡一次(一周)作为360度。

如果一个波比另一个波相差半个周期,我们说两个波的相位差180度,也就是反相。

当传输数字信号时,"1"码控制发0度相位,"0"码控制发180度相位。

相移键控是利用载波的相位变化来传递数字信息,而振幅和频率保持不变。

在2PSK中,通常用初始相位0和π分别表示二进制“1”和“0”。

因此,2PSK信号的时域表达式为
(t)=Acos t+) (22)其中,表示第n个符号的绝对相位:
=
因此,上式可以改写为
(23)
图1.2-6 PSK调制波形
(2)解调原理
2PSK信号的解调方法是相干解调法。

由于PSK信号本身就是利用相位传递信息的,所以在接收端必须利用信号的相位信息来解调信号。

下图1.2-8中给出了一种2PSK信号相干接收设备的原理框图。

图中经过带通滤波的信号在相乘器中与本地载波相乘,然后用低通滤波器滤除高频分量,在进行抽样判决。

判决器是按极性来判决的。

即正抽样值判为1,负抽样值判为0.
2PSK信号相干解调各点时间波形如图1.2-7所示. 当恢复的相干载波产生180°倒相时,解调出的数字基带信号将与发送的数字基带信号正好是相反,解调
器输出数字基带信号全部出错.
图1.2-7 2PSK信号相干解调各点时间波形
这种现象通常称为"倒π"现象.由于在2PSK信号的载波恢复过程中存在着180°的相位模糊,所以2PSK信号的相干解调存在随机的"倒π"现象。

(3)系统结构图
图1.2-8-a 2PSK信号的调制原理框图
图1.2-8-b 2PSK信号的调制原理框图
说明:2PSK调制器可以采用相乘器,也可以采用相位选择器就模拟调制法而
言,与产生2ASK信号的方法比较,只是对s(t)要求不同,因此2PSK信号可以看作是双极性基带信号作用下的DSB调幅信号。

而就键控法来说,用数字基带信号s(t)控制开关电路,选择不同相位的载波输出,这时s(t)为单极性NRZ或双极性NRZ脉冲序列信号均可。

2PSK信号属于DSB信号,它的解调,不再能采用包络检测的方法,只能进行相干解调。

6. AWGN(加性高斯白噪声)
加性高斯白噪声(AWGN)从统计上而言是随机无线噪声,其特点是其通信信道上的信号分布在很宽的频带范围内。

高斯白噪声的概念."白"指功率谱恒定;高斯指幅度取各种值时的概率p (x)是高斯函数。

加性高斯白噪声在通信领域中指的是一种各频谱分量服从均匀分布(即白噪声),且幅度服从高斯分布的噪声信号。

因其可加性、幅度服从高斯分布且为白噪声的一种而得名。

该噪声信号为一种便于分析的理想噪声信号,实际的噪声信号往往只在某一频段内可以用高斯白噪声的特性来进行近似处理。

由于AWGN信号易于分析、近似,因此在信号处理领域,对信号处理系统(如滤波器、低噪音高频放大器、
无线信号传输等)的噪声性能的简单分析(如:信噪比分析)中,一般可假设系统所产生的噪音或受到的噪音信号干扰在某频段或限制条件之下是高斯白噪声。

7.仿真结果
图7.1原始信号、抽样信号、恢复信号
图7.3HDB3编码解码
图7.4汉明编码解码
图7.5 PSK调制
图7.6频谱
图7.7 PSK调制信号频谱图
8.心得体会
通过此次的课程设计,感触颇深,因为让我认识到了MATLAB的强大功能,同时也对通信系统方面的知识尤其是的信号处理的认识有了进一步的加深。

本次课程设计涉及到一个完整的通信系统,这在以前是没有过的,在以往的课程设计都只是对局部系统或某种调制解调、编码解码方式,所以在此次课程设计中我遇到了前所未有的难题。

在此我非常感谢曾经教育过我们的老师,是他们在平时教学中帮助我培养了良好的学习习惯和查阅新知识,快速理解运用新知识的能力。

经过一段时间的查阅和向老师的请教,我弄清楚了此时课程设计所需的全部原理知识。

在编程的过程中,我也遇到了很多困难,所幸的是图书馆有相关书籍,网络上有学长学姐们做过的仿真作为参考,有老师和同学们帮助我,于是我一步步实现了各个子系统的相关编程,并且在最后得以综合整理,完成了此次的仿真任务。

但是不得不说,此时课程设计由于时间和我的知识储备的问题,仍然有一些
不完备的地方:首先,在增量调制解调中,出现了斜率过载问题,使得在恢复信号的时候出现了过载失真。

其次,在PSK调制解调过程中运用MATLAB自带的函数进行实现,效果不是很理想。

最后将恢复信号和原始信号在一幅图中进行了定性的比较,但是没有通过编程实现定量分析失真度。

因此如果给我更多的时间,我将作出以下改进:1、采用自适应增量调制解调,避免过载失真。

2、寻求更合理的调制解调方案,优化仿真波形。

3、通过编程计算失真度。

尽管此时课程设计仍然有很多不足,但是我在这个过程中加深了对各方面理论知识的了解,对我以后的学习工作产生了一定影响,十分感谢此次课程设计。

9.参考文献
【1】刘泉编.通信电子线路.武汉理工出版社.2007年
【2】陈怀琛等编.MATLAB及在电子信息课程中的应用.电子工业出版社.2007年
【3】樊昌信等编.通信原理.国防工业出版社.2007年
【4】数字信号处理的MATLAB实现.科学出版社.2007年
【5】THEX-1型实验平台实验指导书
附录
主函数
clear
clc
T=0.001;
t=-0.01:T:0.01;
fs=1000;
sdt=1/fs;
t1=-0.01:sdt:0.01;
xt=cos(2*pi*30*t)+sin(2*pi*120*t); st=cos(2*pi*30*t1)+sin(2*pi*120*t1); figure
subplot(3,1,1)
plot(t,xt)
title('原始信号');
grid on
subplot(3,1,2)
stem(t1,st,'.')
title('抽样信号')
grid on
%PCM量化编码
n=length(st);
M=max(st)
A=(st/M)*2048;
code=zeros(n,8);
for i=1:n
if A(i)>=0
code(i,1)=1;
else
code(i,1)=0;
end
if abs(A(i))>=0&&abs(A(i))<16
code(i,2)=0;code(i,3)=0;code(i,4)=0;step=1;start=0; elseif abs(A(i))>=16&&abs(A(i))<32
code(i,2)=0;code(i,3)=0;code(i,4)=1;step=1;start=16; elseif abs(A(i))>=32&&abs(A(i))<64
code(i,2)=0;code(i,3)=1;code(i,4)=0;step=2;start=32; elseif abs(A(i))>=64&&abs(A(i))<128
code(i,2)=0;code(i,3)=1;code(i,4)=1;step=3;start=64; elseif abs(A(i))>=128&&abs(A(i))<256
code(i,2)=1;code(i,3)=0;code(i,4)=0;step=4;start=128;
elseif abs(A(i))>=256&&abs(A(i))<512
code(i,2)=1;code(i,3)=0;code(i,4)=1;step=5;start=256; elseif abs(A(i))>=512&&abs(A(i))<1024
code(i,2)=1;code(i,3)=1;code(i,4)=0;step=6;start=512; elseif abs(A(i))>=1024&&abs(A(i))<=2048
code(i,2)=1;code(i,3)=1;code(i,4)=1;step=7;start=1024; end
B=floor((abs(A(i))-start)/step);
t=dec2bin(B,4)-48;
code(i,5:8)=t(1:4);
end
code=reshape(code',1,8*n);
%ami编码
ami=code;
num=0;
for k=1:length(ami)
if ami(k)==1
num=num+1;
if num/2==fix(num/2)
ami(k)=-1;
else
ami(k)=+1;
end
end
end
%HDB3编码
num=0;
hd=ami;
sign=0;
V=zeros(1,length(ami));
B=zeros(1,length(ami));
for k=1:length(ami)
if ami(k)==0
num=num+1;
if num==4;
num=0;
hd(k)=1*hd(k-4);
V(k)=hd(k);
if hd(k)==sign
hd(k)=-1*hd(k);
hd(k-3)=hd(k);
B(k-3)=hd(k);
V(k)=hd(k);
hd(k+1:length(ami))=-1*hd(k+1:length(ami));
end
sign=hd(k);
end
else
num=0;
end
end
%输出编码结果
hd
%HDB3译码
input=hd;
recode=input;
sign=0;
for k=1:length(hd)
if input(k)~=0;
if sign==hd(k)
recode(k-3:k)=[0 0 0 0];
end
sign=input(k);
end
end
recode=abs(recode);
%输出译码结果
encode=recode
%PCM译码
encode=(reshape(encode',8,length(encode)/8))'; l=size(encode,1);
a=[0,16,32,64,128,256,512,1024];
b=[1 1 2 4 8 16 32 64];
c=[0 1.5:15.5];
for i=1:l
x=encode(i,1);
T=bin2dec(num2str(encode(i,(2:4))))+1;
Y=bin2dec(num2str(encode(i,(5:8))));
if Y==0;
k(i)=a(T)/2048*1.782;
else
k(i)=(a(T)+b(T)*c(Y))/2048*1.782;
end
if x==0
s(i)=-k(i);
else
s(i)=k(i);
end
end
figure
plot(t1,s)
grid on
%PSK编码
function p=psk(g)
cp=[];
mod1=[];
f=2*2*pi;
t=0:2*pi/99:2*pi;
for n=1:length(g)
if g(n)==0
A=zeros(1,100);
elseif g(n)==1
A=ones(1,100);
elseif g(n)==-1
A=-1.*ones(1,100);
end
cp=[cp A];
c=cos(f*t);
mod1=[mod1 c];
end
figure(3)
subplot(2,1,1)
plot(cp);
grid on
axis([0 100*length(g) -2 2]); title('二进制信号序列')
cm=[];
mod=[];
for n=1:length(g)
if g(n)==0
B=ones(1,100);
c=cos(f*t+pi/2);
elseif g(n)==1
B=ones(1,100);
c=cos(f*t+pi);
elseif g(n)==-1
B=ones(1,100);
c=cos(f*t)
end
cm=[cm B];
mod=[mod c];
end
p=cm.*mod;
subplot(2,1,2)
plot(p)
grid on
axis([0 2000 -2 2])
title('psk调制信号')
figure(4)
subplot(2,1,1)
plot(abs(fft(cp)))
axis([0 100*length(g) 0 400]); title('原信号频谱')
subplot(2,1,1)
plot(abs(fft(p)))
axis([0 100*length(g) 0 400]); title('调制序列频谱')
%PSK解调
function jt1=depsk(psk1,g)
mod1=[];
f=2*2*pi;
t=0:2*pi/99:2*pi;
c=cos(f*t);
for n=1:length(g)
mod1=[mod1 c];
end
jiet=2*mod1.*psk1;
figure(6)
plot(jiet);
grid on
title('再次乘以载波后信号波形')
fp=500;fs=700;rp=3;rs=20;fn=11025;%低通滤波器ws=fs/(fn/2);
wp=fp/(fn/2);
[n,wn]=buttord(wp,ws,rp,rs);
[b,a]=butter(n,wn);
jt=filter(b,a,jiet);
figure(7);
subplot(2,1,1)
plot(jt)
grid on
axis([0 100*length(g) -2 2]);
title('经过低通滤波器的信号波形')
for m=1:100*length(g)
if jt(m)<-0.2
jt(m)=1;
elseif -0.2<=jt(m)<=0.2;
jt(m)=0;
elseif jt(m)>0.2
jt(m)=-1;
end
end
subplot(2,1,2)
plot(jt)
axis([0 100*length(g) -2 2]);
title('经过抽样判决后的信号')
jt1=zeros(1,294);
for i=1:length(g)
if (jt((i-1)*100+50))<=-0.1
jt1(i)=-1;
elseif -0.1<(jt((i-1)*100+50))<0.1
jt1(i)=0;
elseif (jt((i-1)*100+50))>=0.1 jt1(i)=1;
end
end。

相关文档
最新文档