基于STM32的正弦信号检测系统设计
2023-01-05曹亢吴银川杨晨
曹亢,吴银川,杨晨
西安石油大学 陕西省油气井测控技术重点实验室(陕西 西安 710065)
测井技术在石油勘探及开采中扮演着重要的角色,随着石油的不断开采,石油储层的环境越来越复杂,导致测井难度也越来越大[1]。在众多测井技术中,由于感应测井具有测井效率高、准确度好、适应性强且成本较低的优点,使得它备受推崇[2]。在感应测井过程中,发射线圈通过发射频率已知的正弦波信号或由多种频率正弦波叠加的信号激励地层,再使用线圈接收目标电压或目标电流信号,根据该信号的变化反映出地层电阻率的变化趋势,从测得数据中分析出有用信息[3-4]。但是由于地层结构相对复杂,以及井下环境噪声干扰大,直接从干扰噪声中提取出目标信号是相对困难的。而常见的正弦信号检测方法有相敏检波法[5-6]、奇异值分解法[7]和变尺度性双耦合间歇混沌振子法[8],由于后面两种方法计算相对复杂,且适用范围比较局限,因此相敏检波法应用较广。运用相敏检波法,结合待检测正弦信号的特性所设计出的正弦信号检测系统,能够实现实时正弦信号的快速检测。该检测系统使用Visual C#语言[9]开发上位机控制软件,下位机基于STM32主控芯片设计,实现最高采样频率1 MHz,采样参数可控的一种正弦信号检测系统。
1 系统构成
本文设计的正弦信号检测系统由下位机硬件和上位机软件两部分构成。整个系统主要由上位机控制,控制系统的采样参数以及信号检测等。下位机硬件系统使用基于ARM的STM32F103RCT6作为主控芯片。系统整体结构如图1所示,主要包括将外部信号转化成适合ADC采集的信号调理模块、以STM32为核心的中央处理器、下位机与上位机建立通信基于CH340G转换芯片的UART/USB模块,以及对采集到的正弦信号检测的上位机模块。该系统由USB供电,通过按压开关控制电源开启,使用稳压芯片AMS1117-3.3将USB所提供的5 V电压转换成3.3 V电压后供给系统使用。STM32的PA1、PC11和PC12引脚控制信号调理模块的控制电平,使得外部信号转化成适合PA2采集的信号范围;PA2引脚为STM32片上ADC是12位逐次逼近型模数转换器[10],用来采集经过调理变换后的信号;PA9和PA10引脚作为串口通信端口,分别和CH340G芯片上的RXD和TXD相连,用来建立于上位机的通信。
图1 系统整体设计结构图
当系统开始采集检测外部正弦信号时,外部信号首先经过信号调理模块,上位机下发控制指令,通过STM32上的PA1、PC11和PC12引脚控制定时器触发ADC采集信号调理模块的输出电压。一方面,STM32通过PA2端口采集调理后的数据,并且通过串口转USB模块发送给上位机,上位机能够对接收到的信号进行信号检测,同时将检测结果保存在文件中;另一方面,STM32将采集到的数据通过LCD屏逐点显示出波形,方便观察正弦信号的波形。
2 程序设计
2.1 下位机程序设计
下位机总体流程如图2所示,当系统开机上电后,首先对下位机硬件电路初始化,包括串口、ADC、定时器、LCD显示等相应模块。初始化完成后,等待上位机下发控制指令,下位机接收到控制指令后对数据进行校验,判断下发的数据帧是否正确。若正确,将返回上位机配置成功指令,上位机会接收到成功配置的指令。若错误,将会返回上位机配置错误的指令,再次等待上位机的控制指令。配置完成后硬件系统中的ADC进行数据采集,通过串口将采集到的数据发送给上位机。同时,将采集到的数据通过LCD显示在屏幕上,方便查看数据波形。
图2 下位机软件总体流程图
2.2 通信程序设计
该系统由上位机下发指令控制,下位机接收到指令后返回握手指令对信号采集进行控制,通过这种方式提高系统的安全性和可靠性。上位机下发的控制指令格式包括指令头0xCD,控制字节0xXX、0xXX以及校验字节。
第一节控制字节在于控制系统采样频率,文中系统共设置了4种常用采样频率,分别对应0x00、0x01、0x10和0x11。第二节控制字节的功能为控制系统的采样周期,同样设置了4种采样周期,分别对应0xAA、0xAB、0xBA和0xBB。当上位机选择完配置参数,则下发控制命令,下位机接收到控制命令后对指令进行奇偶校验,校验完成后返回控制成功与否的握手指令。
返回指令格式包括指令头0xCF,成功或否指令0xEE、0xFF以及奇偶校验位。上位机接收到握手指令后首先对指令进行奇偶校验,校验完成后根据指令做出下一步操作。例如:当选择采样信号频率为1 000、采样频率为10 000、采样周期为10时,上位机通过判断参数下发控制指令0xCD+0x01+0xBA+校验字节。下位机接收到指令后对其进行奇偶校验,校验完成后成功返回握手指令0xCF+0xEE+校验字节,上位机接收到握手指令后等待下位机传输数据。
2.3 检测软件设计
2.3.1 检测原理
根据待检测信号的特点,即已知采样信号的频率,选择数字相敏检波算法对原始数据信号进行信号检测。相敏检波原理如图3所示,其中s(n)为待检测信号,cos(n)、sin(n)为基准信号s(n)的同频正交信号,待检测信号s(n)与基准信号cos(n)、sin(n)分别通过乘法器相乘,再通过低通滤波器,经滤波完成之后,进一步计算得出目标信号的幅度和相位。
图3 相敏检波原理图
待测信号s(n)为目标信号x(n)与噪声n0的叠加,表达式为:
式中:n0为噪声干扰,V;f为待检测信号频率,Hz;fs为系统采样频率,Hz;N为系统采样点。
同频正交信号sin(n)和cos(n)为:
s(n)与其同频正交信号sin(n)和cos(n)分别相乘有:
使两路信号通过低通滤波后可得:
最后由公式
得出目标信号的幅值和频率。
2.3.2 低通滤波器设计
由上述推导过程可以判断出,一个最优化低通滤波器的设计直接关系到检测算法的误差大小。而数字平均式滤波是常用的一种低通滤波器,其原理如图4所示。
图4 低通滤波器框图
式中:N为系统平均点数,TS为时间间隔。则该低通滤波器的冲激响应函数h(t)为:
对式(8)做傅里叶变换,得到低通滤波器的系统函数H(jω)为:
所对应的幅度频率响应为:
把ω=2πf,Ts=1/fs代入上式,有:
要使低通滤波器的滤波特性最优,即使 |H(jf)|最小,则有:
此时 |H(jf)|=0。
通过上述推导过程得知,当采样点数N、采样频率fs以及信号频率f满足式(12)的关系,即满足整周期采样条件时,能够达到低通滤波器最优化的条件。
2.3.3 上位机程序设计
上位机软件的作用在于控制下位机的采样参数,以及对采样数据的检测处理保存。
上位机软件流程如图5所示。整体流程为先与下位机建立通信,再选择采集信号频率、采样频率以及采样周期,选择完成后下发控制指令,接着等待下位机返回握手指令,并且对返回指令做出判断,判断是否成功控制下位机的采样参数,若控制成功,则等待下位机上传采集数据;若失败,则再次下发控制指令,直到控制成功。最后,将接收到的采集数据进行信号检测,将检测结果保存在文件中,方便下次查阅。
图5 上位机软件流程图
3 实验结果及分析
选用频率为1 kHz和5 kHz的正弦信号对检测系统进行仿真验证。向信号中叠加输入不同大小信噪比的随机高斯白噪声验证其抗噪声效果,这里信噪比定义为信号功率与噪声功率之比。①固定采样频率为采样信号频率的10倍,采样周期为10,改变信噪比的大小,检测1 000次均值作为检测值,得到表1相对误差结果,这里相对误差定义为绝对误差与真值之比。从表1结果看,当信号中不含噪声时(Null),幅度和相位误差均小于10-8,则证明上述相敏检波算法推导过程及实现算法正确。在采样频率和采样周期数不变的情况下,当改变信噪比大小,幅度和相位误差会随着信噪比的减小而增大。②固定采样周期为10且信噪比为0,变化采样频率,得到见结果表2。从表2可以看出,固定采样周期数和信噪比大小,随着采样频率的不断增大,幅度和相位相对误差不断缩小。③固定采样频率为采样信号频率10倍,信噪比为0时,观察不同采样周期对信号检测的结果,见表3。从表3结果可以看出,当信噪比和采样频率倍数不变的情况下,随着采样周期数变大,相位和幅度相对误差不断缩小。
表1 信噪比对检测结果的影响 /%
表2 采样频率对检测结果的影响 /%
表3 采样周期数对检测结果的影响 /%
4 结论
针对感应测井正弦信号,设计实现了一种正弦信号检测系统,系统硬件基于STM32主控芯片,上位机软件以数字相敏检波算法为基础,同时在频域内分析数字平均式低通滤波器的频谱特性,突出滤波器最优化响应条件,在约束条件下设计出了上位机检测软件。通过设计实验验证得知,该系统能够在信噪比低至-5 dB的高噪声背景下将幅度相对误差控制在4.7%以内,相位相对误差控制在7.7%以内。当采样周期数和信噪比大小不变时,随着采样频率的不断增大,幅度和相位的相对误差在不断缩小。当采样频率增至20倍时,幅度和相位相对误差控制在0.3%和0.06%以内。控制信噪比和采样频率倍数不变,增大采样周期数,相位和幅度相对误差不断缩小。当采样周期数增大至15个周期数时,幅度和相位相对误差控制在0.001%和0.015%以内。可见所设计的正弦信号检测系统在实际应用中可满足大多数检测需求。