1.DPCM预测编码:
基本原理:
预测编码本质上利用了信源相邻符号之间的相关性,即根据某一模型利用以往的样本值对新样本进行预测,然后将样本的实际值与其预测值相减得到一个误差值,最后对这一误差值进行编码。这种编码方式很适用于去除图像或视频这样的信源的空间冗余,即每一帧相邻的像素之间有着较强的相关性,相邻像素的像素值相差并不大。
……
2.代码实现:利用MATLAB编译器内DPCM函数
①DPCM编码函数:
[indx,quants] = dpcmenco(sig, codebook, partition, predictor)
sig: 输入信号
partition: 量化区间边界
codebook: 量化码本
predictor=[0, t1,…, tm]: 预测器传递函数系数矩阵,对应预测器传递函数 为,y(k)=t1x(k-1) + t2x(k-2) + … + tmx(k-m)
partition: 量化区间边界
codebook: 量化码本
predictor=[0, t1,…, tm]: 预测器传递函数系数矩阵,对应预测器传递函数 为,y(k)=t1x(k-1) + t2x(k-2) + … + tmx(k-m)
indx: DPCM编码的编码索引
quants: 信号量化值
quants: 信号量化值
②DPCM解码函数:
[sig,quanterror] = dpcmdeco(indx,codebook,predictor)
indx: DPCM编码的编码索引
codebook: 码本
predictor=[0, t1,…, tm]: m阶预测器传递函数系数矩阵
sig: 解码信号
quanterror: 量化预测误差(与sig维数和长度相同)
③训练数据优化DPCM调制参数:
[predictor,codebook,partition] = dpcmopt(training_set,ord,len)
training_set: 训练数据
len: 整数,决定优化码本codebook矩阵长度