標準DPCM編碼(Matlab實現)

2021-07-07 03:53:24 字數 747 閱讀 7881

以下**中,f代表原始碼,f1代表**碼,e代表**碼與原始碼差值,en代表變換後的差分值(通過含e的公式計算得到,因為有特定對應值,也可以通過查表實現)。f2是通過變換後的差分值得到的**碼。

最終輸出的結果是en,也就是變換後的差分值。

function en = my_dpcm(f)

[~,n] = size(f);

f1 = zeros(1,n);

f2 = zeros(1,n);

e = zeros(1,n);

en = zeros(1,n);

f1(1) = f(1);

f1(2) = f(1);

e(1) = 0;

en(1) = 0;

f2(1) = f(1);

for i = 2:n

if(i~=2)

f1(i) = ( f2(i-1)+f2(i-2) )/2;

ende(i) = f(i) - f1(i);

en(i) = 16*trunc((255 + e(i))/16)-256+8;

f2(i) = en(i) + f1(i);

end

endfunction a = trunc(b)

if(b>0)

a = floor(b);

elseif (b<0)

a = ceil(b);

else

a = 0;

endend

實驗四 dpcm編碼

一 實驗原理 dpcm編碼,是差分 編碼調製的縮寫,是典型的 編碼系統。這種方式是用已經過去的抽樣值來 當前的抽樣值,對它們的差值進行編碼。之所以不用原始樣本做 是因為在解碼端無法得到原始樣本資料,只能得到存在誤差的樣本。差值編碼可以提高編碼頻率,這種技術已應用於模擬訊號的數字通訊之中。二 實驗步驟...

Matlab 夏農編碼

資訊理論實驗課第乙個作業,是用matlab實現夏農編碼。拼拼湊湊刪刪改改做出了乙個,但是還不是很理想,陣列不知道怎麼轉換為字串拼接起來 夏農編碼 output 二進位制編碼code input 信源分布p function shannon p n length p 信源符號數 p sort p,de...

Matlab 算術編碼

資訊理論的第三個作業 終於是完完全全自己寫的 了!留下了不學無術的淚水qaq 算術編碼程式 輸入 信源u 信源分布p 需要進行編碼的序列s 輸入備註 輸入格式 a 0 1 p 1 4 3 4 s 1 0 1 1 1 輸出 該序列的算術編碼s 輸出備註 以序列所在區間的左端點值作為所求序列的碼字 輸入...