打印

DSP C54X窄带中频抽样的实现

[复制链接]
655|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DSP C54X窄带中频抽样的实现

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


    信号采集的前面部分可以是普通AM接收机,输入信号是fx,通过混频输出的中频信号fi=fl-fx,这里确定fi=465kHz,信号带宽是10kHz。AD转换的采样频率是fs=60kHz,直接采集窄带中频信号,经DSP处理后,通过DA输出语音信号。这一工作过程采用了带通抽样理论。
2 带通抽样理论和DSP硬件电路
2.1 带通抽样理论


   带通抽样定理是Nyquist抽样定理的进一步扩展。Nyquist抽样定理的基本意义是:一个频率限带信号x(t),其频带限制在(0,fh)内,如果用fs>=2fh的采样频率对x(t)进行等间隔抽样,得到的离散信号x(n)=x(nTs),那么x(t)信号将被所得到的采样值x(n)所确定,抽样后的信号频谱不发生混叠,因此可以用滤波器恢复原始的限带信号x(t),该信号是零频附近的基带信号。而实际接收的无线电信号绝大多数是一个有中心频率的限带信号,并且满足信号带宽与中心频率之比远远小于1(B/fo<<1)的条件,即中心频率fo远高于信号所携带频谱宽度,根据基本抽样定理知道,此时抽样频率fs>2fo,这样不仅要求高性能的AD转换器,而且高速的抽样数据又大大的加剧了DSP的信号处理负担。为了让DSP有足够的时间去处理实时的信号,当前主要的方法有两种:(1)直接降低抽样率;(2)进行高速抽样,然后采用抽取方法降低抽样率。本文采用的是直接降低抽样率的方法。那么降低抽样率是否会产生信号混叠等问题呢?这由带通抽样理论来回答。
    带通抽样定理:设一个频率限带信号x(t),其频带限制在(fL,fH)内,如果采样频率fs满足:其中n取值是满足fs≥2B(B=fH-fL)的最大整数值(0,1,2,...),此时用fs进行等间隔抽样的x(nTs)能准确的确定原始信号x(t)。并确定带通信号的中心频率,那么。这个表达式表示:当抽样频率确定后,有许多频率(或带通信号)在满足以上表达式所取的n值条件下,可以产生同一个频率(或同一个带通信号);同样对于确定的fo通过选择不同的n来确定fs。如图2所示。
    其中fs是抽样频率,当被抽样的信号频率fo是3fs/4和5fs/4时,都不满足fs>2fh的条件,是欠抽样情况。在欠抽样后都会输出一个相同频率的信号fs/4,如黑粗的虚线所示。进一步讲,如果被抽样的信号是一个以fo为中心频率的限带信号,带宽是B,且抽样频率fs>2B,那么欠抽样后将会输出一个以抽样频率fs/4为低中心频率的限带信号。当然抽样时不容许被抽样的信号中混入其他信号,即必须是一个限带信号,否则其他满足以上公式条件的信号都会进入该频带;其次根据自然抽样定理,输出的频谱中还会有与fs倍频有关的频谱分量,即输出信号频谱Xs是:
    这需要通过DSP设计滤波器,恢复原始信号x(t)。Cn是抽样脉冲傅里叶级数的系数。根据前面介绍的参数,抽样频率是60kHz(8bit)、被抽样信号是465kHz的普通调幅接收机的中频信号是一个限带信号,信号带宽是B=10kHz。
2.2 DSP硬件电路设计
    实现带通抽样,使用DSP5402作为基带信号处理,基本框图如图3所示。


    其中AD采用TCL5510,该芯片最高抽样率是20MHz,8位数据宽度,其输入信号的动态范围是0.6~2.6V,由于输入是465kHz交流的调幅信号,因此该输入信号需要叠加在被抽样信号中心位置1.6V直流电平上,AD前放大电路的输出要调整在这个电平。AD转换时钟是使用DSP_CLKOUT信号,经过2分频获得(10MHz)。
    DA采用CA338,该芯片也是8位数据宽度,直接输出模拟信号。系统采用一个AD与一个DA,因此在程序设计中使用PORTR和PORTW指令,产生IO读写信号,与普通的或门控制,实现对AD的读和对DA的写操作。
3 抽样频率确定与滤波器的实现
    根据以上讨论,对于窄带中频信号465kHz,通过60kHz的抽样,产生15kHz的信号。抽样前后的信号频谱关系如图4所示。

    其中图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 性能分析

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



相关帖子

沙发
touser| | 2018-3-6 21:27 | 只看该作者
抽样频率怎么确定的?

使用特权

评论回复
板凳
myiclife| | 2018-3-6 21:27 | 只看该作者

使用特权

评论回复
地板
uytyu| | 2018-3-6 21:28 | 只看该作者
信号频谱看不到了。

使用特权

评论回复
5
iyoum| | 2018-3-6 21:28 | 只看该作者
楼主能够总结成pdf的文档吗?

使用特权

评论回复
6
wwppd| | 2018-3-6 21:28 | 只看该作者
汇编语言看不懂

使用特权

评论回复
7
touser| | 2018-3-6 21:29 | 只看该作者
处理的方法是什么?

使用特权

评论回复
8
myiclife| | 2018-3-6 21:29 | 只看该作者
有c语言的吗?

使用特权

评论回复
9
uytyu| | 2018-3-6 21:29 | 只看该作者
看一下信号频谱的频率怎么样

使用特权

评论回复
10
iyoum| | 2018-3-6 21:29 | 只看该作者
有些资料看不到了,还有工程代码。

使用特权

评论回复
11
wwppd| | 2018-3-6 21:29 | 只看该作者
麻烦楼主给转换一下c语言的算法。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

455

主题

583

帖子

5

粉丝