• 大小: 471KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: 其他
  • 标签: 通信原理  PCM  matlab  

资源简介

1).模拟PCM编码; 2).模拟PCM在AWGN信道的译码; 3).完成实验任务和记录实验数据,整理实验结果,完成实践报告 有报告和源程序

资源截图

代码片段和文件信息

%---------------------采样------------------
t=0:0.1:6*pi;
fs=10;
T=1/fs;
n=0:1:94;
x=sin(t);                          %原始模拟信号
xn=sin(n.*T);                      %采样信号
figure(1);
subplot(211);
plot(tx);  title(‘时域信号‘); 
xlabel(‘t‘); ylabel(‘幅度‘);
line([06*pi][00]‘color‘‘k‘);
axis([06*pi-11]);
subplot(212);
stem(nxn);  title(‘采样信号‘); 
xlabel(‘n‘); ylabel(‘幅度‘);
%------------------对采样值进行量化--------------------
Is=xn.*2048;
n=length(xn);
codess=zeros(n8);
i=1:n;
for i=1:n
    if(Is(i)>=0)
       codess(i1)=1;             %判断正负号
    else
        codess(i1)=0;
    end
    %------------------段落码编码--------------------
    if abs(Is(i))>=0 && abs(Is(i))<16           
        codess(i2)=0;codess(i3)=0;codess(i4)=0;step=1;start=0;
    elseif abs(Is(i))>=16 && abs(Is(i))<32
        codess(i2)=0;codess(i3)=0;codess(i4)=1;step=1;start=16;
    elseif abs(Is(i))>=32 && abs(Is(i))<64
        codess(i2)=0;codess(i3)=1;codess(i4)=0;step=2;start=32;
    elseif abs(Is(i))>=64 && abs(Is(i))<128
        codess(i2)=0;codess(i3)=1;codess(i4)=1;step=4;start=64;
    elseif abs(Is(i))>=128 && abs(Is(i))<256
        codess(i2)=1;codess(i3)=0;codess(i4)=0;step=8;start=128;
    elseif abs(Is(i))>=256 && abs(Is(i))<512
        codess(i2)=1;codess(i3)=0;codess(i4)=1;step=16;start=256;
    elseif abs(Is(i))>=512 && abs(Is(i))<1024
        codess(i2)=1;codess(i3)=1;codess(i4)=0;step=32;start=512;
    elseif abs(Is(i))>=1024 && abs(Is(i))<2048
        codess(i2)=1;codess(i3)=1;codess(i4)=1;step=64;start=1024;
    end
    %----------------段内码------------------
    B=floor((abs(Is(i))-start)/step);   %floor函数有四舍五入的功能
    t=dec2bin(B4) -48;                 %十进制转二进制
    codess(i5:8)=t(1:4);
end
codess2=reshape(codess‘18*n);
figure(2);
stem(codess2);
title(‘编码值‘); axis([0 32 0 1.5]);
%----------------------加入噪声-----------------
y=pcm_noise(codess); 
%--------------PCM译码-------------------------------
slot(1)=0;slot(2)=16;slot(3)=32;slot(4)=64;
slot(5)=128;slot(6)=256;slot(7)=512;slot(8)=1024;
step_1(1)=1;step_1(2)=1;step_1(3)=2;step_1(4)=4;
step_1(5)=8;step_1(6)=16;step_1(7)=32;step_1(8)=64;
m1=length(y);%-------------------------加入噪声-------------
sg_out_1=zeros(195);
for k=1:m1
    ss=(y(k1))*2-1;        %提取符号
    teep=y(k2)*4+y(k3)*2+y(k4)*1+1;  %计算C2C3C4
    cds=round(teep);
    sl_m=slot(cds);                   %得出区间
    dat_m=(y(k5)*8+y(k6)*4+y(k7)*2+y(k7)*1+0.5)*step_1(cds);  %计算C5C6C7C8
    sg_out_1(k)=ss*(sl_m+dat_m)/2048;   %还原
end
%------------------------------------------------------
m2=length(codess);%----------------未加入噪声----------------
sg_out_2=zeros(195);
for k=1:m2
    ss=(codess(k1))*2-1;        %提取符号
    teep=codess(k2)*4+codess(k3)*2+codess(k4)*1+1;  %计算C2C3C4
    cds=round(teep);
    sl_m=slot(cds);                   %得出区间
    dat_m=(codess(k5)*8+codess(k6)*4+codess(k7)*2+codess(k7)*1+0.5)*step_1(cds);  %计算C5C6C7C8
    sg_out_

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-06-20 21:38  PCM编译码\
     文件      454056  2020-06-20 21:38  PCM编译码\PCM编译码.docx
     文件        6108  2018-12-31 17:10  PCM编译码\shijian8.m
     文件        6108  2018-12-31 17:21  PCM编译码\shijian8.txt
     文件       36574  2018-12-31 15:53  PCM编译码\shijian8_1.png
     文件       18328  2018-12-31 16:09  PCM编译码\shijian8_2.png
     文件       47476  2018-12-31 17:07  PCM编译码\shijian8_3.png

评论

共有 条评论