• 大小: 123KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: Matlab
  • 标签: 通信原理  matlab  PCM  

资源简介

A率13折线编码PCM编码,用matlab编程实现,有源程序和说明文档。

资源截图

代码片段和文件信息

%---------------------------------------------------------
%%%%%%%%%%%%%%% PCM A率13折线编码 %%%%%%%%%%%%%%%%%%%%%%%%%
%---------------------------------------------------------

clcclear;
%A=87.6  y=Ax/(1+lnA) (0dx=0.01;
x=-1:dx:1;
A=87.6;
%A_law
for i=1:length(x)
    if abs(x(i))<1/A
        ya(i)=A*x(i)/(1+log(A));
    else
        ya(i)=sign(x(i)).*(1+log(A*abs(x(i)))/(1+log(A)));
    end
end
figure;
plot(xya‘k‘);
title(‘A_law‘);
xlabel(‘x‘);
ylabel(‘y‘);
grid on;
hold on
xx=[-1-1/2-1/4-1/8-1/16-1/32-1/64-1/1281/1281/641/321/161/81/41/21];
yy=[-1-7/8-6/8-5/8-4/8-3/8-2/8-1/81/82/83/84/85/86/87/81];
plot(xxyy‘r‘);
stem(xxyy‘b-‘);
legend(‘A_law‘);







%%
%下面对语音信号编码

load handel
x=y(1:20000);%取handel语音信号的前20000个采样点
sound(xFs);
figure;
plot(x);
title(‘原始语音信号‘);

%编码
x1=x/0.8.*4096;
yy=pcm_encode(x1);%得到PCM编码输出yy(调用编码函数)
figure;
stem(yy(1:80));
title(‘前10个采样点的PCM编码‘);

%receive=yy; %不加噪声时接收到的码直接等于编码输出yy

%高斯信道
receive = awgn(yy10);%对PCM码加入信噪比10dB的高斯噪声
figure;
stem(receive(1:80));
title(‘加噪声后 前10个采样点的PCM码‘);

%译码
for i=1:160000  %对收到的码信号进行判决,还原为PCM码
    if receive(i)<0.5
        receive(i)=0;
    else receive(i)=1;
    end
end
zz=pcm_decode(receive0.8);%得到由receive信号译码的语音信号(调用译码函数)
figure;
plot(zz);
title(‘译码得到的语音信号‘);
sound(zzFs);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1533  2010-12-26 16:57  第六章仿真作业 01089002李涛\my.m

     文件        526  2010-12-26 11:12  第六章仿真作业 01089002李涛\pcm_decode.m

     文件       1474  2010-12-26 15:31  第六章仿真作业 01089002李涛\pcm_encode.m

     文件     138244  2010-12-26 17:05  第六章仿真作业 01089002李涛\第六章仿真作业.docx

     目录          0  2010-12-26 17:05  第六章仿真作业 01089002李涛

----------- ---------  ---------- -----  ----

               141777                    5


评论

共有 条评论