3. 将N行8列矩阵转换为1行8*N列的矩阵的函数 function t1=tqm(R) t1=zeros(length(R)*8,1); c=1;
for a=1:length(R)-1 for b=1:8 t1(c)=R(a,b); c=c+1; end end t1=t1'; end
3.调制mod1模块
图8 调制
5. 送入信道及加噪声channel1模块
图9 送入信道及加噪声
6. 解调dem1模块
图10 解调
7. A律十三折线PCM译码函数 %PCM译码程序
function S=pcm2(Y)
d=size(Y,1); %求出输入码组的个数 a=[0,16,32,64,128,256,512,1024]; %段落起点值 b=[1,1,2,4,8,16,32,64]; %每段的最小量化间隔 c=[0,1.5:15.5]; %段内码平均值 for m=1:d
t1=Y(m,1); %取符号 t2=Y(m,2)*4+Y(m,3)*2+Y(m,4)+1; %判断段落位置 t3=Y(m,5)*8+Y(m,6)*4+Y(m,7)*2+Y(m,8); %判断段内位置 if t3==0 %段内码为零时 k(m)=a(t2)/2048; else
k(m)=(a(t2)+b(t2)*c(t3))/2048; %还原出量化后的电平值 end
%判断符号位
if t1==0 S(m)=-k(m); else
S(m)=k(m); end end
8.将8*N行1列的矩阵转换为N行8列矩阵的函数 function t2=tqn(t1) t2=zeros(length(t1)/8,8); a=1; b=1;
for m=1:length(t1)-1 if b>8 a=a+1; b=1; end
t2(a,b)=t1(m); b=b+1;
m=m+1; end end