张扬 肖世德
(西南交通大学机械工程学院,四川成都610031)
关键词:虚拟仪器集成电路通信C语言信号处理时域频域测量仪器滤波干扰傅里叶变换
0引言
虚拟仪器技术是伴随着集成电路、计算机技术和通信技术的迅速发展而产生的。它通过软件将仪器与计算机有机地融合为一体,从而把计算机强大的数据计算处理能力和仪器硬件的测量、控制能力结合在一起,大大减少了仪器硬件成本,并且显著缩小了仪器体积。与传统的固定仪器相比,用户可以根据需求,灵活地对虚拟仪器进行功能设计、维护和系统升级。
目前能够用于虚拟仪器系统开发且比较成熟的开发工具可以分为两类:第一类是通用的可视化编程软件,主要有Microsoft公司的Visual C++和VisualBasic等;第二类是专用于虚拟仪器开发的编程软件,主要有NI公司图形化的编程环境LabVIEW和文本语言的编程环境LabWindows/CVI,以及NI公司和Microsoft合作开发的Measurement Studio等。
多功能虚拟信号分析仪设计所采用的LabWindows/CVI是以ANSIC为核心的交互式C语言开发平台,它将功能强大、使用灵活的C语言平台与用于数据采集分析和显示的测控专业工具有机地结合起来。利用集成化开发环境、交互式编程方法、函数面板和丰富的库函数大大增强C语言的功能,为C语言的开发设计人员编写检测系统、自动测试环境、数据采集系统、过程监控系统等应用软件提供了一个理想的软件开发环境。
1 信号采集与处理的关键技术
信号处理是指对信号进行某种加工变换或运算(如滤波、变换、估计、识别等)。广义的信号处理可把信号分析也包括在内。信号处理包括时域和频域处理。时域处理中最典型的是波形分析,例如示波器就是一种最通用的波形分析和测量仪器。把信号从时域变换到频域进行分析和处理,可以获得更多的信息。
因此频域处理更为重要。信号处理主要是滤波,把信号中感兴趣的部分(有效信号)提取出来,抑制(削弱或滤除)不感兴趣的部分(干扰或噪声)。
1.1 信号时域处理的关键技术
时域分析是对信号的时域波形的分析,从记录的信号中提取各种有用的信息或将记录的信号转换成所需要的形式。通过不同的时域处理方法,可以确定实测波形的幅值和时间历程。通常时域分析包括信号参数测试(峰值、有效值、均值等)、自相关、微积分、抽取等分析算法。
1.1.1 自相关分析
在测试结果的分析中,相关是一个非常重要的概念。相关是指变量之间的线性关系。变量x、y之间相关程度可以用相关系数p,,来表示:
式中:E为数学期望;u、u,分别为x、y,的均值;σ。σ,分别为x、y的标准差。
设x(t)是某各态历经过程的一个记录样本(所谓各态历经过程是指样本的集合平均等于时间平均),x(t+下)是x(t)时移f后的样本。x(t)的自相关函数定义为:
设x(t)、x(t+T)的相关系数为p(;),(。+,),简写作Px(下)。因为z(t+r)、x(t)具有相同的均差和标准差,所以:
1.1.2互相关分析
两个随机信号x(t)和y(t)的互相关函数R。(7.)定义为:
式(13)、(14)为离散傅里叶变换对,在时频域均为有限长且都是离散的。
在实际工作中,常常遇到的是非周期序列,可能是有限长,也可能是无限长。若x(n)是有限长,则令其长度为N;若x(n)为无限长序列,则可用矩形窗将其截成N点,然后把这N点序列视为一个周期序列x(n)的其中一个周期,也就是说x(n)是由x(n)做周期延拓形成的。
谱估计的另一种算法是间接法。使用间接法时,先由x(n)估计出信号的自相关函数r(m),然后对其求傅里叶变换,得到x(n)功率谱。
1. 2.3互功率谱密度分析
互功率谱密度分析类似于自功率谱密度,如果信号x(t)和y(t)的互相关函数Rxy(下)满足傅里叶变换的条件:
则信号x(t)和y(t)的互功率谱密度函数定义为:
对于一个单输入单输出的线性系统,设系统的频率响应为H(f,若其输入为x(t),输出为y(t),则有:
故由输入信号的自功率谱和输入输出的互功率谱就可以直接得到系统的频率响应函数。所得到的H(f)不仅含有幅频特性,而且含有相频特性。
对于Ⅳ点离散序列x(n)、y(n),设其傅里叶变换为X(k、Y(k),LabWindows/CVI使用的互谱计算公式为:
2虚拟信号分析仪的设计
本文设计的双通道多功能虚拟信号分析仪共由两大部分组成:硬件部分和软件部分。
2.1硬件部分
系统硬件采用某公司的STM32 F4开发板。使用STM32F407ZGT6内部ADC对信号进行采样。由于外部输入信号可能有负压部分,因此需要对信号进行平移。输入级采用1 Mfl下拉电阻接同相放大器的结构(下拉电阻在原理图上未画出),使输入阻抗约为1 MQ。经过缓冲结构后,将信号与参考源产生的1.5 V直流电压相加,结构采用同相加法器,如图1所示。
为了在缓冲级能够处理直流信号和负压信号,运放部分需要采用双电源供电,而开发板提供的电压只有+5 V和+3.3 V两种。由于这里需要的电流较小、噪声小,所以采用反向电荷泵来产生-3.3 V的电压,采用的芯片为TPS60400,仅需3个外部1 F电容即可以产生-3.3 V,使得整体电路简单方便。具体电路如图2所示。
参考源采用TL431产生2.495 V的电压,通过两个电阻分压产生1.5 V的参考电压,经过运放缓冲给加法器提供参考。具体电路如图3所示。
2.2 软件部分
软件部分按功能划分为上位机和下位机。上位机负责数据处理与人机交互,下位机负责信号采样。上位机和下位机之间采用开发板自带的USB串口通信。
2.2.1上位机部分
上位机共有两个线程。第一线程利用中断的方法,主要对面板的按键和文本输入框等控件进行响应,以获取用户的设置信息。第二线程的软件流程图如图4所示,主要负责数据的采集和信号的显示。
2.2.2串口通信
波特率设置为115 200 bit/s,信号位8位,1位终止位,无校验。上位机的串口设置为1~ 15,检测不到串口时会有提示,此时检查连线,若连线正常,打开控制面板_+设备管理器,查看开发板的端口号是否在1~15内,若不在,修改端口号。
2.2.3下位机部分
(1)下位机的主函数流程图如图5所示,主函数主要执行两个任务,一是各模块的初始化(系统时钟、ADC、定时器、串口),二是循环检测串口是否接收到数据。为了防止误收数据,设定采样率必须以“SR” (SampleRate)开头,后跟两个8位数据有效,并且为了防止设置的采样率过高,与Oxlfff按位与,使设定的采样率不大于4 096个/s。
(2) ADC采用PBO(ADC1通道8)PC4(ADC1通道14),具体设定如下。
(3)串口的端口配置和初始化设置如下。
(4)系统时钟采用168 MHz即可满足要求,定时器的设定时间公式为:
式中:Te.。为TIM3的输入时钟频率,MHz;To。。为TIM3溢出时间,us。
为了使采样率从1—4 096之间步进1时,有采样间隔时间的改变,设置分频系数(psc)为839,这样采样率与定时器计数个数( arr)之间的关系为arr=100 000/SR -1。因此需要改变采样率时,只需要根据公式计算出arr的值并修改定时器中断时间即可。这里为了分辨X通道和Y通道的数据,在两组数据发送前,发送“X”和“Y”以作区分。ADC采样为12位数据,因此传递数据时需要先发高8位再发低8位。定时器中断流程图如图6所示。
3 系统功能测试
将温度传感器LM35输出端接入X通道,此时信号分析仪经测试得到该信号平均值为0.252 V,有效值也为0.252 V,万用表测得传感器LM35输出电压为219 mV。
将两个温度传感器LM35输出端分别接入X和Y通道,信号分析仪经测试得到X通道信号平均值为0. 249 V,有效值为0.250 V,万用表测得连接X通道的传感器LM35输出电压为221 mV;Y通道信号平均值为0.232 V,有效值为0.233 V,万用表测得连接Y通道的传感器LM35输出电压为228 mV。
使用函数发生器产生一个该信号分析仪量程内的正弦波,分别连接到示波器和本信号分析仪输入端,两者显示效果相近,测试结果符合预期要求。
4结束语
传统仪器功能相对单一,并且不容易进行扩展。为顺应仪器发展的趋势,需要进行虚拟仪器的研究设计。在LabWindows/CVI环境下,通过硬件电路设计及上位机和下位机软件的编写,开发完成了虚拟信号分析仪,尤其是采用多线程数据采集技术,在响应用户操作方面取得了比较明显的效果。通过测试,该仪器能够完成数据采集、实现信号时域波形显示、相关性计算以及统计信息实时显示线性振幅谱等功能,结果正确可靠,表明了推广发展虚拟仪器的可行之性。
5摘要:针对目前传统信号分析仪功能单一、修改不易、使用不便等缺点,以LabWindows/CVI为平台,研究开发了一种多功能虚拟信号分析仪。设计时把人机交互界面的响应处理和信号采集与显示分开成两个线程运行,大大缩短用户操作的等待时间,提高了系统运行效率。该信号分析仪具备伪随机信号产生、双通道信号采集、时域分析、频谱分析、互相关函数计算等功能。实验测试表明,该虚拟信号分析仪基本功能完全实现,信号分析结果正确,说明了推广发展虚拟仪器的可行性和必要性。