logo资料库

A率13折线编码.docx

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
实验一. A 率 13 折线编码 1.1 A 率 13 折线编码简介  A 率 13 折线的产生 A 率 13 折线的产生是从不均匀量化的基点出发,设法用 13 段折线逼近 A=87.6 的 A 率压缩特性。具体方法是:把输入 x 轴和输出 y 轴用两种不同的方 法划分。对 x 轴在 0~1(归一化)范围内不均匀分成 8 段,分段的规律就是每次 以二分之一对分,第一次在 0 到 1 之间的 1/2 处对分,第二次在 0 到 1/2 之间的 1/4 处对分,其余类推。对 y 轴在 0~1(归一化)范围内采用等分法,均匀分成 8 段,每段间隔均为 1/8。然后把 x,y 各对应段的交点连接起来构成 8 段直线,得 到近似 A=87.6 的 A 率压缩特性。这种近似中会得到 13 段(正负)斜率不同的 折线,所以称其为 A 率 13 折线。  A 率 13 折线的编码 在 13 折线编码中,普遍采用 8 位二进制码,对应有 M  82  个量化级, 256 即正、负输入幅度范围内各有 128 个量化级。这需要将 13 折线中的每个折线段 再均匀分为 16 个量化级,由于每个段落长度不均匀,因此正或负输入的 8 个段 落被划分成8 16 128  个不均匀的量化级。按折叠二进制码的码型,这 8 位码的  安排如下: 极性码 1C 段落码 段内码 C C C 2 3 4 C C C C 5 8 6 7 其中,第一位表示采样点的极性,第二到第四位表示采样点所在段落。第五到第 八位表示每段内的一个均匀量化级。 1.2 实验要求  1、了解 PCM 及 13 折线 A 率编码及译码的原理;  2、随机给出一个语音信号,并用 A 率 13 折线 PCM 对其编码;  3、将编码后的信号经过加性高斯白噪声信道,并在接收端对其进行译码;  4、分别画出原始语音信号、PCM 编码信号以及译码后信号的波形。 注:这个随机的语音信号可以用 load handel 语句可以得到 y 和 Fs。其中 y 是一 个语音信号的采样序列,Fs 是其采样频率。用的时候截取 y 的一段就可以。
实验源代码: load handel X=y(1:10000); X=X'; %生成信号 %取 y 的一段函数 p=A13tiaozhi(X); %将 X 编为 PCM 编码。 %将信号升余弦化通过信道 Ta=50; %信号变为双极性信号以便传输 p1=p*2-1; P1=repmat(p1,[Ta,1]);P1 = P1(1:end); % 信号方波过采样以匹配点数 S=shengyuxuan(P1,Ta); %将双极性信号变为可传播的余弦信号 subplot(3,1,3) plot(S) axis([0,1000,-1,1]); Nt=.01*randn(1,length(S)); S=S+Nt; for i=1:length(S)/50 p2(i)=S(i*50-25); end p2=sign(p2); p2=(p2+1)/2; sum(abs(p2-p)) %生成高斯白噪声 %信号通过信道,并加入高斯白噪声 %抽样判决 %计算误码个数 y=A13jietiao(p2); %将得到的 01 编码 p2 解调,得到输出 y %画图对比原始信号与接收到的信号。 figure(2) subplot(2,1,1); plot(X) title('原始信号'); subplot(2,1,2); plot(y) title('输出信号'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %A 率 13 折线编码调制 function p=A13tiaozhi(X) x=X*2048; %换算出 x 数量 x=fix(x); p=[]; for i=1:length(x) y=x(i); %p 为存放编码的向量。用于传输。
%判断第 C1 位 t=zeros(1,7); if y<0; t(1)=0; else t(1)=1; end y=abs(y); if y/16>1 e=fix(log2(y/16)+1); else e=0;%e 为一个辅助量。为 x 的 log2 得数。便于求出段码以及量化间隔与段落起始 end %量化间隔 %段落起始 %C5 到 C8,即为 10 进制转化为 2 进制量。 dv=2^e-fix(2^(e-1)); di=fix(2^(e-1))*16; dy=fix((y-di)/dv); j=8; while (j>4) t(j)=rem(dy,2); j=j-1; dy=fix(dy/2); end j=4;%C2 到 C4 while (j>1) t(j)=rem(e,2); j=j-1; e=fix(e/2); end p=[p,t]; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function y=A13jietiao(p) y=[]; for i=1:length(p)/8 %A 率 13 折线,编码译码 e=p(2+(i-1)*8)*2^2+p(3+(i-1)*8)*2^1+p(4+(i-1)*8)*2^0;%算出 e。 dv=2^e-fix(2^(e-1)); di=fix(2^(e-1))*16;%段落起始 y(i)=di+dv*(p(5+(i-1)*8)*2^3+p(6+(i-1)*8)*2^2+p(7+(i-1)*8)*2^1+p(8+(i-1)*8)*2^0); y(i)=(2*p(1+(i-1)*8)-1)*y(i)/2048; %量化间隔 end
实验结果: 1 0 -1 0 1 0 -1 0 升 余 弦 滤 波 器 时 域 波 形 50 100 150 200 250 100 200 300 400 500 600 700 800 900 1000 第一幅图为升余弦滤波器的函数图。第二幅图为信号通过升余弦滤波器的图像。 1 0.5 0 -0.5 -1 0 1 0.5 0 -0.5 -1 0 原 始 信 号 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 输 出 信 号 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 第一幅图伟原始信号波形。第二幅图为接收端输出信号波形。 编程原理:
本程序分为三部分。主函数,编码函数 A13tiaozhi(X)与译码函数 A13jietiao(X)。 A-13 折线编码程序原理:I=n* ,n 为随机数。而 A-13 折线编码也是关于变量 n 的变换。 将 n 写成 16*2^m+K 的形式,其中,m 和 k 均为整数。则 m 的 2 进制数即为 C2,C3,C4 段 码。K 除以量化间隔的二进制形式即为 C5 到 C8 的段内码对应数值。运用此原理,分别求出 m 和 k 即可得到所需的 1 0 编码。
分享到:
收藏