DSP C54X窄带中频抽样的实现
扫描二维码
随时随地手机看文章
1 引言
本文在讨论基本的带通抽样定理基础上,分析欠抽样率对带通信号采样的频谱搬移特点,同时结合对普通的AM调幅接收机中频信号的采样、滤波与处理,以获得基带的语音信号。这种用软件进行信号处理的技术有助于深入理解带通抽样滤波的理论,并为软件无线电接收数据信号提供理论与实践依据。本文讨论的中频窄带抽样实现的基本框图如图1所示。
其中图4(a)表示除了465kHz的带通信号可以通过欠抽样产生15kHz的低中频信号外,其他信号也可以通过欠抽样产生15kHz低中频,因此465kHz的中频必须是一个限带滤波器输出的信号,不容许其他信号混入抽样。其次该限带中频信号与抽样信号的频域卷积除了有15kHz的信号频谱外,还有其他的频谱分量,因此抽样后,DSP要设计一个带通滤波器,滤除其他信号的频谱,如图4(c)所示。然后通过包络检波获得基带语音信号。[!--empirenews.page--]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 性能分析
通过以上分析和程序设计,使用DSPC5402构成的数字信号处理系统,对465kHz的窄带中频调幅信号进行欠抽样与数据处理,通过存储示波器测量的波形如图6所示。由于采用带通抽样,降低了抽样频率,使DSP有足够的时间处理,如滤波、信号变换等。通过输出的波形可以看到:信号的量化噪声在一定程度上影响输出信号的纯度。因此还需要加好的低通滤波器。实际中还对普通的调幅收音机中频输出进行实际抽样处理,可以获得比较清晰的语音信号。
5 结束语
本文通过对带通抽样定理的讨论,结合DSPC54芯片设计的数字信号处理系统,对窄带中频信号进行实际的抽样与处理,获得较好的效果。