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

相关推荐
凤凰战士芭比Q19 天前
Saltstack(安装、基本使用)
saltstack
mylinke19 天前
光伏MPPT控制灰狼优化算法:局部遮阴下阴影变化的优化策略
saltstack
星哥说事1 个月前
配置管理工具:Puppet/Chef/SaltStack 对比与应用
puppet·saltstack
虔诚的教徒5 个月前
saltstack安装部署
saltstack
Linux运维日记1 年前
saltstack 和 ansible 最新比对
github·ansible·saltstack
马立杰1 年前
Ansible的yum和saltstack的哪个功能相似
ansible·saltstack
马立杰1 年前
一万台服务器用saltstack还是ansible?
服务器·ansible·saltstack
IT-民工211101 年前
使用Ansible/SaltStack编写自动化运维脚本
运维·ansible·saltstack
henanxiaoman1 年前
SaltStack自动化运维部署
运维·自动化·saltstack