基于MATLAB的数字通信系统的技术仿真研究的设计与开发

上传人:阳*** 文档编号:58650795 上传时间:2022-02-28 格式:DOC 页数:57 大小:552KB
返回 下载 相关 举报
基于MATLAB的数字通信系统的技术仿真研究的设计与开发_第1页
第1页 / 共57页
基于MATLAB的数字通信系统的技术仿真研究的设计与开发_第2页
第2页 / 共57页
基于MATLAB的数字通信系统的技术仿真研究的设计与开发_第3页
第3页 / 共57页
点击查看更多>>
资源描述
1 / 57 学号:学号: 长长 春春 科科 技技 学学 院院毕业设计毕业设计 ( (论文论文) )基于基于 MATLABMATLAB 的数字通信系统的仿真技术研究的数字通信系统的仿真技术研究 姓姓 名名: : 学学 院院: 信息工程学院 专专 业业: 电子信息科学与技术 班班 级级: 2009 级 2 班 指导老师指导老师: (助教) 2 / 5720132013 年年 5 5 月月 2525 日日摘摘 要要 随着通信系统复杂性的增加,传统的分析设计方法已经不能适应发展的需要。如果每次都直接用真实系统进行实验,不仅耗资昂贵,费工费时,有时甚至难于找到问题症结所在。因此,解决上述问题的有效方法是采用计算机仿真技术和利用计算机的高速运算处理能力。 本文首先简要介绍了数字通信系统一些基本原理,以及脉冲编码调制和基带传输中所涉及到的原理、框图。MATLAB 是 MATHWORKS 公司推出的一套高效率的数值计算和可视化软件,它集数值分析、矩阵运算信号处理、和图形显示于一体,构成了一个方便的、界面友好的用户环境。 在随后的两章中,更深入的阐述了脉冲编码调制和基带传输的一些基本原理、公式,以及它们在 MATLAB 中的实现,并注重仿真工程应用的系统化,均严格按照各种理论系统进行仿真过程的设计,使所有工程内容都可以找到理论根源。【关键词】 MATLAB 脉冲编码调制 基带传输仿真3 / 57AbstractAbstract With the increase of communication systematic complexity, traditional analysis design method can not fit in with the needs of development. if the experiment is carried on the true system directly each time, which not only costs expensively, takes a lot of time,sometimes even it is difficult to find the very crux of the question. Therefore,the effective method is to adopt the emulation technology of the computer. So that the computers ability of high-speed computation can be used mostly. In this article the basic principle of digital communication system and some principles and graphs of pulse coding modulation as well as baseband transmission have been introduced at first. MATLAB is a suit of high efficiency and visual software which has developed by Mathworks Company. It collects data analysis, matrix operation, signalprocess and graph to build a convenient and interface-friendly environment. Thereafter, the basic principle, formula of pulse coding modulation and baseband transmission as well as how to achieve them at MATLAB have been expounded deeply. Especially pay attention to the systematize of using the emulation technology. It do designof emulation all according to each theory system, every project content could find the source of theory.【KeyKey wordswords 】 MATLAB pulse coding modulation baseband transmission1 / 57目目 录录引 言.1第 1 章 绪 论.21.1 前言 .21.2 数字通信系统及其模型 .21.3 脉冲编码调制(PCM)和基带传输系统 .31.4 MATLAB 简介 .4第 2 章 脉冲编码调制及其仿真.62.1 模拟信号的抽样 .62.2 模拟信号的量化 .14第 3 章 数字信号基带传输及其仿真.203.1 数字基带信号的码型 .203.2 码型的功率谱分布 .273.3 基带传输的误码率 .31总 结.36致 谢.37参考文献.38附 录 I:英文原文.40附 录 II:译文.491 / 57引引 言言 在当今高度信息化的社会,信息和通信已成为现代社会的“命脉” 。日新月异的现代通信技术不仅推动了社会信息化发展,也改变了人们的工作、学习和生活方式,高等院校也随之建立了通信工程或与之相关的专业,相应地,通信原理的教学也发展到了一个新的阶段,面临着许多新问题需要探索和研究,新的通信系统的出现很大程度上是以通信理论的发展为基础的。 通信原理是通信工程专业、电子信息专业的一门重要的专业基础课程,它以各种通信系统的基本理论为研究对象,内容涉及典型的现代通信系统各个组成部分的工作原理分析和设计方法。掌握这门课程对于学生学习、研究有关具体通信系统的后续专业课程,以及将来从事相关的科研、生产和管理工作部是十分重要的。通信原理与实际应用联系密切,又具有很强的理论性和抽象性,并且需要应用概率论、随机过程、信号与系统、模拟与数字电路等多门课程知识为基础,给学生的学习造成了一定的困难。形成学习困难的原因是多方面的,但其中最主要的是学生缺乏一个直观认识通信系统的感性基础为了解决该问题,使抽象的理论知识具体化、形象化,本课题旨在通过以MATLAB 语言进行的仿真 Matlab 是一种交互式的、以矩阵为基础的软件开发环境,它用于科学和工程的计算与可视化。Matlab 的编程功能简单,并且很容易扩展和创造新的命令与函数。应用 Matlab 可方便地解决复杂数值计算问题。Matlab 具有强大的 Simulink 动态仿真环境,可以实现可视化建模和多工作环境间文件互用和数据交换。Simulink 支持连续、离散及两者混合的线性和非线性系统,也支持多种采样速率的多速率系统;Simulink 为用户提供了用方框图进行建模的图形接口,它与传统的仿真软件包用差分方程和微分方程建模相比,更直观、方便和灵活。用户可以在Matlab 和 Simulink 两种环境下对自己的模型进行仿真、分析和修改。用于实现通信仿真的通信工具包(Communication toolbox,也叫 Commlib,通信工具箱)是 Matlab语言中的一个科学性工具包,提供通信领域中计算、研究模拟发展、系统设计和分析的功能,可以在 Matlab 环境下独立使用,也可以配合 Simulink 使用。另外,Matlab的图形界面功能 GUI(Graphical User Interface)能为仿真系统生成一个人机交互界面,便于仿真系统的操作。因此,Matlab 在通信系统仿真中得到了广泛应用,本文也选用该工具对数字通信系统的脉冲编码调制和基带传输进行仿真。2 / 57第第 1 章章 绪绪 论论1.11.1 前言前言 现代通信技术与人们的生活联系越来越紧密,现代通信系统是信息时代的生命线,信息技术革命是伴随着通信技术的发展而进行的。从 19 世纪以来,通信技术的发展很快,尤其是在 20 世纪 50 年代后,在计算机的使用普及以后,数字通信在越来越多的领域取代了模拟通信,模拟调制技术也发展为脉冲编码调制等技术。本篇将简要分析并讨论数字通信系统中脉冲编码调制和基带传输这两个主要问题以及它们在 MATLAB 中的实现。1.21.2 数字通信系统及其模型数字通信系统及其模型 在信道中传输的是模拟信号还是数字信号,可以相应地把通信系统分为两类:模拟通信系统和数字通信系统。 数字通信的基本特征是,它传输的信号是“离散”或数字的。并具有以下几个突出问题。第一,数字信号传输时,信道噪声或干扰所造成的差错,原则上都是可以控而在接收端相应地需要一个解码器。第二,当需要保密时,可以有效地对基带信号进行人为“揽乱” ,即加上密码,这叫加密,此时,在接收端就需要进行解密。第三.由于数字通信传输的是一个接一个按节拍传送的数字信号单元.即码元,因而接收端必须按与发送端相同的节拍接收。 综上所述点对点的数字通信系统模型.一般可用图 1-1 表示:图 1-1 点对点 数字通信系统模型 而在本篇中将要重点讨论的数字基带传输系统,模型如图 1-2 表示:受信者噪声源译码器解码器解调器调制器信道信息源加密器编辑器3 / 57图 1-2 数字基带传输系统模型1.31.3 脉冲编码调制脉冲编码调制(PCM)(PCM)和基带传输系统和基带传输系统1.3.11.3.1 脉冲编码调制脉冲编码调制(PCM(PCM) 将模拟信号抽样量化,然后使已量化值变换成代码,称之为脉冲编码调制(Pcm),又称为脉码调制,主要用于语音传输。脉冲编码调制在光纤通信、卫星通信、数字微波通信中得到了广泛的应用。脉码调制包括抽样、量化和编码三个过程。抽样是把连续时间模拟信号转变成离散时间连续幅度的信号,而量化则将离散时间连续幅度进一步转化为离散幅度的数字信号,编码是将得到的数字信号用某种既定的规则编成二进制码组输出。从调制观点来看,脉码调制使用模拟信号调制一个二进制脉冲序列.载波是脉冲序列.调制脉冲序列为“0”或“1,,所以称为脉冲编码调制(Pulse Code Modulate。它的组成框图如图 1-3 所示。图 1-3 PCM 通信系统方框图1.3.21.3.2 基带传输系统基带传输系统 通信的根本任务是远距离传输信息,因而如何准确的传输数字信息是数字通信的一个重要组成部分。在数字传输系统中.通常其传输对象是二元数字信息,设计数字传输系统的基本考虑是选择一组有限的离散的波形来表示数字信息。这些离散波形可以是未经调制的不同电平信号,称为数字基带信号。 而方便用载波调制解调装置而直接传送基带信号的系统.我们称之为基带传输信息源基带信号形成器信道接 受滤波器受信者噪声源信道A/D 变换m(t)抽样样编码量化mm(t)译码m(t)mm(t)低通滤波干扰4 / 57系统它的基本结构如图 1-4 所示:图 1-4 基带传输系统的本结构 这里信道信号形成器用来产生适合于信道传输的基带信号,信道可以是允许基带信号通过的媒质,接收滤波器用来接收信号和尽可能排除信道噪声和其他干扰,抽样判决器则是在噪声背景下用来判定与再生基带信号。1.41.4 MATLABMATLAB 简介简介 MATLAB 是 Mathworks 公司推出的一种数学类计算应用软件,由于其强大的功能以及应用性,受到越来越多的科技工作者的欢迎。在美国、欧洲等发达国家的大学中。已成为一种必须掌握的编程语言。1.4.1MATLAB1.4.1MATLAB 的功能及特点的功能及特点 MATLAB 是一个高精度的科学计算语言,它将计算、可视化和编程结合在一个容易使用的环境中,在这个环境中,用户可以把提出的问题和解决问题的办法用熟悉的数学符号表示出来,它的典型使用包括: (1)数学和计算; (2)运算法则; (3)建模、仿真; (4)数据分析、研究和可视化; (5)科学的工程图形; (6)应用程序开发,包括创建图形用户接口。 MATLAB 是一个交互式系统,它的基本数据单元是数组,这个数组不要求固定的大小,因此可以让用户解决许多技术上的计算问题,特别是那些包括矩阵和向量运算的问题。MATLAB 的指令表达与数学、工程中常用的习惯形式十分相似,与C.Fortran 等高级语言相比,MATLAB 的语法规则更简单、表达更符合工程习惯。正因为如此,人们用 MATLAB 语言编写程序就有如在便笺上书写公式和求解,因而MATLAB 被称为“便笺式”的科学工程计算语言。 MATLAB 的最重要的特征是它拥有解决特定应用问题的程序组,也就是TOOLBOX(工具箱),如信号处理工具箱、控制系统工具箱、神经网络工具箱、模糊逻辑工具箱、通信工具和数据采集工具箱等许多专用工具箱。对大多数用户来说,要想灵活高效地运用这些工具箱,通常都需要学习相应的专业知识。信 道接受滤波器基带脉冲输入信道信号形成器基带脉冲输出抽样判决器干扰5 / 57 此外,开放也许是 MATLAB 最重要和最受人欢迎的特点之一。除内部函数外,所有的 MATLAB 主要文件和各工具箱文件都是可读可改的源文件,因此工具箱实际上是由一组复杂的 MATLAB 函数(M 文件)组成,它扩展了 MATLAB 的功能,用以解决特定的问题,因此用户可以通过对源文件进行修改和加入自己编写的文件去构建新的专用工具箱。1.4.2MATLAB1.4.2MATLAB 系统系统MATLAB 系统由下面五个主要部分组成: (1)MATLAB 开发环境。一切环境是一组实用工具,利用这些工具用户可以使用MATLAB 函数和文件,这其中的很多工具都是图形用户接口.它包括 MATLAB 桌而和命令窗口,命令的历史记录以及用来查看帮助的浏览器、工作间、文件和搜索路径。 (2)MATLAB 数学函数库。这是一个庞大的计算算法库,包括从基本函数,如sum、sine、cosine 和复杂算法到更复杂的函数运算,如矩阵求逆、矩阵特征值、贝塞尔函数、和快速傅里叶变换。 (3)MATLAB 语言。这是一个高级的矩阵/数组编程语言.该语言带有流程控制语句、函数、数据结构、输入/输出和面同对象编程的特点。它既可以编写决速执行的短小程序,也可以编写庞大复杂的应用程序。 (4)MATLAB 图形处理系统。这是 MATLAB 的图形系统.它既包括生成二维和三维数据可视化、图像处理、动画及演示图形的高级命令,也包括完全由用户目定制图形显示及在 MATLAB 应用程序中创建完整的图形用户接口的低级命令。(5)MATLAB 应用程序接口(API )。这是一个用尸编写与 MATLAB 接口的 C 与Fortran 程序的函数库,它包括从 MATLAB(动态链接)中调用指令和读写 M 文件的程序。6 / 57第第 2 章章 脉冲编码调制及其仿真脉冲编码调制及其仿真2.1 模拟信号的抽样模拟信号的抽样2.1.1 低通抽样定理低通抽样定理 抽样定理是指:一个频带限制在(0,hf)赫内的时间里连续信号 m(t) ,如果以 t=1/2fh 秒的间隔内对它进行等间隔抽样,则 m(t)将被所得到的抽样值完全确定。 例如:有一信号如下: (2-1)22200/ )200sin()200(sin)(tttctS 用两种抽样频率对其进行抽样,f1=100Hz,f2=200Hz,做出抽样后的图像机器频谱,并作出结论。如图 2-1-0.1-0.0500.050.10.1501020304050不 不不 不 不 不 不 不-500-400-300-200-100010020030040050000.51不 不不 不 不 不 不 不 fH不 不 64 Hz图 2-1 被抽样信号的时域波形与频谱图 从图像来看,信号在时域内衰减较快,从大约 0.1s 就衰减为 0,从频谱分布来看,原信号的频谱为一带限信号,在高频没有分量,低频从零频率开始。实现上述图像的 matlab 脚本文件如下:(lowpsample.m 第一部分)cleart0=10; %定义时间长度ts=0.001; %采样周期ts1=0.01; %欠采样周期7 / 57ts2=0.005; %正确采样周期fs=1/ts; fs1=1/ts1; fs2=1/ts2;df=0.5; %定义频率分辨力t=-t0/2:ts:t0/2; %定义时间序列%定义采样函数的平方,即信号序列x=sin(200*t); m=x./(200*t)w=t0/(2*ts)+1; %确定 t=0 的点 m(w)=1; %t=0 点的信号值为 1m=m.*m; m=50.*m; M,mn,dfy=fftseq(m,ts,df); %傅立叶变换M=M/fs;f=0:dfy:dfy*length(mn)-dfy-fs/2; %定义频率序列%f=0:df:df*length(m)-df-fs/2; %定义频率序列subplot(2,1,1); plot(t,m) xlabel(时间); title(原信号的波形)axis(-0.15,0.15,-1,50); subplot(2,1,2)plot(f,abs(fftshift(M) %作出原信号的频谱xlabel(频率); axis(-500,500,0,1); title(原信号的频谱 fH 约为 64 Hz) 从物理概念上可对抽样定理作如下解释,由于一个频带受限的信号波形绝不可能在很短的时间内产生独立的.,实质的变化,它的最高变换速度受最高频率分量fh 的限制。因此为了保留这一颁率分量的全部信息,.一个周期间隔内至少要抽样两次。 对抽样来说.等于将信号与一系列冲激脉冲相乘,f1=100H z 时,其表示式如下: (2-2)2)01. 0(200)01. 0(200sin2)200(sin)(kktkttctS原信号的频率相应有移动,在 fl 的条件下做出的图像如图 2-2 所示。8 / 57-0.1-0.0500.050.10.1501020304050不 不不 不 不 不 不 不 不 不 不-500-400-300-200-100010020030040050000.51不 不 不 不 不 不 不 不 不 fs=100Hz2fH不 不图 2-2 欠抽样的时域波形与频谱图 由于,从两个图像的比较可以看出,时域波形中的冲击串的包络已经不fhf 21能完整的表示原信号,有了失真,从频谱图看更是如此,不同的频谱带相互重叠,已经不能体现原频谱的特点了,在频谱中有了频谱的直流分量,这样恢复时将出现冲激信号,这样就无法正确的恢复信号 MATLAB 日实现如下:(lowpsample.m 脚本文件第二部分)t1=-t0/2:ts1:t0/2; %定义采样时间序列x1=sin(200*t1); %计算对应采样序列的信号序列m1=x1./(200*t1); % 计算函数序列w1=t0/(2*ts1)+1; %由于除 0 产生了错误值,计算该值标号m1(w1)=1; %将错误值修正m1=m1.*m1;m1=50.*m1;M1,mn1,df1=fftseq(m1,ts1,df); %对采样序列进行傅立叶变换M1=M1/fs1;N1=M1, M1, M1, M1, M1, M1, M1, M1, M1, M1, M1, M1, M1;f1=-7*df1*length(mn1):df1:6*df1*length(mn1)-df1-fs1/2;pause; subplot(2,1,1);stem(t1,m1);xlabel(时间); title(采样不足信号的波形)axis(-0.15,0.15,-1,50); subplot(2,1,2)9 / 57plot(f1,abs(fftshift(N1) %作采样不足信号的频谱title(采样不足信号的频谱 fs=100Hz2fH不 不图 2-3 抽样足够的时域波形与频谱图由于 f22fh,此次抽样是成功的,他能恢复原信号,从时域波形可以看出,比上面的抽样所得的冲激脉冲串包含的细节要多就,在频域中也没有出现频谱的交叠,这样可以利用低通滤波器来得到所要的频谱,从而恢复信号的频谱。 MATLAB 实现如下:(lowpsample.m 第三部分)t2=-t0/2:ts2:t0/2; %定义采样时间序列x2=sin(200*t2); %计算对应采样序列的信号序列m2=x2./(200*t2); % 计算函数序列w2=t0/(2*ts2)+1; %由于除 0 产生了错误值,计算该值标号m2(w2)=1; %将错误值修正m2=m2.*m2; m2=50.*m2;10 / 57M2,mn2,df2=fftseq(m2,ts2,df); %对采样序列进行傅立叶变换M2=M2/fs2;N2=M2, M2, M2, M2, M2, M2, M2, M2, M2, M2, M2, M2, M2;f2=-7*df2*length(mn2):df2:6*df2*length(mn2)-df2-fs2/2;pause; subplot(2,1,1);stem(t2,m2);xlabel(时间); title(采样满足信号的波形)axis(-0.15,0.15,-1,50); subplot(2,1,2)plot(f2,abs(fftshift(N2) %作采样满足信号的频谱title(采样满足信号的频谱 fs=200Hz2fH)axis(-500,500,0,1); xlabel(频率)2.1.12.1.1 带通抽样定理带通抽样定理 一个带通信号,其频带为(fl, fh)由于最低频本不是从零频率开始的,奈奎斯特频率不要求达到 2fh,此时要求的抽样频率最低信为:fs=2(fh-f1)(1+M/N), (2-5) 其中 N 为不超过 fh/(fh-fl)的最大整数,M=fh/(fh-f1)-N.既 B=fh-f1,i则抽样频率在 2B 和 4B 之间。将上式划简后可以得到:fs=2fh/N (2-6) 满足上式的抽样频率既可以恢复原信号。 例如:一样抽样函数的信号如下:s(t)=20sinc(20t) (2-6) 分别用抽样频率为 10Hz 和 20Hz 的冲激脉冲序列对其进行抽样,通过作图观察抽样后的信号的频谱同原信号的频谱的区别和联系 此信号为一带通信号,其频率宽度约 7Hz.在对其 10Hz 进行抽样得到的信号为: (2-7)kkktktTttctS2)1 . 0(20)1 . 0(20sin120) 1()20(sin20)( 而以 20Hz 抽样的得到信号为: (2-8)2)05. 0(20)05. 0(20sin220)2()20(sin20)(kkktktTttctS 所以 MATLAB 实现如下:clear all; close all;t0=10; %定义时间长度ts=0.001; fs=1/ts; t=-t0/2:ts:t0/2; %定义时间序列df=0.5; %定义频率分辨率11 / 57x=sin(20*t).*cos(100*t); m=x./(20*t);w=t0/(2*ts)+1; %确定 t=0 的点m(w)=1; %修正 t=0 点的信号值 m=20.*m;M,mn,dfy=fft_seq(m,ts,df); %傅立叶变换M=M/fs;f=0:dfy:dfy*length(mn)-dfy-fs/2; %定义频率序列figure(1) subplot(2,1,1); plot(t,m);xlabel(时间/s);ylabel(幅值);title(原信号的波形);axis(-2,2,-30,30);subplot(2,1,2);plot(f,abs(fftshift(M);xlabel(频率/Hz);ylabel(幅值);axis(-50,50,0,4);title(原信号的频谱);t0=10; %信号持续的时间ts1=0.01;fs1h=100;t1=-t0/2:ts1:t0/2; x1=sin(20*t1).*cos(100*t1); m1=x1./(20*t1); w1=t0/(2*ts1)+1; m1(w1)=1; %修正 t=0 时的信号值m1=20.*m1; M1,mn1,df1=fft_seq(m1,ts1,df); %对满抽样条件的信号进行傅立叶变换 M1=M1/fs1h;N1=M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1;f1=-7*df1*length(mn1):df1:6*df1*length(mn1)-df1-fs1h/2;figure(2) subplot(2,1,1); stem(t1,m1);xlabel(时间/s);ylabel(幅值);title(抽样满足信号的波形);axis(-1.5,1.5,-20,30);subplot(2,1,2) plot(f1,abs(fftshift(N1);xlabel(频率/Hz);ylabel(幅值);axis(-100,100,0,2);title(抽样满足的信号频谱);axis(-100,100,0,2);t0=10; %信号持续的时间12 / 57ts1=0.025;fs1l=40;t1=-t0/2:ts1:t0/2; %定义满足抽样条件的时间序列x1=sin(20*t1).*cos(100*t1); m1=x1./(20*t1); w1=t0/(2*ts1)+1; m1(w1)=1; %修正 t=0 时的信号值m1=20.*m1; M1,mn1,df1=fft_seq(m1,ts1,df); %对满抽样条件的信号进行傅立叶变换 M1=M1/fs1l;N1=M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1;f1=-7*df1*length(mn1):df1:6*df1*length(mn1)-df1-fs1l/2;figure(3) subplot(2,1,1); stem(t1,m1);xlabel(时间/s);ylabel(幅值);title(抽样满足信号的波形);axis(-1,1,-20,30);subplot(2,1,2) plot(f1,abs(fftshift(N1);xlabel(频率/Hz);ylabel(幅值);axis(-50,50,0,2.5);title(抽样满足的信号频谱);axis(-50,50,0,2.5); function M,m,df=fft_seq(m,ts,df)fs=1/ts;if nargin=2 n1=0else n1=fs/dfendn2=length(m);n=2(max(nextpow2(n1),nextpow2(n2);M=fft(m,n);m=m,zeros(1,n-n2);df=fs/n;13 / 57-2-1.5-1-0.500.511.52-20020不 不 /s不 不不 不 不 不 不 不-50-40-30-20-100102030405001234不 不 /Hz不 不不 不 不 不 不 不图 2-4 原信号波形与频谱图-1.5-1-0.500.511.5-20-100102030不 不 /s不 不不 不 不 不 不 不 不 不 不-100-80-60-40-2002040608010000.511.52不 不 /Hz不 不不 不 不 不 不 不 不 不 不图 2-5 抽样满足信号波形与频谱14 / 57-1-0.8-0.6-0.4-0.200.20.40.60.81-20-100102030不 不 /s不 不不 不 不 不 不 不 不 不 不-50-40-30-20-100102030405000.511.522.5不 不 /Hz不 不不 不 不 不 不 不 不 不 不图 2-6 抽样满足信号波形与频谱2.22.2 模拟信号的量化模拟信号的量化 模拟信号进行抽样以后,其抽样值还是随信号幅度连续变化的,即抽样值 m (KT)可以取无穷多个可能值,如果 N 个二进制数字信号来代表该样值的大小,以便用数字传输系统来传输该样值信息,那么 N 个二进制信号只能同 M=2 个电平值相对应,这样一来,抽样值必须被划分成 M 个离散电平,此电平被称为量化电平。 利用预先规定的有限个电平来表示模拟抽样值的过程称为量化。抽样是把一个时间连续信号变换成时间离散的信号,而量化则是将取样连续的抽样变成取值离散的抽样。 通常,量化器的输入是随机模拟信号。可以用适当速率对此随机信号 m(t)进行抽样,并按照预先规定,将抽样值 m (KTs)变换成 M 个电平 q1, q2, qm 之一mq(KTs)=qi 若 mi-1(KTs)mi (2-9) 量化器的输出是一个数学序列信号mq(KTs). 量化方案可分为标量量化和矢量量化,标量量化中每个信源输出被分别量化,它又分为均匀量化和非均匀量化。均匀量化的量化区域是等长的,非均匀量化则是不等长的,正因为此,非均匀量化的性能要优于均与量化。矢量量化则是对信源组合进行行整体量化。 在标量量化中,随机标量 X 的定义域划分为 N 个互不重叠的区域 Ri, I=1, 2,.N,R 称为量化间隔。在每个区域选择一个点作为量化技术,用 xi 表示。落在15 / 57该区域的点都用 xi 表示,这样会带来误差。该均方误差为:D= (2-10)dxxfxxNiRii)()(21 其中 f(x)是信源随机变量的概率密度函数。定义信号量化噪声比为: (2-11)DXESNQR2log102.12.1 均匀量化均匀量化 把输入信号的取值域按距离分割的量化称为均匀量化。在均匀量化方式中,除第一个和最后一个区域,其他的所有区域都是等长的,每一级都有一个重建电平,即落在该区域中的不同值都会被量化为同一值,通常每个量化间隔的重建电平也都取均匀分布的值。 在量化范围(-V,+V)中,量化间隔数为 L 个,均匀量化器的的量化间隔由上面可以得到,量化噪声功率的公式在可以简化为: (2-12)1211221121222LkkLkkqpp 而由前述可知:所以。LV22223122LVq因此均匀量化器的不过噪载声(信号的幅度小于 V)与信号统计特性无关,只于量化间隔和量化的最大值有关系,既: (2-13)2223)(23222LSNRVASmLVmAq由 MATLAB 实现如下:t=0:0.1:2*pi;s=sin(t);partition=-1:1/32:1;codebook=-32:1:32;index,aquan,distor=quantiz(s,partition,codebook);figure(1)subplot(2,1,1);plot(t,s);subplot(2,1,2);plot(t,aquan,*);codebooknu=ceil(log2(64);codebook=zeros(length(s),nu)for i=1:length(s)16 / 57 for j=nu:-1: if(fix(aquan(i)/(2j)=1) codebook(i,nu-j)=1; aquan(i)=aquan(i)-2j; end endendcodebook有程序可得图示如下:01234567-1-0.500.5101234567-40-2002040图示 2-7 电平均匀量化波形与原信号波形2.22.2 非均匀量化非均匀量化 非均匀量化是根据信号的不同区间来确定量化间隔的对于信号取值小的区间,其量化间隔也小;反之,量化间隔就大。它与均匀量化相比,有两个突出的优点。v首先当输入的量化器的信号具有非均匀的概率密度(实际中常常是这样)时,非均匀量化器的输出端可以得到较高的平均信号量化噪声功率比;其次,非均匀量化时,量化噪声功率的均方根值基本上与信号抽样值成比例。因此量化噪声对大、小信号的影响大致相同,即改善了小信号是的信号量噪比。 实际上,非均匀量化的实现方法通常是将抽样值通过压缩在进行均匀量化。所17 / 57谓压缩是用一个非线性变换电路将输入变量 x 变成另一个变量小 y,即 (2-15))(xfy 非均匀量化就是对压缩后的变量 y 进行均匀量化。接收端采用一个传输特性为 (2-16))(yfx 的扩张器来恢复 x。通常使用的压缩器中,大多采用对数式压缩,即。广泛xyln采用的两种对数压缩律师压缩率和 A 压缩率。美国采用压缩率,我国和欧洲各国均采用 A 压缩率。1.压缩律 所谓压缩率就是压缩气的压缩特性具有如下关系的压缩率: (2-17)10 x 式中 y归一化的压缩器输出电压,即y=压缩器的输出电压/压缩器可能的最大输出电压 x归一化的压缩器输入电压,即x=压缩器的输入电压/压缩器的可能的最大输入电压 压扩参数,表示压缩的程度。A 压缩率 所谓 A 压缩率也就是压缩器具有如下特性的压缩率: f(x)= (2-18)1,0 ,1ln1ln11ln1xxAAAxAAAx 式中 x归一化的压缩器输入电压; y归一化的压缩器输出电压; A压扩参数,表示压缩程度。A A 律的律的 1313 折线近似法折线近似法 由于实现上的困难,国际上使用 13 折线法来近似 A 律 PCM,其方法是将输入信号幅度归一化范围到(-1,1) ,将其分为不均匀的 16 段区间,正负方向相同,这里就仅对正数范围(0,1)进行介绍。划分方法是:取 01/128 为第一区间,取1/1281/64 为第二区间,取 1/641/32 为第三区间,.,7/81 为第八区间。将点(1/128,1/8)与(0,0)相连,将点(1/642/8)与(1/128,1/8)相连,.这样得到由 8 段直线连成的一条折线(事实上由于第一区间与第二区间的斜率相等,只有 7 条直线) 。此折线与 A=87.6 的对数压缩特性曲线相近,作出图像如图 2-8 所示由 MATLAB 可实现如下:t=0:0.1:2*pi;18 / 57s=sin(t);dx=0.001;x=-1:dx:1;A=87.6;for i=1:length(x)if abs(x(i)1/A ya(i)=A*x(i)/(1+log(A);else ya(i)=sign(x(i)*(1+log(A*abs(x(i)/(1+log(A);endendfigure(1)plot(x,ya,k.:);title(A)xlabel(x);ylabel(y);grid onhold onxx=-pi/2,asin(-7/8),asin(-6/8),asin(-5/8),asin(-4/8),asin(-3/8),asin(-2/8),asin(-1/8),asin(1/8),asin(2/8),asin(3/8),asin(4/8),asin(5/8),asin(6/8),asin(7/8),pi/2yy=-1,-7/8,-6/8,-5/8,-4/8,-3/8,-2/8,-1/8,1/8,2/8,3/8,4/8,5/8,6/8,7/8,1plot(xx,yy,r);stem(xx,yy,b-.);legend(A 律压缩特性,折线近似 A 律);partition=-1:1/32:1;codebook=-32:1:32;index,ya,distor=quantiz(s,partition,codebook);figure(2)subplot(2,1,1);plot(t,s);subplot(2,1,2);plot(t,ya,*);axis(0,7,-40,40);19 / 57nu=ceil(log2(64);codebook=zeros(length(s),nu)for m=1:length(s) for j=nu:-1:0 if(fix(ya(m)/(2j)=1) codebook(m,nu-j)=1; ya(m)=ya(m)-2j; end endendcodebook-2-1.5-1-0.500.511.52-1-0.8-0.6-0.4-0.200.20.40.60.81AxyA不 不 不 不 不不 不 不 不 A不图 2-8 A 律对数量化特性曲线20 / 57第第 3 章章 数字信号基带传输及其仿真数字信号基带传输及其仿真3.13.1 数字基带信号的码型数字基带信号的码型3.1.1 单极性非归零码单极性非归零码用电平 1 来表示二元信息中的“1” ,用电平 0 来表示二元信息中的“0” ,电平在整个码元里的时间不变,记作 NRZ 码。波形如图 3-1 所示图 3-1 单极性非归零码单极性非归零码的优点是实现简单,但由于含有直流分量,对在带限信道中传输不利,另外当出现连续的 0 或连续的 1 时,电平长时间保持一个值,不利于提取时间信息以便获得同步。单极性非归零码的 MATLAB 实现如下:(函数文件snrz.m)function y=snrz(x)%本函数实现将输入的一段二进制代码编为相应的单极性非归零码输出%输入 x 为二进制码,输出 y 为编好的码%给出计算每个码元的点数,因为我们只用离散的点来得出连续的函数表示。grid=300;t=0: 1/grid: length(x);for i=1: length(x), %计算码元的值if(x(i)=1), %如果信息为 1for j=1: grid, %该码元对应的点值取 1 y(i-1)*grid+j)=1;endelsefor j=1: grid, %反之,信息为 0,码元对应点值取 0 y(i-1)*grid+j)=0;end; end; end21 / 57y=y,x(i); %为了图画,注意要将 y 序列加上最后一位M=max(y); m=min(y);subplot(2, 1, 1); plot(t, y);axis(0, i, m-0.1, M+0.1); %我们采用了 title 命令来实现标记出各码元对应的二元信息title(1 0 0 1 1 0 0 0 0 1 0 1);在命令窗口中键入如下指令即会出现图 3-1 所示。t=1 0 0 1 1 0 0 0 0 1 0 1;snrz(t);3.1.23.1.2 单极性归零码单极性归零码它与单极性非归零码不同处在于输入二元信息为 1 时,给出的码元前半时间为0,输入 0 则完全相同。波形如图 3-2 所示。图 3-2 单极性归零码单极性归零码部分解决了传输问题,直流分量减小,但遇到连续长 0 时同样无法给出定时信息。MATLAB 实现如下:(函数文件 srz.m)function y=srz(x) %本函数实现将输入的一段二进制代码编为相应的单极性归零码输出 %输入 x 为二进制码,输出 y 为编好的码grid=200;t=0: 1/grid: length(x); %给出相应的时间序列for i=1: length(x), %进行码型变换if(x(i)=1), %如果信息为 1for j=1: grid/2y(grid/2*(2*i-2)+j)=1; %定义前半时间值为 1y(grid/2*(2*i-1)+j)=0; %定义后半时间值为 0endelse22 / 57for j=1: grid/2, %反之,输入信息为 0y(grid*(i-1)+j)=0; %定义所有时间值为 0end; end; endy=y, x(i); %给序列 y 加上最后一位,便于做图M=max(y); m=min(y);Plot(t, y); axis(0, i, m-0.1, M+0.1);title(1 0 0 1 1 0 0 0 0 1 0 1);3.1.33.1.3 双极性非归零码双极性非归零码 它与单极性非归零码类似,区别仅在于双极性使用电平-1 来表示信息 0。波形如下图 3-3 所示。图 3-3 双极性非归零码双极性非归零码的实现同单极性一样,只需将 snrz.m 中的判断得到 0 信息后的语句 y(i-1)*grid+j)=0;中的 0 改为 1 即可。在此就不给出 MATLAB 函数文件。3.1.43.1.4 双极性归零码双极性归零码此种码型比较特殊,它使用前半时间 1,后半时间 0 来表示信息 1;采用前半时间-1,后半时间 0 来表示信息 0。因此它具有三个电平,严格说来是一种三元码(电平 1, 0, -1) 。波形如图 3-4 所示。图 3-4 双极性归零码 双极性归零码包含了丰富的时间信息,每一个码源都有一个跳变沿,便于接收方定时。同时对随机信号,信息 1 和 0 概率相同,所以此种码元几乎没有直流分量。MATLAB 实现如下(函数文件 drz.m):23 / 57function y=drz(x) %本函数实现将输入的一段二进制代码编为相应的双极性归零码输出 %输入 x 为二进制码,输出 y 为编好的码grid=300;t=0: 1/grid: length(x); %给出相应的时间序列for i=1: length(x), %进行码型变换if(x(i)=1), %如果信息为 1 for j=1: grid/2y(grid/2*(2*i-2)+j)=1; %定义前半时间值为 1y(grid/2*(2*i-1)+j)=0; %定义后半时间值为 0endelse for j=1: grid/2, %反之,输入信息为 0 y(grid/2*(2*i-2)+j)=-1; %定义前半时间值为-1 y(grid/2*(2*i-1)+j)=0; %定义后半时间值为 0end; end; endy=y, x(i); %给序列 y 加上最后一位,便于做图M=max(y); m=min(y);Plot(t, y); axis(0, i, m-0.1, M+0.1);title(1 0 0 1 1 00 0 0 1 0 1);3.1.53.1.5 数字双相码数字双相码 该码型又称为曼彻斯特(macheser)码,此种码元方法采用一个码元时间的中央时刻从 0 到 1 的跳变来表示信息 1,从 1 到 0 的跳变来表示信息或者说是前半时间用 0,后半时间用 1 来表示信息 1;前半时间 1,后半时间 0 来表示信息 0。波形如图 3-5 所示。图 3-5 数字双相码 数字双相码的好处是含有丰富的定时信息,每一个码元都有跳变沿,遇到连续24 / 57的 0 或 1 时不会出现长时间维持同一电平的现象。另外,虽然数字双相码有直流但对每一个码元其直流分量是固定的 0.5, 只要叠加-0.5 就转换为没有直流了,实际上是没有直流的,方便传输。MATLAB 实现同双极性归零码的类似近似,只要将语句 y(grid/2*(2*i-2)+j)=-1; y(grid/2*(2*i-1)+j)=0;改为: y(grid/2*(2*i-2)+j)=1; y(grid/2*(2*i-1)+j)=0;即可。 (函数文件 machester.m)3.1.63.1.6 条件双相码条件双相码 前面介绍的几种码都是只与当前的二元信息 0 或 1 有关,而条件双相码又称差分曼彻斯特码,不仅与当前的信息元有关,并且与前一个信息元也有关,确切的说应该是同前一个码元的电平有关。条件双相码也使用中央时刻的电平跳变来表示信息,与数字双向码的不同在于对信息 1,则前半时间的电平与前一个码元的后半时间电平相同,在中央处再跳变;对信息 0,则前半时间的电平与前一个码元的后半时间电平相反(即遇 0 取 1,遇 1 取 0) 。波形如图 3-6 所示。图 3-6 条件双相码 条件双相码好处是当遇到传输中电平极性反转情况时,前面介绍的几种码都会出现译码错误,而条件双相码却不会受极性反转的影响。MATLAB 实现如下(函数文件 dmanchester.m):function y=dmanchester(x) %本函数实现将输入的一段二进制代码编为相应的条件双相码输出 %输入 x 为二进制码,输出 y 为编好的码grid=100;t=0: 1/grid: length(x); %给出相应的时间序列i=1; %因为这里是直接对一段二进制数编码 if(x(i)=1), %前面的值不一定,所以第一个值我们单独给出 for j=1: grid/2 %若第一个信息为 125 / 57y(grid/2*(2*i-2)+j)=0; %前半时间值为 0y(grid/2*(2*i-1)+j)=1; %后半时间值为 1endelsefor j=1: grid/2, %反之,输入信息为 0 y(grid/2*(2*i-2)+j)=1; %前半时间值为-1 y(grid/2*(2*i-1)+j)=0; %后半时间值为 0end endfor i=2: length(x) %从第二个信息起编码与前面的码元有关系 if(x(i)=1) %输入的是信息 1 for j=1: grid/2 %前半时间与前一码元后半时间值相反 y(grid/2*(2*i-2)+j)=1-y(grid/2*(2*i-3)+grid/4); %后半时间值与本码元前半时间值相反 y(grid/2*(2*i-1)+j)=1-y(grid/2*(2*i-2)+j); end else for j=1: grid/2 %反之输入为信息 0 %前半时间与前一码元后半时间值相同 y(grid/2*(2*i-2)+j)=y(grid/2*(2*i-3)+grid/4); %后半时间值与本码元前半时间值相反 y(grid/2*(2*i-1)+j)=1-y(grid/2*(2*i-2)+j);end; end; endy=y, y(i*grid); M=max(y); m=min(y); plot(t, y);axis(0, i, m-0.1, M+0.1);title(1 0 0 1 1 0 0 0 0 1 0 1);3.1.73.1.7 密勒码密勒码 该码型是数字双相码的变型。它采用码元中央时刻跳变来表示信息 1,即前半时间的电平同前一码元后半时间的电平相同,中央跳变。遇到信息 0 作如下处理:首先对 0 的码元在整个码元时间内保持同一电平值,其次若此 0 前一信息是 1,则码元的电平同前面信息 1 的码元后半时间电平相同,若前一信息为 0,则与前面码26 / 57元的电平相反,波形如图 3-7 所示。图 3-7 密勒码 密勒码同样克服了电平反转所带来的译码错误。密勒码中同一电平的最大宽度为两个码元时间,出现在遇到 101 这样的信息时。其 MATLAB 实现如下(函数文件miler.m):function y=miler(x) %本函数实现将输入的一段二进制代码编为相应的密勒码输出 %输入 x 为二进制码,输出 y 为编好的码grid=100;t=0: 1/grid: length(x); %给出相应的时间序列i=1; %因为这里是直接对一段二进制数编码 if(x(i)=1), %前面的值不一定,所以第一个值我们单独给出 for j=1: grid/2 %若第一个信息为 1 y(grid/2*(2*i-2)+j)=0; %前半时间值为 0 y(grid/2*(2*i-1)+j)=1; %后半时间值为 1endelse for j=1: grid, %反之,输入信息为 0 y(grid*(i-1)+j)=0; %定义所有时间值为 0end endfor i=2: length(x) %开始进行密勒编码 if(x(i)=1) %输入的是信息 1 for j=1: grid/2 %前半时间与前一码元后半时间值相同 y(grid/2*(2*i-2)+j)=y(grid/2*(2*i-3)+grid/4); %后半时间值与本码元前半时间值相反 y(grid/2*(2*i-1)+j)=1-y(grid/2*(2*i-2)+j);27 / 57 end else if(x(i-1)=1) %反之,输入为信息 0,若前一信息为 1 for j=1: grid %前半时间与前一码元后半时间值相同 y(grid*(i-1)+j)=y(grid/2*(2*i-3)+grid/4); end else %否则,前一信息为 0 for j=1: grid %后半时间值与本码元前半时间值相反
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!