过采样技术是数字信号处理者用来提高模数转换器(ADC)性能经常使用的方法之一,它通过减小量化噪声,提高 ADC 的信噪比,从而提高 ADC 的有效分辨率[1]。过采样技术不但没有增加额外的模拟电路,而且由于提高了有效分辨率还能简化模拟电路,并且简单易行,因而被数字信号处理实践者广泛应用于测控领域[2-6]。

 

过采样技术的一个关键环节是采样后的低通滤波器(LPF, Low Pass Filter),没有这个滤波器,过采样产生不了任何效果[7]。然而,许多应用中,需要测量多种信号,数据采集部分必须具有自适应特性,即根据输入信号的频带能自主选择下抽取率,过采样后低通滤波器的特性也应随之变化。因而,有必要设计一款参数可变的低通滤波器来满足这种需求。

 

过采样技术中的低通滤波器

过采样技术的低通滤波器要同时完成量化噪声的滤除和减采样时抗混叠滤波的功能。过采样技术能较完美实现其目标的滤波器参数满足:通带截止频率,通带衰减 Rc=-3dB,阻带截止频率,滤除量化噪声需要的阻带衰减为

 


其中,M 为过采样率,N 为下抽取率,B 为 ADC 原有的分辨率,B0 为提高的分辨率,N=4B0,并且通常有 。而滤波器的类型为 FIR 滤波器,其阶次与下抽取率成正比。

 

可变参数低通滤波器的设计

由 2 节可知,过采样中的滤波器特性由 ADC 本身的分辨率和下抽取率决定。下抽取率变化,滤波器参数会发生改变,滤波器则必须重新设计。从 FIR 滤波器的设计流程[8]来看,截止频率变化后,滤波器系数会随之变化。如果获得截止频率后再计算滤波器系数,会带来大量运算量,因为每计算一组滤波器系数都要进行一次 IFFT(Inverse Fourier Transform)。通常的做法是在 PC 机上计算出系数后,做成查找表。由于下抽取率变化,这样的表会有很多张,会消耗大量存储空间。而本小节采用的方法,避免了这种情况,选取一组合适的滤波器系数,便可完成多种下抽取率的滤波。

 

滤波器系数决定滤波器特性,理论上讲,只用一组滤波器系数是不能实现可变参数滤波器的。由 2 节可知,下抽取率 N 与滤波器截止频率成反比,与阻带衰减成正比,与滤波器长度成正比。假设下抽取率为 N0 时滤波器系数 h(n),n=0,1,2…L-1,我们怎样通过 h(n)这组基准系数来获得 N 不等于 N0 时的滤波器系数呢?

 

当 N

 

 

下抽取率的情况实现较为容易,然而当时,滤波器系数大于基准系数,此时怎样设计滤波器来满足要求呢?我们采用原本用来实现高计算效率的窄带低通滤波器的插值 FIR 滤波器[8],来实现低通滤波器参数的变化。

 

插值 FIR 滤波器是在 L 抽头、非递归线性 FIR 滤波器的性能基础上,将 L 抽头的 FIR 滤波器各个抽头之间的一个单延迟,用 K 个单位延迟代替而设计形成的,K 为扩展因子,是一个整数,如图 2 所示。原来的 FIR 滤波器称为原型滤波器,具有扩展延迟的滤波器称为整形子滤波器。

 


原型 FIR 滤波器在 z 域的传递函数为:

 

 

式(3)中,Lp 为 hp 的长度。则整形子滤波器传递函数为:

 

 

其扩展冲激响应长度为,反映到时域上,整形子滤波器系数为:

 

 

图 3 给出了 K=3 个单位延迟在频域的影响。时域滤波器冲激响应扩展 K 倍,导致频域幅度响应压缩 K 倍,如图 3(b)。图中那些以 1/K 整数倍为中心、重复出现的的通带称为虚像。只要将这些虚像滤除,就能获得衰减特性不变,截止频率为原滤波器截止频率 1/K 的滤波器,恰好符合过采样后低通滤波器截止频率与下抽取率成反比的特性,因而可用于过采样中可变参数滤波器的设计。此处,滤除虚像的滤波器称为压制虚像滤波器。

 


插值滤波器其实是整形子滤波器和压制虚像滤波器的级联。整形子滤波器很好实现,只要在原型滤波器系数的基础上按要求插入零值即可,下面主要看压制虚像滤波器的设计。当下抽取率大于一定值时,低通滤波器为窄带滤波器,则整形滤波器的虚像也为一窄带。平均滤波器的幅度响应在 1/L 的整倍数处为一窄带陷波器,可以滤除整形滤波器产生的虚像。虚像出现在 1/K 的整倍数处,因此,只要使得作为压制虚像滤波器的平均滤波器的长度满足,,便可以滤除虚像。

 

图 4 为时,原型滤波器、整形滤波器、压制虚像滤波器和最后获得的插值滤波器的幅度响应,原型滤波器为 FIR 切比雪夫滤波器。从图 4(a)可以看出,虚像出现的位置与平均滤波器的零点位置对齐,从而抑制了虚像。由于太小,平均滤波器的旁瓣宽度较大,陷波带大于虚像带宽,导致虚像的抑制没有达到滤波器要求的阻带衰减。但是,虚像所处频率与过采样频率相当,此处出现的噪声仅为量化噪声,此处衰减特性只要将其抑制到 ADC 分辨率提高后的量化噪声水平,即满足过采样的要求。例如:ADC 分辨率经过采样后提高 6 位,其要求的衰减特性为 -36.1dB,而图 4(a)插值滤波器虚像处的衰减为 52dB,足以满足大部分设计的要求。

 

 

插值滤波器在过采样中的实现的流程为:在原型滤波器进行 K 倍内插后,再做 K 点的平均滤波即可。看上去需要两步才能实现低通滤波,实际上,由于整形和平均滤波的特性,我们可以一步完成滤波。由式(3)可知,整形子滤波器的输出为:

 

 

为下抽取及计算方便,将整形滤波器的长度从,改为 KLp 。由于 FIR 滤波器系数的不敏感性,这样做并不会影响滤波器特性。则插值滤波器的输出为:

 

 

由式(4-9)可知,插值滤波器输出是将 K 点值平均后,再与原型滤波器系数加权平均的结果。可以看出,实现方式很简单。

 

过采样技术在 FGPA 的实现

一些通用的数据采集模块需要实现多种信号的测量,注重模块的通用性,因此,放大、滤波等信号预处理电路这样的个性事物是不被允许存在的。将过采样技术应用于通用模块,省略信号预处理电路,根据信号特点,选取合适的过采样率和下抽取率,平衡最终采样率和分辨率,来获取要求的测量精度。根据通用模块的要求,设计了图 5 所示结构来实现通用模块的过采样技术。

 


由图 5 可知,FPGA 实现了以下功能:产生 ADC 时序,控制 ADC 的采样频率;以 ADC 转换结束标志位为触发信号,读取 ADC 的转换数据;为滤除 ADC 输出信号的量化噪声和减小数据量,实现低通滤波和减采样模块;配置一块 ROM 区,用于存储滤波器系数,用于滤波器的实现;为与外部处理引擎进行通讯,实现 UART 接口协议;为使个模块协调工作,采用锁相环产生不同频率的时钟。

 

而模块的工作流程为:处理引擎将待测信号的频率通过 UART 传给低通滤波和减采样模块,该模块根据该频率设置滤波器参数和减采样的下抽取率;ADC 时序模块产生 CNVST,启动 ADC 进行采样,BUSY 信号触发数据读取模块将数据读入;低通滤波器和减采样模块根据设置好的参数和下抽取率对读入的数据进行处理,处理完毕后,再将数据通过 UART 传到处理引擎做后续处理。

 

模块中的 ADC 选用的是 ADI 公司的 AD7674,18 位、800KSPS 逐次逼近型模数转换器,具有较高的数据通过率。支持差分输入模式,其内部采样保持电路的负载可调,5V 单电源供电。器件内部还集成了转换时钟、基准缓冲器及错误校准电路,并具有功能强大的串口和并口,与 3V 和 5V 电平兼容。而 FPGA 则选用的是 Altera CycloneⅡ-EP2C8Q208C8,包括 5 个部分:可编程输入 / 输出单元、基本可编程逻辑单元、嵌入式块 RAM、丰富的布线资源和底层嵌入功能单元。

 

基于 AD7674 和 EP2C8,该模块设计获得的相关参数为:

(1) 下抽取率,过采样率,由于 ADC 的最高采样频率为 800KSPS,则该模块可用于 0Hz -32kHz 信号的测量;

(2) ADC 的本身分辨率为 18 位,过采样后达到的最大分辨率为 25 位;

(3) ADC 基准电压为 4.096V,最高分辨率时可分辨的信号大小为:


(4) 为使 ADC 达到 25 位分辨率,除满足下抽取率 N=47 外,还必须保证低通滤波器的阻带衰减符合过采样的要求。由式(1)和(2)可知, 阻带衰减 R0=64.3dB。使用切比雪夫最佳逼近法获得滤波器系数,通过计算及考虑到设计余量,得到滤波器长度 L=4N,N=47 时,实际阻带衰减为 R0=75dB;利用 MATLAB 软件中的函数 CHEBWIN(L,R0)获得滤波器系数;将滤波器系数量化成 8 位,并进行 16 倍下抽取,抽取后的值对应为 N=45 时的滤波器系数。将其存入 FPGA 的 ROM 区,以此为基准得到其他下抽取率的滤波器系数。

(5) 实现该模块消耗的 FPGA 资源为:7275 个 LE(88%),65544 个 memory bits(40%),24 个 9 位乘法器(67%),27 个 I/O 口(20%)1 个 PLL(50%)。

 

实验结果和分析

为考察模块设计的正确性,对其进行了测试。主要分为两个部分。第一部分为低通滤波器的测试。首先以 N=1024 为例,验证实际滤波器的幅度特性是否与设计的一致,然后验证可变参数低通滤波器设计的正确性。第二部分则以心电信号为例,验证模块分辨率与过采样率的关系。

 

图 6 为 N=1024 时,MATLAB 设计的滤波器幅度特性和实测的滤波器幅度特性的比对。测试方法为:ADC 的采样率为 800kHz,下抽取率为 1024,最终采样率为 ;给系统加入 3V 不同频率的正弦波,频率范围为 5Hz-360Hz;获得的数据传到 PC 上,用 MATLAB 计算各组数据的 FFT 获得幅度值;假设 5Hz 的正弦波经过系统后幅度不发生衰减,以此为基准计算各频率点的衰减情况。由图 6 可知,实测的幅度特性与设计的基本一致。不足之处是,受采样率的限制,被测信号频率不能大于采样率的一半,我们只能得到部分采样点的衰减情况。

 

 

图 7 是可变参数滤波器在不同下抽取率时的幅度特性。为验证改变参数时滤波器是否正常工作,给系统输入信号为 2V、20Hz 正弦波和 0.95V、90Hz 正弦波的加性信号,ADC 分别以采样率 12.5kHz、50kHz、200kHz、800kHz 对加性信号采样,下抽取率依次为 64、256、1024、4096,则四组数据的最终采样率均为 195Hz。以 20Hz 正弦波为基准,验证 90Hz 正弦波的衰减情况。图 7 中每条曲线上的黑点对应的是 90Hz 的衰减特性,分别为:15.345dB、15.504 dB、15.54 dB、14.958 dB。图 8 是信号经过系统后的频谱分析。由图 8 可知,90Hz 的正弦波明显得到了抑制,其衰减分别为:16.896 dB、14.408 dB、17.345 dB、14.804 dB,实测的数据与设计的基本一致,说明各参数下的滤波器能正常工作。另外,图 8 中三个小的尖峰,分别为 50Hz 干扰和 20Hz 的谐波。

 

 

 

图 9 是系统测得的实验室某同学的心电波形。由图 9 可知,随着下抽取率的增大,心电信号的细节越来越清楚,即分辨率越来越高。因此,随者下抽取率的增大,系统的分辨率是增加的。

 

 

综上所述,基于过采样技术的通用数据采集模块可以根据被测信号的不同,改变自身的参数,达到测量要求,同时,也完成了可变参数低通滤波器的硬件实现。

 

结语

为减小通用数据采集模块的体积和成本,将过采样技术应用于模块的 ADC 中。由于通用模块测量多种信号,为达到过采样对低通滤波器的要求,设计了可变参数低通滤波器。该滤波器简单易行,并且计算效率高,在本文设计的通用模块中,每获得一个采样点,最多只需进行 4 次 18bits×8bits 的乘法运算。

 

此外,本文从硬件上实现了该模块的设计,并对模块进行了测试,最后以心电为例,验证了参数的可变性。