通信原理实验(六)PCM、DPCM基带和带通通信系统

实验总览

主要是利用PCM和DPCM信源编码技术,利用数字技术来传输模拟信号,整个通信系统包括信源、信源编码、调制器、信道、解调器、信源译码、信宿。

PCM基带、带通通信系统

PCM信源编码技术

简介

信源编码主要包括采样,量化,编码。

采样需要满足采样定理,即采样频率要大于被采样信号最高频率的两倍。

量化包括均匀量化和非均匀量化,本次实验采用A律13折线非均匀量化。

本实验中编码采用基于A律13折线的1位极性码、3位段落码、4位段内码组成的8位编码。

采样部分

采样部分直接使用信号产生程序,产生的序列相当于是原始序列的理想采样序列。

量化编码部分

将量化、编码整合成一个部分,根据编码规律,写出以下编码程序

前置程序1.十进制转4位二进制(对应4位段内码)

function temp = d2b(x)
    temp = zeros(1, 4);
    for k = 4 : -1 :  1
        temp(k) = mod(x, 2);
        x = floor(x / 2);
    end
end

量化编码主程序

function [codex, y] = quantify_c(x)
    maxim = max(abs(x));
    y = x / maxim;
    y = y * 2048;
    y_abs = abs(y);
    L = 8; %编码长度
    N = length(x); %采样电平个数
    code = zeros(N, L);
    for i = 1 : N
        if y(i) >= 0
            code(i, 1) = 1;
        elseif y(i) < 0
            code(i, 1) = 0;
        end
        
        if y_abs(i) < 16
            code(i, 2 : 4) = [0, 0, 0];
            temp = floor(y_abs(i) / 1);
            code(i, 5 : 8) = d2b(temp);
        elseif y_abs(i) < 32
            code(i, 2 : 4) = [0, 0, 1];
            y_abs(i) = y_abs(i) - 16;
            temp = floor(y_abs(i) / 1);
            code(i, 5 : 8) = d2b(temp);
        elseif y_abs(i) < 64
            code(i, 2 : 4) = [0, 1, 0]; 
            y_abs(i) = y_abs(i) - 32;
            temp = floor(y_abs(i) / 2);
            code(i, 5 : 8) = d2b(temp);
        elseif y_abs(i) < 128
            code(i, 2 : 4) = [0, 1, 1];
            y_abs(i) = y_abs(i) - 64;
            temp = floor(y_abs(i) / 4);
            code(i, 5 : 8) = d2b(temp);
        elseif y_abs(i) < 256
            code(i, 2 : 4) = [1, 0, 0];
            y_abs(i) = y_abs(i) - 128;
            temp = floor(y_abs(i) / 8);
            code(i, 5 : 8) = d2b(temp);
        elseif y_abs(i) < 512
            code(i, 2 : 4) = [1, 0, 1];
            y_abs(i) = y_abs(i) - 256;
            temp = floor(y_abs(i) / 16);
            code(i, 5 : 8) = d2b(temp);
        elseif y_abs(i) < 1024
            code(i, 2 : 4) = [1, 1, 0];
            y_abs(i) = y_abs(i) - 512;
            temp = floor(y_abs(i) / 32);
            code(i, 5 : 8) = d2b(temp);
        elseif y_abs(i) < 2048
            code(i, 2 : 4) = [1, 1, 1];
            y_abs(i) = y_abs(i) - 1024;
            temp = floor(y_abs(i) / 64);
            code(i, 5 : 8) = d2b(temp);
        elseif y_abs(i) == 2048
            code(i, 2 : 8) = [1, 1, 1, 1, 1, 1, 1];
        end
    end
    for k = 1 : N
        codex(1 + (k - 1) * L : k * L) = code(k, :);
    end
end












            

 A律13折线编码的横坐标是采样电平的归一化电平的Δ单位表示,需要先将采样的电平进行归一化处理,并且用Δ单位代替归一化电平,1 = 2048Δ。

译码部分

译码就是将编码好的序列重新恢复为量化电平,译码规律需要满足A律13折线采用的8位码。

具体程序如下

子程序1.二进制转十进制程序

function value = b2d(x)
    lengthx = length(x);
    v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值