基于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%。最后记得把各信号分支的输出统一接到波形图的输入终端,搞定之后前面板就会跟夜店灯光似的实时蹦迪了。

相关推荐
想吃火锅100510 天前
【前端手撕】instanceof
前端·javascript·原型模式
UXbot10 天前
帮助企业低门槛开展AI应用开发的平台推荐
前端·低代码·ui·交互·产品经理·原型模式·web app
UXbot10 天前
如何选择适合公司项目的UI设计工具?企业选型指南
前端·低代码·ui·团队开发·原型模式·设计规范·web app
UXbot10 天前
原型设计工具如何帮助新人快速进入产品行业?
前端·低代码·ui·交互·团队开发·原型模式·web app
sunny.day15 天前
js原型与原型链
开发语言·javascript·原型模式·js原型链
UXbot16 天前
AI网页开发工具能替代工具吗?5大平台对比
前端·人工智能·低代码·ui·原型模式·web app
weixin_3077791316 天前
从“大海捞针”到“主动推理”:AI如何重塑云原生故障诊断的根因链
开发语言·人工智能·算法·自动化·原型模式
swordbob16 天前
prototype 注入到 singleton 里,prototype是否还是线程安全的
安全·spring·单例模式·原型模式
isNotNullX17 天前
企业数据中台建设,ETL工具选错了会踩哪些坑?
数据仓库·etl·原型模式
半个烧饼不加肉17 天前
JS 底层探究-- 普通函数和构造函数
开发语言·javascript·原型模式