实验总览
主要是利用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