基于自适应快速傅里叶变换的涡街流量计转让专利

申请号 : CN201110155959.9

文献号 : CN102322904B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 秦会斌江文斌邵李焕郑梁

申请人 : 杭州电子科技大学

摘要 :

本发明涉及一种基于自适应快速傅里叶变换的涡街流量计。本发明包括电荷放大器、第一滤波器、程控电压放大器、第二滤波器、程控施密特触发器、偏置电压电路、单片机、LDO电路、复位电路、按键输入、4-20mA输出电路、LCD显示电路。涡街传感器产生的信号接电荷放大器,电荷放大器输出与第一滤波器连接,第一滤波器输出接程控电压放大器,程控电压放大器输出接第二滤波器,第二滤波器输出分两路,其中一路接单片机,另一路接程控施密特触发器,程控施密特触发器接单片机。本发明能有效地抑制各种噪声,实现小流量高精度的测量,从而扩大了量程比,提高了测量精度和灵敏度。

权利要求 :

1.基于自适应快速傅里叶变换的涡街流量计,包括电荷放大器、第一滤波器、程控电压放大器、第二滤波器、程控施密特触发器、偏置电压电路、单片机、LDO电路、复位电路、按键输入、4-20mA输出电路和LCD显示电路,其特征在于:涡街传感器的输出信号线接到电荷放大器的输入接线端子,电荷放大器的输出端接入第一滤波器的输入端,第一滤波器的输出端接入程控电压放大器的输入端,程控电压放大器的输出端接入第二滤波器的输入端,第二滤波器的输出端分两路:一路接入程控施密特触发器的输入端、另一路接入单片机的ADC输入端,程控施密特触发器的输出端接入单片机的定时器捕获输入端,偏置电压电路的输出端接入电荷放大器的电压参考端、第一滤波器和第二滤波器的电压参考端、程控电压放大器的电压参考端、程控施密特触发器的电压参考端,单片机的PWM脉冲波形输出接入4~20mA输出电路的输入端,LDO电路输出端、复位电路输出端、按键输入与单片机连接,单片机与LCD显示电路连接;

所述的电荷放大器由运放U6A、反馈电阻Rf1、反馈电容Cf1组成,P1为接线端子,P1的

3脚接地,1、2脚相连并连接运放U6A的反向输入端,U6A的正向输入端连接参考电压,U6A的引脚2通过反馈电阻Rf1和反馈电容Cf1与输出端相连;

所述的第一滤波器和第二滤波器均采用二阶低通滤波器,该滤波器由运放U6B、电阻R2、R9、R10、电容C1、C5组成;信号由电阻R9的一端输入,电阻R9的另一端接电容C5、电阻R10、R2的一端,电容C5的另一端接地,电阻R10的另一端接运放U6B的反向输入端,R2的另一端接运放U6B的输出端;运放U6B的反向输入端连接电阻R10、电容C1的一端,通过电容C1连接到输出端,正向输入端连接参考电压;

所述的程控电压放大器分为两级,第一级由数字电位器U2和运放U5A组成,数字电位器U2通过单片机的SPI接口控制来改变阻值的大小,其增益可在-20dB~20dB的线性范围内调节;第二级为固定增益放大,由运放U5B、电阻R4、R7组成,增益为固定值;两级之间使用电容C2隔离直流电平;数字电位器U2的引脚1、引脚2、引脚3分别与单片机的引脚14、引脚15、引脚17连接,数字电位器U2的引脚4接地,引脚5接3.3V电源,引脚6为信号的输入端,引脚7接运放U5A的反向输入端,引脚8接运放U5A的输出端;运放U5A的正向输入端连接参考电压,电容C2的一端接第一级的输出端,另一端接第二级的电阻R7的一端,电阻R7的另一端连接运放U5B的反向输入端,运放U5B的反向输入端通过反馈电阻R4连接到输出端,运放U5B的正向输入端连接参考电压,输出信号端连接到单片机的ADC接口和程控施密特触发器的输入端;

所述的程控施密特触发器由数字电位器U3、比较器U4A、电阻R1、R5、电容C3组成;数字电位器U3的引脚1、引脚2、引脚3分别与单片机的引脚13、引脚15、引脚17连接,数字电位器U3的引脚4接地,引脚5接3.3V电源,引脚7为信号的输入端,引脚6接比较器U4A的反向输入端,引脚8悬空;比较器U4A的引脚3通过反馈电阻R1连接输出端,引脚2连接参考电压;U4A的输出端与电容C3、电阻R3的一端连接,电容C3的另一端接地,电阻R5的另一端接电源,电容C3与电阻R3一起组成一阶低通滤波器可滤除部分毛刺使得整形后的脉冲信号更加平滑;整形后的脉冲信号U4A的输出端输出,连接单片机的定时器捕获输入端;

所述的偏置电压电路由电压基准U1、电阻R3、R6、R8组成;电阻R3的一端连接3.3V电压,另一端连接U1的引脚3,电阻R6一端连接U1的引脚3,另一端连接U1的引脚4,电阻R8的一端连接U1的引脚4,另一端接地,U1的引脚5接地,引脚1、2悬空;输出的偏置电压由U1的引脚3输出,分别连接U6A引脚3,U6B引脚5,U5A引脚3,U5A引脚5,U4A引脚2;

所述的单片机采用ARM Cortex-M3内核,芯片内部集成12位的ADC,单次采样转换时间

1μS;单片机U7通过引脚13、14、15、17与数字电位器U2、U3连接,控制数字电位器的阻值,U7的引脚13与U3的引脚1连接,U7的引脚14与U2的引脚1连接,U7的引脚15与U2、U3的引脚2连接,U7的引脚17与U2、U3的引脚3连接;单片机U7通过引脚11产生PWM波形脉冲信号,连接4~20mA电流输出电路的输入端;单片机U7通过任意三个I/O口控制串行LCD控制器,通过任意6个I/O口连接按键输入和LED指示灯,通过引脚46、引脚21连接电平转换芯片进行UART通信;

所述的4-20mA输出电路由电压电流转换芯片U9、电阻R12、R13、R14、R15、R16、R17、R18、R19、电容C11、C12、NPN三极管Q1、二极管D2组成;PWM波信号由电阻R15一端输入,电阻R15另一端连接电容C11、电阻R14,电阻R14另一端连接电容C12、电阻R16,电阻R16的另一端连接电压电流转换芯片U9的引脚7,电容C11、C12的另一端接地,电阻R17一端连接电压电流转换芯片U9的引脚8、另一端接地,电阻R19一端接电压电流转换芯片U9的引脚9、另一端接地,电阻R12接在电压电流转换芯片U9的引脚9和16之间;电压电流转换芯片U9的1脚接24V电源,电压电流转换芯片U9的2、3脚相连,电压电流转换芯片U9的4、6、10、13、15引脚悬空,引脚14接地,引脚5为输出,接三极管Q1的基极,三极管的集电极通过电阻R13接24V电源,射极通过二极管D2、电阻R18接地;最终4~20mA电流由电阻R18上输出;

所述的U6采用TLV2254,U5采用TLV2252,U4采用LMV393,U3和U2采用MCP41050,U1采用TLV431,U7采用STM32F103C8T6,U9采用AM402。

说明书 :

基于自适应快速傅里叶变换的涡街流量计

技术领域

[0001] 本发明属于电子检测技术领域,主要涉及信号处理电路及数字信号处理技术,为一种应力式压电涡街流量计,特别是一种以单片机(MCU)为核心、基于自适应快速傅里叶变换(FFT)功率谱分析的应力式压电涡街流量计信号处理系统。

背景技术

[0002] 基于卡门涡街原理的应力式涡街流量计因其灵敏度高、稳定性好、价格低廉等众多优点,自20世纪70年代末出现以来,发展十分迅速。目前,涡街流量计大多将一次仪表和二次仪表融合为一体,向着一体化、智能化方向发展。但是,当前我国智能涡街流量计普遍存在着低流速时信号无法检测和震动噪声影响较为严重的问题,这使得在量程比和抗震性能上无法取得突破。针对这一问题,国内外许多学者尝试从数字信号处理角度来解决:如基于FFT的经典谱分析方法、基于Burg算法的现代谱估计方法、自适应陷波方法、小波分析方法、功率谱分析方法和互相关方法、自适应滤波方法等等。
[0003] 根据涡街信号的特点可知,涡街信号的频率与流体流速成正比、涡街信号的幅度与流体流速平方成正比。当仪表要求达到的量程比很高时,其最大流速与最小流速所产生信号的幅度比为非常大,采用固定放大倍数的放大电路会导致低流速是信号无法测量或高流速时信号顶部和底部的失真,从而造成测量精度的下降。此问题可采用本系统中程控增益放大器解决。另外,在将涡街信号整形成脉冲信号预处理时,通常采用施密特触发器电路实现,但单一的阀值电压无法满足系统软件和硬件变参数的需求。
[0004] 目前,基于快速傅里叶变换功率谱分析的方法以成功应用于本技术领域,但在整个量程区域最小可分辨频率为固定值,这导致小流量时仪表分辨率低、高流量是分辨率高的问题。根据快速傅里叶变换功率谱分析理论,最小可分辨频率 ,当谱分析的点数 一定时,要使计算误差 更小就要降低采样频率 ,但根据奈奎斯特采用定理 又必须大于待分析信号频率的2倍,因此要想达到更高的精度可以采用变采样频率 的分析法(自适应快速傅里叶变换分析法)。

发明内容

[0005] 本发明的目的是提供一种改进前级模拟信号处理电路、基于ARM Cortex-M3内核的STM32嵌入式处理器、采用自适应快速傅里叶变换分析法的低功耗智能涡街流量计。该流量计能够在低流速大噪声的背景下有效地提取非常微弱的涡街信号,并能自动根据噪声的大小改变施密特触发器的阀值电压、根据涡街信号的幅度改变放大电路的增益、根据涡街信号的频率改变ADC的采样频率,从而能有效地扩展仪表的量程比、提高测量精度。
[0006] 本发明采用程控施密特触发器,预检测电路中涡街信号的残余噪声,进而调整阀值电压,使得整形后的脉冲信号更加精确。
[0007] 基于自适应快速傅里叶变换的涡街流量计包括电荷放大器、第一滤波器、程控电压放大器、第二滤波器、程控施密特触发器、偏置电压电路、单片机、LDO电路、复位电路、按键输入、4-20mA输出电路、LCD显示电路。电荷放大器由运放U6A、反馈电阻Rf1、反馈电容Cf1组成,涡街传感器产生的信号由U6A的反向端(引脚2)输入。第一滤波器和第二滤波器均采用二阶低通滤波器,该二阶低通滤波器由运放U6B、电阻R2、R9、R10、电容C1、C5组成,信号由电阻R9的一端输入,滤波后的信号由运放U6B的输出端(引脚7)输出。程控增益放大器由数字电位器U2、运放U5A、U5B、电阻R4、R7组成,信号由数字电位器U2的6脚输入,放大后的信号由运放U5B的输出端(引脚7)输出。程控施密特触发器由数字电位器U3、比较器U4A、电阻R1、R5、电容C3组成,信号由数字电位器U3的7脚输入,整形后的脉冲由比较器U4A的输出端(引脚1)输出。偏置电压电路由电压基准U1、电阻R3、R6、R8组成,电阻R3的一端接3.3V电压,另一端输出偏置电压。4-20mA输出电路由电压电流转换芯片U9、电阻R12、R13、R14、R15、R16、R17、R18、R19、电容C11、C12、NPN三极管Q1、二极管D2组成,PWM波信号由电阻R15一端输入,电流由R18上输出。
[0008] 在测量管道中有流体流动时,在阻流体两侧会交替分离出卡曼涡街,漩涡使得压电传感器产生电荷信号,电荷信号经过电荷放大器转变为电压信号,第一滤波器滤除压电传感器的固有震荡噪声,程控增益放大器可对信号在增益为-20dB~20dB的线性范围内进行调节,第二滤波器滤除其余噪声使得涡街信号更加平滑,一路信号经过程控施密特触发器转换成脉冲信号后送入单片机的定时器进行捕获计频,另一路信号送入单片机的ADC,ADC的采样频率由捕获的频率决定,从而实现变采样率的分析。单片机首先对ADC采用来的数字信号进行幅度计算,由该幅度值控制程控增益放大器的增益;然后对信号进行快速傅里叶变换计算和功率谱分析,得到信号的频率值。根据该频率值和仪表系数可计算出瞬时流量和累计流量,单片机将流量信息通过SPI接口发送到LCD驱动器显示在LCD上,同时将流量信息通过定时器产生的PWM波输入到4-20mA V/I转换电路转换成电流信号输出。单片机软件运行过程的调试信息通过UART接口发送到PC机,同时PC机通过UART接口与流量计连接进行参数设置。
[0009] 本发明的有益效果:本发明能自动根据噪声的大小改变施密特触发器的阀值电压,根据涡街信号的幅度改变放大电路的增益,根据涡街信号的频率改变ADC的采样频率;主控制器采用基于ARM Cortex-M3内核的STM32嵌入式处理器,高达70MHz的主频和采用汇编语言实现的FFT算法能在2.138mS完成1024点的FFT运算;本发明能有效地抑制各种噪声,实现小流量高精度的测量,从而扩大了量程比,提高了测量精度和灵敏度。

附图说明

[0010] 图1为本发明的系统整体框图;
[0011] 图2为电荷放大器电路原理图;
[0012] 图3为二阶低通滤波器电路原理图;
[0013] 图4为程控增益放大器电路原理图;
[0014] 图5为程控施密特触发器电路原理图;
[0015] 图6为模拟电路偏置电压电路原理图;
[0016] 图7为微控制器模块电路原理图;
[0017] 图8为4-20mA输出电路原理图;
[0018] 图9为本发明中的软件框架图;
[0019] 图10为本发明软件主程序流程图;
[0020] 图11为本发明流量计算流程图。

具体实施方式

[0021] 下面结合附图对本发明进一步描述。
[0022] 本发明的涡街流量计是一种改进前级模拟信号处理电路、基于ARM Cortex-M3内核的STM32嵌入式处理器、采用自适应快速傅里叶变换分析法的低功耗智能涡街流量计。该流量计能够在低流速大噪声的背景下有效地提取非常微弱的涡街信号,并能自动根据噪声的大小改变施密特触发器的阀值电压、根据涡街信号的幅度改变放大电路的增益、根据涡街信号的频率改变ADC的采样频率,从而能有效地扩展仪表的量程比、提高测量精度。在软件算法上,采用基于自适应FFT的算法能实现高流速与低流速分段等精度的功率谱分析,采用快速排序、去最大值最小值、多次取样求平均等方法提高计算精度,采用循环队列保存采样来的数据和边采样边计算的方法来减少计算的等待时间。
[0023] 本发明的系统整体框图如图1所示。本发明系统包括电荷放大器、第一滤波器、程控电压放大器、第二滤波器、程控施密特触发器、单片机、LDO电路(电源电路)、复位电路、按键输入、4-20mA输出电路、LCD显示电路。涡街传感器的输出信号线接到电荷放大器的输入接线端子p1,电荷放大器的输出端(图2运放U6A的第1引脚)接入第一滤波器的输入端(图3电阻R9的一端),第一滤波器的输出端(图3运放U6B的第7引脚)接入程控放大器的输入端(图4运放U2的第6引脚),程控放大器的输出端(图4运放U5B的第7引脚)接入第二滤波器的输入端(图3电阻R9的一端),第二滤波器的输出端(图3运放U6B的第7引脚)分两路:一路接入程控施密特触发器的输入端(图5比较器U3的第7引脚)、另一路接入单片机的ADC输入端(图7单片机U7的第18引脚),程控施密特触发器的输出端(图5比较器U4A的第1引脚)接入单片机的定时器捕获输入端(图7单片机U7的第42引脚),如图6所示偏置电压的输出端(U1第3脚)接入图2中U6A第3脚、图3中U6B第5脚、图4中U5A第3脚U5B第5脚、图5中U4A第2脚,单片机的PWM脉冲波形输出(图7 U7第11脚)接入4~20mA输出的输入(图8电阻R15的一端)。
[0024] 如图2所示,电荷放大器由运放U6A、反馈电阻Rf1、反馈电容Cf1组成。P1为接线端子,3脚接地,1、2脚相连并连接运放U6A的反向输入端(U6A的引脚2),U6A的正向输入端(U6A引脚3)连接参考电压,U6A的引脚2通过反馈电阻Rf1和反馈电容Cf1与输出端(引脚1)相连。反馈电阻Rf1阻值越大电荷放大器的低频特性越好,但当Rf增大到与压电晶体等效电阻R0相当时,电荷放大器幅频特性曲线下移,放大倍数变小。反馈电容Cf1越小电荷放大器放大倍数越大,但太小会由于各种分布电容而影响放大倍数的稳定性。
[0025] 如图3所示为二阶低通滤波器,由运放U6B、电阻R2、R9、R10、电容C1、C5组成。信号由电阻R9的一端输入,电阻R9的另一端接电容C5、电阻R10、R2的一端,电容C5的另一端接地,电阻R10的另一端接运放U6B的反向输入端(U6B的引脚6),R2的另一端接运放U6B的输出端(U6B的引脚7)。运放U6B的反向输入端连接电阻R10、电容C1的一端,通过电容C1连接到输出端(引脚7),正向输入端(引脚5)连接参考电压。电阻R2、R9决定了滤波器通带内增益,电阻R10、电容C1、C5决定了滤波器的截止频率。
[0026] 如图4所示,程控增益放大器两级组成:第一级由数字电位器U2和运放U5A组成,数字电位器U2通过单片机的SPI接口控制来改变阻值的大小,其增益可在-20dB~20dB的线性范围内调节;第二级为固定增益放大,由运放U5B、电阻R4、R7组成,增益为固定值(R4/R7);两级之间使用电容C2隔离直流电平。数字电位器U2的引脚1(nCS0)、引脚2(SCK)、引脚3(SI)分别单片机的引脚14、引脚15、引脚17连接,引脚4接地,引脚5接3.3V电源,引脚6为信号的输入端,引脚7接运放U5A的反向输入端,引脚8接运放U5A的输出端。运放U5A的正向输入端(引脚3)连接参考电压。C2的一端接第一级的输出端(U5A的引脚
1),另一端接第二级的电阻R7的一端,电阻R7的另一端连接运放U5B的反向输入端(引脚
6),运放U5B的反向输入端通过反馈电阻R4连接到输出端(引脚7),运放U5B的正向输入端(引脚5)连接参考电压。输出的信号端(U5B引脚7)连接到单片机的ADC接口(U7引脚
18)和程控施密特触发器的输入端(U3引脚7)。
[0027] 如图5所示,程控施密特触发器由数字电位器U3、比较器U4A、电阻R1、R5、电容C3组成。数字电位器U3的引脚1(nCS1)、引脚2(SCK)、引脚3(SI)分别与单片机的引脚13、引脚15、引脚17连接,引脚4接地,引脚5接3.3V电源,引脚7为信号的输入端,引脚
6接比较器U4A的反向输入端,引脚8悬空。比较器U4A的引脚3通过反馈电阻R1连接输出端(引脚1),引脚2连接参考电压。U4A的输出端与电容C3、电阻R3的一端连接,电容C3的另一端接地,电阻R5的另一端接电源,电容C3与电阻R3一起组成一阶低通滤波器可滤除部分毛刺使得整形后的脉冲信号更加平滑。整形后的脉冲信号U4A的输出端(引脚1)输出,连接单片机的定时器捕获输入端(U7引脚42)。
[0028] 如图6所示为偏置电压电路,为整个前级模拟电路提供统一的偏置电压。电路由电压基准U1、电阻R3、R6、R8组成。电阻R3的一端连接3.3V电压,另一端连接U1的引脚3,电阻R6一端连接U1的引脚3,另一端连接U1的引脚4,电阻R8的一端连接U1的引脚4,另一端接地,U1的引脚5接地,引脚1、2悬空。输出的偏置电压由U1的引脚3输出,分别连接U6A引脚3,U6B引脚5,U5A引脚3,U5A引脚5,U4A引脚2。
[0029] 本发明的主控制器采用ST公司的STM32系列的单片机,如图7所示,STM32系列的单片机采用最新的ARM Cortex-M3内核,芯片内部集成12位的ADC,单次采样转换时间1μS,高达70MHz的主频使得能在2.138mS完成1024点的FFT运算,但其功耗仅为传统DSP的十分之一左右。单片机U7通过引脚13、14、15、17与数字电位器U2、U3连接,控制数字电位器的阻值,U7的引脚13与U3的引脚1连接,U7的引脚14与U2的引脚1连接,U7的引脚15与U2、U3的引脚2连接,U7的引脚17与U2、U3的引脚3连接。单片机U7通过引脚11产生PWM波形脉冲信号,连接4~20mA电流输出电路的输入端(图8中电阻R15的一端)。单片机U7通过任意三个I/O口控制串行LCD控制器,通过任意6个I/O口连接按键和LED指示灯,通过引脚46(PA9)、引脚21(PA10)连接电平转换芯片进行UART通信。
[0030] 如图8所示为4~20mA输出电路,电路由电压电流转换芯片U9、电阻R12、R13、R14、R15、R16、R17、R18、R19、电容C11、C12、NPN三极管Q1、二极管D2组成。PWM波信号由电阻R15一端输入,电阻R15另一端连接电容C11、电阻R14,电阻R14另一端连接电容C12、电阻R16,电阻R16的另一端连接U9的引脚7,电容C11、C12的另一端接地,电阻R17一端连接U9的引脚8、另一端接地,电阻R19一端接U9的引脚9、另一端接地,电阻R12接在U9的引脚9和16之间。U9的1脚接24V电源,2、3脚相连,4、6、10、13、15引脚悬空,引脚14接地,引脚5为输出,接三极管Q1的基极,三极管的集电极通过电阻R13接24V电源,射极通过二极管D2、电阻R18接地。最终4~20mA电流由R18上输出。
[0031] 整个系统工作流程为:将本发明的流量计安装在标准鉴定的测试装置中,流量计上电时按初始化按键进行初始化,此时LED指示灯指示系统为初始化工作状态,此过程软件系统将检测前级模拟电路每个增益级别的残余噪声大小,然后计算出程控施密特触发器的调整系数并写入Flash中保存,此过程(10S)完成后系统进入正常工作状态,LED指示灯改变指示状态,系统初始化完毕。系统正常工作时,在测量管道中有流体流动,管道内的阻流体两侧会交替分离出卡曼涡街,漩涡使得压电传感器产生电荷信号,电荷信号经过电荷放大器转变为电压信号,第一滤波器滤除压电传感器的固有震荡噪声,程控增益放大器可对信号在增益为-20dB~20dB的线性范围内进行调节,第二滤波器滤除其余噪声使得涡街信号更加平滑,一路信号经过程控施密特触发器转换成脉冲信号后送入单片机的定时器进行捕获计频,另一路信号送入单片机的ADC,ADC的采样频率由捕获的频率决定,从而实现变采样率的分析。单片机首先对ADC采用来的数字信号进行幅度计算,由该幅度值控制程控增益放大器的增益,并根据初始化过程噪声分析的各级系数动态地调整程控施密特触发器的阀值电压;然后对信号进行快速傅里叶变换计算和功率谱分析,得到信号的频率值。根据该频率值和仪表系数可计算出瞬时流量和累计流量,单片机将流量信息通过SPI接口发送到LCD驱动器显示在LCD上,同时将流量信息通过定时器产生的PWM波输入到4-20mA V/I转换电路转换成电流信号输出。单片机软件运行过程的调试信息通过UART接口发送到PC机,同时PC机通过UART接口与流量计连接进行参数设置。
[0032] 单片机系统软件采用前后台软件设计方法,前台程序轮询等待,后台用定时器中断驱动各个模块子程序运行。系统软件框图如图9所示,分为主程序、LCD驱动模块、数字电位器控制模块、UART串口通信调试模块、人际交互模块、Timer1 ADC采用中断程序、Systick时间中断程序和定时器脉冲捕获中断程序。
[0033] 主程序流程图如图10所示,上电后初始化单片机片内外设,如RCC时钟、NVIC中断寄存器、GPIO、UART、定时器、ADC、DMA等等,初始化数字电位器和LCD控制器,然后判断系统状态设置按键,如未按则直接进入正常工作状态,如已经按下则进入初始化工作状态。在初始化工作状态时,软件系统将检测前级模拟电路每个增益级别的残余噪声大小,然后计算出程控施密特触发器的调整系数并写入Flash中保存,此过程(10S)完成后系统进入正常工作状态。在正常工作状态时,将等待1024点的循环数据队列全部重新写入完成的标志变量,然后计算信号的幅值,根据该值调整程控放大器的放大倍数并调整施密特触发器的阀值电压。
[0034] 如图11为流量计算流程图,此过程由Timer1 ADC采用中断程序、Systick时间中断程序和定时器脉冲捕获中断程序共同完成。定时器1控制ADC的采样频率,不断地向1024点数据的循环队列放入数据。Systick时间中断每200mS中断一次并对中断进行计数,每200mS对循环队列中的数据做一次FFT计算和功率谱分析并将结果暂存叠加,每2S对十次的FFT功率谱分析的计算结果求平均值、排序,排序结果中值最大的功率谱分量即为对应的信号,根据采样频率和FFT计算分析的点数换算成信号的频率,然后根据仪表系数计算出瞬时流量和累计流量并在LCD上显示出来。与此同时,定时器捕获中断不断地在捕获由施密特触发器送来的脉冲信号,在Systick每200mS中断一次时累加一次脉冲信号的频率值,在2S时对十次的结果求平均值,最后根据此频率调整定时器1控制ADC的采样频率,从而实现了自适应快速傅里叶变换的算法。