差分编码就是将绝对码转化为相对码。
假设 an 是绝对码,bn 是相对码
若是双极性不归零码(1或-1), 那么 bn = bn-1 * an
若是单极性码(1或0),那么 bn = bn-1 + an (模二加)
以双极性不归零码示例:
an | 1 | -1 | -1 | 1 | 1 | -1 | 1 |
---|---|---|---|---|---|---|---|
bn | 1 | -1 | 1 | 1 | 1 | -1 | -1 |
代码示例:
% 差分编码 绝对码转相对码
function differential_code=differential_code(signal)
differential_code=signal(1);
for i=2:length(signal)
differential_code(i)=differential_code(i-1) * signal(i);
end
end
差分译码就是将相对码转化为绝对码。
假设 an 是绝对码,bn 是相对码
若是双极性不归零码(1或-1), 那么 an = bn-1 * bn
若是单极性码(1或0),那么 an = bn-1 + bn (模二加)
以双极性不归零码示例:
bn | 1 | -1 | 1 | 1 | 1 | -1 | -1 |
---|---|---|---|---|---|---|---|
an | 1 | -1 | -1 | 1 | 1 | -1 | 1 |
代码示例:
% 差分译码 相对码转绝对码
function differential_decode=differential_decode(signal)
differential_decode=signal(1);
for i=2:length(signal)
differential_decode(i)= signal(i)*signal(i-1);
end
end
代码均本人编写。
若有错误,还请指正。