完整word版ADPCM语音编码标准MATLAB实现Word文档格式.docx

上传人:b****1 文档编号:14166113 上传时间:2022-10-19 格式:DOCX 页数:14 大小:380.74KB
下载 相关 举报
完整word版ADPCM语音编码标准MATLAB实现Word文档格式.docx_第1页
第1页 / 共14页
完整word版ADPCM语音编码标准MATLAB实现Word文档格式.docx_第2页
第2页 / 共14页
完整word版ADPCM语音编码标准MATLAB实现Word文档格式.docx_第3页
第3页 / 共14页
完整word版ADPCM语音编码标准MATLAB实现Word文档格式.docx_第4页
第4页 / 共14页
完整word版ADPCM语音编码标准MATLAB实现Word文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

完整word版ADPCM语音编码标准MATLAB实现Word文档格式.docx

《完整word版ADPCM语音编码标准MATLAB实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《完整word版ADPCM语音编码标准MATLAB实现Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

完整word版ADPCM语音编码标准MATLAB实现Word文档格式.docx

a=fscanf(fid,%e\n'

fclose(fid);

spp.txt'

'

wt'

%存放解码输出波形

fori=1:

size(a,1);

Slk=a(i);

[coe,coe1,coe2,coe3,Dqk]=adpcm(Slk,coe,coe1,coe2,coe3,Dqk);

fprintf(fid,'

%f\n'

coe2(5));

end

fid=fopen('

rt'

b=fscanf(fid,'

%e\n'

subplot(211);

plot(a);

subplot(212);

plot(b);

%语音编解码子函数程序adpcm.m

function[coe,coe1,coe2,coe3,Dqk]=adpcm(Slk,coe,coe1,coe2,coe3,Dqk)%语音编解

码函数

Yk_pre=coe2

(1);

%初值传递

Sek_pre=coe2

(2);

Ik_pre=coe2(3);

Ylk_pre_pre=coe2(4);

Srk_pre=coe2(5);

Srk_pre_pre=coe2(6);

a2=coe2⑺;

Tdk_pre=coe2(8);

Trk_pre=coe2(9);

Num=coe2(10);

coe2(10)=coe2(10)+1;

[Sek,coe]=Sek_com(Srk_pre,Srk_pre_pre,Dqk,coe);

%自适应预测

Dk=Dk_com(Slk,Sek);

%采样值与其估值差值计算

Yuk_pre=yu_result(Yk_pre,wi_result(abs(lk_pre)));

ifYuk_pre<

1.06

Yuk_pre=1.06;

else

ifYuk_pre>

10.00Yuk_pre=10.00;

Ylk_pre=yl_result(Ylk_pre_pre,Yuk_pre);

%

Trk_pre=Trk_com(a2,Dqk(6),Ylk_pre);

Tdk_pre=Tdk_com(a2);

%单频信号判定

[Alk,coe1]=Alk_com(lk_pre,Yk_pre,coe1,Tdk_pre,Trk_pre);

%自适应速度控制与自适应预测

ifAlk<

0.0

Alk=0.0;

ifAlk>

1.0

Alk=1.0;

量化阶距自适应因子计算

[Yk,coe3]=Yk_com(lk_pre,Alk,Yk_pre,coe3);

Ik=lk_com(Dk,Yk);

%自适应量化并编码输出

Yk_pre=Yk;

Srk_pre_pre=Srk_pre;

Sek_pre=Sek;

Ylk_pre_pre=Ylk_pre;

Ik_pre=Ik;

coe2

(1)=Yk;

coe2(6)=Srk_pre;

coe2

(2)=Sek;

coe2(4)=Ylk_pre;

coe2(3)=Ik;

Dqk

(1)=Dqk

(2);

Dqk

(2)=Dqk(3);

Dqk(3)=Dqk(4);

Dqk(4)=Dqk(5);

Dqk(5)=Dqk(6);

Dqk(6)=Dqk(7);

自适应逆量化器输出

重建信号输出

Dqk(7)=Dqk_com(Ik_pre,Yk_pre);

Srk_pre=Srk_com(Dqk(7),Sek_pre);

%coe2(5)=Srk_pre;

%自适应速度控制与自适应预测子函数function[h,coe1]=Alk_com(lk_pre,Yk_pre,coe1,Tdk_pre,Trk_pre)Dmsk_p2=coe1

(1);

Dmlk_p2=coe1

(2);

Apk_pre2=coe1(3);

Dmsk_p1=(1-2A(-5))*Dmsk_p2+2A(-5)*fi_result(abs(Ik_pre));

Dmlk_p1=(1-2A(-7))*Dmlk_p2+2A(-7)*fi_result(abs(Ik_pre));

coe1

(1)=Dmsk_p1;

coe1

(2)=Dmlk_p1;

if((abs(Dmsk_p1-Dmlk_p1)>

=2A(-3)*Dmlk_p1)|(Yk_pre<

3)|(Tdk_pre==1))

Apk_pre仁(1-2A(-4))*Apk_pre2+2A(-3);

if(Trk_pre==1)

Apk_pre仁1;

Apk_pre仁(1-2A(-4))*Apk_pre2;

end

coe1(3)=Apk_pre1;

ifApk_pre1>

=1

Alk=1;

Alk=Apk_pre1;

h=Alk;

%采样值与其估计值差值计算奇函数

functiond=Dk_com(Slk,Sek);

Dk=Slk-Sek;

d=Dk;

%自适应逆量化器输出子函数

functionf=Dqk_com(lk,Yk)

ifIk>

=0

Dqsk=0;

i=Ik;

Dqsk=1;

i=-Ik;

switchi

case7

Dqlnk=3.32;

case6

Dqlnk=2.91;

case5

Dqlnk=2.52;

case4

Dqlnk=2.13;

case3

Dqlnk=1.66;

case2

Dqlnk=1.05;

case1

Dqlnk=0.031;

case0

Dqlnk=-1000;

%日一化输出

Dqlk=Dqlnk+Yk;

Dqk=2ADqlk;

ifDqsk==1

Dqk=-Dqk;

f=Dqk;

%自适应预测中f函数值计算子函数

functionb=f_com(a)

ifabs(a)<

=0.5

b=4*a;

b=2*sgn_com(a);

%速度控制中F[l(k)]计算子函数

functionw=fi_result(in)

switchin

fi=0;

fi=1;

fi=3;

fi=7;

w=fi;

%自适应量化并编码输出子函数

functionf=lk_com(Dk,Yk)

ifDk>

Dsk=0;

Dsk=1;

ifDk==0

Dk=Dk+0.0001;

Dlk=log(abs(Dk))/log

(2);

Dlnk=Dlk-Yk;

x=Dlnk;

a=10;

ifDlnk<

-0.98

lk=0;

if-0.98<

=Dlnk&

Dlnk<

0.62

lk=1;

if0.62<

=DInk&

DInk<

1.38

lk=2;

if1.38<

1.91

lk=3;

if1.91<

2.34

lk=4;

if2.34<

2.72

lk=5;

if2.72<

3.12

lk=6;

ifDink>

=3.12

lk=7;

ifDsk==1

lk=-lk;

f=lk;

%自适应预测子函数

function[g,f]=Sek_com(Srk_pre,Srk_pre_pre,Dqk,coe)

a1_pre=coe

(1);

a2_pre=coe

(2);

b1_pre=coe(3);

b2_pre=coe(4);

b3_pre=coe(5);

b4_pre=coe(6);

b5_pre=coe(7);

b6_pre=coe(8);

Sezk_pre=coe(9);

p_pre2=coe(10);

p_pre3=coe(11);

%六阶零点预测器系数

b1=(1-2A(-8))*b1_pre+2A(-7)*sgn_com(Dqk(7))*sgn_com(Dqk(6));

b2=(1-2A(-8))*b2_pre+2A(-7)*sgn_com(Dqk(7))*sgn_com(Dqk(5));

b3=(1-2A(-8))*b3_pre+2A(-7)*sgn_com(Dqk(7))*sgn_com(Dqk(4));

b4=(1-2A(-8))*b4_pre+2A(-7)*sgn_com(Dqk(7))*sgn_com(Dqk(3));

b5=(1-2A(-8))*b5_pre+2A(-7)*sgn_com(Dqk(7))*sgn_com(Dqk

(2));

b6=(1-2A(-8))*b6_pre+2A(-7)*sgn_com(Dqk(7))*sgn_com(Dqk

(1));

9二阶极点预测器系数

Sezk=b1*Dqk(7)+b2*Dqk(6)+b3*Dqk(5)+b4*Dqk(4)+b5*Dqk(3)+b6*Dqk

(2);

p_pre1=Dqk(7)+Sezk_pre;

ifabs(p_pre1)<

=0.000001;

a1=(1-2A(-8))*a1_pre;

a2=(1-2A(-7))*a2_pre;

a仁(1-2A(-8))*a1_pre+(3*2A(-8))*sgn_com(p_pre1)*sgn_com(p_pre2);

a2=(1-2A(-7))*a2_pre+2A(-7)*(sgn_com(p_pre1)*sgn_com(p_pre3)-f_com(a1_pre)*sgn_com(p_pre1)*sgn_com(p_pre2));

%自适应预测和重建信号计算器

coe

(1)=a1;

coe

(2)=a2;

coe(3)=b1;

coe(4)=b2;

coe(5)=b3;

coe(6)=b4;

coe(7)=b5;

coe(8)=b6;

coe(9)=Sezk;

coe(10)=p_pre1;

coe(11)=p_pre2;

g=(a1*Srk_pre+a2*Srk_pre_pre+Sezk);

f=coe;

%sgn_com函数

functionb=sgn_com(a)

ifa>

=0.000001

b=1;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 销售营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1