当您需要在很宽的频率范围测试某种产品时,扫频正弦波很有用。例如某个大型研究项目需要确定波浪在远洋的传播方式,则该应用需要生成扫频正弦波,以便驱动声波换能器。虽然许多波形发生器都有内置的函数来满足这一要求,但您如果希望用多功能数据采集卡来实现正弦扫频的话,就必须亲自对它编程。仅凭一台虚拟仪器(VI),您就能在National Instruments公司的LabView中创建扫频正弦函数。利用该函数,可以控制起始频率和终止频率、采样率,以及扫频的总时长(图1)。
图1 仅用一台LabView虚拟仪器,您就能控制起始频率、终止频率、采样率,以及扫频总时长。
LabView软件对某个数组执行计算,该数组代表了频率增加或降低时(取决于扫频方向),每个样本点的扫频正弦波时间数列。您必须逐点处理输出的频率变化。方程的基本形式为Y(I)=V×sin((A×I2)/2+B×I),其中Y(I)是扫频正弦波的振幅,是样本点的函数;I是随时间数列变化的整数;V是峰值电压;A和B是变量。把A定义为2×π(fSTOP–fSTART)/N,把B定义为2×πfSTART,其中N是样本数量,fSTART是归一化起始频率,fSTOP是归一化终止频率。为使起始频率和终止频率归一化,必须把单位换算成每样本的周期数。换算方法是把f1和 f2频率(单位:赫兹)除以采样率。采样率的确定取决于您希望表现的扫频正弦波的光滑程度。一条不错的经验法则是最高频率的采样率至少为每周期10个样本。在设置采样率时,您需要考虑自己正在扫频的频率总跨度以及扫频本身的时长。可以把LabView数据采集系统所做的扫频正弦波实现与任意波形发生器 (AWG)在结果和性能方面做比较,这也会有帮助。
应使用两种比较方法。首先,在频谱分析仪上对数据采集系统与AWG扫频正弦波的输出做比较。然后,把二者输入到某个音频放大与扬声系统,并听一听输出效果。该方法在确定扫频速率、时长、起始频率和终止频率方面很有用。只有当相关频率位于听得见的范围内时,这类比较才有效。LabView VI采用简单的数组运算,并使用了一个“for”循环。输入时长单位为秒,采样频率单位为样本/每秒,起始频率和终止频率单位为赫兹。对采样率做除法,就可立即把起始频率和终止频率换算为周期/样本。一个最大值/最小值块把归一化的起始频率和终止频率作为输入,并使用这个输入对应的最大输出。在给定需要的采样率和最高频率时,可用该方法来确定设计方案是否符合奈奎斯特准则。
该方法驱动一个简单的布尔变量来提示用户,设计是否符合奈奎斯特准则。您可把“for”循环的运行次数设为您希望计算的样本总数。该值的确定方法是用时长(单位:秒)乘以采样率(单位:样本/秒)。为保证循环处理了产生的所有样本,您必须加1,这是因为循环在N-1处停止。
可用简单的代数运算符号和正弦块来实现“for”循环中的输出函数。输出值是一个到达了“for”循环边缘的数组。应在该节点启用循环计数,这很重要。该行动使电路能在“for”循环的输出端逐个处理数组中的每个元素。也可添加一个简单的增益级,来把峰值设定到您希望的任何一点。最后,如果终止频率低于起始频率,那么您可使用“旋转一维数组块”分支结构(case structure)来使数组反转。在该方法处理的分支中,扫频在较高频率开始,并下降到较低频率。
您可以很轻松地修改和扩充这个简单的程序。一个办法是用输出数组(它只是一个时间数列,代表某个预先描述的扫频)来给循环提供数据,后者将驱动数据采集模块。只要模块的输出采样率等于您用来生成扫频时间数列的采样率,模块的输出就应准确代表这次扫频。然后,您就应该能够跟踪输出样本,并且在它们齐备时把扫频数组反转。然后,把反转所得的新数组提供给数据采集模块。也许很难足够迅速地反转数组并配置模块,以便不遗漏样本,这取决于您使用的最大频率、最小频率、扫频时长、采样率。在这种情况下,您可以根据设定的通过次数来预填一个扫频数组。
这些修改使扫频能来回持续一段给定时间。另一项改进是添加实时快速傅里叶变换(FFT)功能,使用户能看到频域中的扫频。该方法还使电路更有可能符合扫频的定义。