采用LabView虚拟仪器创建扫频正弦函数实现多种应用

发布时间:2023-06-09  

当您需要在很宽的频率范围测试某种产品时,扫频正弦波很有用。例如某个大型研究项目需要确定波浪在远洋的传播方式,则该应用需要生成扫频正弦波,以便驱动声波换能器。虽然许多波形发生器都有内置的函数来满足这一要求,但您如果希望用多功能数据采集卡来实现正弦扫频的话,就必须亲自对它编程。仅凭一台虚拟仪器(VI),您就能在National Instruments公司的LabView中创建扫频正弦函数。利用该函数,可以控制起始频率和终止频率、采样率,以及扫频的总时长(图1)。

采用LabView虚拟仪器创建扫频正弦函数实现多种应用


图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)功能,使用户能看到频域中的扫频。该方法还使电路更有可能符合扫频的定义。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    的使用基本没问题了,比如正余弦三角函数的计算。但需要注意,如果你直接使用sin()、cos()、sqrt()这样的函数,那结果还算调用keil的math.h,你可以在debug时看对应的代码,其汇......
    计采用LabVIEW编写上位机的控制程序。程序编写涉及VISA,它的实质是一个标准的I/O函数库。这些库函数用于编写仪器的驱动程序,完成计算机与仪器间的命令和数据传输,以实现对仪器的程控。 在LabVIEW里使......
    (void);//方波   36 void trian();//三角波   37 void sin();//正弦波   38 void scan();//扫描函数   39 void Timer0Init......
    程序分为用户界面和图标代码,通过搭建和调用子VI编写主体程序,各VI利用LABVIEW的CLF技术调用动态链接库中的驱动函数,实现与硬件设备的数据交换。子VI将基本的驱动函数进行功能封装。一个完整的LABVIEW应用......
    ;DHR12R1 = *dat;     } 接下来编写测试函数 u16 DAC_buf[1024] = {0}; void DAC1_GetSine()//把DAC_buf赋值......
    RS-485协议的硬件及数据采集卡通信的全部功能。它还内置了便于应用TCP/IP、Activex等软件标准的库函数。这是一个功能强大且灵活的软件。利用LabvIEW可以方便地建立自己的虚拟仪器,其图......
    RS-485协议的硬件及数据采集卡通信的全部功能。它还内置了便于应用TCP/IP、Activex等软件标准的库函数。这是一个功能强大且灵活的软件。利用LabvIEW可以方便地建立自己的虚拟仪器,其图......
    应用程序是系统与用户的接口,需要一个图形用户界面来控制所调用的函数,这里采用LabVIEW编写应用程序。它通过调用DLL与驱动程序进行通信,以完成对外设的数据传输。在编写用户程序时,首先要建立与外设的连接,然后......
    采用LabView虚拟仪器创建扫频正弦函数实现多种应用;当您需要在很宽的频率范围测试某种产品时,扫频正弦波很有用。例如某个大型研究项目需要确定波浪在远洋的传播方式,则该应用需要生成扫频正弦波,以便......
    也为了减小噪音的影响,增强控制器的鲁棒性,选取三角形隶属函数。 在Labview环境下运行FCT,打开FuzzyLog-icControlDesign模块,并通过具有交互式界面的FuzzySetEditor......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>