⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sbc16.m

📁 语音信号子带编码源程序
💻 M
字号:
function sbc16
% function of subbands coding;
% accomplish 8 subbands coding of voice-signals;
% DPCM use [8 8 8 8 4 4 4 4 4 4 4 4 4 4 4 4] bit
% within eath subband;
clear,close all,
%a=input('PLease input the bits vecter of the 2 subband-coding:');
a=input('请选择长度为16的字长向量,分别代表每个子带的字长.任一字长不能小于4。\n字长向量为:');
[m,n]=size(a);
if  n~=16||mean(a)<4||mean(a)>16
         error('输入错误,重请试!\n你必须信息按照提示进行输入!','k');
         %error('You have input a error number,try again!\nYou must input according the requirement!','k');
         return; 
end
tic;
[x1,fs,nb]=wavread('E:\MATLAB6p5\work\2006\manspeech.wav');
wc=3400;wc=wc/fs;[m,n]=size(x1);
y=lowpass(x1,wc);
wavwrite(x1,fs/3,nb,'E:\manspeech1.wav');
[x,fs,nb]=wavread('E:\manspeech1.wav');
[y1,y2]=bandpass(x);
m1=y1;m2=y2;
[a1,a2]=bandpass(m1);[a3,a4]=bandpass(m2);

[y1,y2]=bandpass(a1);[y3,y4]=bandpass(a2);[y5,y6]=bandpass(a3);[y7,y8]=bandpass(a4);

[y11,y12]=bandpass(y1);[y13,y14]=bandpass(y2);[y15,y16]=bandpass(y3);[y17,y18]=bandpass(y4);
[y21,y22]=bandpass(y5);[y23,y24]=bandpass(y6);[y25,y26]=bandpass(y7);[y27,y28]=bandpass(y8);

y11=code(y11,a(1));y12=code(y12,a(2));y13=code(y13,a(3));y14=code(y14,a(4));
y15=code(y15,a(5));y16=code(y16,a(6));y17=code(y17,a(7));y18=code(y18,a(8));
y21=code(y21,a(9));y22=code(y22,a(10));y23=code(y23,a(11));y24=code(y24,a(12));
y25=code(y25,a(13));y26=code(y26,a(14));y27=code(y17,a(15));y28=code(y28,a(16));

dec=decode(y11,a(1));y11=dec;dec=decode(y12,a(2));y12=dec;dec=decode(y13,a(3));y13=dec;dec=decode(y14,a(4));y14=dec;
dec=decode(y15,a(5));y15=dec;dec=decode(y16,a(6));y16=dec;dec=decode(y17,a(7));y17=dec;dec=decode(y18,a(8));y18=dec;
dec=decode(y21,a(9));y21=dec;dec=decode(y22,a(10));y22=dec;dec=decode(y23,a(11));y23=dec;dec=decode(y24,a(12));y24=dec;
dec=decode(y25,a(13));y25=dec;dec=decode(y26,a(14));y26=dec;dec=decode(y27,a(15));y27=dec;dec=decode(y28,a(16));y28=dec;

[yy11,yy12]=restructor(y11,y12);[yy13,yy14]=restructor(y13,y14);[yy15,yy16]=restructor(y15,y16);[yy17,yy18]=restructor(y17,y18);
f11=result(yy11,yy12);f12=result(yy13,yy14);f13=result(yy15,yy16);f14=result(yy17,yy18);
[yy21,yy22]=restructor(y21,y22);[yy23,yy24]=restructor(y23,y24);[yy25,yy26]=restructor(y25,y26);[yy27,yy28]=restructor(y27,y28);
f21=result(yy21,yy22);f22=result(yy23,yy24);f23=result(yy25,yy26);f24=result(yy27,yy28);

[g1,g2]=restructor(f11,f12);[g3,g4]=restructor(f13,f14);[g5,g6]=restructor(f21,f22);[g7,g8]=restructor(f23,f24);
g11=result(g1,g2);g12=result(g3,g4);g13=result(g5,g6);g14=result(g7,g8);

[yy1,yy2]=restructor(g11,g12);[yy3,yy4]=restructor(g13,g14);
ff1=result(yy1,yy2);ff2=result(yy3,yy4);

[yy1,yy2]=restructor(ff1,ff2);
re=result(yy1,yy2);

re=re/max(re);
wavwrite(re,3*fs,max(a),'E:\manspeech_16.wav');
toc,
error=abs(sum((re(1:m)-x1))/sum(x1)),

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -