微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > DSP C54X窄带中频抽样的实现

DSP C54X窄带中频抽样的实现

时间:08-15 来源:互联网 点击:

1 引言
本文在讨论基本的带通抽样定理基础上,分析欠抽样率对带通信号采样的频谱搬移特点,同时结合对普通的AM调幅接收机中频信号的采样、滤波与处理,以获得基带的语音信号。这种用软件进行信号处理的技术有助于深入理解带通抽样滤波的理论,并为软件无线电接收数据信号提供理论与实践依据。本文讨论的中频窄带抽样实现的基本框图如图1所示。


带通抽样定理是Nyquist抽样定理的进一步扩展。Nyquist抽样定理的基本意义是:一个频率限带信号x(t),其频带限制在(0,fh)内,如果用fs>=2fh的采样频率对x(t)进行等间隔抽样,得到的离散信号x(n)=x(nTs),那么x(t)信号将被所得到的采样值x(n)所确定,抽样后的信号频谱不发生混叠,因此可以用滤波器恢复原始的限带信号x(t),该信号是零频附近的基带信号。而实际接收的无线电信号绝大多数是一个有中心频率的限带信号,并且满足信号带宽与中心频率之比远远小于1(B/fo1)的条件,即中心频率fo远高于信号所携带频谱宽度,根据基本抽样定理知道,此时抽样频率fs>2fo,这样不仅要求高性能的AD转换器,而且高速的抽样数据又大大的加剧了

其中图4(a)表示除了465kHz的带通信号可以通过欠抽样产生15kHz的低中频信号外,其他信号也可以通过欠抽样产生15kHz低中频,因此465kHz的中频必须是一个限带滤波器输出的信号,不容许其他信号混入抽样。其次该限带中频信号与抽样信号的频域卷积除了有15kHz的信号频谱外,还有其他的频谱分量,因此抽样后,DSP要设计一个带通滤波器,滤除其他信号的频谱,如图4(c)所示。然后通过包络检波获得基带语音信号。3.1 确定抽样频率
由于需要进行实时的数字信号处理,从滤波器实现到确定准确的抽样频率十分重要。具体实现的方法可以是:选择可编程AD转换器,可编程时钟发生器输入时钟到AD、DSP采用定时中断抽样等。由于本硬件设计AD是输入固定时钟,芯片不可编程,因此采用DSP中断抽样和处理的方法。根据60kHz的抽样频率,计算抽样周期是16667ns,DSP工作的时钟频率是20MHz,如果以单周期指令计算,在AD抽样的周期内,DSP可执行16667/50=333条指令。那么DSP的工作过程应该按图5时序进行。
3.2 带通滤波器的实现

使用DSP实现带通滤波器的设计方法很多,可以先用MATLAB、SystemView等软件进行模拟仿真,然后获取滤波器的系数,设计FIR滤波器或IIR滤波器,如果仅仅处理语音信号可以采用IIR滤波器;如果需要处理数据信号一般可以用FIR滤波器。
其次使用DSP_C54X定点数字信号处理器,由于在滤波器实现与数据处理中采用小数方式,因此要求输入的数据也是小数,而从AD转换采集数据信号是十六进制的,因此首先要进行数据转换,然后处理,处理完的数据还需要转换成16进制,通过DA输出。编制的DSP抽样与处理的程序如下所示,实际使用中还需要矢量文件和连接文件。
.title “x.asm”
.mmregs
.def start
.def DStINT ;定时器中断入口地址
x_new .usect “DATA1”,57 ;初始化数据区
x_old .usect “DATA2”,57 ;循环缓冲区长度
.bssy,1
size .set 57 ;重复运算次数
data_l .set 256 ;计算数据长度是256
PA0 .set 0
PA1 .set 1
.data
COEF .word -18,99,50,-76,-64,6,38,62,28,-36,-78,-61,46,92,58
.word 14,-123,-134,45,83,122,114,-184,-199,13,4,236,260
.word -244,-213,-85,-173,408,425,-267,-117,-300,-475,642,561
.word -187,174,-716,-943,941,590,149,883,-1605,-1808,1406
.word 287,1534,3658,-5867,-7587, 8579
.text
start: STM #0820H,PMST ;
STM #0000H,SWWSR ;
STM #0010H,TCR ;关闭定时器,TDDR=0000
STM #014CH,PRD ;定时器设置60K采样周期
STM #0008H,IFR ;清除TINT中断标志
STM #0008H,IMR ;容许中断
STM #y,AR1
SSBX FRCT ;小数运算
STM #x_new,AR2 ;AR2指向新缓冲区第1单元
STM #x_old+(size-1),AR3 ;AR3指向老缓冲区最后单元
STM #-1,AR0 ;
STM #size,BK ;循环缓冲区长度
STM #0C20H,TCR ;启动TSS=0,TRB=1自动加载PRD
RSBX INTM ;开放CPU中断
wait B wait ;等待中断
DStINT portr PA1,*AR2 ;读取AD抽样数据
LD *AR2,8,A
SUB #8000H,A ;转换16进制数为小数表示
STL A,*AR2 ;实现FIR滤波
ADD *AR2+0%,*AR3+0%,A ;AR2地址中内容16位加AR3同样操作-->(AH)中
RPTZ B,#(size-1)
FIRS *AR2+0%,*AR3+0%,COEF ;A*系数-->B,同时进行下一个ADD功能,直到全部完成
STH B,*AR1
LD *AR1,16,A
RSBX TC
CMPS A,*AR1 ;实现包络检波
BC buchl,NTC ;TC=0,采集数据>0,不处理
STH A,*AR1 ;TC=1,保存DSP的8000H~FFFFH
LD #0FFFFH,A
SUB *AR1,A ;实现FFFFH-采样值
STL A,-8,*AR1 ;右移8位恢复半波
B CHLEND
buchl: SFTA A,-16
STL A,-8,*AR1
CHLEND: portw *AR1,PA0 ;输出DA
MAR *+AR2(2)% ;AR2=circ(AR2+2),修改AR2
MAR *+AR3(1)% ;访问后,AR3=circ(AR3+1)修改AR3
MVDD *AR2,*AR3+0%
RETE
.end
其中,滤波器的输入信号已经将采集的16进制数转换成Q15格式,其输出是定点DSP的Q15格式,对于包络检波可以认为:0~1用0000H~7FFFH表示低中频载波的正半周,而低中频的负半周是“FFFFH-抽样值”,即是“(0-(0~-1)=0~1”,此运算将低中频载波的负半周转换为正半周,实现了检波功能,DA输出加一个低通滤波器可以得到基带语音信号。
4 性能分析

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top