python实现1/n倍频程计算
生活随笔
收集整理的這篇文章主要介紹了
python实现1/n倍频程计算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
倍頻程定義
在音頻分析領域,經常要分析音頻信號的頻譜,這時最常用的是倍頻程功率譜和1/3倍頻程功率譜。
所謂倍頻程功率譜,是將音頻分為一個個的頻段,然后分別計算每個頻段內的功率譜。相鄰頻段的寬度為二比一的關系。
1/3倍頻程是將倍頻程再細分為三段。 1/n倍頻程是將倍頻程再細分為n段。
倍頻程介紹參考鏈接
代碼實現
所需模塊
import numpy as np import matplotlib.pyplot as plt from scipy import signal as sg實現代碼
首先實現1/96倍頻程中心頻率
order_96 = np.array([2.92644400e+00, 2.94806600e+00, 2.96984800e+00, 2.99179100e+00,3.01389700e+00, 3.03616500e+00, 3.05859800e+00, 3.08119700e+00,3.10396300e+00, 3.12689700e+00, 3.15000000e+00, 3.17362400e+00,3.19742400e+00, 3.22140400e+00, 3.24556300e+00, 3.26990300e+00,3.29442600e+00, 3.31913300e+00, 3.34402500e+00, 3.36910300e+00,3.39437000e+00, 3.41982600e+00, 3.44547300e+00, 3.47131300e+00,3.49734600e+00, 3.52357500e+00, 3.55000000e+00, 3.57657900e+00,3.60335700e+00, 3.63033600e+00, 3.65751600e+00, 3.68490000e+00,3.71248900e+00, 3.74028500e+00, 3.76828900e+00, 3.79650200e+00,3.82492700e+00, 3.85356400e+00, 3.88241600e+00, 3.91148400e+00,3.94076900e+00, 3.97027400e+00, 4.00000000e+00, 4.02955400e+00,4.05932700e+00, 4.08932000e+00, 4.11953400e+00, 4.14997200e+00,4.18063400e+00, 4.21152400e+00, 4.24264000e+00, 4.27398800e+00,4.30556700e+00, 4.33737900e+00, 4.36942600e+00, 4.40171000e+00,4.43423200e+00, 4.46699500e+00, 4.50000000e+00, 4.52973000e+00,4.55965700e+00, 4.58978200e+00, 4.62010500e+00, 4.65063000e+00,4.68135500e+00, 4.71228400e+00, 4.74341600e+00, 4.77475500e+00,4.80630100e+00, 4.83805500e+00, 4.87001900e+00, 4.90219400e+00,4.93458100e+00, 4.96718300e+00, 5.00000000e+00, 5.03554100e+00,5.07133400e+00, 5.10738200e+00, 5.14368700e+00, 5.18024900e+00,5.21707100e+00, 5.25415500e+00, 5.29150200e+00, 5.32911500e+00,5.36699600e+00, 5.40514600e+00, 5.44356600e+00, 5.48226000e+00,5.52122900e+00, 5.56047500e+00, 5.60000000e+00, 5.64137600e+00,5.68305800e+00, 5.72504800e+00, 5.76734800e+00, 5.80996100e+00,5.85288800e+00, 5.89613300e+00, 5.93969700e+00, 5.98358300e+00,6.02779300e+00, 6.07233000e+00, 6.11719700e+00, 6.16239400e+00,6.20792500e+00, 6.25379300e+00, 6.30000000e+00, 6.34724800e+00,6.39484900e+00, 6.44280700e+00, 6.49112600e+00, 6.53980600e+00,6.58885100e+00, 6.63826500e+00, 6.68804900e+00, 6.73820600e+00,6.78874000e+00, 6.83965300e+00, 6.89094700e+00, 6.94262600e+00,6.99469200e+00, 7.04715000e+00, 7.10000000e+00, 7.15315800e+00,7.20671400e+00, 7.26067100e+00, 7.31503200e+00, 7.36980100e+00,7.42497900e+00, 7.48057000e+00, 7.53657700e+00, 7.59300400e+00,7.64985400e+00, 7.70712900e+00, 7.76483200e+00, 7.82296800e+00,7.88153900e+00, 7.94054800e+00, 8.00000000e+00, 8.05910900e+00,8.11865400e+00, 8.17863900e+00, 8.23906900e+00, 8.29994400e+00,8.36126900e+00, 8.42304700e+00, 8.48528100e+00, 8.54797600e+00,8.61113400e+00, 8.67475800e+00, 8.73885200e+00, 8.80342000e+00,8.86846400e+00, 8.93399000e+00, 9.00000000e+00, 9.05946100e+00,9.11931400e+00, 9.17956400e+00, 9.24021100e+00, 9.30125900e+00,9.36271000e+00, 9.42456700e+00, 9.48683300e+00, 9.54951000e+00,9.61260100e+00, 9.67610900e+00, 9.74003800e+00, 9.80438700e+00,9.86916300e+00, 9.93436600e+00, 1.00000000e+01, 1.00710820e+01,1.01426690e+01, 1.02147650e+01, 1.02873740e+01, 1.03604980e+01,1.04341420e+01, 1.05083100e+01, 1.05830050e+01, 1.06582310e+01,1.07339920e+01, 1.08102910e+01, 1.08871330e+01, 1.09645200e+01,1.10424590e+01, 1.11209500e+01, 1.12000000e+01, 1.12771350e+01,1.13548000e+01, 1.14330020e+01, 1.15117410e+01, 1.15910220e+01,1.16708510e+01, 1.17512280e+01, 1.18321590e+01, 1.19136480e+01,1.19956980e+01, 1.20783130e+01, 1.21614960e+01, 1.22452530e+01,1.23295870e+01, 1.24145010e+01, 1.25000000e+01, 1.25944540e+01,1.26896210e+01, 1.27855070e+01, 1.28821180e+01, 1.29794600e+01,1.30775370e+01, 1.31763530e+01, 1.32759180e+01, 1.33762350e+01,1.34773090e+01, 1.35791480e+01, 1.36817560e+01, 1.37851390e+01,1.38893040e+01, 1.39942560e+01, 1.41000000e+01, 1.42118430e+01,1.43245740e+01, 1.44381990e+01, 1.45527260e+01, 1.46681600e+01,1.47845110e+01, 1.49017840e+01, 1.50199870e+01, 1.51391280e+01,1.52592130e+01, 1.53802530e+01, 1.55022510e+01, 1.56252170e+01,1.57491590e+01, 1.58740840e+01, 1.60000000e+01, 1.61126060e+01,1.62260060e+01, 1.63402020e+01, 1.64552020e+01, 1.65710120e+01,1.66876370e+01, 1.68050840e+01, 1.69233570e+01, 1.70424610e+01,1.71624050e+01, 1.72831920e+01, 1.74048290e+01, 1.75273230e+01,1.76506790e+01, 1.77749020e+01, 1.79000000e+01, 1.80245360e+01,1.81499390e+01, 1.82762130e+01, 1.84033660e+01, 1.85314040e+01,1.86603340e+01, 1.87901590e+01, 1.89208870e+01, 1.90525260e+01,1.91850810e+01, 1.93185580e+01, 1.94529630e+01, 1.95883030e+01,1.97245850e+01, 1.98618140e+01, 2.00000000e+01, 2.01421640e+01,2.02853370e+01, 2.04295290e+01, 2.05747470e+01, 2.07209970e+01,2.08682840e+01, 2.10166210e+01, 2.11660100e+01, 2.13164620e+01,2.14679830e+01, 2.16205830e+01, 2.17742650e+01, 2.19290410e+01,2.20849170e+01, 2.22418990e+01, 2.24000000e+01, 2.25542700e+01,2.27096000e+01, 2.28660030e+01, 2.30234810e+01, 2.31820450e+01,2.33417020e+01, 2.35024570e+01, 2.36643180e+01, 2.38272950e+01,2.39913960e+01, 2.41566260e+01, 2.43229920e+01, 2.44905050e+01,2.46591740e+01, 2.48290020e+01, 2.50000000e+01, 2.51777040e+01,2.53566720e+01, 2.55369130e+01, 2.57184330e+01, 2.59012450e+01,2.60853560e+01, 2.62707750e+01, 2.64575140e+01, 2.66455780e+01,2.68349800e+01, 2.70257280e+01, 2.72178330e+01, 2.74113010e+01,2.76061460e+01, 2.78023760e+01, 2.80000000e+01, 2.82068810e+01,2.84152910e+01, 2.86252400e+01, 2.88367400e+01, 2.90498030e+01,2.92644410e+01, 2.94806630e+01, 2.96984840e+01, 2.99179150e+01,3.01389680e+01, 3.03616520e+01, 3.05859810e+01, 3.08119700e+01,3.10396270e+01, 3.12689670e+01, 3.15000000e+01, 3.17362370e+01,3.19742430e+01, 3.22140350e+01, 3.24556270e+01, 3.26990280e+01,3.29442600e+01, 3.31913260e+01, 3.34402470e+01, 3.36910320e+01,3.39436990e+01, 3.41982610e+01, 3.44547350e+01, 3.47131310e+01,3.49734610e+01, 3.52357480e+01, 3.55000000e+01, 3.57657890e+01,3.60335730e+01, 3.63033560e+01, 3.65751610e+01, 3.68490030e+01,3.71248930e+01, 3.74028510e+01, 3.76828880e+01, 3.79650230e+01,3.82492680e+01, 3.85356410e+01, 3.88241620e+01, 3.91148410e+01,3.94076960e+01, 3.97027440e+01, 4.00000000e+01, 4.02955440e+01,4.05932730e+01, 4.08932000e+01, 4.11953430e+01, 4.14997180e+01,4.18063430e+01, 4.21152340e+01, 4.24264070e+01, 4.27398800e+01,4.30556680e+01, 4.33737870e+01, 4.36942600e+01, 4.40170970e+01,4.43423230e+01, 4.46699520e+01, 4.50000000e+01, 4.52973060e+01,4.55965730e+01, 4.58978200e+01, 4.62010540e+01, 4.65062940e+01,4.68135490e+01, 4.71228370e+01, 4.74341660e+01, 4.77475510e+01,4.80630070e+01, 4.83805500e+01, 4.87001880e+01, 4.90219380e+01,4.93458140e+01, 4.96718290e+01, 5.00000000e+01, 5.03554080e+01,5.07133450e+01, 5.10738260e+01, 5.14368670e+01, 5.18024900e+01,5.21707120e+01, 5.25415500e+01, 5.29150280e+01, 5.32911570e+01,5.36699600e+01, 5.40514560e+01, 5.44356650e+01, 5.48226010e+01,5.52122920e+01, 5.56047520e+01, 5.60000000e+01, 5.64137610e+01,5.68305820e+01, 5.72504810e+01, 5.76734810e+01, 5.80996060e+01,5.85288810e+01, 5.89613270e+01, 5.93969690e+01, 5.98358310e+01,6.02779350e+01, 6.07233050e+01, 6.11719630e+01, 6.16239400e+01,6.20792540e+01, 6.25379330e+01, 6.30000000e+01, 6.34724730e+01,6.39484860e+01, 6.44280700e+01, 6.49112550e+01, 6.53980560e+01,6.58885190e+01, 6.63826520e+01, 6.68804930e+01, 6.73820650e+01,6.78873980e+01, 6.83965230e+01, 6.89094700e+01, 6.94262620e+01,6.99469220e+01, 7.04714970e+01, 7.10000000e+01, 7.15315780e+01,7.20671460e+01, 7.26067120e+01, 7.31503220e+01, 7.36980060e+01,7.42497860e+01, 7.48057020e+01, 7.53657760e+01, 7.59300460e+01,7.64985350e+01, 7.70712810e+01, 7.76483230e+01, 7.82296830e+01,7.88153920e+01, 7.94054870e+01, 8.00000000e+01, 8.05910870e+01,8.11865460e+01, 8.17864000e+01, 8.23906860e+01, 8.29994350e+01,8.36126860e+01, 8.42304690e+01, 8.48528140e+01, 8.54797590e+01,8.61113360e+01, 8.67475740e+01, 8.73885190e+01, 8.80341950e+01,8.86846470e+01, 8.93399050e+01, 9.00000000e+01, 9.05946120e+01,9.11931460e+01, 9.17956390e+01, 9.24021070e+01, 9.30125890e+01,9.36270980e+01, 9.42456740e+01, 9.48683320e+01, 9.54951020e+01,9.61260150e+01, 9.67611010e+01, 9.74003750e+01, 9.80438770e+01,9.86916280e+01, 9.93436580e+01, 1.00000000e+02, 1.00710815e+02,1.01426689e+02, 1.02147652e+02, 1.02873734e+02, 1.03604980e+02,1.04341423e+02, 1.05083099e+02, 1.05830055e+02, 1.06582314e+02,1.07339920e+02, 1.08102913e+02, 1.08871330e+02, 1.09645203e+02,1.10424583e+02, 1.11209503e+02, 1.12000000e+02, 1.12771347e+02,1.13548012e+02, 1.14330017e+02, 1.15117416e+02, 1.15910233e+02,1.16708511e+02, 1.17512283e+02, 1.18321594e+02, 1.19136482e+02,1.19956978e+02, 1.20783127e+02, 1.21614967e+02, 1.22452530e+02,1.23295868e+02, 1.24145012e+02, 1.25000000e+02, 1.25888527e+02,1.26783363e+02, 1.27684563e+02, 1.28592163e+02, 1.29506226e+02,1.30426773e+02, 1.31353882e+02, 1.32287567e+02, 1.33227890e+02,1.34174896e+02, 1.35128647e+02, 1.36089157e+02, 1.37056503e+02,1.38030731e+02, 1.39011871e+02, 1.40000000e+02, 1.41173294e+02,1.42356415e+02, 1.43549454e+02, 1.44752487e+02, 1.45965607e+02,1.47188889e+02, 1.48422424e+02, 1.49666290e+02, 1.50920593e+02,1.52185410e+02, 1.53460815e+02, 1.54746918e+02, 1.56043793e+02,1.57351532e+02, 1.58670242e+02, 1.60000000e+02, 1.61182175e+02,1.62373093e+02, 1.63572800e+02, 1.64781372e+02, 1.65998871e+02,1.67225372e+02, 1.68460938e+02, 1.69705627e+02, 1.70959518e+02,1.72222672e+02, 1.73495148e+02, 1.74777039e+02, 1.76068390e+02,1.77369293e+02, 1.78679810e+02, 1.80000000e+02, 1.81189224e+02,1.82386292e+02, 1.83591278e+02, 1.84804214e+02, 1.86025177e+02,1.87254196e+02, 1.88491348e+02, 1.89736664e+02, 1.90990204e+02,1.92252029e+02, 1.93522202e+02, 1.94800751e+02, 1.96087753e+02,1.97383255e+02, 1.98687317e+02, 2.00000000e+02, 2.01421631e+02,2.02853378e+02, 2.04295303e+02, 2.05747467e+02, 2.07209961e+02,2.08682846e+02, 2.10166199e+02, 2.11660110e+02, 2.13164627e+02,2.14679840e+02, 2.16205826e+02, 2.17742661e+02, 2.19290405e+02,2.20849167e+02, 2.22419006e+02, 2.24000000e+02, 2.25542694e+02,2.27096024e+02, 2.28660034e+02, 2.30234833e+02, 2.31820465e+02,2.33417023e+02, 2.35024567e+02, 2.36643188e+02, 2.38272964e+02,2.39913956e+02, 2.41566254e+02, 2.43229935e+02, 2.44905060e+02,2.46591736e+02, 2.48290024e+02, 2.50000000e+02, 2.51777054e+02,2.53566727e+02, 2.55369125e+02, 2.57184326e+02, 2.59012451e+02,2.60853546e+02, 2.62707764e+02, 2.64575134e+02, 2.66455780e+02,2.68349792e+02, 2.70257294e+02, 2.72178314e+02, 2.74113007e+02,2.76061462e+02, 2.78023743e+02, 2.80000000e+02, 2.82068817e+02,2.84152893e+02, 2.86252380e+02, 2.88367401e+02, 2.90498047e+02,2.92644409e+02, 2.94806641e+02, 2.96984863e+02, 2.99179138e+02,3.01389679e+02, 3.03616516e+02, 3.05859802e+02, 3.08119690e+02,3.10396271e+02, 3.12689667e+02, 3.15000000e+02, 3.17362366e+02,3.19742432e+02, 3.22140350e+02, 3.24556274e+02, 3.26990295e+02,3.29442566e+02, 3.31913239e+02, 3.34402466e+02, 3.36910309e+02,3.39437012e+02, 3.41982635e+02, 3.44547333e+02, 3.47131287e+02,3.49734619e+02, 3.52357483e+02, 3.55000000e+02, 3.57657898e+02,3.60335724e+02, 3.63033569e+02, 3.65751617e+02, 3.68490021e+02,3.71248932e+02, 3.74028503e+02, 3.76828888e+02, 3.79650208e+02,3.82492676e+02, 3.85356415e+02, 3.88241608e+02, 3.91148407e+02,3.94076965e+02, 3.97027435e+02, 4.00000000e+02, 4.02955444e+02,4.05932709e+02, 4.08932007e+02, 4.11953430e+02, 4.14997192e+02,4.18063446e+02, 4.21152344e+02, 4.24264069e+02, 4.27398773e+02,4.30556671e+02, 4.33737885e+02, 4.36942596e+02, 4.40170990e+02,4.43423248e+02, 4.46699524e+02, 4.50000000e+02, 4.52973053e+02,4.55965729e+02, 4.58978180e+02, 4.62010529e+02, 4.65062927e+02,4.68135498e+02, 4.71228363e+02, 4.74341644e+02, 4.77475525e+02,4.80630066e+02, 4.83805481e+02, 4.87001862e+02, 4.90219391e+02,4.93458130e+02, 4.96718292e+02, 5.00000000e+02, 5.03554108e+02,5.07133453e+02, 5.10738251e+02, 5.14368652e+02, 5.18024902e+02,5.21707092e+02, 5.25415527e+02, 5.29150269e+02, 5.32911560e+02,5.36699585e+02, 5.40514587e+02, 5.44356628e+02, 5.48226013e+02,5.52122925e+02, 5.56047485e+02, 5.60000000e+02, 5.64137634e+02,5.68305786e+02, 5.72504761e+02, 5.76734802e+02, 5.80996094e+02,5.85288818e+02, 5.89613281e+02, 5.93969727e+02, 5.98358276e+02,6.02779358e+02, 6.07233032e+02, 6.11719604e+02, 6.16239380e+02,6.20792542e+02, 6.25379333e+02, 6.30000000e+02, 6.34724731e+02,6.39484863e+02, 6.44280701e+02, 6.49112549e+02, 6.53980591e+02,6.58885132e+02, 6.63826477e+02, 6.68804932e+02, 6.73820618e+02,6.78874023e+02, 6.83965271e+02, 6.89094666e+02, 6.94262573e+02,6.99469238e+02, 7.04714966e+02, 7.10000000e+02, 7.15315796e+02,7.20671448e+02, 7.26067139e+02, 7.31503235e+02, 7.36980042e+02,7.42497864e+02, 7.48057007e+02, 7.53657776e+02, 7.59300415e+02,7.64985352e+02, 7.70712830e+02, 7.76483215e+02, 7.82296814e+02,7.88153931e+02, 7.94054871e+02, 8.00000000e+02, 8.05910889e+02,8.11865417e+02, 8.17864014e+02, 8.23906860e+02, 8.29994385e+02,8.36126892e+02, 8.42304688e+02, 8.48528137e+02, 8.54797546e+02,8.61113342e+02, 8.67475769e+02, 8.73885193e+02, 8.80341980e+02,8.86846497e+02, 8.93399048e+02, 9.00000000e+02, 9.05946106e+02,9.11931458e+02, 9.17956360e+02, 9.24021057e+02, 9.30125854e+02,9.36270996e+02, 9.42456726e+02, 9.48683289e+02, 9.54951050e+02,9.61260132e+02, 9.67610962e+02, 9.74003723e+02, 9.80438782e+02,9.86916260e+02, 9.93436584e+02, 1.00000000e+03, 1.00710821e+03,1.01426691e+03, 1.02147650e+03, 1.02873731e+03, 1.03604981e+03,1.04341419e+03, 1.05083106e+03, 1.05830054e+03, 1.06582312e+03,1.07339917e+03, 1.08102917e+03, 1.08871326e+03, 1.09645203e+03,1.10424585e+03, 1.11209497e+03, 1.12000000e+03, 1.12771350e+03,1.13548010e+03, 1.14330017e+03, 1.15117407e+03, 1.15910229e+03,1.16708508e+03, 1.17512280e+03, 1.18321594e+03, 1.19136487e+03,1.19956982e+03, 1.20783130e+03, 1.21614966e+03, 1.22452527e+03,1.23295862e+03, 1.24145007e+03, 1.25000000e+03, 1.25888525e+03,1.26783362e+03, 1.27684558e+03, 1.28592163e+03, 1.29506226e+03,1.30426782e+03, 1.31353882e+03, 1.32287561e+03, 1.33227893e+03,1.34174902e+03, 1.35128638e+03, 1.36089160e+03, 1.37056506e+03,1.38030725e+03, 1.39011877e+03, 1.40000000e+03, 1.41173291e+03,1.42356409e+03, 1.43549451e+03, 1.44752478e+03, 1.45965601e+03,1.47188879e+03, 1.48422424e+03, 1.49666296e+03, 1.50920593e+03,1.52185400e+03, 1.53460815e+03, 1.54746912e+03, 1.56043787e+03,1.57351538e+03, 1.58670239e+03, 1.60000000e+03, 1.61182178e+03,1.62373084e+03, 1.63572803e+03, 1.64781372e+03, 1.65998877e+03,1.67225378e+03, 1.68460938e+03, 1.69705627e+03, 1.70959509e+03,1.72222669e+03, 1.73495154e+03, 1.74777039e+03, 1.76068396e+03,1.77369299e+03, 1.78679810e+03, 1.80000000e+03, 1.81189221e+03,1.82386291e+03, 1.83591272e+03, 1.84804211e+03, 1.86025171e+03,1.87254199e+03, 1.88491345e+03, 1.89736658e+03, 1.90990210e+03,1.92252026e+03, 1.93522192e+03, 1.94800745e+03, 1.96087756e+03,1.97383252e+03, 1.98687317e+03, 2.00000000e+03, 2.01421643e+03,2.02853381e+03, 2.04295300e+03, 2.05747461e+03, 2.07209961e+03,2.08682837e+03, 2.10166211e+03, 2.11660107e+03, 2.13164624e+03,2.14679834e+03, 2.16205835e+03, 2.17742651e+03, 2.19290405e+03,2.20849170e+03, 2.22418994e+03, 2.24000000e+03, 2.25542700e+03,2.27096020e+03, 2.28660034e+03, 2.30234814e+03, 2.31820459e+03,2.33417017e+03, 2.35024561e+03, 2.36643188e+03, 2.38272974e+03,2.39913965e+03, 2.41566260e+03, 2.43229932e+03, 2.44905054e+03,2.46591724e+03, 2.48290015e+03, 2.50000000e+03, 2.51777051e+03,2.53566724e+03, 2.55369116e+03, 2.57184326e+03, 2.59012451e+03,2.60853564e+03, 2.62707764e+03, 2.64575122e+03, 2.66455786e+03,2.68349805e+03, 2.70257275e+03, 2.72178320e+03, 2.74113013e+03,2.76061450e+03, 2.78023755e+03, 2.80000000e+03, 2.82068799e+03,2.84152905e+03, 2.86252393e+03, 2.88367407e+03, 2.90498022e+03,2.92644409e+03, 2.94806641e+03, 2.96984839e+03, 2.99179150e+03,3.01389673e+03, 3.03616504e+03, 3.05859814e+03, 3.08119702e+03,3.10396265e+03, 3.12689648e+03, 3.15000000e+03, 3.17362354e+03,3.19742432e+03, 3.22140356e+03, 3.24556274e+03, 3.26990308e+03,3.29442578e+03, 3.31913257e+03, 3.34402441e+03, 3.36910327e+03,3.39436987e+03, 3.41982617e+03, 3.44547339e+03, 3.47131299e+03,3.49734619e+03, 3.52357471e+03, 3.55000000e+03, 3.57657910e+03,3.60335718e+03, 3.63033569e+03, 3.65751636e+03, 3.68490039e+03,3.71248926e+03, 3.74028491e+03, 3.76828882e+03, 3.79650220e+03,3.82492676e+03, 3.85356421e+03, 3.88241602e+03, 3.91148413e+03,3.94076953e+03, 3.97027441e+03, 4.00000000e+03, 4.02955444e+03,4.05932715e+03, 4.08931982e+03, 4.11953418e+03, 4.14997168e+03,4.18063428e+03, 4.21152344e+03, 4.24264062e+03, 4.27398779e+03,4.30556689e+03, 4.33737891e+03, 4.36942578e+03, 4.40170996e+03,4.43423242e+03, 4.46699512e+03, 4.50000000e+03, 4.52973047e+03,4.55965723e+03, 4.58978174e+03, 4.62010547e+03, 4.65062939e+03,4.68135498e+03, 4.71228369e+03, 4.74341650e+03, 4.77475488e+03,4.80630078e+03, 4.83805469e+03, 4.87001855e+03, 4.90219385e+03,4.93458154e+03, 4.96718311e+03, 5.00000000e+03, 5.03554102e+03,5.07133447e+03, 5.10738232e+03, 5.14368652e+03, 5.18024902e+03,5.21707129e+03, 5.25415527e+03, 5.29150244e+03, 5.32911572e+03,5.36699609e+03, 5.40514551e+03, 5.44356641e+03, 5.48226025e+03,5.52122900e+03, 5.56047510e+03, 5.60000000e+03, 5.64137598e+03,5.68305811e+03, 5.72504785e+03, 5.76734814e+03, 5.80996045e+03,5.85288818e+03, 5.89613281e+03, 5.93969678e+03, 5.98358301e+03,6.02779346e+03, 6.07233008e+03, 6.11719629e+03, 6.16239404e+03,6.20792529e+03, 6.25379297e+03, 6.30000000e+03, 6.34724707e+03,6.39484863e+03, 6.44280713e+03, 6.49112549e+03, 6.53980615e+03,6.58885156e+03, 6.63826514e+03, 6.68804883e+03, 6.73820654e+03,6.78873975e+03, 6.83965234e+03, 6.89094678e+03, 6.94262598e+03,6.99469238e+03, 7.04714941e+03, 7.10000000e+03, 7.15315820e+03,7.20671436e+03, 7.26067139e+03, 7.31503272e+03, 7.36980078e+03,7.42497852e+03, 7.48056982e+03, 7.53657764e+03, 7.59300439e+03,7.64985352e+03, 7.70712842e+03, 7.76483203e+03, 7.82296826e+03,7.88153906e+03, 7.94054883e+03, 8.00000000e+03, 8.05910889e+03,8.11865430e+03, 8.17863965e+03, 8.23906836e+03, 8.29994336e+03,8.36126856e+03, 8.42304688e+03, 8.48528125e+03, 8.54797559e+03,8.61113379e+03, 8.67475781e+03, 8.73885156e+03, 8.80341992e+03,8.86846484e+03, 8.93399023e+03, 9.00000000e+03, 9.05946094e+03,9.11931445e+03, 9.17956348e+03, 9.24021094e+03, 9.30125879e+03,9.36270996e+03, 9.42456738e+03, 9.48683301e+03, 9.54950977e+03,9.61260156e+03, 9.67610938e+03, 9.74003711e+03, 9.80438769e+03,9.86916309e+03, 9.93436621e+03, 1.00000000e+04, 1.00710820e+04,1.01426689e+04, 1.02147646e+04, 1.02873730e+04, 1.03604980e+04,1.04341426e+04, 1.05083105e+04, 1.05830049e+04, 1.06582314e+04,1.07339922e+04, 1.08102910e+04, 1.08871328e+04, 1.09645205e+04,1.10424580e+04, 1.11209502e+04, 1.12000000e+04, 1.12771348e+04,1.13548008e+04, 1.14330020e+04, 1.15117412e+04, 1.15910234e+04,1.16708506e+04, 1.17512285e+04, 1.18321592e+04, 1.19136484e+04,1.19956982e+04, 1.20783125e+04, 1.21614961e+04, 1.22452529e+04,1.23295869e+04, 1.24145010e+04, 1.25000000e+04, 1.25888525e+04,1.26783359e+04, 1.27684561e+04, 1.28592168e+04, 1.29506221e+04,1.30426777e+04, 1.31353877e+04, 1.32287568e+04, 1.33227891e+04,1.34174902e+04, 1.35128643e+04, 1.36089160e+04, 1.37056504e+04,1.38030732e+04, 1.39011875e+04, 1.40000000e+04, 1.41173291e+04,1.42356406e+04, 1.43549443e+04, 1.44752480e+04, 1.45965605e+04,1.47188887e+04, 1.48422422e+04, 1.49666299e+04, 1.50920596e+04,1.52185400e+04, 1.53460811e+04, 1.54746914e+04, 1.56043789e+04,1.57351533e+04, 1.58670244e+04, 1.60000000e+04, 1.61182178e+04,1.62373086e+04, 1.63572793e+04, 1.64781367e+04, 1.65998867e+04,1.67225371e+04, 1.68460938e+04, 1.69705625e+04, 1.70959512e+04,1.72222676e+04, 1.73495156e+04, 1.74777031e+04, 1.76068398e+04,1.77369297e+04, 1.78679805e+04, 1.80000000e+04, 1.81189219e+04,1.82386289e+04, 1.83591270e+04, 1.84804219e+04, 1.86025176e+04,1.87254199e+04, 1.88491348e+04, 1.89736660e+04, 1.90990195e+04,1.92252031e+04, 1.93522188e+04, 1.94800742e+04, 1.96087754e+04,1.97383262e+04, 1.98687324e+04, 2.00000000e+04, 2.01421641e+04,2.02853379e+04, 2.04295293e+04, 2.05747461e+04, 2.07209961e+04,2.08682852e+04, 2.10166211e+04, 2.11660098e+04, 2.13164629e+04,2.14679844e+04, 2.16205820e+04, 2.17742656e+04, 2.19290410e+04,2.20849160e+04, 2.22419004e+04, 2.24000000e+04, 2.25542695e+04,2.27096016e+04, 2.28660039e+04, 2.30234824e+04, 2.31820469e+04,2.33417012e+04, 2.35024570e+04, 2.36643184e+04, 2.38272969e+04,2.39913965e+04])定義倍頻程計算函數
def n_octave(x, sample_rate, order=3, window='hanning', nperseg=8192):"""1/n倍頻程帶功率幅值計算函數:param x: 輸入數據,為一維數組,數據長度建議大于8192:param sample_rate: 數據采樣率:param order: 倍頻程階次,默認為3,支持1,3,12,24,48,96:param window: fft濾波窗函數:param nperseg: fft計算譜線數,一般為2的倍數:return: x為橫坐標頻率(Hz),y為縱坐標幅值"""# order_96 = np.load(r'96thOctave.npy')if order == 96:freqs = order_96elif order == 48:freqs = order_96[::2]elif order == 24:freqs = order_96[194::4]elif order == 12:freqs = order_96[194::8]elif order == 3:freqs = order_96[202::32]elif order == 1:freqs = order_96[234::96]else:raise ValueError(r'order mast be in (1,3,12,24,48,96)')f_start = 2 ** (-1 / 2 / order) * freqs # 平滑起始頻率f_stop = 2 ** (1 / 2 / order) * freqs # 平滑截止頻率x_out = freqsm = len(x_out)fx, mag = sg.welch(x, sample_rate, window, nperseg) # welch方法計算功率密度譜mag = mag * sample_rate / nperseg # 恢復功率密度譜幅值y_out = np.zeros(m)for i in range(m): # 按照倍頻程階次,計算響應曲線y均值index = np.where((fx >= f_start[i]) & (fx < f_stop[i])) # 取交集if len(index[0]) == 0 and i > 0: # fft計算結果點數不足時取附近值,會影響系統總能量導致結果不準確y_out[i] = y_out[i - 1]elif len(index[0]) == 0 and i == 0:y_out[0] = mag[0]else:data = np.take(mag, index)[0]y_out[i] = np.sum(data) # 倍頻程范圍內功率譜密度求和(連續函數求積分)即為倍頻程內能量值return x_out, y_out代碼測試
if __name__ == '__main__':fs = 48000N = 48000nfft = 8192n = np.linspace(0, N - 1, N)t = n / fsy = np.sin(2 * np.pi * 800 * t) * np.sqrt(2)fx, mag = n_octave(y, fs, order=12, window='hanning', nperseg=nfft)print(max(mag))plt.semilogx(fx, mag, 'r')plt.show()測試結果:
總結
以上是生活随笔為你收集整理的python实现1/n倍频程计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 互联网技术演进了解
- 下一篇: 【超简单实用教程】mkv、flv格式转m