好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 用Python的繪圖庫(matplotlib)繪制小波能量譜

用Python的繪圖庫(matplotlib)繪制小波能量譜

熱門標簽:看懂地圖標注方法 淮安呼叫中心外呼系統如何 電話機器人貸款詐騙 廣東旅游地圖標注 打印谷歌地圖標注 蘇州人工外呼系統軟件 佛山通用400電話申請 電話外呼系統招商代理 京華圖書館地圖標注

時間小波能量譜

  • 反映信號的小波能量沿時間軸的分布。

由于小波變換具有等距效應,所以有:

式中

表示信號強度,對于式在平移因子b方向上進行加權積分

式中

代表時間-小能量譜

尺度小波能量譜

  • 反映信號的小波能量隨尺度的變化情況。

同理,對式在尺度方向上進行加權積分:

式中

連續小波變換

  • 連續小波變換的結果是一個小波系數矩陣,隨著尺度因子和位移因子變化。然后將系數平方后得到小波能量,把每個尺度因子對應的所有小波能量進行疊加,那么就可以得到隨尺度因子變換的小波能量譜曲線。把尺度換算成頻率后,這條曲線就可視為是頻譜圖。

代碼如下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import pywt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
# 解決負號顯示問題
plt.rcParams['axes.unicode_minus'] = False  # 解決保存圖像是負號'-'顯示為方塊的問題
plt.rcParams.update({'text.usetex': False, 'font.family': 'serif', 'font.serif': 'cmr10', 'mathtext.fontset': 'cm'})
font1 = {'family': 'SimHei', 'weight': 'normal', 'size': 12}
font2 = {'family': 'Times New Roman', 'weight': 'normal', 'size': 18}
label = {'family': 'SimHei', 'weight': 'normal', 'size': 15}
xlsx_path = "../小波能量譜作圖.xlsx"
sheet_name = "表名"      
data_arr = pd.read_excel(xlsx_path, sheet_name=sheet_name)
column_name = '列名'     
row = 1024
y = data_arr[column_name][0:row]
x = data_arr['time'][0:row]
scale = np.arange(1, 50)
wavelet = 'gaus1'   # 'morl'  'gaus1'  小波基函數
# 時間-尺度小波能量譜
def time_scale_spectrum():
    coefs, freqs = pywt.cwt(y, scale, wavelet)  # np.arange(1, 31) 第一個參數必須 >=1     'morl'  'gaus1'
    scale_freqs = np.power(freqs, -1)  # 對頻率freqs 取倒數變為尺度
    fig = plt.figure(figsize=(5, 4))
    ax = Axes3D(fig)
    # X:time   Y:Scale   Z:Amplitude
    X = np.arange(0, row, 1)  # [0-1023]
    Y = scale_freqs
    X, Y = np.meshgrid(X, Y)
    Z = abs(coefs)
    # 繪制三維曲面圖
    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow')
    # 設置三個坐標軸信息
    ax.set_xlabel('$Mileage/km$', color='b', fontsize=12)
    ax.set_ylabel('$Scale$', color='g', fontsize=12)
    ax.set_zlabel('$Amplitude/mm$', color='r', fontsize=12)
    plt.draw()
    plt.show()
# 時間小波能量譜
def time_spectrum():
    coefs, freqs = pywt.cwt(y, scale, wavelet)
    coefs_pow = np.power(coefs, 2)      # 對二維數組中的數平方
    spectrum_value = [0] * row    # len(freqs)
    # 將二維數組按照里程疊加每個里程上的所有scale值
    for i in range(row):
        sum = 0
        for j in range(len(freqs)):
            sum += coefs_pow[j][i]
        spectrum_value[i] = sum
    fig = plt.figure(figsize=(7, 2))
    line_width = 1
    line_color = 'dodgerblue'
    line_style = '-'
    T1 = fig.add_subplot(1, 1, 1)
    T1.plot(x, spectrum_value, label='模擬', linewidth=line_width, color=line_color, linestyle=line_style)
    # T1.legend(loc='upper right', prop=font1, frameon=True)  # lower ,left
    # 坐標軸名稱
    T1.set_xlabel('$time$', fontsize=15, fontdict=font1)  # fontdict設置子圖字體
    T1.set_ylabel('$E/mm^2$', fontsize=15, fontdict=font1)
    # 坐標刻度值字體大小
    T1.tick_params(labelsize=15)
    print(spectrum_value[269])
    plt.show()
# 尺度小波能量譜
def scale_spectrum():
    coefs, freqs = pywt.cwt(y, scale, wavelet)
    coefs_pow = np.power(coefs, 2)      # 對二維數組中的數平方
    scale_freqs = np.power(freqs, -1)   # 對頻率freqs 取倒數變為尺度
    spectrum_value = [0] * len(freqs)    # len(freqs)
    # 將二維數組按照里程疊加每個里程上的所有scale值
    for i in range(len(freqs)):
        sum = 0
        for j in range(row):
            sum += coefs_pow[i][j]
        spectrum_value[i] = sum
    fig = plt.figure(figsize=(7, 4))
    line_width = 1
    line_color1 = 'dodgerblue'
    line_style1 = '-'
    T1 = fig.add_subplot(1, 1, 1)
    T1.plot(scale_freqs, spectrum_value, label=column_name, linewidth=line_width, color=line_color1, linestyle=line_style1)
    # T1.legend(loc='upper right', prop=font1, frameon=True)  # lower ,left
    # 坐標軸名稱
    T1.set_xlabel('$Scale$', fontsize=15, fontdict=font1)  # fontdict設置子圖字體
    T1.set_ylabel('$E/mm^2$', fontsize=15, fontdict=font1)
    # 坐標刻度值字體大小
    T1.tick_params(labelsize=15)
    plt.show()
# 通過調用下面三個不同的函數選擇繪制能量譜
time_scale_spectrum()
# time_spectrum()
# scale_spectrum()

最終繪制的能量譜圖如下:

1.時間-尺度小波能量譜

2.時間小波能量譜

3.尺度小波能量譜

到此這篇關于用Python的繪圖庫(matplotlib)繪制小波能量譜的文章就介紹到這了,希望對你有幫助,更多相關用Python繪制內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python之用Numpy和matplotlib畫一個魔方
  • python使用NumPy文件的讀寫操作
  • 使用 NumPy 和 Matplotlib 繪制函數圖

標簽:湖州 呼和浩特 中山 江蘇 衡水 股票 駐馬店 畢節

巨人網絡通訊聲明:本文標題《用Python的繪圖庫(matplotlib)繪制小波能量譜》,本文關鍵詞  用,Python,的,繪,圖庫,matplotlib,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《用Python的繪圖庫(matplotlib)繪制小波能量譜》相關的同類信息!
  • 本頁收集關于用Python的繪圖庫(matplotlib)繪制小波能量譜的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 黄大色黄大片女电影| 乖女和我裸睡让我弄| 羞羞视频靠逼视频大全| 久久综合色综合| 无码亚洲一区二区三区6080| 日本一区二区高清免费不卡| 好吊色青青青国产在线播放| 成版人app网站| 国产理论自拍| 美女扒开粉嫩尿口漫画| 男女同房技巧| 空姐前规则| 精产国品一二三产区区大学| 男人舔女人b| 深爱五月激情网| 草莓视频破解版免费下载进入窗口 | 无线乱码一二三区免费看| 久久99热只有频精品8的下载方式| 欧美熟妇另类交乱在线AV| 欧美色妓?Ⅹ????| 韩国电影我的年轻岳坶3| 大坑上的乱呻吟声| 免费福利视频网站| 99久久国产综合精品国| 在线中文字幕国产亚洲欧美| 性激烈的欧美暴力三级视频| 波多野女同片BBAN098| 西西人体大尺度g0g0| 向日葵在夜晚绽放| 牲口和女人杂交| 午夜视频在线观看| 国产精品人人爽人人做| 高中yin乱女学小说生| 欧美办公室激情婬妇ⅩXXOO电影| 张柏芝艳阳门无删照片94| 高佑俪服光脱看一清二楚图片| 粉嫩13p| 97视频在线观看免费| 老奶免费无码婬片AAAAA片| 国产精品久久久久久欧美蜜月Av| 色妞色高清视频|