多级树集合分裂(SPIHT)算法的过程详解和Matlab实现(5)编码过程——精细扫描

本文详细介绍了SPIHT算法的精细扫描过程,并提供了对应的Matlab实现,包括一个将十进制数(含小数)转换为二进制的函数fracnum2bin。该函数支持任意精度的二进制转换,对每个重要系数进行编码。后续文章将分享SPIHT的解码程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 本文给出SPIHT编码的精细扫描程序,其中包括一个能够将带小数的十进制数转换为二进制表示的函数,这个转换函数可以实现任意精度的二进制转换,特别是将小数部分转换为二进制表示。希望对有需要的朋友有所帮助。下一篇文章将给出SPIHT的解码程序。请关注后续文章,欢迎 Email 联系交流。

4、精细扫描程序

function Rn=refinement(N,LSP_Old)
% 函数 REFINEMENT()为精细编码程序,对上一级编码产生的重要系数列表LSP_Old,读取每个
% 表项相应小波系数绝对值的二进制表示,输出其中第N个重要的位,即相应于 2^N 处的码数
% 输入参数:N —— 本级编码阈值的指数
%                 LSP_Old —— 上一级编码产生的重要系数列表
% 输出参数:Rn —— 精细扫描输出位流

global Mat
% Mat是输入的小波分解系数矩阵,作为全局变量,在编码的相关程序中使用

Rn=[];
% 每级精细扫描开始时,Rn 均为空表
% LSP_Old 非空时才执行精细扫描程序
if ~isempty(LSP_Old)
    rlsp=size(LSP_Old,1);
% 获取 LSP_Old 的表项个数,对每个表项进行扫描
    for r=1:rlsp
        tMat=Mat(LSP_Old(

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值