基于BP神经网络语言信号分类附matlab代码

简介: 基于BP神经网络语言信号分类附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

语音分类是语音信号处理的重要组成部分.准确快速地对语音进行分类在语音编码,语音合成中有着重要的意义.针对语音的多样性和不确定性,使用传统分类方法在大规模的实际语音分类应用中速度慢,正确率低.为了提高语音分类的正确率和分类精度,

⛄ 完整代码

%% 该代码为基于BP网络的语言识别


%% 清空环境变量

clc

clear


%% 训练数据预测数据提取及归一化


%下载四类语音信号

load data1 c1

load data2 c2

load data3 c3

load data4 c4


%四个特征信号矩阵合成一个矩阵

data(1:500,:)=c1(1:500,:);

data(501:1000,:)=c2(1:500,:);

data(1001:1500,:)=c3(1:500,:);

data(1501:2000,:)=c4(1:500,:);


%从1到2000间随机排序

k=rand(1,2000);

[m,n]=sort(k);


%输入输出数据

input=data(:,2:25);

output1 =data(:,1);


%把输出从1维变成4维

output=zeros(2000,4);

for i=1:2000

   switch output1(i)

       case 1

           output(i,:)=[1 0 0 0];

       case 2

           output(i,:)=[0 1 0 0];

       case 3

           output(i,:)=[0 0 1 0];

       case 4

           output(i,:)=[0 0 0 1];

   end

end


%随机提取1500个样本为训练样本,500个样本为预测样本

input_train=input(n(1:1500),:)';

output_train=output(n(1:1500),:)';

input_test=input(n(1501:2000),:)';

output_test=output(n(1501:2000),:)';


%输入数据归一化

[inputn,inputps]=mapminmax(input_train);


%% 网络结构初始化

innum=24;

midnum=25;

outnum=4;

 


%权值初始化

w1=rands(midnum,innum);

b1=rands(midnum,1);

w2=rands(midnum,outnum);

b2=rands(outnum,1);


w2_1=w2;w2_2=w2_1;

w1_1=w1;w1_2=w1_1;

b1_1=b1;b1_2=b1_1;

b2_1=b2;b2_2=b2_1;


%学习率

xite=0.1;

alfa=0.01;

loopNumber=10;

I=zeros(1,midnum);

Iout=zeros(1,midnum);

FI=zeros(1,midnum);

dw1=zeros(innum,midnum);

db1=zeros(1,midnum);


%% 网络训练

E=zeros(1,loopNumber);

for ii=1:loopNumber

   E(ii)=0;

   for i=1:1:1500

      %% 网络预测输出

       x=inputn(:,i);

       % 隐含层输出

       for j=1:1:midnum

           I(j)=inputn(:,i)'*w1(j,:)'+b1(j);

           Iout(j)=1/(1+exp(-I(j)));

       end

       % 输出层输出

       yn=w2'*Iout'+b2;

       

      %% 权值阀值修正

       %计算误差

       e=output_train(:,i)-yn;    

       E(ii)=E(ii)+sum(abs(e));

       

       %计算权值变化率

       dw2=e*Iout;

       db2=e';

       

       for j=1:1:midnum

           S=1/(1+exp(-I(j)));

           FI(j)=S*(1-S);

       end      

       for k=1:1:innum

           for j=1:1:midnum

               dw1(k,j)=FI(j)*x(k)*(e(1)*w2(j,1)+e(2)*w2(j,2)+e(3)*w2(j,3)+e(4)*w2(j,4));

               db1(j)=FI(j)*(e(1)*w2(j,1)+e(2)*w2(j,2)+e(3)*w2(j,3)+e(4)*w2(j,4));

           end

       end

         

       w1=w1_1+xite*dw1';

       b1=b1_1+xite*db1';

       w2=w2_1+xite*dw2';

       b2=b2_1+xite*db2';

       

       w1_2=w1_1;w1_1=w1;

       w2_2=w2_1;w2_1=w2;

       b1_2=b1_1;b1_1=b1;

       b2_2=b2_1;b2_1=b2;

   end

end

 


%% 语音特征信号分类

inputn_test=mapminmax('apply',input_test,inputps);

fore=zeros(4,500);

for ii=1:1

   for i=1:500%1500

       %隐含层输出

       for j=1:1:midnum

           I(j)=inputn_test(:,i)'*w1(j,:)'+b1(j);

           Iout(j)=1/(1+exp(-I(j)));

       end

       

       fore(:,i)=w2'*Iout'+b2;

   end

end


%% 结果分析

%根据网络输出找出数据属于哪类

output_fore=zeros(1,500);

for i=1:500

   output_fore(i)=find(fore(:,i)==max(fore(:,i)));

end


%BP网络预测误差

error=output_fore-output1(n(1501:2000))';


%画出预测语音种类和实际语音种类的分类图

figure(1)

plot(output_fore,'r')

hold on

plot(output1(n(1501:2000))','b')

legend('预测语音类别','实际语音类别')


%画出误差图

figure(2)

plot(error)

title('BP网络分类误差','fontsize',12)

xlabel('语音信号','fontsize',12)

ylabel('分类误差','fontsize',12)


%print -dtiff -r600 1-4


k=zeros(1,4);  

%找出判断错误的分类属于哪一类

for i=1:500

   if error(i)~=0

       [b,c]=max(output_test(:,i));

       switch c

           case 1

               k(1)=k(1)+1;

           case 2

               k(2)=k(2)+1;

           case 3

               k(3)=k(3)+1;

           case 4

               k(4)=k(4)+1;

       end

   end

end


%找出每类的个体和

kk=zeros(1,4);

for i=1:500

   [b,c]=max(output_test(:,i));

   switch c

       case 1

           kk(1)=kk(1)+1;

       case 2

           kk(2)=kk(2)+1;

       case 3

           kk(3)=kk(3)+1;

       case 4

           kk(4)=kk(4)+1;

   end

end


%正确率

rightridio=(kk-k)./kk;

disp('正确率')

disp(rightridio);

⛄ 运行结果

⛄ 参考文献

[1] 高茉. 基于BP神经网络的语音信号分类研究[J].  2011.

[2] 蒋良孝, 李超群. 基于BP神经网络的函数逼近方法及其MATLAB实现[J]. 微型机与应用, 2004, 23(1):2.

[3] 孙保峰. 基于神经网络的表面肌电信号分类方法研究[D]. 吉林大学.

⛳️ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料



相关文章
|
11月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
480 8
|
11月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
441 8
|
SQL 监控 安全
网络安全与信息安全:漏洞、加密与安全意识
随着互联网的迅猛发展,网络安全和信息安全问题日益受到关注。本文深入探讨了网络安全漏洞、加密技术以及提高个人和组织的安全意识的重要性。通过分析常见的网络攻击手段如缓冲区溢出、SQL注入等,揭示了计算机系统中存在的缺陷及其潜在威胁。同时,详细介绍了对称加密和非对称加密算法的原理及应用场景,强调了数字签名和数字证书在验证信息完整性中的关键作用。此外,还讨论了培养良好上网习惯、定期备份数据等提升安全意识的方法,旨在帮助读者更好地理解和应对复杂的网络安全挑战。
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
610 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
442 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
418 10
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。
|
存储 监控 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
本文将探讨云计算与网络安全之间的关系,以及它们在云服务、网络安全和信息安全等技术领域中的融合与挑战。我们将分析云计算的优势和风险,以及如何通过网络安全措施来保护数据和应用程序。我们还将讨论如何确保云服务的可用性和可靠性,以及如何处理网络攻击和数据泄露等问题。最后,我们将提供一些关于如何在云计算环境中实现网络安全的建议和最佳实践。
|
存储 安全 网络安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
随着云计算技术的飞速发展,越来越多的企业和个人开始使用云服务。然而,云计算的广泛应用也带来了一系列网络安全问题。本文将从云服务、网络安全、信息安全等方面探讨云计算与网络安全的关系,分析当前面临的挑战,并提出相应的解决方案。
388 3

热门文章

最新文章