📄 dpcm.m
字号:
function [r,xtilde]=dpcm(x,a)% Usage: [r,xtilde]=dpcm(x,a)% Differential Pulse Coded Modulation% x: input source vector to be encoded ,x是输入的将要编码的数据向量% a: prediction filter a是用于预测的滤波器% r: residue vector quantized to integer r作用是对真实值以及预测之间的差,进行量化(这个量化主要的作用就是对数据进行四舍五入,使之为一个整数)% r(t) = Q[x(t)-xhat(t)] = Q[x(t)- sum a(i)xtilde(t-i)] %xhat(t)是对x,进行预测的结果,% xtilde(t) = xhat(t) + r(t)%% copyright (c) 1997 by Yu Hen Hu% created: 11/24/97[m,nx]=size(x); if min(m,nx) > 1, error('x must be a vector'); return, endif m==1 & nx > 1, x = x'; m=nx; end % ensure x is a column vector保证x是一个列向量[p,na]=size(a);if p==1 & na > 1, a = a'; p=na; end % ensure a is a col. vector 对a同x的处理% First p element of x must be sent unchanged as part of r after% scaler quantizationr=round(x(1:p)); xtilde=r; %对x的前p个数据取整,这里p就是滤波器a的系数,要是做dpcm为1for t=p+1:m, %x剩余的数据 xhat(t)=a'*xtilde(t-1:-1:t-p);%有前面的数据预测 r(t)=round(x(t)-xhat(t)); xtilde(t)=xhat(t)+r(t);end%对于dpcm(x,1),r=x(1),xtilde=r% for t=2:m %m是x中元素的个数% xhat(t)=xtilde% r=round(x(t)-xhat(t))%
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -