仪器吧 关注:18,438贴子:44,503
  • 0回复贴,共1

Namisoft基于LABWINDOWS CVI的虚拟频谱分析仪设计

只看楼主收藏回复

0 引 言
仪器技术、计算机通信技术与网络技术是信息技术的最重要组成部分,它们被称为21世纪科学技术的三大核心技术。而仪器仪表的生产一直被当作一个国家科技实力的体现 ,由于历史原因,我国在高性能仪器生产上与世界先进水平还有一定的差距,这在客观上对于我国科技发展是一个限制。虚拟仪器的出现,极大程度的推动了仪器仪表事业的发展。由于不再需要复杂的生产工艺,仅仅依靠计算机硬件平台,通过软件就可以实现一些传统上由于工艺限制而不能实现的仪器,这对于我国仪器仪表事业的发展是一个契机。
Labwind0ws/CⅥ是基于标准C语言的集成软件开发环境,其开发虚拟仪器的步骤主要是先确定程序的基本框架 ,创建用户界面,然后完成程序代码的编写 ,最后创建工程文件,将程序文件、头文件、用户界面文件加入工程中,编译调试生成可执行文件。加下来,我们就Namisoft的角度对频谱仪程控软件做一个分析。
1 虚拟频谱分析仪设计
1.1 虚拟频谱分析仪的硬件组成
Namisoft根据虚拟仪器“软件 +数据采集设备”就是硬件的思想,通过计算机平台连接数据采集设备,通过软件控制数据采集设备来实现真实仪器的功能。虚拟仪器的硬件组成主要包括计算机平台和 I/0接口设备。I/0接口设备主要是用来进行信号的采集和调理 。根据接口硬件的不同,虚拟仪器的构成可以分为 PC—DAQ系统、GPIB系统 、VXI系统、PXI系统、串口系统等类型。
Labwindows/CVI内置了强大的驱动函数库 ,对于大多数据采集设备 ,我们不用为其编写复杂的驱动程序,调用其内置的函数库就可以。这极大的方便了用户对于虚拟仪器的开发和使用。
1.2 Namisoft针对虚拟频谱分析仪的软件设计
虚拟频谱分析仪是利用 FFT算法 ,对时域信号进行傅里叶变换,从而获得信号 的频域信息 ,并对其频谱、功率谱、能量谱等进行分析。其结构如图 1所示 :

图 1 虚拟频谱分析仪软件结构
1)波形显示模块
Labwindows/CVI提供 了 Graph、StripChart等图表控件 Graph控件用来图形化显示数据,而 StripChart可以绘制动态信号曲线。由于需要动态显示信号频谱图,所以本设计采用 StripChart控件作为信号显示面板 。Labwindows/CVI的时间轴是通过采样点数来表示的 ,所以我们需要通过对采样点数与采样频率的换算 ,确定每点的信号频率作为 X轴的坐标。将 x轴坐标与中心频率、带宽控件相联系,可以仿真真实频谱分析仪来显示信号的频谱 。
具体 实 现 上 利 用数 组 X来 存储 x 轴 频 率 坐 标 ,frequency是中心频率 ,span是带宽。采样点数与频率对应的关系如下式所示 :
X[O]=frequency-span/2;
X[n]=(frequency-span/2)+(span/wavepoint)*n;
2)信号产生模块
Namisoft通过 Labwindows/CVI的函数库 ,利用 SinePattern、WhiteNoise、Pulse、Chirp等函数可以产生正弦、白噪声、冲击等常见的信号波形 ,并可 以实现 幅值 、相位、周期 的调节。利用这些仿真波形可以进行仿真信号的频谱分析 。
由于 CVI自带的信号产生函数比较简单,可调参数较少,我们可以运用 C语言来 自己编写常用仿真信号。这样可以有效的解决 CVI中没有时间的问题 ,从而方便的获得信号的频率与周期。以三角波的产生为例 ,设 n为总采样点数。我们 以 n/4,3n/4为采样的节点分三段来表示 波形。其中scope是增益,pointnum是采样点数。
X[n]=4*i*scope/pointnum;
x[n]=4*i*scope/pointnum+2*scope;
x[n]=4*i*scope/pointnum-4*scope;
3)加窗模块
在信号分析中,几乎所有信号都是有限长度的,因而,对于连续信号就要进行截断 ,这就用到了窗函数。
Labwindows/CVI中提供了多种窗函数。如海宁窗(Hanning)、海明窗(Hamming)、布拉 克曼窗(Blackman)以及凯赛窗(Kaiser)等 。都可以直接作用于信号,得到处理后的结果。图 2显示了正弦信号在加如海宁窗函数后的信号波形图。

4)滤波器功能模块
Namisoft使用滤波器对信号进行滤波 ,可以得到想要的频率分量。滤波器分模拟滤波器和数字滤波器 。可以软件实现的只有数字滤波器 。
数字滤波器的设计分两大类,即无限冲击响应滤波器(IIR滤 波器 )和有限冲击响应滤波器 (FIR滤波器 )。两种滤波器各有特点 ,IIR滤波器可以较好的保留幅值频率特性,而 FIR滤波器可以实现相位的不失真。在实际应用中,若要注重幅值特性则选择前者,若对相位信息有很高要求则选择后者 。
Labwindows/CVI中提供了大量的滤波器设计函数。Namisoft此次设计实现了FIR和 IIR滤波器。IIR滤波器有常用的巴特沃思、切比雪夫滤波器等。FIR则是以窗口法构造FIR滤波器 。
5)频谱分析模块
频谱分析主要实现时域波形的 FFT变换、功率谱、幅值谱以及相位谱的计算和显示。快速傅里叶变换是信号谱分析的关键。通过 Labwindows/CVI中的 fft函数可以快速计算出信号的频域信息。但是由于考虑到我们处理的都是实序列信号,现在通过用 N点的复序列离散傅里叶变换的方法来计算 2N点实序列傅里叶变换的方法。假设x(n)是长度为 2N 的实序列 ,其离散傅里叶变换为 :

为有效的计算傅里叶变换 X(k),将 x(n)分为偶数组和奇数组 ,形成两个新序列 f(n)和 g(n),然后将 f(n)和g(n)组成一个复序列 h(n),用 FFT计算 h(n)的 N点傅里叶变换 H (k),求得 F(k)和 G(k)后 ,利用下面的蝶形运算可以计算的离散傅里叶变换

这种实序列 FFT 算法比相同长度的复序列 FFT算法可以减少一半的计算量。获得时域信号的频谱后 ,我们可以利用AutoPowerSpectrum(),AmpPhaseSpectrum()函数获得信号的功率谱、相位谱以及幅值谱。
按照Namisoft Labwindows/CVI的设计流程,设计完成频谱分析仪各功能模块。得到虚拟仪器如图3所示。

图 3 虚拟频谱分析仪功能面板
2 结论
虚拟仪器的出现对于测试测量行业是一个转折点 ,它意味着我们可以根据 自己的需要随时随地的通过对虚拟仪器软件模块的更改而改变仪器的性能。但是,想要完成一个高性能的虚拟测试系统的开发仍然很困难。不同的接口总线之间的不可交换性,使得我们必须得为每一种接口总线开发不同的硬件驱动程序 ,从而降低了虚拟仪器的通用性。高性能虚拟仪器接口电路的复杂与数据高速测量需求之间的矛盾也是制约其广泛应用的原因。然而 ,虚拟仪器技术作为新兴的仪器仪表技术 ,它的发展也不过短短的数十年,相信随着计算机技术,虚拟仪器技术的不断发展与完善,其必将取代传统仪器而成为仪器仪表行业的主力军 。


1楼2019-11-28 11:21回复