⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ardec.m

📁 huffman 和 arithtic code run in the matlab
💻 M
字号:
function symseq=ardec(symbol,pr,codeword,symlen)% Usage: symseq=ardec(symbol,pr,codeword,symlen)% arithmetic decoding in decimal given a %   symbol probability table.% output: %   symseq:  the input sequence of symbols to be encoded.% input:%   symbol: the list of symbols, a row vector of single letters%   pr:     the corresponding probabilty of each symbol%   codeword: a decimal number, the lower bound of the final interval.%   symlen: length of the decoded symbol sequence.% (C) 2002 by Yu Hen Hu% created: 11/14/2002%format longhigh_range=[];for k=1:length(pr),   high_range=[high_range sum(pr(1:k))];endlow_range=[0 high_range(1:length(pr)-1)];prmin=min(pr); symseq=[];for i=1:symlen,    idx=max(find(low_range<=codeword));   codeword=codeword-low_range(idx);   % due to numerical error, sometimes the encoded number    % will be slightly smaller than the current lower bound.   % If this happens, a correction is required.   if abs(codeword-pr(idx))< 0.01*prmin,       idx=idx+1;       codeword=0;   end   symseq=[symseq symbol(idx)],   codeword=codeword/pr(idx),   if abs(codeword)<0.01*prmin,      i=symlen+1;  % break the for loop immediately   endend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -