小波變換01(小波降噪)

摘要:本文用一個實例演示小包變換的信號降噪功能。本文素材來自網絡,筆者作了稍微整理。

01小波變換

小波變換和傅里葉變換都屬于積分變換,馬拉算法在小波變換中的地位類似FFT算法在傅里葉變換中的地位。

02小波降噪實例

python小波擴展庫pywavelets中有幾個demo signals

小波變換01(小波降噪)的圖1

引入心電信號:

import matplotlib.pyplot as plt
import pywt
ecg = pywt.data.ecg()  # 生成心電信號
plt.plot(ecg)
plt.show()

小波變換01(小波降噪)的圖2

coeffs = pywt.wavedec(ecg,'db8')  # 對信號進行多層小波分解

小波變換01(小波降噪)的圖3

threshold = 0.2
for i in range(1, len(coeffs)):
    coeffs[i] = pywt.threshold(coeffs[i], threshold*max(coeffs[i]))  # 降噪

ecgrec = pywt.waverec(coeffs,'db8')  # 將信號進行小波重構
plt.subplot(2, 1, 1)
plt.plot(ecg)
plt.subplot(2, 1, 2)
plt.plot(ecgrec)
plt.show()

小波變換01(小波降噪)的圖4

關于pywt.threshold()的用法:

小波變換01(小波降噪)的圖5

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

11
12