91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 368KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2021-07-08
  • 語言: Matlab
  • 標簽:

資源簡介

語音作為一種搭載著特定的信息模擬信號,已成為人們社會生活中獲取信息和傳播信息的重要的手段。本文采用matlab語言進行程序設計,采用bp神經網絡的智能方法,實現對多種語音信號的分離。

資源截圖

代碼片段和文件信息


%%?清空環境變量
clc
clear

%%?訓練數據預測數據提取及歸一化

%下載四類語音信號
load?data1?c1
load?data2?c2
load?data3?c3
load?data4?c4
figure(1)
s(1)=subplot(411)plot(c1);
s(2)=subplot(412)plot(c2);
s(3)=subplot(413)plot(c3);
s(4)=subplot(414)plot(c4);
title(s(1)‘語音特征信號1‘)
title(s(2)‘語音特征信號2‘)
title(s(3)‘語音特征信號3‘)
title(s(4)‘語音特征信號4‘)
xlabel(‘語音幀‘‘FontSize‘22)
ylabel(s(2)‘語音特征信號‘‘FontSize‘22)


%四個特征信號矩陣合成一個矩陣
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(12000);
[mn]=sort(k);

%輸入輸出數據
input=data(:2:25);
output1?=data(:1);

%把輸出從1維變成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):)‘;

%輸入數據歸一化
[inputninputps]=mapminmax(input_train);

%%?網絡結構初始化
innum=24;
midnum=25;
outnum=4;
?

%權值初始化
w1=rands(midnuminnum);
b1=rands(midnum1);
w2=rands(midnumoutnum);
b2=rands(outnum1);

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;

%學習率
disp(‘學習率:‘)
xite=0.1
alfa=0.01;

%%?網絡訓練
for?ii=1:10
????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(kj)=FI(j)*x(k)*(e(1)*w2(j1)+e(2)*w2(j2)+e(3)*w2(j3)+e(4)*w2(j4));
????????????????db1(j)=FI(j)*(e(1)*w2(j1)+e(2)*w2(j2)+e(3)*w2(j3)+e(4)*w2(j4));
????????????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_testinputps);

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



%%?結果分析
%根據網絡輸出找出數據屬于哪類
for?i=1:500
????output_fore(i)=find(fore(:i)==max(fore(:i)));
end

%BP網絡預測誤差
error=output_fore-output1(n(1501:2000))‘;



%畫出預測語音種類和實際語音種類的分類圖
figure(2)
plot(output_fore‘r‘)
hold?on
plot(output1(n(1501:2000))‘‘b‘)
legend(‘預測語音類別‘‘實際語音類別‘)

%畫出誤差圖
figure(

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-12-07?23:25??BP神經網絡的數據分類-語音特征信號分類(修改)\
?????文件????????4101??2017-11-25?23:33??BP神經網絡的數據分類-語音特征信號分類(修改)\BP.m
?????文件????????3905??2010-01-30?20:21??BP神經網絡的數據分類-語音特征信號分類(修改)\BPDLX.m
?????文件???????93015??2009-08-29?16:54??BP神經網絡的數據分類-語音特征信號分類(修改)\data1.mat
?????文件???????92845??2009-08-29?16:54??BP神經網絡的數據分類-語音特征信號分類(修改)\data2.mat
?????文件???????92937??2009-08-29?16:54??BP神經網絡的數據分類-語音特征信號分類(修改)\data3.mat
?????文件???????93438??2009-08-29?16:54??BP神經網絡的數據分類-語音特征信號分類(修改)\data4.mat

評論

共有 條評論