17

2024-05

当前位置: 网事范文网 > 作文大全 >

基于声卡和MATLAB的噪声信号采集与分析

| 来源:网友投稿

摘要:介绍利用声卡和MATLAB软件采集与分析噪声信号的方法,并结合汽车噪声信号采集分析的应用实例,详细阐述了噪声信号采集与分析的实现过程。

关键词:噪声信号采集;MATLAB;频谱分析

中图分类号:TP37文献标识码:A文章编号:1009-3044(2012)03-0684-03

Acquisition and Analysis of Noise Signal Based on MATLAB and Soundcard

ZHOU Chang-min, TANG Lin-hai

(School of Computer and Information Science, Kaili University, Kaili 556011, China)

Abstract: The method of acquisition and analysis of noise signal with Matlab software and Soundcard is introduced in this paper, then, a case of automobile noise signal acquisition and analysis is combined for describes noise signal acquisition and analysis of the implementation process In detail.

Key words: noise signal acquisition; MATLAB; analyzing of frequency

噪声是一种声音信号,是由不同振幅和频率组成的不协调的嘈杂声音。噪声作为严重的环境污染问题同水污染和空气污染一样已经引起越来越高的重视。积极研究降低环境噪声的措施,减少外界环境噪声对人的伤害有着重要意义。在对噪声进行防治过程中,如何实现对噪声信号的高精度、低成本采集分析是其中很重要的一环。

声卡是多媒体计算机系统中最基本、最常用的硬件之一,其技术发展已经成熟,它具有AD/DA转换功能,现已被广泛应用于声音信号采集。MATLAB是MathWorks公司推出的一种面向工程和科学运算的交互式计算软件,其中包含了一些非常实用的工具——数据采集工具箱(Data Acquisition toolbox)和信号处理工具箱(Signal Processing toolbox),使用这类工具箱更容易将实验测量、数据分析和可视化的应用集合在一起。因此可以用MATLAB去控制声卡来完成噪声信号采集与分析,实现人们对其生存空间的噪声分布进行定量与定性分析。

1噪声采集理论依据

1.1噪声的特性

噪声作为声音的一种同样具有声学特性。声音是由不同频率的声波通过空气产生震动,刺激人耳的结果。声波本身存在着频率、幅度和相位的特征,如果能获取声音的这三个特征值,就可以定量地分析声波。

而噪声,则是无规则的声波信号,噪声的频率、幅度、相位三个参数都是随机的。因而,人们听到的是一片混乱。它的频率从直流(0Hz)到高频(MHz),在甚高频(100MHz)、超高频(1000MHz)都有能量分布;而幅度有高有低,从这个角度讲,似乎无法精确地描述它。但从统计学的角度来看,可以对噪声的统计分布进行量化。因为,通常噪声的能量分布主要集中在某些频段,人们通过对噪声的频谱进行分析,就可以得到噪声特征数据。

1.2噪声的采样与量化

噪声信号是一种模拟信号,要用计算机分析噪声必须将其转换为计算机能够处理的数字信号,这一过程称之为采样与量化。使用声卡的A/D转换器就可以完成噪声的采样和量化。单位时间内采样的次数越多,数字的变化越接近于电平的真实变化。根据奈奎斯特理论[1],当声音采样频率达到44.1kHz时,采样产生的数据已能真实地反映人身听觉范围内的频率变化了(20Hz~20kHz)。通过采样与量化得到的噪声是表现的是声音强弱随时间变化的过程特性,即x(t),在这种时-幅数据中,我们无法看出噪声的规律性,因为表现出的完全是一组随机变化的图像。要对噪声进行定量分析,就必须将时-幅数据转化成频-幅数据,才能显示出其规律性来,利用MATLAB中的频谱分析函数或数值分析函数就可将采集到的噪声信号进行频谱分析,并且可方便的将分析结果以图的形式显示出来。

2噪声信号的采集

在开始噪音采集之前,要先将传声器(话筒)等与声卡的模拟输人端连接起来,需要注意的是模拟信号的引人应使用音频电缆或屏蔽电缆以减小干扰信号的引人,然后由MATLAB控制PC机声卡将话筒得到的模拟信号转变为数字信号存储在计算机中。Matlab

函数库中的analoginput()函数可实现对模拟信号的采集,采集前要根据数据分析的需要设置好采样的通道、频率和时间。以下是噪声信号采集主要四个步骤:

1)初始化。MATLAB将声卡等设备都作对象处理,其后的一切操作都不与硬件直接相关,而是通过对该对象的操作来作用于硬件设备,所以首先要对声卡产生一个模拟输入对象(AI)[2].

ai = analoginput(’winsound’);

2)配置。给AI对象添加通道,设置采样频率。

addchannel(ai, 1); %添加通道,1表示单声道

fs=44100;

set(ai,’sampleRate’,fs); %为模拟输入设备设置采样频率为44.1Khz

3)采样。启动设备对象,开始采集数据。

duration=2;%采样时间为2秒

set(ai,’SamplesPerTriffer’,duration*fs); %为模拟输入设备设置触发时间

start(ai); %启动设备对象

data=getdata(ai); %获得采样数据

plot(data);%绘制声音波形

4)终止。停止对象并删除对象。

stop(ai); %停止设备对象

delete(ai); %释放内存对象

依次执行上面的函数便完成了一次对噪声信号的数据采集过程。要说明的是,执行完一次数据采集工作后要删除设备对象的目的是将内存中的数据存储在硬盘上之后释放数据存储所占用的内存空间,以备下一次采集能有足够的内存空间存储新的数据。

以上的采样过程是对声卡产生的模拟输入对象(AI)进行操作的,由于计算机配置和模拟通道的运用使得数据采集过程显得烦琐,有时还不易获得采样数据。实验过程发现一种更为简单实用的数据采集方法,即使用MATLAB数据采集箱中wavrecord函数利用Windows音频输入设备记录声音,其调用形式为:wavrecord(n,fs,ch)[3],其主要功能是利用Windows音频输入设备记录n个音频采样,频率为fsHz,通道数为ch;采样值返回到一个大小为n*ch的矩阵中,缺省情况下,采样频率为fs=11025,ch=1。采集完成后调用wavwrite函数将采集到的噪音存储为WAV文件,采集到的声音可以用waveplay函数来播放,其调用形式为:waveplay(y,fs),其主要作用是利用Windows音频输出设备播放声音,以采样频率fs向Windows音频设备发送向量信号。

应用wavrecord进行一次简单的汽车噪声信号的采集实验,记录2秒钟的音频信号并回放之,采样频率设为44100Hz,声音采集的程序如下:

fs=44100;%采样频率

duration=2;%采样时间为2秒

fprintf (’按任意键后开始%g秒采集:’, duration); pause %提示信息

fprintf(’采集中...’); %提示信息

y=wavrecord(duration*fs, fs); %采集的数据点数是duration*fs个

fprintf(’采集结束\n’);

fprintf(’按任意键后开始播放:’); pause

wavplay(y,fs); %回放声音

nbits=16;%每个数据点用16位二进制表示

wavwrite(y, fs, nbits, ’test.wav’); %以test.wav为文件名存储汽车噪声信号

plot(y); %绘制声音波形

将以上的程序命令存储为M文件,在MATLAB中打开并运行,即可进行多次噪音信号的采集,下图1是利用该程序采集到的汽车噪声波形图:

图1采集的汽车噪声信号

除此以外,利用Windows自带的录音机程序也可驱动声卡来采集声音信号,并能保存为WAV格式文件,供MATLAB相关函数直接读取、写入或播放。MATLAB中的wavread函数用于读取Microsoft的扩展名为“.wav”的声音文件。其调用形式为:y=wavread(file)。其作用是从字符串file所指的文件路径读取wave文件,将读取的采样数据送到y中。

3噪声信号的分析

采集得到的噪声信号是时域特征的,但通常分析声音信号是看它的频域特征,从它的频域特征图上能够提取出更多有效的特征量。因此,对声音信号进行频谱分析、研究其在频域内的某些特征与频率变化的关系更有实际意义。将采集到的时-幅噪声数据转化成频-幅数据,我们可以通过快速傅立叶变换(FFT)[4]来完成这一变化过程。

仍然以汽车噪声为例,对采集到的汽车噪声进行频谱分析的程序如下:

[y,fs,bits]=wavread(’test.wav’);

sound(y,fs,bits); %回放该音频

f=0:fs/(length(y)-1):fs/2;

Y=fft(y);%对采样后信号做FFT变换

plot(f,abs(Y(1:length(f))));

grid ;

xlabel(’频率’);

ylabel(’幅值’);

axis([0 5000 min(abs(Y(1:length(f)))),max(abs(Y(1:length(f))))]);

[C,I]=max(abs(Y(1:length(f))));

title(sprintf(’采集到的汽车噪声的峰值频率%f HZ’,f(I)));

利用以上程序分析得到如图2所示的汽车噪声频谱图:

图2汽车噪声的频谱图

从图2中可以看出采集到的汽车噪声信号的频谱主峰在150-265 Hz之间,主峰最高点对应的频率为173 Hz。因此,利用噪声频谱能够清晰地表示出一定频带范围内的声压级分布情况,从中可以了解噪声的成分和性质,有助于了解声源特性,频谱中各峰值所对应的频率或频带就是某声源产生的噪声,找到了主要峰值声源就为噪声控制提供了依据。

4结束语

利用现有多媒体电脑,在对硬件平台几乎没有任何附加要求的情况下,借助于MATLAB软件的声卡控制功能、强大的数值计算和信号分析能力,能够实现对噪声信号的采集、数据分析以及结果显示等功能。实验证明这是一种具有精度高、实时性好、性价比高数据采集与分析方法,具有很好的应用价值和发展前景。

参考文献:

[1]鄂大伟.多媒体技术基础与应用[M].北京:高等教育出版社,2004.

[2]全必胜,李斌.基于声卡和MATLAB的数据采集与分析系统[J].计算机仿真,2003(8):149-150.

[3]王彬.MATLAB数字信号处理[M].北京:机械工业出版社,2010.

[4]刘钢.快速傅立叶变换在声音均衡和频谱中的应用[J].通信技术,2008(7):250-251.

推荐访问:噪声 声卡 采集 信号 分析

最新推荐New Ranking

12023年企业演讲稿范本大全3篇(范文推荐)

企业演讲稿范文大全第1篇各位领导,各位同事,大家好:我叫是“为员工点个赞”!今日我很激动,因为我...

2聘用合同范本大全19篇

聘用合同范本大全第1篇甲方(聘用单位):住所:乙方(受聘人):住所:身份证号码:甲、乙双方根据《中华...

3结婚纪念日感言大全12篇

结婚纪念日感言大全第1、每一年的结婚纪念日,我都会感谢你,给我这份节日的权利,给你带来幸福和感动...

42023年小学二年级作文评语8篇

小学二年级作文评语第1、朴实自然的童心体现在文中,使文章散发着清新活泼的气息。2、这篇文章以具体...

5小组评语大全10篇

小组评语大全第1篇该同学在实习期间一贯积极主动,认真学习业务知识,在很短的时间里就掌握了工作的要...

62023年度工厂岗位职责大全

工厂岗位职责大全第1篇保证生产工艺满足工厂内生产的正常运行。进行工艺改进,实施工艺规程及ODS的标...

72023年度对员工评语大全(2023年)

对员工评语大全第1 工作认真刻苦,服务态度非常好,使经理在xxx的时候没有后顾之忧;工作积极,热情周...

8小学六年级评语大全17篇(全文完整)

小学六年级评语大全第1、这学期,你的胆子大了,声音亮了,课堂回答问题的小手举得高了,这是多好的现...

92023年学生个人总结范本大全11篇(全文)

学生个人总结范文大全第1篇在思想方面,首先我端正了学习态度,认识到大学仍需付出极大的努力用功学习...

10保险承诺书范本大全(完整)

保险承诺书范文大全第1篇保险公司目标承诺书篇一:我是,请大家为我见证:作为团队的一名营销主管,我...