您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 基于DSP技术的QAM调制器设计方案
基于DSP技术的QAM调制器设计方案01071099刘樵1、QAM概述正交幅度调制(QAM,QuadratureAmplitudeModulation)是一种在两个正交载波上进行幅度调制的调制方式。这两个载波通常是相位差为90度(π/2)的正弦波,因此被称作正交载波。这种调制方式因此而得名。同其它调制方式类似,QAM通过载波某些参数的变化传输信息。在QAM中,数据信号由相互正交的两个载波的幅度变化表示。模拟信号的相位调制和数字信号的PSK可以被认为是幅度不变、仅有相位变化的特殊的正交幅度调制。由此,模拟信号频率调制和数字信号FSK也可以被认为是QAM的特例,因为它们本质上就是相位调制。这里主要讨论数字信号的QAM,虽然模拟信号QAM也有很多应用,例如NTSC和PAL制式的电视系统就利用正交的载波传输不同的颜色分量。类似于其他数字调制方式,QAM发射信号集可以用星座图方便地表示。星座图上每一个星座点对应发射信号集中的一个信号。设正交幅度调制的发射信号集大小为N,称之为N-QAM。星座点经常采用水平和垂直方向等间距的正方网格配置,当然也有其他的配置方式。数字通信中数据常采用二进制表示,这种情况下星座点的个数一般是2的幂。常见的QAM形式有16-QAM、64-QAM、256-QAM等。星座点数越多,每个符号能传输的信息量就越大。但是,如果在星座图的平均能量保持不变的情况下增加星座点,会使星座点之间的距离变小,进而导致误码率上升。因此高阶星座图的可靠性比低阶要差。当对数据传输速率的要求高过8-PSK能提供的上限时,一般采用QAM的调制方式。因为QAM的星座点比PSK的星座点更分散,星座点之间的距离因之更大,所以能提供更好的传输性能。但是QAM星座点的幅度不是完全相同的,所以它的解调器需要能同时正确检测相位和幅度,不像PSK解调只需要检测相位,这增加了QAM解调器的复杂性。M-QAM信号波形的表达式为:其中g(t)为码元信号脉冲。因此QAM可以分解为分别在两个正交的载波cos2πfct与sin2πfct上的M1-PAM与M2-PAM的叠加,其中M1M2=M。将上面sm(t)变形得到其中,θm=arctan(Ams/Amc)。因此,M-QAM还可以看作是M1-PAM与M2-PSK的叠加,其中M1M2=M。2、DSP技术2.1DSP实现QAM调制的方案设计用数字方法实现QAM调制器不同于用模拟方法实现,特别是在本课题中,所有模块功能都是集中在一个芯片(DSP芯片)上实现的,因此不再进行明确的分工,而是通过星座图直接分析各种模式的调制器的结果,使调制器能够按照输入数据产生相应的调制输出结果。为了使QAM调制器的速率尽可能高,必须使调制的处理过程尽量短,因此让大量的处理工作都在调制处理前完成,即进行大量的初始化。用DSP实现QAM调制的设计思路如下:一、产生各种模式QAM调制所需的各种幅值的数字正、余弦波形,即抑制载波的双边带调制后得到的各种幅值的数字正、余弦波形。二、根据输入数据,选择相应幅值的正、余弦数字波形进行叠加,从而得到QAM调制的数字输出结果。第一步即为初始化过程,它是一个不影响调制器波特率的处理过程,可分为三个步骤完成:1、在DSP上产生数字正弦波。2、对数字正弦波均匀采样,通过选择合适的采样点数M,从而产生频率可变的数字正、余弦波。3、对采样后的频率可变的数字正、余弦波进行处理,产生QAM调制所需的各种幅值的正、余弦波。其设计流图如图1.1:→→→图1.1DSP实现QAM调制的设计流图2.2各模块的实现方法(1)在DSP上产生数字的正弦波在模拟设计中,正弦波是通过振荡器产生,而数字方法中正弦波是由软件编程实现的。因为处理器能够处理的信息都是数字的,因此只能通过数字计算的方法产生正弦波。模拟在DSP上产生数字正弦波对数字正弦波进行均匀采样产生调制所需的各种幅值的正、余弦波形根据输入数据,进行QAM调制正弦波采样即得到了数字正弦波,根据这种思路,可以得到数字正弦波的产生方法:通过数字计算方法计算出一个正弦周期内的若干个正弦值,将这些值作为一个集合,只要循环读取这个离散值的集合即可产生数字正弦波,其实质就是对模拟正弦波进行采样。为了便于读取正弦波,通常对正弦波进行均匀采样,即使集合中的数据为一个正弦周期内均匀取点的数值的正弦值。在DSP上产生数字正弦波根据输入数据,进行QAM调制对数字正弦波进行均匀采样产生调制所需的各种幅值的正、余弦波形根据泰勒公式:f(x)=f(x。)+f'(x。)(x-x。)+f''(x。)/2!*(x-x。)^2,+f'''(x。)/3!*(x-x。)^3+……+f(n)(x。)/n!*(x-x。)^n+Rn(x)(1.1)其中ζ在a与x之间,可以得到:sinx=x-x3/3!+x^5/5!-x^7/7!+x^9/9!(1.2)cosx=1-x2/2!+x4/4!-x6/6!+x8/8!(1.3)通过(1.2)、(1.3)两个公式,我们可以用数字计算的方法求出任意数值的正、余弦值,应当注意公式中的x是一个弧度值。为了便于产生频率可变的正、余弦波,对正弦波的采样点数应尽量多些,即用(1.3)、(1.4)计算时,x间的差值尽量小些。以0.5o为间隔求0o~45o间的90个点的sin(x)、cos(x)值,根据sin(2x)=2sinxcosx,从而得到以1o为间隔的0o~90o间的90个点的sin(x)值,再经过数据复制和求反即可产生0o~360o间的360点的sin(x)值,通过循环读取这360个数据,即可产生数字正弦波。(2)频率可变的数字正弦波的产生由于产生的正弦波是360点的,若将其作为载波,则需要读取360次才能产生一个周期的正弦波,相对调制而言,这将需要非常长的时间。而实际上,读取360点是完全没有必要的,对于一个正弦波只要适当地读取两个以上的点就能够准确地体现它的特性,这在处理时间上将缩短几十倍甚至上百倍,因而还需对360点的数字正弦波均匀采样,通过控制采样点数M,即可产生频率可变的数字正、余弦波。为了使等间隔均匀采样产生的正弦波是一个整波形,必须保证M是360的一个因子。采样点数为M,则采样间隔为360/M。对于正弦波产生而言,直接对360点数字正弦波进行等间隔均匀采样,即能产生M点的数字正弦波;而对于余弦波的产生而言,必须先对正弦波的90o~360o进行等间隔均匀采样,再对0o~90o进行等间隔采样,从而产生M点的数字余弦波。(3)产生QAM调制所需的各种幅值的正、余弦波为了使QAM调制的波特率尽可能高,必须使QAM调制处理时的工作量尽可能少,因此必须把所有调制要输出的各种幅值都事先准备好,使调制处理只需完成由输入数据到输出数据的一个对应过程。对于不同进制数的QAM调制,从其星座图可以看出,所需的正、余弦波的幅值是各不相同。把从星座图得到的各种模式的QAM调制的幅值变化,转化为DSP中的数据表示形式如下:(因为正、余弦值的取值范围为-1~1之间,在DSP中用Q15格式表示数据形式。)4QAM:幅值只有一个,为1。16QAM:有两个幅值,为1、1/3。1/3*32768=2AAAh64QAM:有四个幅值,为1、5/7、3/7、1/7。5/7*32768=5B6Dh3/7*32768=36DBh1/7*32768=1249h256QAM:有八个幅值,为1、13/15、11/15、9/15、7/15、5/15、3/15、1/15。13/15*32768=6EEEh11/15*32768=5DDDh9/15*32768=4CCCh7/15*32768=3BBBh5/15*32768=2AAAh3/15*32768=1999h1/15*32768=0888h将M点数字正、余弦波形的所有数据乘以以上的各幅值的数据表示值,即得到相应幅值的正、余弦波形的数据。为了便于寻址读取和仿真,将同一模式QAM的各幅值数据存放于一个连续的存储区。(4)根据输入数据,选择相应幅值的正、余弦数字波形进行QAM调制先对输入口进行判断,根据输入口数据选用不同的QAM调制。各模式的QAM调制,其实现方法基本相同,进行QAM调制时按以下条件设计:用AR1指向正弦载波路中经过处理的应当输出的正弦波数据,AR2指向余弦载波路中经过处理的应当输出的余弦波数据,则QAM输出为它们指向数据之和。用AR5指向与输入数据相对应的某一幅值的正弦波数据,AR6指向与输入数据相对应的某一幅值的余弦波数据,便于读取波形数据。AR1、AR2指向的数据即为AR5、AR6经过处理后的数据。将时钟信号接到BIO引脚,用时钟信号来控制读取输入数据,该时钟也是采样时钟。当引脚输入为高电平时读入数据,并进行处理,而引脚输入为低电平时继续检测引脚输入。为了保证不出错,应当使每一次的处理时间在1/2时钟周期和1个时钟周期之间。每次读入数据后,和前一次读入数据相比,若不同则表明新数据到来,此时应根据输入数据判断其相应的幅值,修改地址指针AR5和AR6,使其指向正确的幅值。若相同则表明新数据尚未到或到来的新数据和上次输入数据相同,应在原来幅值的数据块中循环寻址。如何根据输入新数据,修改地址指针AR5和AR6,使其指向正确幅值的数据呢?先通过映射表,把具体的星座图编码转变成一种具有简单规律的、易实现的星座图编码,这种星座图的规律为:符号位0表示+,1表示-,数据位按从大到小分别对应从大到小的各种幅值。完成映射后,根据映射后的数据修改地址指针AR5、AR6。按照QAM调制的进制数M的不同,可以有两种修改地址的方法。编程时先判断对应的幅值修改地址,再判断符号位,且按幅值修改地址的操作只在新数据到来时进行,而判断符号位的操作却在每次处理时都进行,这样可以使无论新数据到来与否,处理过程在时间上都相差不大,同时不影响处理所需的最长时间。其中提到的两种修改地址的方法如下:当QAM进制数较小时,对映射后数据进行逐比特判断,然后修改AR5、AR6。当然如果不考虑程序的普遍适用性,可以不用映射表,直接对输入数据进行逐比特判断,再修改地址指针。以16QAM映射后数据1001为例:(编程时让低位送正弦载波路,高位送余弦载波路)正弦载波路:01,符号位为0表示正幅值,数据位为1表示幅值为1,若数据位为0则幅值为1/3,此时应修改地址AR5,使其指向幅值为1的正弦波数据的起始位置。余弦载波路:10,符号位为1表示负幅值,数据位为0表示幅值为1/3,若数据位为1则幅值为1,此时应修改地址AR6,使其指向幅值为1/3的余弦波数据的起始位置。当QAM进制数较大时,根据映射后数据与地址修改量的以下规律可以简化地址修改的过程。(假设采用8点采样,每个基带数据对应两个整波形,既每个码元对应16个点的波形,这里只研究数据位以判断相应的幅值)16QAM:1(幅值为1)→bx(bx+16*0=bx+16*(1-1))0(幅值为1/3)→bx+16(bx+16*1=bx+16*(1-0))(数据位最大值为1)64QAM:11(幅值为1)→cx(cx+16*0=cx+16*(3-3))10(幅值为5/7)→cx+16(cx+16*1=cx+16*(3-2))01(幅值为3/7)→cx+32(cx+16*2=cx+16*(3-1))00(幅值为1/7)→cx+48(cx+16*3=cx+16*(3-0))(数据位最大值为3)256QAM:111(幅值为1)→dx(dx+16*0=dx+16*(7-7))110(幅值为13/15)→dx+16(dx+16*1=dx+16*(7-6))101(幅值为11/15)→dx+32(dx+16*2=dx+16*(7-5))100(幅值为9/15)→dx+48(dx+16*3=dx+16*(7-4))011(幅值为7/15)→dx+64(dx+16*4=dx+16*(7-3))010(幅值为5/15)→dx+80(dx+16*5=dx+16*(7-2))001(幅值为3/15)→dx+96(dx+16*6=dx+16*(7-1))000(幅值为1/15
本文标题:基于DSP技术的QAM调制器设计方案
链接地址:https://www.777doc.com/doc-3319002 .html