首页> 中国专利> 一种基于FPGA和减法电路的正弦信号相位差测量方法

一种基于FPGA和减法电路的正弦信号相位差测量方法

摘要

一种基于FPGA和减法电路的正弦信号相位差测量方法,包括以下步骤:1)根据被测量信号的频率以及幅值,利用FPGA以及D/A转换模块生成两路相同频率相同幅值的正弦信号;2)将两路相同频率相同幅值的正弦信号经过减法电路进行相减,得到一路正弦信号;3)将相减得到的一路正弦信号进行滤波、放大以及A/D采样之后传输给FPGA的RAM中;4)将存在RAM中的波形数据传给上位机的显示控制软件,并读取其峰峰值;5)拟合出两路正弦信号之间的相位差与A/D采样峰峰值之间的线性关系式并写入到上位机程序里面,从而实现两路正弦信号之间相位差的检测。本发明提硬件电路简单以及不涉及复杂的算法,并且可以有效的提高测量的精度。

著录项

  • 公开/公告号CN107561360A

    专利类型发明专利

  • 公开/公告日2018-01-09

    原文格式PDF

  • 申请/专利权人 浙江工业大学;

    申请/专利号CN201710727323.4

  • 申请日2017-08-23

  • 分类号

  • 代理机构杭州斯可睿专利事务所有限公司;

  • 代理人王利强

  • 地址 310014 浙江省杭州市下城区朝晖六区潮王路18号

  • 入库时间 2023-06-19 04:16:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-11-05

    授权

    授权

  • 2018-02-02

    实质审查的生效 IPC(主分类):G01R25/00 申请日:20170823

    实质审查的生效

  • 2018-01-09

    公开

    公开

说明书

技术领域

本发明涉及相位差测量领域,尤其是一种两路同频正弦信号之间相位差的测量方法。

背景技术

相位差是指两路同频信号之间相位的差值,又叫做相差。对于两路同频的正弦信号,其相位差等于这两路正弦信号的初始相位之差,是一个不随着时间变化而变化的常数。近些年来,两路同频正弦信号之间相位差的测量在信号分析、工业自动化、智能控制、电子及通信技术、生物医学、雷达、声纳、污水处理等领域都有着广泛的应用。精确地测量由传感器接收到的两路正弦信号之间的相位差具有重要的意义。例如,一路频率为4KHz的正弦号经过水溶液之后,反射回来的信号的相位会根据水溶液中溶解氧浓度的大小而发生相应的变化,通过测量反射回来的信号与参考信号之间的相位差,便可以精确地检测出水中溶解氧浓度。

信号相位差的测量方法可以分成软件计算法和硬件电路法。软件计算法又可以分成两大类,一种是时域范围内的处理方法,也就是说所有信号处理都是在时域范围内进行的;另一种是频域范围内的处理方法,即把信号从时域变换到频域,然后按照信号在频域范围内的频率特性来对信号进行处理。时域范围内的处理方法的最大的优点是信号的处理方法比较简单、直观,而且易于实现,但是在检测过程中,存在许多因素导致测量结果有很大的不确定性,致使测量精度比较低。频域范围内的处理方法对噪声具有一定的抗干扰能力,但该方法需要对样本实施严格的整周期采样,否则会导致频谱泄露以及频谱栅栏效应,并最终导致较大的测量误差。而以往的硬件电路法主要是过零检测法,根据两路信号过零点的时间差来计算相位差,计算速度快,但硬件成本高、抗干扰能力弱、测量精度低。因此,现有的信号相位差测量方法硬件电路复杂,测量误差较大,且测量精度低。

发明内容

为了克服现有测量正弦信号相位差的方法测量误差大、测量精度低的不足,本发明提供一种基于FPGA和减法电路的正弦信号相位差测量方法,其硬件电路简单以及不涉及复杂的算法,并且可以有效的提高测量的精度。

本发明解决其技术问题所采用的技术方案是:

一种基于FPGA和减法电路的正弦信号相位差测量方法,包括以下步骤:

1)根据被测量信号的频率以及幅值,利用FPGA以及D/A转换模块生成两路相同频率相同幅值的正弦信号;

2)将两路相同频率相同幅值的正弦信号经过减法电路进行相减,得到一路正弦信号;

3)将相减得到的一路正弦信号进行滤波、放大以及A/D采样之后传输给FPGA的RAM中;

4)将存在RAM中的波形数据传给上位机的显示控制软件,并读取其峰峰值;

5)拟合出两路正弦信号之间的相位差与A/D采样峰峰值之间的线性关系式并写入到上位机程序里面,从而实现两路正弦信号之间相位差的检测。

进一步,所述步骤1)中,首先确定被测量信号的频率以及幅值,通过调用FPGA内的两个DDS IP核,将正弦函数的数值取出来,经过D/A转换分别生成两路相同频率相同幅值的正弦信号,通过设置第二路取DDS IP核里数值的起点使两路正弦信号具有一定的相位差,可以将两路正弦信号分别表示成如下的式(1)与式(2):

x1(t)=Asin(2πft+ψ1)(1)

x2(t)=Asin(2πft+ψ2)(2)

其中,A为正弦信号的幅值,f为正弦信号的频率,ψ1,ψ2分别为两路正弦信号的初始相位。

再进一步,所述步骤2)中,将两路同频同幅的正弦信号经过模拟减法器进行相减,即将上面的式(1)与式(2)相减,其结果如下面的式(3)所示:

其中,Δψ=ψ21,即为两路正弦信号的相位差;这里做近似时,其相位差Δψ的单位用弧度表示。

从式(3)可以看出将两路同频同幅的正弦信号相减之后得到的是一路相同频率的正弦信号,其幅值是关于相位差的函数,通过测量相减之后得到的正弦信号的峰峰值测得两路正弦信号之间的相位差。

利用减法测两路正弦信号之间的相位差时要求两路正弦信号频率和幅值必须相同,而实际测量的两路正弦信号的幅值有可能不相同,因此在硬件电路中设计了自动增益控制(Automatic Gain Control,AGC)电路,可以将被测量的两路正弦信号调整为相同的幅值之后再进行相减,为了不改变他们之间原始的相位差,被测量的两路正弦信号分别经过相同拓扑结构的AGC电路,把他们的幅值都调整为相同之后再进行相位差的测量。

更进一步,所述步骤3)中,将相减得到的一路正弦信号进行滤波、放大以及A/D采样之后传输给FPGA的RAM中,过程如下:

(3.1)将相减之后得到的一路正弦信号进行滤波

两路正弦信号相减之后得到的正弦信号需要经过带通滤波器滤除无用频率的信号,同时保留特定频率的正弦信号,为了提高A/D采样信号的质量,这里设计了四阶带通滤波器,其通带频率需要根据被测量信号的频率来设置。因为我们需要测量的是频率为4KHz的两路正弦信号之间的相位差,所以带通滤波器的通带频率设置为3KHz~5KHz之间。

(3.2)将经过滤波之后的信号进行放大

两路信号相减得到的正弦信号其幅值取决于相减的两路正弦信号的幅值以及他们之间的相位差,如果两路正弦信号之间的相位差很小时,相减之后得到的正弦信号的幅值也会很小,需要经过放大之后才能被精确的检测出来,在硬件电路中设计了三级运算放大器,并且每一级运算放大器之后都连接有A/D采样芯片,上位机可以对每一级放大之后的结果进行单独读取。

(3.3)通过A/D采样芯片将放大之后的信号传输给FPGA的RAM中

经过带通滤波器得到的正弦信号是双极性的,而A/D采样芯片采用5V单极性供电,在A/D采样之前必须进行电压的抬升,保证进A/D芯片的电平都是正值。在触发电路产生的触发信号为高电平时,控制A/D芯片工作,以1.25MHz的采样频率采集放大之后的模拟信号,将采集到的12bit数字信号存在FPGA的RAM中,方便上位机的读取。触发信号为低电平时,停止采集。

更进一步,所述步骤4)中,将存在RAM中的波形数据传给上位机的显示控制软件,并读取其峰峰值,步骤如下:

(4.1)读取波形的最大值以及最小值

将存在RAM中的波形数据传给上位机的显示控制软件,上位机每读取到一个数值都与当前的最大值以及最小值进行比较,同时更新最大值以及最小值,直到读取一个周期的所有数据为止,最后得到读取波形的最大值以及最小值。

(4.2)给出波形峰峰值

将读取到的一个整周期内的波形的最大值以及最小值相减便得到波形的峰峰值,为了减小误差,可以读取10个周期波形的峰峰值,然后进行平均之后给出最终的波形峰峰值。

更进一步,所述步骤5)中,FPGA与上位机控制软件之间通过串口进行通讯。上位机控制软件以一个固定的步径(一般是1°相位差所对应的时差)控制FPGA中第二路DDS IP核里取数值的起点,使FPGA产生的两路正弦信号具有不同的相位差,上位机控制软件读取一系列相位差所对应波形的峰峰值。根据不同相位差所对应的正弦信号峰峰值数据信息,拟合出他们之间的线性关系式。由于在公式(3)中做了一个近似,所以拟合线性关系式的时候必须是分段进行拟合,一般是每间隔10°进行线性拟合会比较好,即分别在0°~10°,10°~20°……80°~90°之间分别进行拟合。把拟合所得到的线性关系式写入到上位机程序里面,便可以实现两路同频同幅正弦信号之间相位差的测量。针对被测量信号幅值不相同的情况下,可以先通过AGC电路把他们的幅值调整为相同之后再进行相位差的测量。

本发明的技术构思为:随着电子科学技术的发展,精确地测量由传感器接收到的两列正弦信号之间的相位差技术已经深入到许多领域,在信号分析、工业自动化、智能控制、电子及通信技术、生物医学、雷达、声纳、污水监测等领域都有极其普遍的应用。因此,对两路同频的正弦信号之间的相位差实现精确的测量具有非常重要的意义。

两路同频同幅的正弦信号相减之后得到的是相同频率的一路正弦信号,其幅值是关于相位差的sin函数,当两路正弦信号相位差较小时,相减之后得到的正弦信号的幅值是关于相位差的线性函数。利用两路同频同幅正弦信号相减之后的这一特点,可以设计一模拟减法电路用来测量同频同幅的两路正弦信号之间的相位差。

首先是根据被测量信号的频率以及幅值,利用FPGA去生成两路相同频率相同幅值的正弦信号,然后进行相减、放大以及滤波,最后经过A/D转换,将波形数据通过串口传给上位机控制软件,读取其波形的峰峰值。通过上位机控制软件以一定的步径改变两路正弦信号之间的相位差,读取对应的波形峰峰值,拟合出两路正弦信号之间的相位差与AD采样峰峰值之间的线性关系式,将线性关系式写入到上位机程序便可以实现测量两路同频同幅的正弦信号之间的相位差。针对被测量信号幅值不相同的情况下,可以先通过AGC电路把他们的幅值调整为相同之后再进行相位差的测量。与其他的测量正弦信号相位差的方法相比,其硬件电路相对简单,不涉及算法,而且提高了测量的精度。

本发明的有益效果主要表现在:硬件电路简单,不涉及算法,测量精度较高。

附图说明

图1为一种基于FPGA和减法电路的正弦信号相位差测量方法的流程图。

具体实施方式

下面结合流程图对本发明做进一步描述。

参照图1,一种基于FPGA和减法电路的正弦信号相位差测量方法,包括以下步骤:

1)根据被测量信号的频率以及幅值,利用FPGA以及D/A转换模块生成两路相同频率相同幅值的正弦信号:

首先确定被测量信号的频率以及幅值,通过调用FPGA内的两个DDS IP核,将正弦函数的数值取出来,经过D/A转换分别生成两路相同频率相同幅值的正弦信号,通过设置第二路取DDS IP核里数值的起点使两路正弦信号具有一定的相位差,可以将两路正弦信号分别表示成如下的(1)式与(2)式:

x1(t)=Asin(2πft+ψ1)(1)

x2(t)=Asin(2πft+ψ2)(2)

其中A为正弦信号的幅值,f为正弦信号的频率,ψ1,ψ2分别为两路正弦信号的初始相位。

2)将两路同频同幅的正弦信号经过模拟减法器进行相减,得到一路正弦信号:

将两路同频同幅的正弦信号经过模拟减法器进行相减,即将上面的(1)式与(2)式相减,其结果如下面的(3)式所示:

其中Δψ=ψ21,即为两路正弦信号的相位差。这里做近似时,其相位差Δψ的单位用弧度表示。

从(3)式可以看出将两路同频同幅的正弦信号相减之后得到的是一路相同频率的正弦信号,其幅值是关于相位差的函数,可以通过测量相减之后得到的正弦信号的峰峰值测得两路正弦信号之间的相位差。

利用减法测两路正弦信号之间的相位差时要求两路正弦信号频率和幅值必须相同,而实际测量的两路正弦信号的幅值有可能不相同,因此在硬件电路中设计了自动增益控制(Automatic Gain Control,AGC)电路,可以将被测量的两路正弦信号调整为相同的幅值之后再进行相减,为了不改变他们之间原始的相位差,被测量的两路正弦信号分别经过相同拓扑结构的AGC电路,把他们的幅值都调整为相同之后再进行相位差的测量。

3)将相减得到的一路正弦信号进行放大、滤波以及A/D采样之后传输给FPGA的RAM中:

(3.1)将相减之后得到的一路正弦信号进行滤波

两路正弦信号相减之后得到的正弦信号需要经过带通滤波器滤除无用频率的信号,同时保留特定频率的正弦信号,为了提高A/D采样信号的质量,这里设计了四阶带通滤波器,其通带频率需要根据被测量信号的频率来设置。因为我们需要测量的是频率为4KHz的两路正弦信号之间的相位差,所以带通滤波器的通带频率设置为3KHz~5KHz之间。

(3.2)将经过滤波之后的信号进行放大

两路信号相减得到的正弦信号其幅值取决于相减的两路正弦信号的幅值以及他们之间的相位差,如果两路正弦信号之间的相位差很小时,相减之后得到的正弦信号的幅值也会很小,需要经过放大之后才能被精确的检测出来,在硬件电路中设计了三级运算放大器,并且每一级运算放大器之后都连接有A/D采样芯片,上位机可以对每一级放大之后的结果进行单独读取。

(3.3)通过A/D采样芯片将放大之后的信号传输给FPGA的RAM中

经过带通滤波器得到的正弦信号是双极性的,而A/D采样芯片采用5V单极性供电,在A/D采样之前必须进行电压的抬升,保证进A/D芯片的电平都是正值。在触发电路产生的触发信号为高电平时,控制A/D芯片工作,以1.25MHz的采样频率采集放大之后的模拟信号,将采集到的12bit数字信号存在FPGA的RAM中,方便上位机的读取。触发信号为低电平时,停止采集。

4)将存在RAM中的波形数据传给上位机的显示控制软件,并读取其峰峰值,步骤如下:

(4.1)读取波形的最大值以及最小值

将存在RAM中的波形数据传给上位机的显示控制软件,上位机每读取到一个数值都与当前的最大值以及最小值进行比较,同时更新最大值以及最小值,直到读取一个周期的所有数据为止,最后得到读取波形的最大值以及最小值。

(4.2)给出波形峰峰值

将读取到的一个整周期内的波形的最大值以及最小值相减便得到波形的峰峰值,为了减小误差,可以读取10个周期波形的峰峰值,然后进行平均之后给出最终的波形峰峰值。

5)拟合出两路正弦信号之间的相位差与A/D采样值之间的线性关系式并写入到上位机程序里面,从而实现两路正弦信号之间相位差的检测:

FPGA与上位机控制软件之间通过串口进行通讯。上位机控制软件以一个固定的步径(一般是1°相位差所对应的时差)控制FPGA中第二路DDS IP核里取数值的起点,使FPGA产生的两路正弦信号具有不同的相位差,上位机控制软件读取一系列相位差所对应波形的峰峰值。根据不同相位差所对应的正弦信号峰峰值数据信息,拟合出他们之间的线性关系式。由于在公式(3)中做了一个近似,所以拟合线性关系式的时候必须是分段进行拟合,一般是每间隔10°进行线性拟合会比较好,即分别在0°~10°,10°~20°……80°~90°之间分别进行拟合。把拟合所得到的线性关系式写入到上位机程序里面,便可以实现两路同频同幅正弦信号之间相位差的测量。针对被测量信号幅值不相同的情况下,可以先通过AGC电路把他们的幅值调整为相同之后再进行相位差的测量。

实验结果:在测试数据时,我们利用FPGA以及D/A转换生成的是幅值为1V,频率为4KHz的正弦信号,以步径为1°进行设置两路正弦信号之间的相位差,测试了0°~60°之间所对应的AD采样值,根据所测试的数据分段进行拟合出相位差与AD采样值之间的线性曲线关系式,其关系式如下所示:

Δθ=12.668U-0.0188(0.0015<U≤0.9255)(4)

Δθ=12.989U-0.3159(0.9255<U≤1.5294)(5)

Δθ=13.718U-1.4308(1.5294<U≤2.3789)(6)

Δθ=14.140U-2.4385(2.3879<U≤3.2252)(7)

Δθ=14.589U-3.8866(3.2252<U≤3.6703)(9)

Δθ=14.990U-5.3584(3.6703<U≤4.3600)(10)

其中,Δθ为两路正弦信号的相位差(单位为°),U为AD采集到的正弦信号的峰峰值(单位为V)。

上面所拟合的6个线性关系式的R2(即拟合度)在0.9997~1之间,表明相位差与A/D采样值之间具有很好的线性关系,把上面的式(4)~(10)写到程序里面,便可以实现测量频率为4KHz的两路正弦信号之间的相位差。

A/D采集采用的是ADS7883芯片,12位分辨率,串行输出,5V精准电压进行供电。结合上面的式(4)~式(10)可以得出,其相位差的测量精度可以达到0.018°,实际的测量误差也是在±0.02°以内。两路正弦信号经过模拟减法器之后只是进行了一级放大,如果再进行一级或者两级放大,其测量精度可以进一步提高,只是测量的范围相对来说会有所减小。此相位差的测量方法相比其他测量方法来说,硬件电路简单,不涉及复杂的算法,而且精度有所提高,可以得到一定的应用。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号