基于FPGA的生命探测仪算法研究与系统设计
扫描二维码
随时随地手机看文章
引言
雷达式非接触生命探测技术是近年来发展起来的一种新技术,是融合雷达技术、生物医学工程技术于一体,可穿透非金属介质(砖墙、废墟等),不需要任何电极或传感器接触生命体,可在较远的距离内探测到生命体的生命信号(呼吸、体动)的一种特殊电子装置。该探测仪克服了基于激光、红外生命探测仪受温度影响严重、遇物体阻挡失效的问题,也克服了超声探测空间传播衰减大、受环境杂物反射干扰、水、冰、泥土阻挡失效的问题,因此近年来备受国内外学者的关注[1]。其基本原理是利用雷达天线发射的电磁波穿透一定障碍物照射到人体时,反射的回波信号受到人体生理运动(如心跳、呼吸)引起表面微动的多普勒调制,人体表面微动信号就加载到了反射波中,这种人体的微动与回波幅度相位之间具有相关性。对回波信号进行A/D转换、滤波等处理就可以提取到人体的生命特征信息。
现有设备多是基于单片机与PC机显控系统,具有系统体积较大,灵活性差,实时性差等缺点。本文主要研究生命探测仪算法和基于FPGA的信号处理系统设计,上位机采用基于嵌入式系统的显示控制单元。该系统体积小、成本低、携带方便,具有很高的实用价值,可广泛应用于灾害救援(地震、塌方伤员的探寻)、反恐斗争(隔墙监控罪犯、解救人质)等场合。
1生命探测仪算法研究
1.1生命探测雷达工作原理
生命探测雷达的基本原理是多普勒效应。当发射源与接收者之间有相对径向运动时,接收到的信号频率将发生变化,其频率差别与两者的相对运动速度向量有关,这种现象被称为多普勒频移%多普勒雷达发送连续的电磁波信号到被探测对象,返回的信号被调制而具有被探测对象运动的信息,因此只要解调出返回信号就可以获得所要结果虬
如果忽略幅度的变化,由单频连续波雷达发射的信号可以表示为:
式(1)中,兀是雷达的发射波频率,(P为初相,/为振幅。雷达接收机接收到的目标回波信号sr(t)为:
式⑵中,tr=2R/c为回波信号滞后于发射信号的时间;R为目标和雷达之间的距离;c为电磁波传播速度,在自由空间传播时,c等于光速;K为回波的衰减系数。
当目标和雷达之间有相对运动时,距离R随时间变化。设目标以匀速相对雷达运动,则在t时刻目标与雷达的距离R(t)为:
R(t)=Ro-Vrt(3)
式⑶中,Ro为t=0时的距离,v为目标相对雷达的径向运动速度。
由于通常雷达和目标间的相对速度*远小于电磁波速度c,故时延t可近似写为:
回波信号与发射信号相比,高频相位差可表示为:
由于式(5)中的P是时间t的函数,故在速度v为常数时其产生的频率差为:
多普勒频率正比于相对运动的速度,而反比于工作波长兀当目标以接近雷达的方向运动时,多普勒频率为正值,接收信号频率高于发射信号频率;当目标以背离雷达的方向运动时,多普勒频率为负值,接收信号的频率低于发射信号的频率。
生命的特征在于运动,如人体呼吸和心跳时胸腔的运动以及人的体动等。当电磁波照射到人体时,反射波会产生多普勒频移。根据人的呼吸、心跳和体动产生的多普勒频率的特性,可以探测生命体是否存在。
1.2生命探测雷达回波信号分析
人体生命体征信号(呼吸、心跳和体动)是一种极微弱的低速目标信号。理论上,人体连续的心脏跳动和呼吸会引起胸腔的起伏运动,进而会产生系列多普勒频移信号,这些信号可以用连续波的形式来表示。实际中,由于雷达内部运动、人体体动等情况,目标回波信号除了包括心跳和呼吸信号外还包括其它连续波分量。将人体简化为复合介电常数的球体和圆柱体模型。设人体生命体征运动(呼吸和心跳)是频率为Q,幅度为A的简谐振动:
由式(12)可见,雷达回波信号经过处理后所得的人体生命体征信号a(t)的输出幅度与雷达的发射信号&、人体振动面雷达相位调制度k和雷达系统处理增益G成正比,与雷达发射信号波长人成反比。
人体的呼吸、心跳信号是一种窄带、低幅值、准周期信号,易受噪声和环境干扰的影响。呼吸频率的不均匀和胸腔的多点反射导致信号的频谱有一定展宽。因为回波信号体现了人体呼吸和心跳产生的多普勒频移,在频域上出现不同的谐波,可以将心跳和呼吸的回波信号表示成多个多普勒频移信号的组合:
式(3)中,和pi分别为第i个谐波分量的幅度、归一化频率和初始相位,p是谐波个数。
回波信号除了生命信号外,还包含有杂波和噪声等客观存在的信号,主要包括地表物体、云雨和人为施放的干扰等。墙壁等固定物体的回波和干扰信号可以建模成高斯色噪声,人体的呼吸、心跳信号可以建模成谐波过程,因此可假设接收的回波信号模型为:
实际工作中,信号都是釆样后的离散信号,则回波的表达式为:
本文所述的生命探测雷达系统釆用1.5GHz的工作频率。
根据正常人的生命体征参数可以进行多普勒频率的估计。平静状态下人的心跳频率大约是60次/分钟,即1次/秒,心脏跳动一次有扩和张各一次,每次扩张的位移大约D=5mm,则多普勒频率fd=2vd/A=2(2D/t)/A=0.11Hz;呼吸频率是20次/分钟即0.33次/秒,呼吸一次有呼和吸各一次,每次呼吸的位移D=5mm,则多普勒频率fd=2vd/A=2(2D/t)/Z=0.04Hz:步行的速度约为fd=2vd/X=5Hz。根据以上推断,人体心跳和呼吸微动的多普勒频移分别为0.11Hz和0.04Hz;体动的多普勒频率约为5~50Hz,生命信号归属于微弱的低速目标多普勒信号。
本文即采用数字滤波器在FPGA中进行生命信号的处理,针对人体呼吸、心跳和体动等不同频率多普勒频移,设计了两路FIR滤波器完成干扰及杂波的滤除。
2基于FPGA的系统硬件设计方案
本生命探测仪采用连续波雷达体制,由天线、发射机和接收机、信号处理机、显示控制平台等组成,其中信号处理机是生命探测仪算法实现的主要部分。信号处理机由一块电路板组成,分别进行模拟信号和数字信号处理。本设计中FPGA芯片主要完成超低速微弱信号的去噪以及低频滤波的工作,选用Altera公司的Cyclonem系列的EP3C80F484C7芯片。FPGA器件能够以高速、实时、低成本、高灵活性的优点应用于数字信号处理领域,利用它来进行数字滤波器的设计技术已经非常成熟。
图1所示为本文的信号处理机系统功能框图。图中,输入信号是低频微弱信号,为了降低信号处理板与微波前端的相互影响,在信号调理电路中采用一级电压跟随电路,起到缓冲隔离的作用,然后对信号进行放大、数模转换,再送入数字信号处理单元。
图1 信号处理机系统功能框图
3FPGA软件设计
FPGA是本系统的核心模块,承载了全部的数字元电路设计。FPGA完成的功能如下:
(1)为整个系统提供时序信号,包括A/D采样时钟、运放以及A/D等器件控制信号;
(2)完成两路FIR滤波器硬件实现,FPGA内部模块主要包括两个滤波器、FIFO、串口、控制模块,图2所示是FPGA内部软件设计原理图。
3.1基于FPGA的FIR数字滤波器设计
FIR滤波器的基本结构是一个分节的延时线,每一节的输出加权累加,得到滤波器的输出。数学上可以表示为[3]:
由此可以得出FIR滤波器的传递函数为:
从滤波器的传递函数可以知道,它是恒稳定的,不需要回馈。而且只要加权系数h(i)=h(N-1-i)其中,(0<i<N-1),FIR滤波器就具有线性相位。一般而言,常用的FIR滤波器是线性相位的,即滤波器的系数满足某种对称性。于是线性相位滤波器的输出为:
从滤波器的传递函数可以知道,它是恒稳定的,不需要 回馈。而且只要加权系数h(i)=h(N- 1 - i)其中,(0<i<N-1), FIR滤波器就具有线性相位。一般而言,常用的FIR滤波器 是线性相位的,即滤波器的系数满足某种对称性。于是线性 相位滤波器的输出为:
这样,只需要做N/2(当N为奇数时为(N+1)/2)次而不是N次乘法,就可以实现滤波器的功能,可以大大地节约硬件资源的消耗,还可以提高速度。
本文采用Matlab的窗函数方法设计并在FPGA上实现的方案。根据实际要求,可以分为有人静止存在只有呼吸心跳和有人存在并且有体动两种情况。经计算,分别为截止频率0.5Hz的低通滤波器获取呼吸心跳信息和通带频率1~50Hz的带通滤波器获取体动信息。我们选择海明窗作为系数计算窗函数,低通滤波器阶数N=412阶,带通滤波器阶数N=168阶。然后通过Matlab中的FIR函数确定各阶系数,再由FPGA硬件实现FIR滤波器。由于目前的FPGA器件只能支持定点计算,从Matlab计算所得的系数h是浮点值,需要转换成定点值,即进行系数量化。为了满足精度要求,把所有系数乘以216后再四舍五入即可。
用MATLAB设计完成滤波器系数和结构在具体硬件实现之前先对它进行滤波的功能仿真。滤波器应能使通频带内的信号通过,对通频带外的信号给予极大地衰减,阻止其通过。
这里输入信号由MATLAB产生,频率分量分别位于滤波器的通频带之内和之外。首先验证截止频率为0.5Hz的400阶低通滤波器,它的采样频率是250Hz。MATLAB产生幅度为1,频率分量分别为1Hz、3Hz和10Hz的正弦信号,把它们相迭加并且加入5dB高斯白噪声。滤波器的时域波形和频域波形如图3所示。
图3通频带为0~1Hz的低通滤波器时域与频域波形对于通频带为1~50Hz的200阶带通滤波器,输入幅度为1,频率分量分别为30Hz和60Hz的带噪正弦信号,其滤波器输入输出的时域与频域波形如图4所示。
图4 通频带1~50Hz带通滤波器时域与频域波形
由图3和图4可以看出,两路滤波器的通频带外的信号都已经被滤除地很干净,并且通频带外的噪声也得到了极大地抑制。由于MATLAB滤波输出是将输入数据与滤波器系数直接卷积而得出的,滤波器的输出相较于输入有一定的延迟。两路滤波器的设计都满足系统性能要求规范。
3.2异步FIFO设计
FIFO是一种先入先出的内存数组,其控制逻辑将执行所有必要的读写指针管理,并产生状态标志信号和可选择的与用户逻辑电路接口连接的握手信号。由于数据采样数率远远小于串口数据传输速率,滤波器输出与串行通信接口之间要进行数据缓存,这里使用异步FIFO模块实现不同时钟模块间的数据传送。图5所示是异步FIFO时序仿真波形。
图5 异步FIFO时序仿真波形
若写入时钟频率为250Hz,读出频率为500Hz。则由图5可以看出利用Quartus提供IP核即可以完成异步读写功能,从而实现不同时钟间的数据读写。
3.3UART的设计
RS-232使用异步通讯协议。也就是说,数据的传输没有时钟信号,接收端必须有某种方式,使之与接收数据同步。UART是广泛使用的串行数据传输协议,UART允许在串行链路上进行全双工的通信。图6所示是UART模块的设计框图UART主要包括接收模块和发送模块。接收模块将FIFO从异步接收输入信号SIN接收到的异步信号通过接收器完成串行/并行的转换,形成异步数据帧;发送器将CPU发出的8位数据进行并行/串行转换,从SOUT发送出去。
图6 UART模块设计图
本文采用有限状态机来设计UART波特率发生器、接收器和发送器模块,并设计了一种16位数据的通信协议。本系统的UART的波特率设定为19200,数据帧格式为1b起始位,8b数据位,1b停止位,没有奇偶校验位,也即数据帧为10b。3.3.1波特率发生器
波特率发生器实际上是一个分频器,根据给定的系统时钟频率和要求的波特率算出波特率分频因子,利用波特率发生器可以产生任意频率时钟。由设置的波特率可以算出分频系数,具体算法为分频因子X=2"#曾。其中m为所用寄存器位数,Baud为波特率,clk为时钟频率。系统全局时钟为40MHz,传输波特率为19.2Kb/s。可由此式算出分频因子X=31.5,四舍五入后得X=32,实际产生的波特率为Baudclk=19193,跟理想的19200波特率误差为0.04%。
3.3.2串口发送模块
串口发送模块主要实现将FIFO输出的8位并行数据封8进行串行发送的功能。发送时对于异步传输协议,不需要同接收端进行时间同步。帧的传送靠起始位来同步,起始位低电平,用下降沿沿通知对方接收方传输的开始,紧跟着是8位数据位,传输时低位元在前,高位在后。数据位后面是停止位,高电平有效。串口发送模块仿真结果如图7所示。
图7 串口发送模块仿真结果
3.3.3串口接收模块
串口接收模块主要实现将上位机发送的串行数据转换成并行数据的功能。接收模块实际上是发送模块的逆过程,当检测到低电平时,表示有资料到来。为了确定新数据的到来,即检测开始位,我们使用8倍于波特率的采样时钟对接收到的信号进行采样,以防止因为毛刺等造成错误判断。当8位数据接收完成后,ready输出高电平,数据输出有效。串口接收模块仿真结果如图8所示。
图8 串口接收模块仿真结果
4结语
本文从理论上研究了雷达式生命探测仪的算法,推导出了人体呼吸和运动所产生的多普勒频移范围,设计了生命探测仪信号处理板硬件系统,并详细介绍了利用FPGA实现滤波、异步存取以及数据收发和控制。利用FPGA与ARM9的结合,实现了生命探测仪的小型化与便携化。实验证明,本项目开发的生命探测仪达到了隔墙心跳探测大于4m,人体移动大于10m,实现了较高的战术指标。