基于labview的信号发生器 功能介绍:纯软件方面的信号发生器,没有引入NI外部模块,生成的...

基于labview的信号发生器 功能介绍:纯软件方面的信号发生器,没有引入NI外部模块,生成的信号只在示波器中显示。 包括高斯白噪声、正弦波、方波、锯齿波、三角波、均匀白噪声、自定义公式,通过枚举按钮选择生成信号类型,然后可以调整频率、幅度、采样率等等参数。 右边实时显示波形变化。

打开LabVIEW新建VI,首先在程序框图上甩个While循环------这玩意儿可是咱们信号发生器的心跳。右击前面板,把控件库里那枚银色旋钮「枚举控件」拖出来,改名叫"Signal Type",顺手把正弦波、方波这些信号类型都给它填上。

信号生成的核心藏在条件结构里。比方说正弦波这路分支,直接调用Sine Waveform.vi就行。参数输入端连上前面板的频率、幅度旋钮,注意这里得把频率单位转换成标准Hz,老司机都知道要在数值后面乘个2π:

labview 复制代码
频率输入 * 2 * pi --> Sine Waveform.vi的frequency终端

采样率参数建议给个默认值44100,毕竟这是音频设备的常用采样率,搞音频的老铁都懂这个数背后的玄机。

要说有意思还得是噪声生成。均匀白噪声用Uniform White Noise.vi轻松搞定,但高斯白噪声得玩点花样------把两个均匀白噪声通过Box-Muller变换揉在一起:

labVIEW 复制代码
u1 = Uniform White Noise(0,1)
u2 = Uniform White Noise(0,1)
z0 = sqrt(-2*ln(u1)) * cos(2*pi*u2)  // 这就是高斯分布的秘密配方

自定义公式功能要祭出公式波形VI,把用户输入的字符串直接喂给Express VI。不过得留个心眼,记得加个错误处理分支,防止用户手滑输错公式导致整个程序崩掉。

波形显示区域别傻乎乎用波形图表,直接上波形图控件才能hold住大流量数据。在While循环里塞个等待(ms)函数,设个50ms左右的延时,这样既能保证界面刷新流畅,又不至于让CPU飙到100%。最后记得把各信号分支的输出统一接到波形图的输入终端,搞定之后前面板就会跟夜店灯光似的实时蹦迪了。

相关推荐
我登哥MVP4 天前
走进 Gang of Four 设计模式:访问者模式
java·设计模式·访问者模式·原型模式
学究天人5 天前
数学公理体系大全:第五章 序数与基数理论:超限算术与集合的大小
人工智能·线性代数·算法·机器学习·数学建模·原型模式
学究天人5 天前
数学公理体系大全:第六章 选择公理的等价形式及证明
人工智能·线性代数·算法·机器学习·数学建模·概率论·原型模式
学究天人6 天前
数学公理体系大全:Comprehensive Collection of Mathematical Axiom Systems(补充卷9)
人工智能·线性代数·算法·数学建模·动态规划·原型模式·抽象代数
geovindu7 天前
CSharp: Prototype Pattern
开发语言·后端·设计模式·.net·原型模式·创建型模式
Seven凹凸Man7 天前
WorkBuddy之产品经理原型设计及PRD实战
ai·原型模式
ttod_qzstudio8 天前
【软考设计模式】原型模式:“克隆“对象与深拷贝、浅拷贝精讲
设计模式·原型模式
希冀12312 天前
【JavaScript】Javascript—JS进阶—Day03
开发语言·javascript·原型模式
想吃火锅10051 个月前
【前端手撕】instanceof
前端·javascript·原型模式
UXbot1 个月前
帮助企业低门槛开展AI应用开发的平台推荐
前端·低代码·ui·交互·产品经理·原型模式·web app