import math
import matplotlib.pyplot as plt
import pywt
import pandas as pd
import numpy as np
import scipy as signaldef WaveletDeNoising(path):xy = pd.read_csv(path, sep=', ')  # 读取CSV文件s = []for each in list(xy):s.append(float(each))# 将需要的数据保存在列表s中w = pywt.wavedec(s, 'sym7', level=6)  # 小波分解,pywt.wavedec(数据, 小波基, 分解尺度)# 分解得到的w是一个列表,w[0]是最大尺度的近似系数,w[1]是最大尺度的细节系数,w[2]是次大尺度的细节系数,以此类推n = len(s)thr = round(np.sqrt(2 * np.log(n)), 4)  # 阈值获取,方式为sqtwologfor i in range(1, len(w)):w[i] = pywt.threshold(w[i], thr, mode='soft')# 阈值处理函数rec_s = pywt.waverec(w, 'sym7')  # 小波重构plt.subplot(211)plt.plot(s, linewidth=0.5)plt.subplot(212)plt.plot(rec_s, linewidth=0.5)plt.show()print(f'Hi, process success!')def WaveFiltering(path):xy = pd.read_csv(path, sep=', ')  # 读取CSV文件s = []for each in list(xy):s.append(float(each))b, a = signal.butter(8, [0.01, 0.4], 'bandpass')  # 配置滤波器 8 表示滤波器的阶数rec_s = signal.filtfilt(b, a, s)  # data为要过滤的信号plt.subplot(211)plt.plot(s, linewidth=0.5)plt.subplot(212)plt.plot(rec_s, linewidth=0.5)plt.show()print(f'Hi, process success!')def TimeThresholdAnalysis(path):xy = pd.read_csv(path, sep=', ')  # 读取CSV文件s = []for each in list(xy):s.append(float(each))df_mean = np.mean(s)   # 均值df_var = np.var(s)    # 方差df_std = np.std(s)    # 标准差df_max = np.max(s)    # 最大值df_rms = np.sqrt(pow(df_mean, 2) + pow(df_std, 2))    # 均方根df_skew = pd.Series(s).skew()    # 偏度df_kurt = pd.Series(s).kurt()    # 峭度df_boxing = df_rms / np.abs(s).mean()    # 波形因子df_fengzhi = np.max(s) / df_rms    # 峰值因子df_maichong = np.max(s) / np.abs(s).mean()    # 脉冲因子sum_size = 0for i in range(2000):sum_size += math.sqrt(abs(s[i]))df_yudu = (np.max(s)) / pow((sum_size / 2000), 2)    # 裕度因子print(f'峰值因子:%f' % df_fengzhi)print(f'波形因子:%f' % df_boxing)print(f'脉冲因子:%f' % df_maichong)print(f'峭度:%f' % df_kurt)print(f'裕度因子:%f' % df_yudu)print(f'最大值:%f' % df_max)print(f'均值:%f' % df_mean)print(f'均方根:%f' % df_rms)print(f'偏度:%f' % df_skew)print(f'标准差:%f' % df_std)print(f'Hi, process success!')def FFTConversion(path):xy = pd.read_csv(path, sep=', ')  # 读取CSV文件s = []for each in list(xy):s.append(float(each))data_freq = np.fft.fft(s)m_data = np.abs(data_freq)    # magnitude# p_data = np.angle(data_freq)  # phaseplt.subplot(2, 1, 1)plt.plot(m_data, linewidth=0.5)# plt.subplot(2, 2, 2)# plt.plot(p_data, linewidth=0.5)plt.show()if __name__ == '__main__':WaveletDeNoising('F:/xxxx.txt')           # 小波降噪WaveFiltering('F:/xxxx.txt')              # 带通滤波TimeThresholdAnalysis('F:/xxxx.txt')      # 时阈分析FFTConversion('F:/xxxx.txt')              # FFT波形转换

利用python的强大函数库,实现波形的小波降噪、带通滤波、时阈分析、FFT波形转换相关推荐

  1. python带通滤波_python中的fft带通滤波器

    值得注意的是,bp单位的大小不一定是以Hz为单位,而是取决于信号的采样频率,你应该使用 scipy.fftpack.fftfreq进行转换.此外,如果您的信号是真实的,您应该使用 scipy.fftp ...

  2. 利用python中的csv库读写csv文件

    利用python中的csv库读写csv文件 python读写csv文件就我知道的方法有:1)利用csv库,2)利用读写txt文件的方式处理,3)利用numpy或pandas库处理 在这篇博客中,博主就 ...

  3. python调用C函数库

    python调用C函数库 (2012-10-31 13:47:50) 转载▼ 标签: 动态链接库 c语言 so ctypes python 分类:Python 背景:工作中,有很多公共类库是使用C语言 ...

  4. Python的强大HTTP库:Requests

    一.简介 requests 是一个使用广泛的Python库,专门用于处理HTTP请求.在requests的帮助下,开发者能够方便快捷地完成诸如发送GET/POST请求.处理Cookies和文件上传等常 ...

  5. 利用python来自己写一个服务器台账统计小工具

    利用python来自己写一个服务器台账统计小工具 前言 无奈呀,压力创造成品 背景是这样的,相信在看的各位在管理服务器密码的时候,肯定会有个台账啥的,当然咱也有,但是吧,为了安全期间,不允许出现在服务 ...

  6. matlab自带函数缺少,matlab函数库缺失 我的matlab的自带的函数库貌似都没有了

    matlab函数库缺失 我的matlab的自带的函数库貌似都没有了 mip版  关注:119  答案:4  悬赏:0 解决时间 2021-01-28 19:42 已解决 2021-01-28 03:1 ...

  7. matlab wdencmp函数,图像的小波阈值降噪_小波降噪函数 - 全文

    小波降噪的方法有多种,如利用小波分解与重构的方法滤波降噪.利用小波变换模极大值的方法去噪.利用信号小波变换后空域相关性进行信噪分离.非线性小波阈值方法去噪.平移不变量小波降噪法,以及多小波降噪等等.归 ...

  8. 【Python气象绘图临摹】处理数据(上):读入输出nc数据、截取夏季/冬季数据、ButterWorth带通滤波、计算方差

    前言 2022.9学习绘图 利用python进行气象绘图,本文为学习绘制期间记录笔记,分为上.下两部分:处理数据和图像绘制.处理数据流程:读入olr资料,截取夏季/冬季数据,进行10-30dButte ...

  9. 小波降噪与重构例子 python

    原理讲解 傅里叶变换 关于傅里叶变换的基本概念在此我们就不再赘述了, 下面我们主要将傅里叶变换的不足.即我们知道傅里叶变化可以分析信号的频谱,那么为什么还要提出小波变换?答案"对非平稳过程, ...

最新文章

  1. 机房收费系统总结【5】——无用功
  2. qzone.class.php,PHP实现QQ空间自动回复说说的方法
  3. 记忆碎片 - 2015.09.11
  4. 团队-中国象棋-最终程序
  5. Epoll 的time_out参数引发的cpu占用问题
  6. Chrome插件GitZip(下载github项目中的部分文件)
  7. python3.4 安装numpy报错_python安装numpy报错怎么解决
  8. 两种办法解决外网资源下载速度过慢的问题
  9. 常用邮箱后缀总结,常用邮箱域名信息汇总
  10. 关于word中如何生成自动目录以及页码编排
  11. sublime中文乱码问题
  12. html 跑步比赛小游戏,跑步比赛小班游戏教案
  13. JS旋转木马图片轮播
  14. MySQL查询上周(从周一~周日)
  15. 道路中心线提取、河道中心线的提取(ArcScan)
  16. opencv改变图片大小,cv2.resize方法详解
  17. Java-MVC模式
  18. 更改WPS云文档保存位置
  19. 史玉柱: 我的成功不是偶然
  20. WHUT C语言计费(网吧)管理系统

热门文章

  1. 抖音直播公会常见的40个精选问题解读
  2. 计算机专业女生网名,说一说那些专业名字很霸气,但男女比例严重失调的专业...
  3. Python进阶的好途径——游戏开发
  4. 【Unity3D——UIFixedObj】用于跟随物体显示UI标签(如角色名、血条等)
  5. python 散点图 不同颜色_在matplotlib上的散点图中为每个系列设置不同的颜色
  6. java null转int_将String转换为int。如果String为null,则将int设置为0
  7. 大学教师沉迷开心农场 妻子纵火烧屋泄愤
  8. 在visio中将图片变成黑白,将图片对象进行颜色转换 彩色图转灰度图
  9. 网游,陈一舟的左勾拳
  10. js中的全局作用域和局部的作用域