• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 电子设计 > PCB设计 > PCB设计 > 基于FPGA的生命探测仪算法研究与系统设计

基于FPGA的生命探测仪算法研究与系统设计

录入:edatop.com    点击:

摘要:给出了一种基于FPGA的生命探测信号处理系统的设计方法。从理论上研究了生命探测仪的算法及其软硬件系统。其中在FPGA软件设计中利用模块化的思想方法分别设计了FIR滤波器、异步FIFO、UART、电池监控、功能控制等功能模块。最后完成人体特征信号和体动信号的分析与提取,实现了非接触情况下生命探测与发现。相对于传统的生命探测仪,该设备具有体积小,功耗低,操作简单,携带方便等优点,特别适用于野外和战场生命探测等应用场合。
关键词:生命探测仪;FPGA;FIR滤波器;FIFO;UART

0 引言
雷达式非接触生命探测技术是近年来发展起来的一种新技术,是融合雷达技术、生物医学工程技术于一体,可穿透非金属介质(砖墙、废墟等),不需要任何电极或传感器接触生命体,可在较远的距离内探测到生命体的生命信号(呼吸、体动)的一种特殊电子装置。该探测仪克服了基于激光、红外生命探测仪受温度影响严重、遇物体阻挡失效的问题,也克服了超声探测空间传播衰减大、受环境杂物反射干扰、水、冰、泥土阻挡失效的问题,因此近年来备受国内外学者的关注。其基本原理是利用雷达天线发射的电磁波穿透一定障碍物照射到人体时,反射的回波信号受到人体生理运动(如心跳、呼吸)引起表面微动的多普勒调制,人体表面微动信号就加载到了反射波中,这种人体的微动与回波幅度相位之间具有相关性。对回波信号进行A/D转换、滤波等处理就可以提取到人体的生命特征信息。
现有设备多是基于单片机与PC机显控系统,具有系统体积较大,灵活性差,实时性差等缺点。本文主要研究生命探测仪算法和基于FPGA的信号处理系统设计,上位机采用基于嵌入式系统的显示控制单元。该系统体积小、成本低、携带方便,具有很高的实用价值,可广泛应用于灾害救援(地震、塌方伤员的探寻)、反恐斗争(隔墙监控罪犯、解救人质)等场合。

1 生命探测仪算法研究
1.1 生命探测雷达工作原理
生命探测雷达的基本原理是多普勒效应。当发射源与接收者之间有相对径向运动时,接收到的信号频率将发生变化,其频率差别与两者的相对运动速度向量有关,这种现象被称为多普勒频移。多普勒雷达发送连续的电磁波信号到被探测对象,返回的信号被调制而具有被探测对象运动的信息,因此只要解调出返回信号就可以获得所要结果。
如果忽略幅度的变化,由单频连续波雷达发射的信号可以表示为:
s(t)=Acos(2πfct+φ) (1)
式(1)中,fc是雷达的发射波频率,φ为初相,A为振幅。
雷达接收机接收到的目标回波信号sr(t)为:
sr(t)=Ks(t-tr)=KAcos[2πfc(t-tr)+φ] (2)
式(2)中,tr=2R/c为回波信号滞后于发射信号的时间:R为目标和雷达之间的距离:c为电磁波传播速度,在自由空间传播时,c等于光速;K为回波的衰减系数。
当目标和雷达之间有相对运动时,距离R随时间变化。设目标以匀速相对雷达运动,则在t时刻目标与雷达的距离R月(t)为:
R(t)=R0-vrt (3)
式(3)中,R0为t=0时的距离,vr为目标相对雷达的径向运动速度。
由于通常雷达和目标间的相对速度vr远小于电磁波速度c,故时延tr可近似写为:
l.JPG
多普勒频率正比于相对运动的速度,而反比于工作波长λ。当目标以接近雷达的方向运动时,多普勒频率为正值,接收信号频率高于发射信号频率;当目标以背离雷达的方向运动时,多普勒频率为负值,接收信号的频率低于发射信号的频率。
生命的特征在于运动,如人体呼吸和心跳时胸腔的运动以及人的体动等。当电磁波照射到人体时,反射波会产生多普勒频移。根据人的呼吸、心跳和体动产生的多普勒频率的特性,可以探测生命体是否存在。
1.2 生命探测雷达回波信号分析
人体生命体征信号(呼吸、心跳和体动)是一种极微弱的低速目标信号。理论上,人体连续的心脏跳动和呼吸会引起胸腔的起伏运动,进而会产生系列多普勒频移信号,这些信号可以用连续波的形式来表示。实际中,由于雷达内部运动、人体体动等情况,目标回波信号除了包括心跳和呼吸信号外还包括其它连续波分量。将人体简化为复合介电常数的球体和圆柱体模型。设人体生命体征运动(呼吸和心跳)是频率为Ω,幅度为A的简谐振动:
X(t)=Acos(Ωt+φ) (7)
设质点的振动速度为:
v(t)=dX/dt=-AΩsin(Ωt+φ) (8)
则雷达发射信号入射到人体表面产生的多普勒频移为:
fd(t)=2v(t)/λ=-(2AΩ/λ)sin(Ωt+φ) (9)
式(9)中,λ为雷达发射信号的波长。若设发射信号为St(t)=Atcos(ωct+θ0),则经过人体表面反射后的雷达信号为:
Sr(t)=Arcos[ωc(t-tr)]+θ0+kg(t) (10)
式(10)中,w.JPG为回波信号滞后于发射信号的时间;k为常数,用于反映人体振动面对雷达发射信号的相位调制度,且k|g(t)|1。分析可知:
Sr(t)≈Arcos(ωct+θ0)-Arkg(t)sin(ωct+θ0) (11)
Sr(t)经过放大后与相干本振信号sln(ωct+θ0)进行相干混频,再经过低通滤波,即可得出人体生命信号:
a(t)=-(ArGk/λ)X(t) (12)
由式(12)可见,雷达回波信号经过处理后所得的人体生命体征信号a(t)的输出幅度与雷达的发射信号Ar、人体振动面雷达相位调制度k和雷达系统处理增益G成正比,与雷达发射信号波长λ成反比。
人体的呼吸、心跳信号是一种窄带、低幅值、准周期信号,易受噪声和环境干扰的影响。呼吸频率的不均匀和胸腔的多点反射导致信号的频谱有一定展宽。因为回波信号体现了人体呼吸和心跳产生的多普勒频移,在频域上出现不同的谐波,可以将心跳和呼吸的回波信号表示成多个多普勒频移信号的组合:
y1.JPG
式(3)中,ai、fi和φi分别为第i个谐波分量的幅度、归一化频率和初始相位,p是谐波个数。[p]
回波信号除了生命信号外,还包含有杂波和噪声等客观存在的信号,主要包括地表物体、云雨和人为施放的干扰等。墙壁等固定物体的回波和干扰信号可以建模成高斯色噪声,人体的呼吸、心跳信号可以建模成谐波过程,因此可假设接收的回波信号模型为:
y2.JPG
本文所述的生命探测雷达系统采用1.5 GHz的工作频率。根据正常人的生命体征参数可以进行多普勒频率的估计。平静状态下人的心跳频率大约是60次/分钟,即1次/秒,心脏跳动一次有扩和张各一次,每次扩张的位移大约D=5 mm,则多普勒频率fd=2vd/λ=2(2D/t)/λ= 0.11Hz;呼吸频率是20次/分钟即0.33次/秒,呼吸一次有呼和吸各一次,每次呼吸的位移D=5mm,则多普勒频率fd=2vd/λ=2(2D/t)/λ=0.04 Hz;步行的速度约为fd=2vd/λ=5 Hz。根据以上推断,人体心跳和呼吸微动的多普勒频移分别为0.11 Hz和0.04 Hz;体动的多普勒频率约为5~50 Hz,生命信号归属于微弱的低速目标多普勒信号。
本文即采用数字滤波器在FPGA中进行生命信号的处理,针对人体呼吸、心跳和体动等不同频率多普勒频移,设计了两路FIR滤波器完成干扰及杂波的滤除。

2 基于FPGA的系统硬件设计方案
本生命探测仪采用连续波雷达体制,由天线、发射机和接收机、信号处理机、显示控制平台等组成,其中信号处理机是生命探测仪算法实现的主要部分。信号处理机由一块电路板组成,分别进行模拟信号和数字信号处理。本设计中FPGA芯片主要完成超低速微弱信号的去噪以及低频滤波的工作,选用Altera公司的CycloneⅢ系列的EP3C80F484C7芯片。FPGA器件能够以高速、实时、低成本、高灵活性的优点应用于数字信号处理领域,利用它来进行数字滤波器的设计技术已经非常成熟。

a.JPG


图1所示为本文的信号处理机系统功能框图。图中,输入信号是低频微弱信号,为了降低信号处理板与微波前端的相互影响,在信号调理电路中采用一级电压跟随电路,起到缓冲隔离的作用,然后对信号进行放大、数模转换,再送入数字信号处理单元。

3 FPGA软件设计
FPGA是本系统的核心模块,承载了全部的数字元电路设计。FPGA完成的功能如下:
(1)为整个系统提供时序信号,包括A/D采样时钟、运放以及A/D等器件控制信号;
(2)完成两路FIR滤波器硬件实现,FPGA内部模块主要包括两个滤波器、FIFO、串口、控制模块,图2所示是FPGA内部软件设计原理图。

b.JPG

[p]
3.1 基于FPGA的FIR数字滤波器设计
FIR滤波器的基本结构是一个分节的延时线,每一节的输出加权累加,得到滤波器的输出。数学上可以表示为:
c.JPG[p]
从滤波器的传递函数可以知道,它是恒稳定的,不需要回馈。而且只要加权系数h(i)=h(N-1-i)其中,(0≤i≤N-1),FIR滤波器就具有线性相位。一般而言,常用的FIR滤波器是线性相位的,即滤波器的系数满足某种对称性。于是线性相位滤波器的输出为:
e.JPG
这样,只需要做N/2(当N为奇数时为(N+1)/2)次而不是N次乘法,就可以实现滤波器的功能,可以大大地节约硬件资源的消耗,还可以提高速度。
本文采用Matlab的窗函数方法设计并在FPGA上实现的方案。根据实际要求,可以分为有人静止存在只有呼吸心跳和有人存在并且有体动两种情况。经计算,分别为截止频率0.5 Hz的低通滤波器获取呼吸心跳信息和通带频率1~50 Hz的带通滤波器获取体动信息。我们选择海明窗作为系数计算窗函数,低通滤波器阶数N=412阶,带通滤波器阶数N=168阶。然后通过Matlab中的FIR函数确定各阶系数,再由FPGA硬件实现FIR滤波器。由于目前的FPGA器件只能支持定点计算,从Matlab计算所得的系数^是浮点值,需要转换成定点值,即进行系数量化。为了满足精度要求,把所有系数乘以216后再四舍五入即可。
用MATLAB设计完成滤波器系数和结构在具体硬件实现之前先对它进行滤波的功能仿真。滤波器应能使通频带内的信号通过,对通频带外的信号给予极大地衰减,阻止其通过。这里输入信号由MATLAB产生,频率分量分别位于滤波器的通频带之内和之外。首先验证截止频率为0.5 Hz的400阶低通滤波器,它的采样频率是250 Hz。MATLAB产生幅度为1,频率分量分别为1 Hz、3 Hz和10 Hz的正弦信号,把它们相迭加并且加入5 dB高斯白噪声。滤波器的时域波形和频域波形如图3所示。

f.JPG


对于通频带为1~50 Hz的200阶带通滤波器,输入幅度为1,频率分量分别为30 Hz和60 Hz的带噪正弦信号,其滤波器输入输出的时域与频域波形如图4所示。

g.JPG


由图3和图4可以看出,两路滤波器的通频带外的信号都已经被滤除地很干净,并且通频带外的噪声也得到了极大地抑制。由于MATLAB滤波输出是将输入数据与滤波器系数直接卷积而得出的,滤波器的输出相较于输入有一定的延迟。两路滤波器的设计都满足系统性能要求规范。[p]
3.2 异步FIFO设计
FIFO是一种先入先出的内存数组,其控制逻辑将执行所有必要的读写指针管理,并产生状态标志信号和可选择的与用户逻辑电路接口连接的握手信号。由于数据采样数率远远小于串口数据传输速率,滤波器输出与串行通信接口之间要进行数据缓存,这里使用异步FIFO模块实现不同时钟模块间的数据传送。图5所示是异步FIFO时序仿真波形。

。其中m为所用寄存器位数,Baud为波特率,clk为时钟频率。系统全局时钟为40 MHz,传输波特率为19.2 Kb/s。可由此式算出分频因子X=31.5,四舍五入后得X=32,实际产生的波特率为Baudclk=19 193,跟理想的19 200波特率误差为0.04%。
3.3.2 串口发送模块
串口发送模块主要实现将FIFO输出的8位并行数据封8进行串行发送的功能。发送时对于异步传输协议,不需要同接收端进行时间同步。帧的传送靠起始位来同步,起始位低电平,用下降沿沿通知对方接收方传输的开始,紧跟着是8位数据位,传输时低位元在前,高位在后。数据位后面是停止位,高电平有效。串口发送模块仿真结果如图7所示。

j.JPG


3.3.3 串口接收模块
串口接收模块主要实现将上位机发送的串行数据转换成并行数据的功能。接收模块实际上是发送模块的逆过程,当检测到低电平时,表示有资料到来。为了确定新数据的到来,即检测开始位,我们使用8倍于波特率的采样时钟对接收到的信号进行采样,以防止因为毛刺等造成错误判断。当8位数据接收完成后,ready输出高电平,数据输出有效。串口接收模块仿真结果如图8所示。

k.JPG



4 结语
本文从理沦上研究了雷达式生命探测仪的算法,推导出了人体呼吸和运动所产生的多普勒频移范围,设计了生命探测仪信号处理板硬件系统,并详细介绍了利用FPGA实现滤波、异步存取以及数据收发和控制。利用FPGA与ARM9的结合,实现了生命探测仪的小型化与便携化。实验证明,本项目开发的生命探测仪达到了隔墙心跳探测大于4 m,人体移动大于10 m,实现了较高的战术指标。

射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...

天线设计工程师培训课程套装,资深专家授课,让天线设计不再难...

上一篇:电路设计中接地分析
下一篇:proteus常用快捷键及设置方法

射频和天线工程师培训课程详情>>

  网站地图