9-1小波变换 小波分解和重构(matlab程序)

news2025/1/10 16:14:20

1.简述

      一、小波处理信号的一般过程
1)取样:这是一个预处理步骤。若信号连续,那么必须以能够捕获原信号必要细节的速率取样。不同的应用决定了不同的取样率。如:原信号的细节频率为20kHz,由Nyquist采样定理,此时的取样率至少应为细节频率的两倍,即40kHz,才能保证细节频率不失真。

2)分解:信号取样后,选择一个最高级近似系数f j ∈ v,以便能最佳的逼近f ff。之后,通过多分辨率分解算法,将信号进行逐级分解。该步骤的输出是各级别的小波系数(细节系数)和最低级别(或自定义的合适级别)的近似系数。该系数集就是下一步信号处理中要处理的对象。

3)信号处理:通过舍弃非显著系数可以压缩信号,或者以某种方式使信号滤波或去噪。该步骤的输出是修改过的系数集(细节系数集),可被存储或立即重构以重组经过处理的信号。但在某些情况下,原信号不再有用,可以舍弃,如:奇异性检测。

4)重构:把经过信号处理步骤修改过的系数集(细节系数集),应用多分辨率重构算法,进行逐级重构,该步骤输出最高级近似系数。

二、分解算法
1. 分解迭代
首先,基于取样率和进行什么样的多分辨率分析确定f ff的近似空间,其能最佳的反映f ff的各种信息。之后选择 ,以便能最佳的逼近f 。

三、重构算法
1. 重构迭代
一旦信号分解完毕,就可以通过修改某些w j ′ w_{j'}w ,实现对信号的处理。如果想要滤除信号中的噪声,那么f ff中的w j ′ w_{j'}w 中相应于不想要的频率部分可被舍弃,结果使得噪声被显著减小。如果想要对原信号进行数据压缩,可将幅值较小的w j ′ w_{j'}w 分量舍弃,这不会显著的改变原信号特征,但会获得极大的数据压缩效果。当w j ′ w_{j'}w 分量被修改完成之后,需要一个重构算法,重新组装被滤波或被压缩的信号,这个过程即为信号的重构.

2. 多分辨率重构算法
对近似系数和小波系数采用离散滤波器实现形式进行重构。

这几乎就是两个卷积之和,唯一区别是卷积的指标是k − l k-lk−l而不是k − 2 l k-2lk−2l,即上式是一个奇数(l ‾ ( k − ( 2 l + 1 ) ) \overline{l}_{(k-(2l+1))} 缺失的卷积。可以利用上取样算子简单地用0乘奇数项而复原回来。

形成一个在所有的奇数位置为0的新序列。原来的每个非零项给定一个新的偶数指标,这只要把原有的指标倍乘即可。

通过离散滤波器(卷积算子),来描述迭代步骤。

2.代码


load woman;             %打开显示原始的图像
imshow(X,map);          %X包含原始图像信息,map是调色板,这是一个索引图像
%% 对图像X数据信息进行单层分解,小波为db1
nbcol=size(map,1);
[cA1,cH1,cV1,cD1]=dwt2(X,'db1');   
cod_X=wcodemat(X,nbcol);
cod_cA1=wcodemat(cA1,nbcol);
cod_cH1=wcodemat(cH1,nbcol);
cod_cV1=wcodemat(cV1,nbcol);
cod_cD1=wcodemat(cD1,nbcol);
%%   图像编码    4种细节系数
figure
subplot(221)
imshow(cod_cA1,map)
title('近似细节系数')
subplot(222)
imshow(cod_cH1,map)
title('水平细节系数')
subplot(223)
imshow(cod_cV1,map)
title('垂直细节系数')
subplot(224)
imshow(cod_cD1,map)
title('对角细节系数')
Y=idwt2(cA1,cH1,cV1,cD1,'db1','nbcol');
%%   对分解的细节系数执行单层重构,小波为db1
figure;
imshow(Y,map);
title('重构后的图像')
 

3.运行结果

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/704404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

剑指 Offer !37. 序列化二叉树

剑指 Offer 37. 序列化二叉树 请实现两个函数,分别用来序列化和反序列化二叉树。 你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序…

Day43

思维导图 深拷贝和浅拷贝 1> 如果类中有指针成员时,如果没有显性的定义拷贝构造和拷贝赋值函数,系统默认提供的都只能实现浅拷贝,需要显性定义出深拷贝函数,为了完成指针成员的独立赋值,如果类中没有指针成员&#…

java面向对象之java继承

文章目录 一、java继承总结 一、java继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类…

Java之集合Collection

Collection接口有两个子接口:List(链表|线性表)和Set(集) ---|Collection: 单列集合---|List: 有存储顺序, 可重复---|ArrayList: 数组实现, 查找快, 增删慢由于是数组实现, 在增和删的时候会牵扯到数组增容, 以及拷贝元素. 所以慢。数组是可以直接按索引查找, 所以…

less和sass

less和sass 相比于css解决了什么问题? 答案:less和sass可以嵌套,可以使用变量;而css不可以 BEM/CSS modules/Atomic CSS/CSS in JS,这些方案应用于工程化中,解决了的问题是: 多人协同/大规模场…

Leonard ai 画明代皇帝肖像

链接: https://app.leonardo.ai/ai-generations prompt: Highly detailed doodle illustration of a Chinese emperor centered, isometric, mural, doodle, composition, shape, pattern, vector art ready to print Negative Prompt: …

mysql 触发器

触发器:当对某张表进行 INSERT、DELETE、UPDATE 操作时,会自动触发定义的触发器中的操作。顾名思义,当我们为某张表定义触发器后,向表中添加、删除、修改数据时,会触发触发器中定义的操作,触发器像是一个事…

Python语言中while循环的应用举例

Python语言中while循环的应用举例 while循环语句是Python语言中除了for循环外另一种循环结构,是需要掌握的两大循环语句之一。本文将基于例子讲解Python语言中while循环的应用,并用两个例子说明其应用。 一、while循环语句的含义 while语句用于在满足…

vue3学习之路

Vue3简介 面临的问题:随着功能的增长,复杂组件的代码变得难以维护,Vue3 就随之而来,TypeScript 使用的越来越多,Vue3就是 TS 写的所以能够更好的支持 TypeScript 在这里介绍就这么简单 vue2 的绝大多数的特性 在 Vu…

12.通用定时器基本原理

1.通用定时器概述: (1)STM32定时器 STM32F10x系列总共最多有8个定时器: (2)三种STM32定时器区别: (3)通用定时器功能特点描述: STM32的通用TIMx(TIM2、TIM…

快速点特征直方图(FPFH)描述子提取

快速点特征直方图(Fast Point Feature Histograms,FPFH)介绍 快速点特征直方图(Fast Point Feature Histograms,FPFH)是一种基于点的描述子,用于描述点云数据中的局部几何信息。FPFH描述子是在…

Scrapy框架之认识MongoDB

目录 MongoDB 简介 特点 MongoDB的适用场景 MongoDB的行业具体应用 如何抉择是否使用MongoDB MongoDB 简介 MongoDB 是免费开源的跨平台 NoSQL 数据库,命名源于英文单词 humongous,意思是「巨大无比」,可见开发组对 MongoDB 的定位。…

go读写文件总结

别人的经验: 如今任何计算机系统每天都会产生大量的日志或数据。随着系统的增长,将调试数据存储到数据库中是不可行的,因为它们是不可变的,主要用于分析和解决故障的目的。因此,企业倾向于将其存储在文件中&#xff0…

2023一建建筑市政全彩图文教材

本《建筑学全彩图文教材》改编自2022年官方指定的最新版本一级建造师《建筑工程管理与实务》教材。适用于2023年的第一次建造考试。2023年版教材出版上市后,我们将重点关注教材。补充电子版在变更处提供。 本书忠于官方原版教材,并不删除任何知识点&…

当大模型遇到数据仓库 HashData助力LLM规模化应用

6月30日,由 IT168主办的第十六届中国系统架构师大会(SACC2023)在北京开幕。本届大会以“数字转型 架构演进”为主题,议题涵盖AIGC大数据、多云多活、云成本等多个热门领域。 在会上,酷克数据首席科学家杨胜文发表了题…

UWB超宽带定位技术的原理及定位方法

uwb定位技术即超宽带技术,它是一种无载波通信技术,利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。传统的定位技术是根据信号强弱来判别物体位置,信号强弱受外界 影响较大,因此定位出的物体位置与实际…

JAVA-编程基础-08-Java异常处理全面解析

Lison <dreamlison163.com>, v1.0.0, 2023.04.01 JAVA-编程基础-08-Java异常处理全面解析 文章目录 JAVA-编程基础-08-Java异常处理全面解析什么是异常Exception和Error的区别checked和unchecked异常”关于 throw 和 throws关于 try-catch-finally小结 try-with-resourc…

升级Xcode14.3,项目无法运行解决

报错&#xff1a;link command failed with exit code 1(use -v to see invocaiton) 原因&#xff1a;新版本Xcode删除了特定目录下的一些文件 解决&#xff1a; post_install do |installer|installer.pods_project.targets.each do |target|target.build_configurations.e…

O2OA(翱途)开发平台如何在流程表单中使用基于Vue的ElementUI组件?

本文主要介绍如何在O2OA中进行审批流程表单或者工作流表单设计&#xff0c;O2OA主要采用拖拽可视化开发的方式完成流程表单的设计和配置&#xff0c;不需要过多的代码编写&#xff0c;业务人员可以直接进行修改操作。 在流程表单设计界面&#xff0c;可以在左边的工具栏找到Ele…

Linux--显示当前路径下的所有文件指令:ls

一、ls是list的简写 二、语法&#xff1a; ls [选项] [目录或文件] 三、功能&#xff1a; ①对于目录&#xff0c;该命令列出当前目录下的所有子目录与文件。 ②对于文件&#xff0c;将列出文件名以及其他信息。 四、常用选项&#xff1a; 1.-a 列出目录下的所有文件&…