信号调制QPSKWord文档格式.docx
《信号调制QPSKWord文档格式.docx》由会员分享,可在线阅读,更多相关《信号调制QPSKWord文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
外设接口初始化、接收、发送、编码、基带调制、滤波、载波同步、位同步、解调、帧同步等。
关键词:
调制解调器;
DSP;
滤波;
编码
目录
绪论1
1设计任务及目的2
1.1设计任务2
1.2设计目的2
2设计原理2
2.1QPSK调制的描述2
2.2QPSK调制原理2
3软件程序5
3.2QPSK调制的DSP实现9
3.3符号设定:
10
3.4主要部分程序:
11
3.5命令文件15
4程序运行结果及分析17
5结论19
绪论
21世纪是数字化的时代,随着越来越多的电子产品将数字信号处理(PSP)
做为技术核心,DSP已经成为推动数字化进程的动力。
作为数字化最重要的技术之一,DSP无论在其应用的深度还是广度,正在以前所未有的速度向前发展。
数字信号处理器,也称DSP芯片,是针对数字信号处理需要而设计的一种具
有特殊结构的微处理器,它是现代电子技术、相结合的产物。
一门主流技术,随着信息处理技术的飞速发展,计算机技术和数字信号处理技术数字信号处理技术逐渐发展成为它在电子信息、通信、软件无线电、自动控制、仪表技术、信息家电等高科技领域得到了越来越广泛的应用。
数字信号处理由于运算速度快,具有可编程特性和接口灵活的特点,使得它在许多电子产品的研制、开发和应用中,发挥着重要的作用。
采用DSP芯片来实现数字信号处理系统是当前发展的趋势。
近年来,DSP技术在我国也得到了迅速的发展,不论是在科学技术研究,还是在产品
1设计任务及目的
1.1设计任务
课程设计是实践教学环节。
学生通过动手做软件和硬件设计,能够熟练掌握数字信号处理技术,增加对基础知识的消化和理解。
其内容包括:
FIR滤波器,IIR滤波器,FFT快速傅里叶变换,语音处理,D/A转换等。
1.2设计目的
(1)将数字信号调制成模拟信号(QPSK调制)
(2)输出调制后的信号。
2设计原理
2.1QPSK调制的描述
四相相移键控调制(QuaternaryPhaseShiftKeying,QPSK)是一种线性窄带数字调制技术,它已经在数字调制技术中占有重要的地位,被广泛地应用于卫星通信、移动通信、视频会议系统、蜂窝电话和其它数字通信领域。
具有频带利用率高、频谱特性好、抗衰落性能强、较低的比特错误率等优点。
QPSK基带调制器的目的是把数据比特;
映射成π/4相移D-QPSK星座图,并对I和Q脉冲;
进行频谱整形,其调制器工作原理框图如图1所示。
2.2QPSK调制原理
所谓的QPSK调制就是利用载波的四种不同相位来表征数字信息,每一种载波相位代表两个二进制代码元信息。
由于每一个载波相位代表两个二进制码元信息,所以每四个二进制码元又被称为双比*元。
QPSK信号的表示式为
(1)式中,
是同相支路信号,Q(t)是正交支路信号。
图1给出实现QPSK调制的原理。
输人的二进制数字信号经过串并转换电路分为两路速率减半的双极性信号:
同相信号,
和正交信号Q(t),经低通滤波成形后分别与相互正交的两路载波信号相乘,然后相加即可得到QPSK信号,也可以采用相位选择法来实现QPSK信号.输入的二进制数字信号经串/并转换后.成为双比特码元.而载波发生器产生4种不同相位的载波波形.根据双比特码元的不同组合,每个比特周期从4种不同相位的载波中选择一种输出,然后经带通滤波器滤除带外干扰信号。
就得到QPSK信号,这种方式适用于载波频率较高的
coswct
输入QPSK
信号
信号
sinwct
图lQPSK调制原理图
其调制框图如下图2所示。
Y
N
图2调制子程流程图保存数据
图1中,串/并变换器将输入的二进制序列依次分为两个并行的双极性码序列。
设二进制数分别为a和b。
双极性的a和b脉冲通过两个平衡调制器分别对同相载波和正交载波进行二相调制,两路输出叠加后就可以得到QPSK信号。
3软件程序
3.1主程序yao.asm清单
.mmregs
.defstart
K_IF80.set1
.bssx,1
.bssy,1
.bssSINSTP,1
.bssSIN25P,1
.data
sinx.usect"
sinx"
1000
cosx.usect"
cosx"
1000
fsin.usect"
fsin"
fcos.usect"
fcos"
qpsk.usect"
qpsk"
3000
STACK.usect"
STACK"
10
table.word-8*32768/10000
.word-32*32768/10000
.word-75*32768/10000
.word-114*32768/10000
.word-76*32768/10000
.word126*32768/10000
.word532*32768/10000
.word1081*32768/10000
.word1617*32768/10000
.word1949*32768/10000
.word-8*32768/10000
SINTAB:
07FFFH,07FD8H,07F61H,07E9CH,07D89H,07C29H,07A7CH,07884H
.word07641H,073B5H,070E2H,06DC9H,06A6DH,066CFH,062F1H,05ED7H
.word05A82H,055F5H,05133H,04C3FH,0471CH,041CEH,03C56H,036BAH
.word030FBH,02B1FH,02528H,01F1AH,018F9H,012C8H,00C8CH,00648H
.word00000H,0F9B8H,0F374H,0ED38H,0E707H,0E0E6H,0DAD8H,0D4E1H
.word0CF05H,0C946H,0C3AAH,0BE32H,0B8E4H,0B3C1H,0AECDH,0AA0BH
.word0A57EH,0A129H,09D0FH,09931H,09593H,09237H,08F1EH,08C4BH
.word089BFH,0877CH,08584H,083D7H,08277H,08164H,0809FH,08028H
.word08001H,08028H,0809FH,08164H,08277H,083D7H,08584H,0877CH
.word089BFH,08C4BH,08F1EH,09237H,09593H,09931H,09D0FH,0A129H
.word0A57EH,0AA0BH,0AECDH,0B3C1H,0B8E4H,0BE32H,0C3AAH,0C946H
.word0CF05H,0D4E1H,0DAD8H,0E0E6H,0E707H,0ED38H,0F374H,0F9B8H
.word00000h,00648H,00C8CH,012C8H,018F9H,01F1AH,02528H,02B1FH
.word030FBH,036BAH,03C56H,041CEH,0471CH,04C3FH,05133H,055F5H
.word05A82H,05ED7H,062F1H,066CFH,06A6DH,06DC9H,070E2H,073B5H
.word07641H,07884H,07A7CH,07C29H,07D89H,07E9CH,07F61H,07FD8H
.word07FFFH
.text
start:
SSBXFRCT
STM#STACK+10,SP
STM#sinx,AR1
STM#cosx,AR3
STM#fsin,AR4
STM#fcos,AR2
STM#qpsk,AR0
ST#0,@SIN25P
CALLSIN25K
STM#x,AR5
STM#y,AR7
ST#0xb8e4,*AR7;
被调的信息
LD*AR7,B
STLB,*AR5
ST#0,@SIN25P
STM#7,AR6
QPSKSTART:
LD*AR5,B
AND#11,B
SFTLB,5
LD*AR5,A
RORA
STLA,*AR5
LDSIN25P,A
ADDB,A
ADD#SINTAB,A
STM#255,BRC
RPTBQPSKEND
SUB#SINTAB,A
ADDSINSTP,A
AND#07FH,A
QPSKEND:
READA*AR0+
BANZQPSKSTART,*AR6-
here:
Bhere
SIN25K:
STM#500,BRC
RPTBSINRET-1
ST#K_IF80,SINSTP
STLA,SIN25P
READA*AR1+
ADD#32,A
READA*AR3+
ADD#64,A
READA*AR4+
ADD#96,A
READA*AR2
SINRETRET
.end2.
3.2QPSK调制的DSP实现
3.21参数设定:
采样速率384000次/S
载波频率48KHZ
传输数据速率64Kb/s
汉明窗平方根升余弦滚降
滚降系数0.35
51阶FIR滤波
3.22子程序说明:
QPSK_demod子程序用来对接收信号进行波形成型和低通根升余弦特性的滤波。
sin_val子程序用线性内插法提高正,余弦值的精度
输入输出程序从A/D缓冲区读入16b数据。
经过处理后,数据输出至RW_BUFR和RW_BUFI缓冲区,形成为16b数据。
RW_FILR.set500H
RW_FILI.set600H
RW_BUFR.set700H
RW_BUFI.set900H
RW_ADB.set6000H
RW_FILL.set51H
RW_BUFL.set51H
RW_ADBL.set800H
RW_BUFIN存放RW_BUFR和RW_BUFI的入口地址
RW_BUFOUT存放RW_BUFR和RW_BUFI的出口地址
RW_ADIN存放RW_ADB的入口地址
RW_ADOUT存放RW_ADB的出口地址
SIN_RP存放表sin_tab_512的读取点位置
psk_demod
LDRW_ADIN,A;
将A/D缓冲的入口放到A中
SUBRW_ADOUT,A;
求A/D缓冲区的入口和出口之差
NOP
NOP
XC2,ALT
ADD#RW_ADBL,A
SUB#8,A
BCrw_demod00,ALET;
检查A/D缓冲区中是否有采样值要解调
LDRW_BUFOUT,A
SUBRW_BUFIN,A
XC,2,ALEQ
ADD#200H,A
SUB#24H,A
BCrw_demod00,ALT;
检查RW_BUFR和RW_BUFI是否有空间
LD#RW_BUFR,A
ADDRW_BUFIN,A;
计算RW_BUFR的入口地址
STLMA,AR1
LD#RW_BUFI,A
计算RW_BUFI的入口地址
STLMA,AR2
LDRW_ADOUT,A
ADD#RW_ADB,A;
计算RW_ADB的出口地址
STLMA,AR3
STM#50,AR0;
循环51次
STM#7,BRC
RPTBDrw_dem01-1;
循环下界到rw_dem01之前
STM#RW_ADBL,BK
SSBXFRCT
STM#FILR,AR4
STM#FILI,AR5
CALLsin_val;
计算正,余弦值
LD*AR3+%,T
MPYDATA5,A
STHA,*AR4+0
MPYDATA6,A
STHA,*AR5+0
RSBXFRCT
RPTZA,#50
MACD*AR4-,scr_wave,A;
R(t)信号进行FIR滤波
STHA,*AR1+
MACD*AR5-,scr_wave,A;
I(t)信号进行FIR滤波
STHA,*AR2+
rw_demo01
LDSR_BUFIN,A;
改变RW_BUFR的入口地址
ADD#08H,A
AND#1FFH,A
STLA,RW_BUFIN
LDRW_ADOUT,A;
改变A/D缓冲区的出口地址
AND#RW_ADBL-1,A
STLA,RW_ADOUT
rw_demo00
RET
sin_val
LDSIN_RP,A
AND#3FH,A
STLA,DATA0
LDDATA0,9,A
STLA,DATA0;
取低6b
LDSIN_RP,10,A
STHA,DATA1;
取高9b
LDDATA1,A
ADD#sin_tab_512,A
READADATA2;
第一个数据D1
ADD#1,A
READADATA3;
第2个数据D2
LDDATA3,A
SUBDATA2,A;
D1-D2
STLA,DATA4
LDDATA0,T
MPYDATA4,A
ADDDATA2,16,A
STHA,DATA5;
正弦值(D1-D2)*xxxxxxB
ADD#80,A
第一个数据D3
第2个数据D4
D3-D4
STHA,DATA6;
余弦值(D3-D4)*xxxxxxB
LDSIN_CH,A
ADD#SIN_RP,A;
修改sin_tab_512读入地址
ADD#DEG45,A
ADD#8000H,A
AND#7FFFH,A
STLA,SIN_RP;
保存修改后的地址
scr_wave;
滚降系数为0.35的根升余弦表
.word0fff6H,00003H,00013H,0001eH,00019H,0fffaH,0ffc1H,0ff89H,0ff85H
.word0ffe8H,000c2H,001dcH,002a9H,0026aH,00087H,0fcf9H,0f89cH,0f53cH
.word0f52aH,0fa7eH,00633H,01781H,02bb9H,03ed2H,04c7dH,05174H,04c7dH
.word03ed2H,02bb9H,01781H,00633H,0fa7eH,0f52aH,0f53cH,0f89cH,0fcf9H
.word00087H,0026aH,002a9H,001dcH,000c2H,0ffe8H,0ff85H,0ff89H,0ffc1H
.word0fffaH,00019H,0001eH,00013H,00003H,0fff6H
sin_tab_512;
512点正弦值
.word00000H,00192H,00324H,004b6H,00647H,007d9H,0096aH,00afbH,00c8bH
.word00e1bH,00fabH,01139H,012c8H,01455H,015e2H,0176dH,018f8H,01a82H
.word01c0bH,01d39H,01f19H,0209fH,02223H,023a6H,02528H,026a8H,02826H
.word029a3H,02b1fH,02c98H,02e11H,02f87H,030fbH,0326eH,033deH,0354dH
.word036baH,03824H,0398cH,03af2H,03c56H,03db8H,03f17H,04073H,041ceH
.word04325H,0447aH,045cdH,0417cH,04869H,049b4H,04afbH,04c3fH,04d81H
.word04ebfH,04ffbH,05133H,05269H,0539bH,054caH,055f5H,0571dH,05842H
.word05964H,05a82H,05b9dH,05cb4H,05dc7H,05ed7H,05fe3H,060ecH,061f1H
.word062f2H,063efH,064e8H,065ddH,066cfH,067bdH,068a6H,0698cH,06a6dH
.word06b4aH,06c24H,06cf9H,06dcaH,06e96H,06f5fH,07023H,070e2H,0719eH
.word0e57eH,0e708H,0e893H,0ea1eH,0ebabH,0ed38H,0eec7H,0f055h,0f1e5H
.word0f375H,0f505H,0f696H,0f827H,0f9b9H,0fb4aH,0fcdcH,0fe6eH
3.5命令文件
-oconverter1.out
-mconverter1.map
-estart
MEMORY
{
PAGE0:
EPROM:
org=0E000h,len=1000h
PAGE1:
DARAM1:
org=1000h,len=1000h
DARAM2:
org=2000h,len=1000h
DARAM3:
org=3000h,len=1000h
DARAM4:
org=4000h,len=1000h
DARAM5:
org=5000h,len=100h
DARAM6:
org=5100h,len=100h
DARAM7:
org=5500h,len=500h
DARAM8:
org=6000h,len=500h
DARAM9:
org=0060h,len=10h
DARAM10:
org=6500h,len=3000h
}
SECTIONS
.text:
>
EPROMPAGE0
.data:
sinx:
DARAM1PAGE1
cosx:
DARAM2PAGE1
fsin:
DARAM7PAGE1
fcos:
DARAM8PAGE1
qpsk:
>
DARAM10PAGE1
xn:
DARAM5PAGE1
a0:
DARAM6PAGE1
.bss:
DARAM9PAGE1
STACK:
4程序运行结果及分析
图一调制后
图二Snap1
图三载波一
图四载波二
图五载波三
图六载波四
5结论
随着数字蜂窝系统的发展,对调制解调的技术也将要求越来越高。
在数字信号处理飞速发展的今天,采用DSP技术实现的QPSK基带调制解调器在技术要求等发面能满足数字蜂窝系统发展的需求,其性能更优于FSK、ASK、PSK等调制方式。
QPSK调制解调的实现过程中,利用查表