DMencode.m
上传用户:hwtw888
上传日期:2016-03-15
资源大小:177k
文件大小:1k
源码类别:

压缩解压

开发平台:

Matlab

  1. function y = DMencode(x, a, delt)
  2. %函数DMencode为德尔塔编码程序,x为要编码的矩阵,a为预测系数,delt为一个正常数。
  3. %当a默认时,a=1;delt默认时,delt=6.5。
  4. error(nargchk(1, 3, nargin))
  5. if nargin < 3
  6.     delt = 6.5
  7.     if nargin < 2
  8.         a = 1;
  9.     end
  10. end
  11. x = double(x);
  12. [m, n] = size(x);
  13. p = zeros(m, n);     %存放预测值
  14. e = zeros(m, n);     %量化前误差
  15. qe = zeros(m, n);    %量化后误差
  16. ff = zeros(m, n);
  17. ff(:, 1) = x(:, 1);
  18. qe(:, 1) = x(:, 1);
  19. for i = 1: m
  20.     for j = 2: n
  21.         p(i, j) = a.* ff(i, j-1);
  22.         e(i, j) = x(i, j) - p(i, j);
  23.         if e(i, j) > 0
  24.             qe(i, j) = delt;
  25.         else
  26.             qe(i, j) = -delt;
  27.         end
  28.         ff(i, j) = p(i, j) + qe(i, j);
  29.     end
  30. end
  31. y = qe;