跳至主要内容

【转】调制基本概念介绍

调制技术
  把基带信号变换成传输信号的技术。基带信号是原始的电信号,一般是指基本的信号波形,在数字通信中则指相应的电脉冲。在无线遥测遥控系统和无线电技术中调制就是用基带信号控制高频载波的参数(振幅、频率和相位),使这些参数随基带信号变化。用来控制高频载波参数的基带信号称为调制信号。未调制的高频电振荡称为载波(可以是正弦波,也可以是非正弦波,如方波、脉冲序列等)。被调制信号调制过的高频电振荡称为已调波或已调信号。已调信号通过信道传送到接收端,在接收端经解调后恢复成原始基带信号。解调是调制的反变换,是从已调波中提取调制信号的过程(1)。在无线电通信中常采用双重调制。第一步用数字信号或模拟信号去调制第一个载波(称为副载波)。或在多路通信中用调制技术实现多路复用(频分多路复用和时分多路复用)。第二步用已调副载波或多路复用信号再调制一个公共载波,以便进行无线电传输。第二步调制称为二次调制。用基带信号调制高频载波,在无线电传输中可以减小天线尺寸,并便于远距离传输。应用调制技术,还能提高信号的抗干扰能力。



  调制方式按照调制信号的性质分为模拟调制和数字调制两类;按照载波的形式分为连续波调制和脉冲调制两类。模拟调制有调幅(AM)、调频(FM)和调相(PM)。数字调制有振幅键控(ASK)、移频键控(FSK)、移相键控(PSK)和差分移相键控(DPSK)等。脉冲调制有脉幅调制(PAM)、脉宽调制(PDM)、脉频调制(PFM)、脉位调制(PPM)、脉码调制(PCM)和增量调制(ΔM)。图2示出常用调制方式的已调波形。

  按照传输特性,调制方式又可分为线性调制和非线性调制。广义的线性调制,是指已调波中被调参数随调制信号成线性变化的调制过程。狭义的线性调制,是指把调制信号的频谱搬移到载波频率两侧而成为上、下边带的调制过程。此时只改变频谱中各分量的频率,但不改变各分量振幅的相对比例,使上边带的频谱结构与调制信号的频谱相同,下边带的频谱结构则是调制信号频谱的镜像。狭义的线性调制有调幅(AM)、抑制载波的双边带调制(DSB-SC)和单边带调制(SSB)

  模拟调制 一般指调制信号和载波都是连续波的调制方式。它有调幅、调频和调相三种基本形式。调幅(AM):用调制信号控制载波的振幅,使载波的振幅随着调制信号变化。已调波称为调幅波。调幅波的频率仍是载波频率,调幅波包络的形状反映调制信号的波形。调幅系统实现简单,但抗干扰性差,传输时信号容易失真。调频(FM):用调制信号控制载波的振荡频率,使载波的频率随着调制信号变化。已调波称为调频波。调频波的振幅保持不变,调频波的瞬时频率偏离载波频率的量与调制信号的瞬时值成比例。调频系统实现稍复杂,占用的频带远较调幅波为宽,因此必须工作在超短波波段。但抗干扰性能好,传输时信号失真小,设备利用率也较高。调相(PM):用调制信号控制载波的相位,使载波的相位随着调制信号变化。已调波称为调相波。调相波的振幅保持不变,调相波的瞬时相角偏离载波相角的量与调制信号的瞬时值成比例。在调频时相角也有相应的变化,但这种相角变化并不与调制信号成比例。在调相时频率也有相应的变化,但这种频率变化并不与调制信号成比例。在模拟调制过程中已调波的频谱中除了载波分量外在载波频率两旁还各有一个频带,因调制而产生的各频率分量就落在这两个频带之内。这两个频带统称为边频带或边带。位于比载波频率高的一侧的边频带,称为上边带。位于比载波频率低的一侧的边频带,称为下边带。在单边带通信中可用滤波法、相移法或相移滤波法取得调幅波中一个边带,这种调制方法称为单边带调制(SSB)。单边带调制常用于有线载波电话和短波无线电多路通信。在同步通信中可用平衡调制器实现抑制载波的双边带调制(DSB-SC)。在数字通信中为了提高频带利用率而采用残留边带调制(VSB),即传输一个边带(在邻近载波的部分也受到一些衰减)和另一个边带的残留部分。在解调时可以互相补偿而得到完整的基带。

  数字调制 一般指调制信号是离散的,而载波是连续波的调制方式。它有四种基本形式:振幅键控、移频键控、移相键控和差分移相键控。振幅键控(ASK):用数字调制信号控制载波的通断。如在二进制中,0时不发送载波,1时发送载波。有时也把代表多个符号的多电平振幅调制称为振幅键控。振幅键控实现简单,但抗干扰能力差。移频键控(FSK):用数字调制信号的正负控制载波的频率。当数字信号的振幅为正时载波频率为f1,当数字信号的振幅为负时载波频率为f2。有时也把代表两个以上符号的多进制频率调制称为移频键控。移频键控能区分通路,但抗干扰能力不如移相键控和差分移相键控。移相键控(PSK):用数字调制信号的正负控制载波的相位。当数字信号的振幅为正时,载波起始相位取0;当数字信号的振幅为负时,载波起始相位取180°。有时也把代表两个以上符号的多相制相位调制称为移相键控。移相键控抗干扰能力强,但在解调时需要有一个正确的参考相位,即需要相干解调。差分移相键控(DPSK):利用调制信号前后码元之间载波相对相位的变化来传递信息。

  在二进制中通常规定:传送1时后一码元相对于前一码元的载波相位变化180°,而传送0时前后码元之间的载波相位不发生变化。因此,解调时只看载波相位的相对变化。而不看它的绝对相位。只要相位发生180°跃变,就表示传输1。若相位无变化,则传输的是0。差分移相键控抗干扰能力强,且不要求传送参考相位,因此实现较简单。

  脉冲调制 脉冲调制有两种含义:第一种是指用调制信号控制脉冲本身的参数(幅度、宽度、相位等),使这些参数随调制信号变化。此时,调制信号是连续波,载波是重复的脉冲序列。第二种是指用脉冲信号控制高频振荡的参数。此时,调制信号是脉冲序列,载波是高频振荡的连续波。通常所说的脉冲调制都是指上述第一种情况。脉冲调制可分为模拟式和数字式两类。模拟式脉冲调制是指用模拟信号对脉冲序列参数进行调制,有脉幅调制、脉宽调制、脉位调制和脉频调制等。数字式脉冲调制是指用数字信号对脉冲序列参数进行调制,有脉码调制和增量调制等。由于脉冲序列占空系数很小,即一个周期的绝大部分时间内信号为0,因而可以插入多路其他已调脉冲序列,实现时分多路传输。已调脉冲序列还可以用各种方法去调制高频振荡载波。常用的脉冲调制有以下几种。脉幅调制(PAM):用调制信号控制脉冲序列的幅度,使脉冲幅度在其平均值上下随调制信号的瞬时值变化。这是脉冲调制中最简单的一种。脉幅调制是A.H.里夫在20世纪30年代发明的,在第二次世界大战中期已付之实用。但后来发现,脉幅调制的已调波在传输途径中衰减,抗干扰能力差,所以现在很少直接用于通信,往往只用作连续信号采样的中间步骤。脉宽调制(PDM):用调制信号控制脉冲序列中各脉冲的宽度,使每个脉冲的持续时间与该瞬时的调制信号值成比例。此时脉冲序列的幅度保持不变,被调制的是脉冲的前沿或后沿,或同时是前后两沿,使脉冲持续时间发生变化。脉宽调制也是20世纪30年代里夫发明的。但在无线电通信中一般不用脉宽调制,因为此时发射机的平均功率要不断地变化。脉位调制(PPM):用调制信号控制脉冲序列中各脉冲的相对位置(即相位),使各脉冲的相对位置随调制信号变化。此时脉冲序列中脉冲的幅度和宽度均保持不变。脉位调制在第二次世界大战中期已付之实用。脉位调制的传输性能较好,常用于视距微波中继通信系统。脉频调制(PFM):用调制信号控制脉冲的重复频率,即单位时间内脉冲的个数,使脉冲的重复频率随调制信号变化。此时脉冲序列中脉冲的幅度和宽度均保持不变。主要用于仪表测量等方面,很少直接用于无线电通信。脉码调制(PCM)1937年脉幅调制和脉宽调制的发明者A.H.里夫提出用脉冲的有无的组合来传递声音,后来把这种方法称为脉码调制。但脉码调制到20世纪50年代才开始实用化。脉码调制有三个过程:采样、量化和编码。即先对信号进行采样,并对采样值进行量化(整量化),再对经过采样和量化后的信号幅度进行编码,因此脉码调制的本质不是调制,而是数字编码,所以能充分保证传输质量。由编码得到的数字信号可根据需要再对高频振荡载波进行调制。脉码调制不是用改变脉冲序列的参数来传输信息,而是用参数固定的脉冲的不同组合来传递信息,因此抗干扰能力强,失真很小,是现代通信技术的发展方向。增量调制(ΔM):增量调制是一种特殊的脉码调制,它不是对信号本身进行采样、量化和编码,而是对信号相隔一定重复周期的瞬时值的增量进行采样、量化和编码。现在已有多种增量调制方法,其中最简单的一种,是在每一采样瞬间当增量值超过某一规定值时发正脉冲,小于规定值时发负脉冲。这样每个码组只有一个脉冲,故为二进制一位编码,每个码组不是表示信号的幅度,而是表示幅度的增量。这种增量调制信号的解调也很简单,只要将收到的脉冲序列进行积分和滤波即可复原,因此编码和解码设备都比较简单。

评论

此博客中的热门博文

【转】AMBA、AHB、APB总线简介

AMBA 简介 随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大。数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SOC设计中得到了广泛应用。在基于IP复用的SoC设计中,片上总线设计是最关键的问题。为此,业界出现了很多片上总线标准。其中,由ARM公司推出的AMBA片上总线受到了广大IP开发商和SoC系统集成者的青睐,已成为一种流行的工业标准片上结构。AMBA规范主要包括了AHB(Advanced High performance Bus)系统总线和APB(Advanced Peripheral Bus)外围总线。   AMBA 片上总线        AMBA 2.0 规范包括四个部分:AHB、ASB、APB和Test Methodology。AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。下面将简要介绍比较重要的AHB和APB总线。 基于 AMBA 的片上系统        一个典型的基于AMBA总线的系统框图如图3所示。        大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:主模块或者从模块。主模块是向从模块发出读写操作的模块,如CPU,DSP等;从模块是接受命令并做出反应的模块,如片上的RAM,AHB/APB 桥等。另外,还有一些模块同时具有两种属性,例如直接存储器存取(DMA)在被编程时是从模块,但在系统读传输数据时必须是主模块。如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由RTL设计工程师决定,其中两个最常用的算法是固定优先级算法和循环制算法。AHB总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅ARM公司推出的Multi-layer AHB规范)。APB 桥既是APB总线上唯一的主模块,也是AHB系统总线上的从模块。其主要功能是锁存来自AHB系统总...

【转】GPIO编程模拟I2C入门

ARM编程:ARM普通GPIO口线模拟I2C  请教个问题: 因为需要很多EEPROM进行点对点控制,所以我现在要用ARM的GPIO模拟I2C,管脚方向我设 置的是向外的。我用网上的RW24C08的万能程序修改了一下,先进行两根线的模拟,SDA6, SCL6,但是读出来的数不对。我做了一个简单的实验,模拟SDA6,SCL6输出方波,在示波 器上看到正确方波,也就是说,我的输出控制是没问题的。 哪位大哥能指点一下,是否在接收时管脚方向要设为向内?(不过IOPIN不管什么方向都可 以读出当前状态值的阿) 附修改的RW24C08()程序: #define  SomeNOP() delay(300); /**/ /* *********************************  RW24C08   **************************************** */ /**/ /* ----------------------------------------------------------------------------- ---  调用方式:void I2CInit(void)   函数说明:私有函数,I2C专用 ------------------------------------------------------------------------------- -- */ void  I2CInit( void ) ... {  IO0CLR  =  SCL6;      // 初始状态关闭总线  SomeNOP();  // 延时   I2CStop();  // 确保初始化,此时数据线是高电平 }   /**/ /* ---------------------------------------------------------------------------- ----  调用方式:void I2CSta...

【转】cs8900网卡的移植至基于linux2.6内核的s3c2410平台

cs8900网卡的移植至基于linux2.6内核的s3c2410平台(转) 2008-03-11 20:58 硬件环境:SBC-2410X开发板(CPU:S3C2410X) 内核版本:2.6.11.1 运行环境:Debian2.6.8 交叉编译环境:gcc-3.3.4-glibc-2.3.3 第一部分 网卡CS8900A驱动程序的移植 一、从网上将Linux内核源代码下载到本机上,并将其解压: #tar jxf linux-2.6.11.1.tar.bz2 二、打开内核顶层目录中的Makefile文件,这个文件中需要修改的内容包括以下两个方面。 (1)指定目标平台。 移植前:         ARCH?= $(SUBARCH) 移植后: ARCH            :=arm (2)指定交叉编译器。 移植前: CROSS_COMPILE ?= 移植后: CROSS_COMPILE   :=/opt/crosstool/arm-s3c2410-linux-gnu/gcc-3.3.4-glibc-2.3.3/bin/arm-s3c2410-linux-gnu- 注:这里假设编译器就放在本机的那个目录下。 三、添加驱动程序源代码,这涉及到以下几个方面。(1)、从网上下载了cs8900.c和cs8900.h两个针对2.6.7的内核的驱动程序源代码,将其放在drivers/net/arm/目录下面。 #cp cs8900.c ./drivers/net/arm/ #cp cs8900.h ./drivers/net/arm/ 并在cs8900_probe()函数中,memset (&priv,0,sizeof (cs8900_t));函数之后添加如下两条语句: __raw_writel(0x2211d110,S3C2410_BWSCON); __raw_writel(0x1f7c,S3C2410_BANKCON3); 注:其原因在"第二部分"解释。 (2)、修改drivers/net/arm/目录下的Kconfig文件,在最后添加如...