数学建模-声音识别模型的建立及评价_第1页
数学建模-声音识别模型的建立及评价_第2页
数学建模-声音识别模型的建立及评价_第3页
数学建模-声音识别模型的建立及评价_第4页
数学建模-声音识别模型的建立及评价_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.."数学建模"论文报告题目:A题声音识别模型的建立与评价参赛队员〔数学与统计学院〕:学号::联系:声音识别模型的建立与评价【摘要】本文针对正常非正常开门〔指盗窃开门等声音〕的声音进展识别的问题,通过matlab的sound和plot采集到了正常和非正常开门的声音信号和声音波形图,附件中有正常开门声音〔如正1.mat〕,非正常开门声音〔如非1.mat〕,各40次开门,共80次开门声音数据。将这些数据利用matlab的load函数载入到计算机存,存中变量有Fs和y等变量,其中Fs为采用频率,y为采用数据,通过建立数学模型将函数关系表示出来,并利用适宜的时域或〔和〕频域特征表达声音信号,建立出特征向量。针对问题一:利用matlab中的sound函数,播放出声音信号,试听并比拟正常和非正常开门声音的差异,利用plot函数绘制出具体的声音波形图,总结出差异在哪些方面,正常开门声音〔如正1.mat〕较短暂,波形图上各点分布较为分散;而非正常开门声音〔如非1.mat〕连续,波形图上各点分布也相对集中。针对问题二:利用适宜的时域或〔和〕频域特征表达声音信号,建立特征向量,写出提取特征向量的具体方法和程序代码。针对问题三:建立声音识别模型〔二分类模型〕,利用模型区分正常和非正常声音,评价模型的好坏。针对问题四:利用特征选择或变换,对特征向量进展优化,并利用参数优化技术优化模型的参数,使识别模型的准确率提高。针对问题五:假设原始声音信号中有环境噪声〔如白噪声〕,设y中叠加了一定幅值的白噪声〔利用y1=y+(-0.15+0.3*rand(size(y)))*max(y)叠加噪声〕,对声音进展前期处理。本文充分运用了高等代数、数理统计等知识,并通过MATLAB软件模拟的方法对理论数据进展了分析整合。最后对模型的优缺点进展了评价,并给出了改良方向。关键词:声音识别、特征向量、二分类模型、MATLAB软件、神经网络1问题重述A题声音识别模型的建立与评价随着家居智能化逐渐普及,智能冰箱、智能清洁机器人、智能电视等已步入平常老百姓家庭,但智能化的防盗门还处于研发阶段,未进入市场。随着人们对家居平安意识的不断增强,对防盗、防抢和防砸的门禁系统的智能性提出更高的要求。基于此,对正常和非正常开门〔指盗窃开门等声音〕的声音进展识别是智能防盗门的关键问题和技术,其具有广泛的应用前景和实用价值。为了进展声音识别模型的建立,我们采集到了正常和非正常开门的声音,附件中有正常开门声音〔如正1.mat〕,非正常开门声音〔如非1.mat〕,各40次开门,共80次开门声音数据。该数据可利用matlab的load函数载入到计算机存,存中变量有Fs和y等变量,其中Fs为采用频率,y为采用数据。利用这些数据要求完成以下工作:利用matlab中的sound函数,播放出声音信号,试听并比拟正常和非正常开门声音的差异,利用plot函数绘制出具体的声音波形图,总结差异在哪些方面?利用适宜的时域或〔和〕频域特征表达个声音信号,建立特征向量,写出提取特征向量的具体方法和程序代码。建立声音识别模型〔二分类模型〕,利用模型区分正常和非正常声音,评价模型的好坏。试利用特征选择或变换,对特征向量进展优化,并利用参数优化技术优化模型的参数,使识别模型的准确率提高。假设原始声音信号中有环境噪声〔如白噪声〕,设y中叠加了一定幅值的白噪声〔利用y1=y+(-0.15+0.3*rand(size(y)))*max(y)叠加噪声〕,如何对声音进展前期处理?2模型假设[1]假设原始声音信号中有环境噪声〔白噪声〕单一,无其他噪音干扰;[2]假设采用的频率都为11025Hz来利用适宜的时域或〔和〕频域特征表达声音信号;[3]假设实验环境保持不变。3符号说明Fs采用频率y采用数据4问题的分析本文针对正常非正常开门〔指盗窃开门等声音〕的声音进展识别的问题,通过matlab的sound和plot采集到了正常和非正常开门的声音信号和声音波形图,附件中有正常开门声音〔如正1.mat〕,非正常开门声音〔如非1.mat〕,各40次开门,共80次开门声音数据。将这些数据利用matlab的load函数载入到计算机存,存中变量有Fs和y等变量,其中Fs为采用频率,y为采用数据,通过建立数学模型将函数关系表示出来,并利用适宜的时域或〔和〕频域特征表达声音信号,建立出特征向量。假设原始声音信号中有环境噪声〔如白噪声〕,设y中叠加了一定幅值的白噪声〔利用y1=y+(-0.15+0.3*rand(size(y)))*max(y)叠加噪声〕,对声音进展前期处理。5模型的建立与求解5.1利用matlab中的sound函数,播放出声音信号,试听并比拟正常和非正常开门声音的差异,利用plot函数绘制出具体的波形图load('C:\Users\Administrator\Desktop\2014校级数模竞赛赛题\A题\开锁声音采集\正1.mat')sound(y,Fs)plot(y〕图1正常开门声音〔正1.mat〕图load('C:\Users\Administrator\Desktop\2014校级数模竞赛赛题\A题\开锁声音采集\非1.mat')sound(y,Fs)plot(y〕图2非正常开门声音〔非1.mat〕图由图像可总结出差异在于:=1\*GB3①正常开门声与非正常开门声的区别在于,正常开门声是连续的短暂的,而非正常开门声是持续的开锁声音,用人的听觉很容易就能判断是否为正常的开门声音。=2\*GB3②当我们运用matlab来分析声音时刻看出在频域,语音信号的频谱分量主要集中在300~3400Hz的围。如图1正常开门时域波形图等。在时域,两种声音信号都具有"短时性〞的特点,即在总体上,开门声的特征是随着时间而变化的,但在一段较短的时间间隔,语音信号保持平稳。但从时域波形图的比照可看出两种开门声的区别,正常开门声有一组的峰值比其他的峰值明显要大很多,而非正常开门声有多组峰值相似。5.2利用适宜的时域或〔和〕频域特征表达个声音信号,建立特征向量,写出提取特征向量的具体方法和程序代码。由于已假设采用的频率都为11025Hz所以需要利用适宜的时域或〔和〕频域特征表达个声音信号。在将开门声音进展数字化前,必须先进展防混叠预滤波,预滤波的目的有两个:=1\*GB3①抑制输入信导各领域分量中频率超出fs/2的所有分量(fs为采样频率),以防止混叠干扰。=2\*GB3②抑制50Hz的电源工频干扰。这样,预滤波器必须是一个带通滤波器,设其上、下截止颜率分别是fH和fL,那么对于绝人多数语音编译码器,fH=3400Hz、fL=60~100Hz、采样率为fs=8kHz;而对于开门声音的识别而言,当判断是否为正常开门声有重要意义。当使用要求较高或很高的场合时fH=4500Hz或8000Hz、fL=60Hz、fs=10kHz或20kHz。为了建立和提取不同开门声音的特征向量,必须经过采样和量化两个步骤,从而得到时间和幅度上均为离散的数字语音信号。采样也称抽样,是信号在时间上的离散化,即按照一定时间间隔△t在模拟信号x(t)上逐点采取其瞬时值。采样时必须要注意满足奈奎斯特定理,即采样频率fs必须以高于受测信号的最高频率两倍以上的速度进展取样,才能正确地重建波它是通过采样脉冲和模拟信号相乘来实现的。下列图时一段语音信号在采样频率11025Hz情况下的频谱图。%语音信号时域频域分析y=y(:,1);%我这里假设你的声音是双声道,我只取单声道作分析,如果你想分析另外一个声道,请改成y=y(:,2)sigLength=length(y);Y=fft(y,sigLength);Pyy=Y.*conj(Y)/sigLength;halflength=floor(sigLength/2);f=Fs*(0:halflength)/sigLength;figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');t=(0:sigLength-1)/Fs;figure;plot(t,y);xlabel('Time(s)');y=y(:,1);lg=length(y);yx=(0:(lg-1))*Fs/lg;yx=yx(1:lg/2);%sound(y,fs);figure(1);subplot(211);plot(y);title('原始图像');subplot(212);yf=abs(fft(y));yf=yf(1:lg/2);plot(yx,yf);ycq=zeros(1,lg);%先将抽取后的值全设为零fori=1:80:lg;%通过循环,每隔80个点将抽取后的值赋值为原函数的ycq(i)=y(i);%采样值endsound(ycq,Fs);figure(2);subplot(211);plot(ycq);title('提取特征向量后的图像');subplot(212);ycqf=abs(fft(ycq));ycqf=ycqf(1:lg/2);plot(yx,ycqf);图3正常开门声提取的特征向量图图4非正常开门声提取的特征向量图5.3建立声音识别模型〔二分类模型〕,利用模型区分正常和非正常声音,评价模型的好坏。对于分类资料的分析,当要考察的影响因素较少,且也为分类变量时,常用列联表(contingencyTable)的形式对这种资料进展整理,并使用检验来进展分析,汉存在分类的混杂因素时,还可应用Mantel-Haenszel检验进展统计学检验,这种方法可以很好地控制混杂因素的影响。但是这种经典分析方法也存在局限性,首先,它虽然可以控制假设干个因素的作用,但无法描述其作用大小及方向,更不能考察各因素间是否存在交互任用;其次,该方法对样本含量的要求较大,当控制的分层因素较多时,单元格被划分的越来越细,列联表的格子中频数可能很小甚至为0,将导致检验结果的不可靠。最后,检验无法对连续性自变量的影响进展分析,而这将大大限制其应用围,无疑是其致使的缺陷。标准的线性回归模型:如果对分类变量直接拟合,那么实质上拟合的是发生概率,参照前面线性回归方程,很自然地会想到是否可以建立下面形式的回归模型:显然,该模型可以描述当各自变量变化时,因变量的发生概率会怎样变化,可以满足分析的根本要求,对计算方法进展了改良,用加权最小二乘法来对该模型进展拟合。以Logit()为因变量,建立包含p个自变量的logistic回归模型如下:以上即为logistic回归模型。由上式可推得:上面三个方程式相互等价。通过大量的分析实践,发现logistic回归模型可以很好地满足对分类数据的建模需求,因此目前它已经成为了分类因变量的标准建模方法。优势比:如前所述,把出现某种结果的概率与不出现的概率之比称为比值〔odds〕,即。两个比值之比称为优势比〔oddsRatio,简称OR〕。首先考察OR的特性:假设,那么假设,那么假设,那么显然,OR是否大于1可以用作两种情形下发生概率大小的比拟。5.4试利用特征选择或变换,对特征向量进展优化,并利用参数优化技术优化模型的参数,使识别模型的准确率提高。1用MATLAB实现神经网络建模MATLAB提供了许多工具箱,其中神经网络工具箱是其中之一,该工具箱由许多子程序组成,能完成神经网络的构造和学习及所涉及的许多运算和操作。本文采用BP网络来建立神经网络模型来模拟实际系统间的关系。神经网络建模程序如下:Input’p=’;Input’t=’;%神经网络训练输入、输出矩阵[pn,meanp,stdp,tn,meant,stdt]=prestd(p,t);%神经网络输入、输出数归一化处理net=newff(minmax(pn),[4101],{′logsig′′logsig′′purelin′},′trainlm′);%建立一个三层BP网络net.trainparam.show=25;net.trainparam.e2pochs=300;net.trainparam.goal=1e-10;%设置训练参数[net,tr,epochs]=train(net,pn,t);%神经网络训练a=sim(net,pn);%装载训练结果[m,b,r]=postreg(a,t);%线性回归分析save(′result′,′net′);%保存网络结果在上述程序中,隐含层的神经元数可通过试凑法得到。神经网络训练数据进展了归一化预处理,归一化采用了工具箱中的Prestd函数。神经网络训练成功后保存结果,以便优化时载入已训练好的网络构造,调入过程模型。为了验证所建立的神经网络模型的有效性,将测试集数据输入训练完的神经网络模型,运用Sim函数进展仿真,将神经网络的输出与现场实测数据作比拟,运用Postreg函数,将输出结果与目标值作线性回归分析,以此来检验网络泛化能力。2用MATLAB实现遗传算法寻优在用神经网络建立数学模型后,采用遗传算法寻优,其程序框图如图5所示。遗传算法优化程序包括编码子程序(Encoding),解码子程序(Decoding)、选择子程序(Selection)、穿插子程序(Crossover)、变异子程序(Mutation)组成。编码子程序。本设计采用最常用的二进制编码方案,即用二进制数构成的符号串来表示个体,用Encoding函数来实现编码并产生初始种群。程序设计中,首先根据各决策变量的上、下界及其搜索精度来确定表示各决策变量的二进制串的长度,然后随机产生一个种群大小为Popsize的初始种群。(2)解码子程序。它将编码后的个体构成的种群通过Decoding函数解码以转换成原问题空间的决策变量,并通过已建好的神经网络模型求得各个体对应的输出值,并进展适应值的计算。图5程序框图(3)选择子程序。它将解码后求得的各个体适应值采用最优保存策略和比例选择法,将适应值差的淘汰掉,选出一些优良的个体以进展下一步的穿插和变异操作。该子程序首先找出当前群体中适应值最高和最低的个体,将最正确个体保存并用它替换最差个体。为保证当前最正确个体不被穿插、变异操作破坏掉,允许最正确个体不参与穿插、变异操作而直接进入下一代,然后将剩下的个体按比例选择法进展操作。(4)穿插子程序。采用单点穿插的方法来实现穿插算子,即按穿插概率pc在两两配对的个体编码串中随机设置一个穿插点,然后在该点相互交换两个配对个体的局部基因,从而形成两个新的个体。(5)变异子程序。变异操作按照变异概率pm随机选择变异点,对于二进制基因串来说在变异点处将其位取反即可。5.5假设原始声音信号中有环境噪声〔如白噪声〕,设y中叠加了一定幅值的白噪声〔利用y1=y+(-0.15+0.3*rand(size(y)))*max(y)叠加噪声〕,如何对声音进展前期处理?白噪声:白噪声是功率谱密度为常数的随机过程或者或者随机信号,信号在各个频段上的功率是一样的。【白噪声的时域信号中任意两个不同时刻是不相关的,白噪声的自相关函数为冲击函数,白噪声的功率谱密度为常数。〔自相关函数和功率谱密度是傅立叶变换对〕】注:理想的白噪声具有无限带宽,因而其能量是无限大,这在现实世界是不可能存在的。实际上,我们常常将有限带宽的平整讯号视为白噪音,因为这让我们在数学分析上更加方便。然而,白噪声在数学处理上比拟方便,因此它是系统分析的有力工具。一般,只要一个噪声过程所具有的频谱宽度远远大于它所作用系统的带宽,并且在该带宽中其频谱密度根本上可以作为常数来考虑,就可以把它作为白噪声来处理。例如,热噪声和散弹噪声在很宽的频率围具有均匀的功率谱密度,通常可以认为它们是白噪声。在信号处理中经常需要把噪声叠加到信号上去,在叠加噪声时往往需要满足一定的信噪比,这样产生二个问题,其一噪声是否按指定的信噪比叠加,其二怎么样检验带噪信号噪比满足指定的信噪比。在MATLAB中可以用randn产生均值为0方差为1的正态分布白噪声,但在任意长度下x=randn(1,N),x不一定是均值为0方差为1〔有些小小的偏差〕,这样对后续的计算会产生影响。在这里提供3个函数用于按一定的信噪比把噪声叠加到信号上去,同时可检验带噪信号噪比。1,把白噪声叠加到信号上去:function[Y,NOISE]=noisegen(X,SNR)

%noisegenaddwhiteGaussiannoisetoasignal.

%[Y,NOISE]=NOISEGEN(X,SNR)addswhiteGaussianNOISEtoX.TheSNRisindB.

NOISE=randn(size(X));

NOISE=NOISE-mean(NOISE);

signal_power=1/length(X)*sum(X.*X);

noise_variance=signal_power/(10^(SNR/10));

NOISE=sqrt(noise_variance)/std(NOISE)*NOISE;

Y=X+NOISE;

其中X是纯信号,SNR是要求的信噪比,Y是带噪信号,NOISE是叠加在信号上的噪声。2,把指定的噪声叠加到信号上去有标准噪声库NOISEX-92,其中带有白噪声、办公室噪声、工厂噪声、汽车噪声、坦克噪声等等,在信号处理中往往需要把库中的噪声叠加到信号中去,而噪声的采样频率与纯信号的采样频率往往不一致,需要采样频率的校准。function[Y,NOISE]=add_noisem(X,filepath_name,SNR,fs)

%add_noisemadddeterminatednoisetoasignal.

%Xissignal,anditssamplefrequencyisfs;

%filepath_nameisNOISE'spathandname,andtheSNRissignaltonoiseratioindB.

[wavin,fs1,nbits]=wavread(filepath_name);

iffs1~=fs

wavin1=resample(wavin,fs,fs1);

end

nx=size(X,1);

NOISE=wavin1(1:nx);

NOISE=NOISE-mean(NOISE);

signal_power=1/nx*sum(X.*X);

noise_variance=signal_power/(10^(SNR/10));

NOISE=sqrt(noise_variance)/std(NOISE)*NOISE;

Y=X+NOISE;

其中X是纯信号,filepath_name是指定噪声文件〔.wav〕的路径和文件名,SNR是要求的信噪比,fs是信号X的采样频率,Y是带噪信号,NOISE是叠加在信号上的噪声。3,检验带噪信号的信噪比信噪比的定义为信号能量(纯信号)^2

SNR=-----------------=--------------------------

噪声能量load('C:\Users\Administrator\Desktop\2014校级数模竞赛赛题\A题\开锁声音采集\正1.mat')y1=y+(-0.15+0.3*rand(size(y)))*max(y);plot(y1)图6原始声音信号y中叠加了一定幅值的白噪声图〔正1.mat〕load('C:\Users\Administrator\Desktop\2014校级数模竞赛赛题\A题\开锁声音采集\非1.mat')y1=y+(-0.15+0.3*rand(size(y)))*max(y);plot(y1)图7原始声音信号y中叠加了一定幅值的白噪声图〔非1.mat〕7模型的评价模型的优点:〔1〕本文充分运用了高等代数、数理统计等知识,并通过MATLAB软件模拟的方法对理论数据进展了分析整合。〔2〕利用matlab中的sound函数,播放出声音信号,试听并比拟正常和非正常开门声音的差异,利用plot函数绘制出具体的声音波形图,总结出差异。〔3〕假设了采用的频率都为11025Hz来利用适宜的时域或〔和〕频域特征表达声音信号;原始声音信号中有环境噪声〔白噪声〕,对声音进展了前期处理。模型的缺乏:本文考虑因素缺乏,未做充分分析和所有模型建立。建立出的模型也较为简单,模型不可能到达实际效果,因为很多数据和因素无法处理等,因此总体来看模型简单,收到效果甚微。模型仍需要修正和完善。8模型的改良与推广本文假设实验环境保持不变,但实际应用中环境是不断改变的,因此原始声音信号y中叠加了一定幅值的白噪声在不同时间会随着其它未经量化的因素的影响而不同。8.1模型的改良将环境的影响关系引入,从而减少理论数据与实际数据的误差。8.2模型的推广本文通过建立声音识别模型较为有效的模拟出正常和非正常开门的声音信号以及原始声音信号y中叠加了一定幅值的白噪声之间关系的数学模型,具有很好的预测和拟合效果,因此有较强的现实意义,可以在现实生活中广泛应用。9参考文献[1]卫国主编.MATLAB程序设计与应用.:高等教育,2006年第二版.[2]启源金星叶俊编.数学模型.:高等教育,2011年第四版.[3]茆诗松程依明濮晓龙编.概率论与数理统计.:高等教育,2011年第二版.[4].baidu..程序:附录一:%正常开门声音及波形图〔正1.mat〕load('C:\Users\Administrator\Desktop\2014校级数模竞赛赛题\A题\开锁声音采集\正1.mat')sound(y,Fs)plot(y〕附录二:%非正常开门声音及波形图〔非1.mat〕load('C:\Users\Administrator\Desktop\2014校级数模竞赛赛题\A题\开锁声音采集\非1.mat')sound(y,Fs)plot(y〕附录三:%语音信号时域频域分析y=y(:,1);%我这里假设你的声音是双声道,我只取单声道作分析,如果你想分析另外一个声道,请改成y=y(:,2)sigLength=length(y);Y=fft(y,sigLength);Pyy=Y.*conj(Y)/sigLength;halflength=floor(sigLength/2);f=Fs*(0:halflength)/sigLength;figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');t=(0:sigLength-1)/Fs;figure;plot(t,y);xlabel('Time(s)');y=y(:,1);lg=length(y);yx=(0:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论