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

基于DSP_C54X窄带中频抽样的理论与实现

时间:07-06 来源: 点击:

频必须是一个限带滤波器输出的信号,不容许其他信号混入抽样。其次该限带中频信号与抽样信号的频域卷积除了有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 性能分析

通过以上分析和程序设计,使用DSPC5402构成的数字信号处理系统,对465kHz的窄带中频调幅信号进行欠抽样与数据处理,通过存储示波器测量的波形如图6所示。由于采用带通抽样,降低了抽样频率,使DSP有足够的时间处理,如滤波、信号变换等。通过输出的波形可以看到:信号的量化噪声在一定程度上影响输出信号的纯度。因此还需要加好的低通滤波器。实际中还对普通的调幅收音机中频输出进行实际抽样处理,可以获得比较清晰的语音信号。
5 结束语
本文通过对带通抽样定理的讨论,结合DSPC54芯片设计的数字信号处理系统,对窄带中频信号进行实际的抽样与处理,获得较好的效果。尽管与实际的软件无线电系统实现框架有较大的距离,但论文研究结果为DSP在该领域的应用提供了一个实际范例。

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

网站地图

Top