基于LabVIEW的声音信号采集分析系统开发

摘要:以美国国家仪器(NI)公司开发的LabVIEW虚拟仪器为软件开发平台,设计了一个可以同步实现声音信号采集和分析的多功能模块化软件系统.借助LabVIEW图形化软件相应的声音读取、写入和存储函数实现对声音信号的采集、存储、时域分析和频域分析,并实时显示在工作前面板上.该系统在试验中得到了很好的验证,为将来对声音信号进一步分析与处理提供了理论支持。

引言

随着现代信息科学技术发展的日新月异,在电子电路和测控领域中需要处理的问题变得越来越复杂,对信号分析的实时性、普适性、精确性等方面的要求也越来越高.传统仪器因为其功能单一性和高昂的成本,使得在面对信号数据采集和分析时显得越来越力不从心.科研实验中常会出现当新的测控电路设计出来.而实验仪器却难以同步更新的尴尬局面,浪费大量的人力、物力、财力。虚拟仪器信号分析系统完全可以解决这类问题.基于虚拟仪器开发平台开发的各种“虚拟仪器”,大量使用图形化控件使LabVIEW不但操作简单、成本低廉,而且还保证了与传统仪器基本相同的人机交互性、可操作性和真实感旧j.与此同时LabVIEW允许图形方式编程和具有丰富的函数库。摒弃了晦涩难懂的编程代码,使得计算机不再是少数人的专利,这些优点让LabVIEW在科研各个领域尤其是测控领域得到广泛应用.文中利用LabVIEW虚拟仪器软件设计了一个可以实现声音信号采集与分析的系统,可以比较全面地对声音信号进行采集和数据分析,为进一步研究声音信号的特性提供可靠的理论依据。
1、声音信号采集与分析软件的结构框图
软件系统由声音信号的数据采集和信号回放与分析2个主要功能模块构成,声音信号采集与分析软件的主要结构框图如图1所示.


2软件系统的各功能模块

2.1声音信号的数据采集模块

声音信号数据采集模块的主要功能是完成声音信号采集和存储.声音信号采集是指声波信号经声音传感器(麦克风)和信号放大器(信号放大)转换成模电信号,再通过模/数(A/D)转换将模电信号转换成数电信号的全过程引。在LabVIEW的前面板中信号采集由用户操作.通过软件相对应的声音写入、声音读取子函数来实现声音信号的采集和声音模板的录入,以WAV格式存储到预先设定好的硬盘内.软件通过布尔开关控制声音信号采集的起止。同时又为所有通道的存储命令设置同步控制功能。实现了多通道信号同步实时存储.人耳能听到的声音频率范围在20Hz~20000Hz,而一般语音信号频率约为300Hz~3400Hz[4I。本文模拟采集一段语音信号,根据奈奎斯特采样定理,采样频率必须大于模拟信号最高频率的2倍,工程上实际采用3倍甚至3倍以上.语音信号频率最高大约为3400Hz:因此。在LabVIEW前面板中设置采样参数为:每通道采集数为5000.采样率为8000Hz。

2.2声音信号的回放与分析模块

声音信号携带着各种信息,声音信号处理的目的就是为了提取这些信息,处理方法基本上可以分为时域分析和频域分析2种。时域分析相对比较直观简单,直接对声音信号的时域波形进行相应数学处理,提取的信号时域特征参数主要包括声音信号的短时平均能量,短时平均过零率以及短时自相关分析等。而频域分析是通过傅立叶变换,将声音信号从时间域变化到南正弦函数或者余弦函数组成的频率域上进行分析。提取的特征参数有幅度谱,相位谱,功率谱等。
2.2.1 声音信号的短时平均能量分析
由于声音在介质中传播的同时伴随着能量的传播,故可以根据声音信号的能量大小和变化情况来判
断有无声音信号和区分声音信号的清音与浊音㈣;声音信号是时变信号,各种物理参数随时间变化而变化:因此。贯穿整个时域分析的分析方法是应用短时分析技术近似处理。理论上认为在10 ms~30 ms内,声音信号频谱特性和它的某些物理参量可以看作近似不变[6].应用短时分析技术,将声音信号的瞬时能量转换为短时平均能量。这就需要一个特殊的切割函数将声音信号分割成若干个小段,用每一小段的短时平均能量代替瞬时能量来描述声音变化的特征.这里所用到的切割函数就是窗函数,其中每一小段称之为一“帧”。这个过程称之为对信号的加窗分析.在对声音信号进行短时平均能量分析时,首先采用一个长度有限的窗函数来截取声音信号形成分析帧[7|。

3软件应用

检测列车轮轨噪声是预判列车接近的一个重要方法,利用本文所设计的软件可以对该噪声信号进行
数据采集和分析,为设计基于轮轨噪声监测的列车接近预警系统做一个前期的数据处理。本文选取一段列车轮轨噪声信号(已将信号放大并转换为WAV格式命名为test)作为测试对象,在软件的前面板设定声音信号的相关采样参数,声音信号相应的波形图实时显示在LaBVIEW工作前面板上,前面板显示如图5所示。

4结论

本文介绍了一个新型的基于LabVIEW虚拟仪器的信号采集与分析系统。软件可以通过选项卡来控制各功能模块,操作简单,功能齐全,可以实现多路信号的同步实时采集、存储、信号时域和频域分析。其中,时域分析包括短时平均能量分析。频率分析包括功率谱、幅度谱和相位谱.同时软件应用LabVIEW子面板技术,使主程序界面看起来更加美观、简洁,为声音信号分析提供了更加开放的处理方法。在软件测试方面,利用该软件分析系统对一段列车接近轮轨噪声信号test.wav进行时域和频域分析。显示出LabVIEW在声音信号处理中的优点,通过设置软件前面板的采样参数可以得到信号在特定时间或频率上的特征参数。为下一步实现对轮轨噪声信号识别提供参考数据.在拓展应用方面,LabVIEW自带了600多个分析函数,能够轻松提取有用的信息进行测量数据分析和信号处理。LabVIEW支持用户自定义,用户可以编写高效、快速的处理函数和控件,建立自己的函数库,甚至可以引入Matlab函数自定义模块。大大提高了在科研用途的广阔性,缩短了开发周期,提高了开发效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/409736.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

香港服务器托管:你对服务器托管了解多少?

在当今数字化的时代,服务器托管已成为企业和网站运营的关键一环。对于许多企业来说,如何选择一个安全、稳定、高效的服务器托管方案,成为了确保业务连续性和数据安全的重要课题。那么,究竟什么是服务器托管,它又有哪些…

LeetCode刷题---基本计算器

解题思路: 根据题意,字符串中包含的运算符只有和- 使用辅助栈的方法来解决该问题 定义结果集res和符号位sign(用于判断对下一数的加减操作),接着对字符串进行遍历。 如果当前字符为数字字符,判断当前字符的下一个字符是否也是数字字符&#x…

2024最新PyQt5及其工具(Qt Designer、PyUIC、PyRcc)手把手操作实践指南

2024最新PyQt5及其工具(Qt Designer、PyUIC、PyRcc)手把手操作实践指南 前言 最近做了一些个人项目,内部逻辑还是挺多的,而且也有想要开源的想法,但是总不能直接把源码端给大家直接运行,有一些需求还有萌…

openssl3.2 - 官方demo学习 - guide - tls-client-block.c

文章目录 openssl3.2 - 官方demo学习 - guide - tls-client-block.c概述记录问题server和client IP都为localhostserver和client IP都为127.0.0.1想到解决问题的方法1想到解决问题的方法2笔记END openssl3.2 - 官方demo学习 - guide - tls-client-block.c 概述 tls 客户端 官…

FFMPEG解码实时流,支持cpu、gpu解码

官网下载的ffmpeg目前只能下载到X64版本的库,具体编译请参考windows编译ffmpeg源码(32位库)_windows 32位ffmpeg动态库-CSDN博客 直接上代码 int VideoDecodeModule::Open(std::string strUrl) {AVFormatContext *pFormatCtx nullptr;AVCo…

grep 在运维中的常用可选项

一、对比两个文件 vim -d <filename1> <filename2> 演示&#xff1a; 需求&#xff1a;&#xff5e;目录下有两个文件一个test.txt 以及 text2.txt,需求对比两个文件的内容。 执行后会显示如图&#xff0c;不同会高亮。 二、两次过滤 场景&#xff1a;当需要多…

探索数据的奥秘:一份深入浅出的数据分析入门指南

数据分析 书籍推荐 入门读物 深入浅出数据分析啤酒与尿布数据之美数学之美 数据分析 Scipy and NumpyPython for Data AnalysisBad Data Handbook集体智慧编程Machine Learning in Action机器学习实战Building Machine Learning Systems with Python数据挖掘导论Machine L…

day20【LeetCode力扣】142.环形链表Ⅱ

day20【LeetCode力扣】142.环形链表Ⅱ 1.题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了…

Vue3中provide,inject使用

一&#xff0c;provide,inject使用&#xff1a; 应用场景&#xff1a;向孙组件传数据 应用Vue3碎片&#xff1a; ref&#xff0c;reactive&#xff0c;isRef&#xff0c;provide, inject 1.provide,inject使用 a.爷组件引入 import {ref,provide} from vue const drinkListre…

pytest -- 进阶使用详解

pytest-html⽣成报告 Pytest-HTML 是⼀个插件&#xff0c;它可以⽣成漂亮且易于阅读的 HTML 测试报告。 pytest-html ⽣成报告的步骤 ① 安装 pytest-html 插件&#xff1a; pip install pytest-html ② 运⾏测试并⽣成报告&#xff1a; file name:main.pyimport pytest&qu…

Arduino快速上手esp8266方案开发

认识ESP8266 ESP8266 是 Espressif Systems 生产的 Wi-Fi 片上系统 (SoC)。它非常适合物联网和家庭自动化项目&#xff0c;目前有非常高的市场普及率&#xff0c;还有更加高端的同时支持wifi和蓝牙的双核心芯片ESP32&#xff0c;可以在乐鑫官网查看完整的芯片列表。 ESP8266芯…

SpringBoot框架自定义解析配置项占位符(${})获取配置

一、前言 在最近项目开发中&#xff0c;有一个需求&#xff0c;针对自定义注解中字符串属性值的设置需要支持使用”${xx}“占位符获取在SpringBoot框架配置文件中配置项对应的属性值&#xff0c;而且支持多个”${xx}“标识的配置任意拼接。 二、功能实现 从实现思路上说还是…