跳至主要内容

【转】调制基本概念介绍

调制技术
  把基带信号变换成传输信号的技术。基带信号是原始的电信号,一般是指基本的信号波形,在数字通信中则指相应的电脉冲。在无线遥测遥控系统和无线电技术中调制就是用基带信号控制高频载波的参数(振幅、频率和相位),使这些参数随基带信号变化。用来控制高频载波参数的基带信号称为调制信号。未调制的高频电振荡称为载波(可以是正弦波,也可以是非正弦波,如方波、脉冲序列等)。被调制信号调制过的高频电振荡称为已调波或已调信号。已调信号通过信道传送到接收端,在接收端经解调后恢复成原始基带信号。解调是调制的反变换,是从已调波中提取调制信号的过程(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):增量调制是一种特殊的脉码调制,它不是对信号本身进行采样、量化和编码,而是对信号相隔一定重复周期的瞬时值的增量进行采样、量化和编码。现在已有多种增量调制方法,其中最简单的一种,是在每一采样瞬间当增量值超过某一规定值时发正脉冲,小于规定值时发负脉冲。这样每个码组只有一个脉冲,故为二进制一位编码,每个码组不是表示信号的幅度,而是表示幅度的增量。这种增量调制信号的解调也很简单,只要将收到的脉冲序列进行积分和滤波即可复原,因此编码和解码设备都比较简单。

评论

此博客中的热门博文

【转】VxWorks中的地址映射

在运用嵌入式系统VxWorks和MPC860进行通信系统设计开发时,会遇到一个映射地址不能访问的问题。 缺省情况下,VxWorks系统已经进行了如下地址的映射:   memory地址、bcsr(Board Control and Status)地址、PC_BASE_ADRS(PCMCIA)地址、Internal Memory地址、rom(Flach memory)地址等,但是当你的硬件开发中要加上别的外设时,如(falsh、dsp、FPGA等),对这些外设的访问也是通过地址形式进行读写,如果你没有加相应的地址映射,那么是无法访问这些外设的。   和VxWorks缺省地址映射类似,你也可以进行相应的地址映射。   如下是地址映射原理及实现:   1、 地址映射结构 在Tornado\target\h\vmLib.h文件中 typedef struct phys_mem_desc { void *virtualAddr; void *physicalAddr; UINT len; UINT initialStateMask; /* mask parameter to vmStateSet */ UINT initialState; /* state parameter to vmStateSet */ } PHYS_MEM_DESC; virtualAddr:你要映射的虚拟地址 physicalAddr:硬件设计时定义的实际物理地址 len;要进行映射的地址长度 initialStateMask:可以初始化的地址状态: 有如下状态: #define VM_STATE_MASK_VALID 0x03 #define VM_STATE_MASK_WRITABLE 0x0c #define VM_STATE_MASK_CACHEABLE 0x30 #define VM_STATE_MASK_MEM_COHERENCY 0x40 #define VM_STATE_MASK_GUARDED 0x80 不同的CPU芯片类型还有其特殊状态 initialState:实际初始化的地址状态: 有如下状态: #define VM_STATE_VALID 0x01 #define VM_STATE_VALID_NOT 0x00 #define VM_STATE_WRITA

【转】多迷人Gtkmm啊

前边已经说过用glade设计界面然后动态装载,接下来再来看看怎么改变程序的皮肤(主题)     首先从 http://art.gnome.org/themes/gtk2 下载喜欢的主题,从压缩包里提取gtk-2.0文件夹让它和我们下边代码生成的可执行文件放在同一个目录下,这里我下载的的 http://art.gnome.org/download/themes/gtk2/1317/GTK2-CillopMidnite.tar.gz     然后用glade设计界面,命名为main.glade,一会让它和我们下边代码生成的可执行程序放在同一个目录下边     然后开始写代码如下: //main.cc #include <gtkmm.h> #include <libglademm/xml.h> int main(int argc, char *argv[]) {     Gtk::Main kit(argc,argv);         Gtk::Window *pWnd;        gtk_rc_parse("E:\\theme-viewer\\themes\\gtk-2.0\\gtkrc");       Glib::RefPtr<Gnome::Glade::Xml> refXml;     try     {         refXml = Gnome::Glade::Xml::create("main.glade");     }     catch(const Gnome::Glade::XmlError& ex)     {         Gtk::MessageDialog dialog("Load glade file failed!", false,       \                                   Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);         dialog.run();               return 1;     }         refXml->get_widget("main", pWnd);     if(pW

【转】https客户端的实现(libcurl)

一、              概念 1.         为什么要使用libcurl 1)        作为http的客户端,可以直接用socket连接服务器,然后对到的数据进行http解析,但要分析协议头,实现代理…这样太麻烦了。 2)        libcurl是一个开源的客户端url传输库,支持FTP,FTPS,TFTP,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE和LDAP,支持Windows,Unix,Linux等平台,简单易用,且库文件占用空间不到200K 2.         get和post方式 客户端在http连接时向服务提交数据的方式分为get和post两种 1)        Get方式将所要传输的数据附在网址后面,然后一起送达服务器,它的优点是效率比较高;缺点是安全性差、数据不超过1024个字符、必须是7位的ASCII编码;查询时经常用此方法。 2)        Post通过Http post处理发送数据,它的优点是安全性较强、支持数据量大、支持字符多;缺点是效率相对低;编辑修改时多使用此方法。 3.         cookie与session 1)        cookie cookie是发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个Web站点会话之间持久地保持数据。cookie在客户端。 2)        session session是访问者从到达某个特定主页到离开为止的那段时间。每一访问者都会单独获得一个session,实现站点多个用户之间在所有页面中共享信息。session在服务器上。 3)        libcurl中使用cookie 保存cookie, 使之后的链接与此链接使用相同的cookie a)         在关闭链接的时候把cookie写入指定的文件 curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "/tmp/cookie.txt"); b)        取用现在有的cookie,而不重新得到cookie curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "/tmp/cookie.txt"); b)        ht