## 传感数据分析——傅里叶滤波与小波滤波

news/2024/2/23 14:50:27/文章来源:https://blog.csdn.net/weixin_39753819/article/details/135477429

## 传感数据分析——傅里叶滤波与小波滤波

#### 文章目录

• 传感数据分析——傅里叶滤波与小波滤波
• 前言
• 一、运行环境
• 二、Python实现
• 总结

`本文正文内容`

## 二、Python实现

``````# @copyright all reseved
# @author: Persist_Zhang
import numpy as np
import matplotlib.pyplot as plt
import pywtdef fourier_filter(signal, cutoff_frequency):# 进行傅里叶变换spectrum = np.fft.fft(signal)# 设定高频分量为零spectrum[int(cutoff_frequency):] = 0spectrum[:1] = 0  # 去除直流分量# 进行傅里叶逆变换filtered_signal = np.fft.ifft(spectrum)return filtered_signal.realdef wavelet_filter(signal, wavelet='db1', level=4, threshold_multiplier=0.1):# 进行小波变换coeffs = pywt.wavedec(signal, wavelet, level=level)# 计算阈值threshold = threshold_multiplier * np.sqrt(2 * np.log2(len(signal))) * np.median(np.abs(coeffs[-1]))# 应用阈值coeffs = [pywt.threshold(c, threshold, mode='soft') for c in coeffs]# 进行小波逆变换filtered_signal = pywt.waverec(coeffs, wavelet)return filtered_signalif __name__ == "__main__":# 生成含噪声的信号np.random.seed(42)t = np.linspace(0, 1, 1000, endpoint=False)signal = np.sin(2 * np.pi * 7 * t) + 0.5 * np.sin(2 * np.pi * 15 * t) + 0.1 * np.random.randn(1000)# 设定傅里叶滤波的截止频率cutoff_frequency = 20# 进行傅里叶滤波filtered_fourier = fourier_filter(signal, cutoff_frequency)# 进行小波滤波threshold_multiplier = 0.8  # 调整阈值以控制去噪程度filtered_wavelet = wavelet_filter(signal, threshold_multiplier=threshold_multiplier)# 绘制原始信号和滤波后的信号在同一张图上plt.figure(figsize=(10, 6))plt.plot(t, signal, label='Original Signal', color='blue')plt.plot(t, filtered_fourier, label='Filtered (Fourier)', color='green')plt.plot(t, filtered_wavelet, label=f'Filtered (Wavelet, Threshold Multiplier={threshold_multiplier})', color='orange')plt.legend()plt.title('Original Signal and Filtered Signals')plt.xlabel('Time')plt.ylabel('Amplitude')plt.savefig('./figure/Fourier_Wavelet_Filter.jpg')plt.show()``````

## 总结

### 图像处理------亮度

from PIL import Imagedef change_brightness(img: Image, level: float) -> Image:"""按照给定的亮度等级&#xff0c;改变图片的亮度"""def brightness(c: int) -> float:return 128 level (c - 128)if not -255.0 < level < 25…

### scrapy爬虫实战

scrapy爬虫实战 Scrapy 简介主要特性示例代码 安装scrapy&#xff0c;并创建项目运行单个脚本代码示例配置itemsetting 爬虫脚本 代码解析xpath基本语法&#xff1a;路径表达式示例&#xff1a;通配符和多路径&#xff1a;函数&#xff1a;示例&#xff1a; 批量运行附录1&…

### OpenCV C++ 图像处理实战 ——《多尺度自适应Gamma矫正的低照图像增强》

OpenCV C++ 图像处理实战 ——《多尺度自适应Gamma矫正的低照图像增强》 一、结果演示二、多尺度自适应Gamma矫正的低照度图像增强2.1HSI颜色空间2.1.1 功能源码2.2 自适应于直方图分布的 Gamma 矫正2.2.1 功能源码2.3 多尺度 Retinex 分解与明度增强2.3.1 功能源码三、源码测试…

### 【Linux】自定义shell

👑作者主页：@安 度 因 🏠学习社区：安度因 📖专栏链接：Linux 文章目录 获取命令行前置字段命令行输入解析命令行普通指令的执行子进程执行命令指令类型判断 && 内建命令总结 &&a

### 【Maven】007-Maven 工程的继承和聚合关系

【Maven】007-Maven 工程的继承和聚合关系 文章目录 【Maven】007-Maven 工程的继承和聚合关系一、Maven 工程的继承关系1、继承的概念2、继承的作用3、继承的语法4、父工程统一管理依赖版本父工程声明依赖版本子工程继承以来版本 二、Maven 工程的聚合关系1、聚合的概念2、聚合…

### Spark与HBase的集成与数据访问

Apache Spark和Apache HBase分别是大数据处理和分布式NoSQL数据库领域的两个重要工具。在本文中&#xff0c;将深入探讨如何在Spark中集成HBase&#xff0c;并演示如何通过Spark访问和操作HBase中的数据。将提供丰富的示例代码&#xff0c;以便更好地理解这一集成过程。 Spark…