Python实现小波变换去噪

article/2025/9/28 0:23:36

python实现小波变换去噪 

# coding = gbk
# 使用小波分析进行阈值去噪声,使用pywt.threshold
import pywt
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import mathdata = np.linspace(1, 10, 10)
print(data)
# [ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]
# pywt.threshold(data, value, mode, substitute) mode 模式有4种,soft, hard, greater, less; substitute是替换值data_soft = pywt.threshold(data=data, value=6, mode='soft', substitute=12)
print(data_soft)
# [12. 12. 12. 12. 12.  0.  1.  2.  3.  4.] 将小于6 的值设置为12, 大于等于6 的值全部减去6
data_hard = pywt.threshold(data=data, value=6, mode='hard', substitute=12)
print(data_hard)
# [12. 12. 12. 12. 12.  6.  7.  8.  9. 10.] 将小于6 的值设置为12, 其余的值不变
data_greater = pywt.threshold(data, 6, 'greater', 12)
print(data_greater)
# [12. 12. 12. 12. 12.  6.  7.  8.  9. 10.] 将小于6 的值设置为12,大于等于阈值的值不变化
data_less = pywt.threshold(data, 6, 'less', 12)
print(data_less)
# [ 1.  2.  3.  4.  5.  6. 12. 12. 12. 12.] 将大于6 的值设置为12, 小于等于阈值的值不变#-*-coding:utf-8-*-
#get Data
ecg = pywt.data.ecg()  #生成心电信号
index = []
data = []
coffs = []for i in range(len(ecg)-1):X = float(i)Y = float(ecg[i])index.append(X)data.append(Y)
#create wavelet object and define parameters
w = pywt.Wavelet('db8') #选用Daubechies8小波
maxlev = pywt.dwt_max_level(len(data),w.dec_len)
print("maximum level is" + str(maxlev))
threshold = 0.1  #Threshold for filtering
#Decompose into wavelet components,to the level selected:
coffs=pywt.wavedec(data,'db8',level=maxlev) #将信号进行小波分解
for i in range(1, len(coffs)):coffs[i] = pywt.threshold(coffs[i], threshold*max(coffs[i]))
datarec = pywt.waverec(coffs, 'db8') #将信号进行小波重构
mintime = 0
maxtime = mintime + len(data)
print(mintime, maxtime)
plt.figure()
plt.subplot(3,1,1)
plt.plot(index[mintime:maxtime], data[mintime:maxtime])
plt.xlabel('time (s)')
plt.ylabel('microvolts (uV)')
plt.title("Raw signal")
plt.subplot(3, 1, 2)
plt.plot(index[mintime:maxtime], datarec[mintime:maxtime])
plt.xlabel('time (s)')
plt.ylabel('microvolts (uV)')
plt.title("De-noised signal using wavelet techniques")
plt.subplot(3, 1, 3)
plt.plot(index[mintime:maxtime],data[mintime:maxtime]-datarec[mintime:maxtime])
plt.xlabel('time (s)')
plt.ylabel('error (uV)')
plt.tight_layout()
plt.show()

运行结果如下: 

 


http://chatgpt.dhexx.cn/article/kBFfwtM7.shtml

相关文章

常用的图像去噪方法

常用的图像去噪方法: ①高斯滤波: 高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的 加权平均灰度值 去替代模板中心像素点的值。 1.高斯滤波是平滑线性滤波器,在对邻域内像素灰…

基于Matlab的语音去噪处理

基于Matlab的语音去噪处理 一、课题背景 1.1 研究的意义 语音是语言的声学表现,是人类交流信息最自然、最有效、最方便的手段。随着社会文化的进步和科学技术的发展,人类开始进入了信息化时代,用现代手段研究语音处理技术,使人们…

如何评价滤波器的去噪效果?

假如使用两种滤波器,那么滤波效果如何去评价1? 为了能够得到高质量的去噪后信号,需要对滤波器的滤波效果进行评价,选取去噪效果最好的滤波器对原始信号进行去噪处理。 一般使用信噪比和峰值信噪比对滤波器进行量化评价&#xff0c…

经典图像去噪算法概述

目录 一、图像去噪基础知识 1. 图像去噪模型 2. 图像去噪类型 2.1 噪声类型——融合方式 2.2 噪声类型——概率分布 二、非局部均值图像去噪方法 三、基于图像先验的正则化去噪模型 1. 图像的梯度先验 2. 图像的非局部自相似先验 3. 图像的稀疏性先验 4. 图像的低秩…

小波去噪基本概念

一、前言 在现实生活和工作中,噪声无处不在,在许多领域中,如天文、医学图像和计算机视觉方面收集到的数据常常是含有噪声的。噪声可能来自获取数据的过程,也可能来自环境影响。由于种种原因,总会存在噪声,噪声的存在往…

Python实现图像去噪(中值去噪和均值去噪)

实现对图像进行简单的高斯去噪和椒盐去噪。代码如下: import numpy as np from PIL import Image import matplotlib.pyplot as plt import random import scipy.misc import scipy.signal import scipy.ndimage from matplotlib.font_manager import FontProperti…

七种滤波去噪方式

创建两个混合信号,便于更好测试滤波器效果。同时用七种滤波方法测试。 混合信号Mix_Signal_1 信号Signal_Original_1白噪声。 混合信号Mix_Signal_2 信号Signal_Original_2白噪声。 1.巴特沃斯低通滤波器去噪 巴特沃斯滤波器适合用于信号和噪声没有重叠的情况下。…

图像恢复(加噪与去噪)

人工智能导论实验导航 实验一:斑马问题 https://blog.csdn.net/weixin_46291251/article/details/122246347 实验二:图像恢复 https://blog.csdn.net/weixin_46291251/article/details/122561220 实验三:花卉识别 https://blog.csdn.net/…

去噪很有效的代码

去噪很有效的代码 主要思想:通过筛选面积小的联通区域,来实现去噪。 主要使用函数:cv2.connectedComponentsWithStats(img, connectivity),详解见:计算不规则连同区域 1. 原图与效果图 2. 实现代码 import cv2 impo…

图像去噪技术

目录 1.1图像去噪的基本概念 1.2 去噪效果评价标准 ​ 1.3传统去噪方法(简单介绍) 1.4 非局部均值去噪(NLmeans) ​ 1.6基于稀疏模型的去噪方法 总结 噪声的产生是信号在采集、传输以及记录过程中,受到成像设备自…

图像修复与去噪

博主简介 博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的&#xff0c…

小波阈值去噪原理及实现

小波阈值去噪原理及实现 1.小波阈值去噪的基本原理2.小波阈值去噪需要考虑的问题3.小波阈值的实现 1.小波阈值去噪的基本原理 将信号通过小波变换(采用Mallat算法)后,信号产生的小波系数含有信号的重要信息,将信号经小波分解后小…

python 图像平滑去噪(噪声+滤波器)

记录自己用python加opencv实现的图像处理的入门操作,各种平滑去噪滤波器的实现。 包括有:产生的椒盐噪声、高斯噪声等等,以及使用的中值滤波、平均滤波、高斯滤波等等。 分成了两部分来实现:一是自编写函数来实现,二是…

小波阈值去噪

目录 1.概念 2.原理 3.影响降噪效果的因素 3.1小波基的选择 3.2分解层数的选择 3.3阈值的选择 3.4阈值函数的选择 4.MATLAB代码 参考文献 1.概念 小波分析即用Mallat塔式算法对信号进行降阶分解。该算法在每尺度下将信号分解成近似分量与细节分量。近似分量表示信号的…

去噪

平滑去噪(低通滤波器) 噪声的产生是因为图像中的某些像素的灰度值发生了突变,使得和周围区域不和谐。除噪其实去除高频噪声,使得图像中的噪声像素的灰度值不那么突兀。 噪声去除有基于卷积(高斯滤波,均值…

图像的去噪

一、图像噪声概要 1. 图像噪声的产生主要源于两个方面: 图像获取过程中 常见的图像传感器CCD和CMOS在采集图像过程中,由于受到工作环境或者电子电路结构的影响,会引入各种噪声,如热噪声、光子噪声、暗电流噪声等。 信号传输过程…

图像去噪方法

图像去噪是指减少数字图像中噪声的过程。现实中的数字图像在数字化和传输过程中常受到成像设备与外部环境噪声等的影响,在这种条件下得到的图像称为含噪图像或噪声图像。噪声是干扰图像的重要因素。一幅图像在实际应用中可能存在各种各样的噪声,这些噪声…

搞懂语音去噪

文章目录 1 概述2 传统语音去噪2.1 谱减法2.2 维纳滤波法 3 深度语音去噪参考资料 1 概述 语音去噪(noise reduction)又被称为语音增强(speech enhancement),主要是针对于有人声的音频进行处理,目的是去除那些背景噪声,增强音频中人声的可懂…

几种常用信号平滑去噪的方法(附Matlab代码)

几种常用信号平滑去噪的方法(附Matlab代码) 1 滑动平均法 1.0 移动平均法的方法原理1.1 matlab内自带函数实现移动平均法1.2 利用卷积函数conv()实现移动平均法1.3 利用filter滤波函数实现移动平均法1.4 移动平均的幅频响应1.5 时域和频域的转换关系 2 …

图像噪声、去噪基本方法合集(Python实现)

文章目录 前言本文主要参考冈萨雷斯的数字图像处理 (第4版),介绍图片中一些常见的噪声形式和常用的去噪方法,并且给出相应滤波方法的实现代码。 一、噪声分类1、高斯噪声2、泊松噪声3、椒盐噪声4、瑞利噪声5、爱尔兰(伽…