『壹』 python 尋找曲線的峰值 谷值
a=[x,x,x,x,x,x,x]
h=[]
l=[]
foriinrange(1,len(a)-1):
if(a[i-1]<a[i]anda[i+1]<a[i]):
h.append(a[i])
elif(a[i-1]>a[i]anda[i+1]>a[i]):
l.append(a[i])
if(len(h)==0):
h.append(max(a))
if(len(l)==0):
l.append(min(a[a.index(max(a)):]))
printh
printl
『貳』 如何用python實現圖像的一維高斯濾波
如何用python實現圖像的一維高斯濾波
建議你不要使用高斯濾波。
推薦你使用一維中值濾波
matlab的函數為
y = medfilt1(x,n);
x為數組,是你要處理原始波形,n是中值濾波器的參數(大於零的整數)。y是濾波以後的結果(是數組)
後面再
plot(y);
就能看到濾波以後的結果
經過medfilt1過濾以後,y里儲存的是低頻的波形,如果你需要高頻波形,x-y就是高頻波形
順便再說一點,n是偶數的話,濾波效果比較好。
N越小,y里包含的高頻成分就越多,y越大,y里包含的高頻成分就越少。
記住,無論如何y里保存的都是整體的低頻波。(如果你看不懂的話,濾一下,看y波形,你馬上就懂了)
『叄』 python 問題。。。 對一個波形文件做fft,然後怎麼獲取那些頻率分量 numpy有這個函數
你提問的問題,有點錯誤。
波形是時域的,FFT變換就是為了將波形從時域轉換到頻域。
做了FFT 以後,得到的數據就是頻率分量。
如果你說的是python fft代碼如何寫。下面就是:
這邊演示的是語音波形。
wf=wave.open(wav_file,"rb")
params=wf.getparams()
nchannels,sampwidth,framerate,nframes=params[:4]
str_data=wf.readframes(nframes)
wf.close()
#將波形數據轉化為數組
s=np.fromstring(str_data,dtype=np.short)
#wave_data。這里波形是語音波形
s=np.fft.fft(s)#fft獲得頻譜
『肆』 安裝pythonxy時安裝哪些
目前python除了在 Windows 下官方提供的安裝版外,還有:
ActivePython,這個與官方版本的區別在於提供了額外的庫和文檔,並且自動設置了PATH環境變數。
Python(x,y)是一個基於python的科學計算軟體包,收集了眾多的函數庫以及文檔、教程,並配備了可視化的程序界面和集成開發環境,非常方便科研人員使用。
Python(x,y))目前的穩定版本為2.7.2.3,包含集成開發環境Eclipse和python開發插件pydev、數據互動式編輯和可視化工具spyder、基礎數學庫numpy和高級數學庫scipy、3D可視化工具集MayaVi、python界面開發庫PyQt、python與C/C++混合編譯器SWIG,以及其他多種數學軟體庫,並配備了豐富齊全的幫助文檔。總的來說是很用心維護的一個發行版,建議安裝這個版本。
科學計算最基礎的工具庫, NumPy, SciPy. 二維繪圖以及三維可視化庫, matplotlib, , Chaco, Mayavi. 程序和界面開發, Traits, TraitsUI. 與Matlab相比, Python最大的優點是完全免費, 其次在文件管理, 界面設計和網路通信方面Python都有著豐富的擴展庫.
Python集成軟體包: Python(x,y),http://www.pythonxy.com/ 版本號與它所使用的Python版本號相同.集成了許多有用的庫。
安裝時首先要卸載python.
安裝的時候,選擇Full(安全安裝):
將Python(x,y)的安裝路徑改為「c:\pythonxy」。否則Python將可能無法正確調用某些擴展模塊。(有很多路徑要選,我把最開始的路徑改在 了E盤,因為C盤空間不夠)。
裝python的過程中要會修改很多注冊表, 需要做很多允許操作. 那麼暫時退出防火牆軟體, 要麼就坐在電腦前候著:-)
c:\python27 Python 2.7.2.1的安裝路徑, 所有擴展庫都可以在它的子目錄」Lib\site-packages」下找到
c:\pythonxy\doc 眾多擴展庫的說明文檔和演示程序
c:\pythonxy\swig 自動生成擴展模塊介面的工具, 用C語言編寫擴展模塊時會用到它
啟動界面可以看到一些配置選項和當前版本信息.
Python(x,y)運行後的界面:
為了和numpy, scipy等社區的推薦的標准導入方式一致,請點擊按鈕Startup script,然後在打開的文件夾中添加一個名為numpy.py的文件,編輯此文件,添加以下幾行推薦的導入
import numpy as np
import scipy as sp
import pylab as pl
此後運行IPython(x,y)的時候請記著要選擇numpy.py為啟動腳本。
如果要使用pylab,TraitsUI等在shell中和圖形界面進行交互的話,需要選擇帶-wthread參數的選項(-pylab也可以)。圖1.3是一個用pylab繪制sin波形圖的例子:(在ipython qt中)
pythonxy自動2.7以後,移除eclipse了。因為eclipse太大,移除了.如果是高版本的pythonxy,你可以單獨安裝eclipse。
『伍』 如何使用python對音頻文件進行分析
直接把波形讀取出來,曲線形式
先濾波,然後進行波形比對,這里我用的Levenshtein演算法+EPD端點檢測演算法。。
『陸』 在python 中打開波形文件 ︰ 未知的格式 ︰ 49.究竟怎麼了
投票
2
回答
1K
查看
我嘗試打開波形文件與 wave模塊,但是老是同樣的錯誤我試著不管。 包含錯誤的行是以下 ︰
wav = wave.open(f)
這是錯誤消息 ︰
Traceback (most recent call last):
File "annotate.py", line 47, in <mole>
play(file)
File "annotate.py", line 33, in play
wav = wave.open(f)
File "C:\Program Files (x86)\Python\lib\wave.py", line 498, in open
return Wave_read(f)
File "C:\Program Files (x86)\Python\lib\wave.py", line 163, in __init__
self.initfp(f)
File "C:\Program Files (x86)\Python\lib\wave.py", line 143, in initfp
self._read_fmt_chunk(chunk)
File "C:\Program Files (x86)\Python\lib\wave.py", line 269, in _read_fmt_chunk
raise Error('unknown format: %r' % (wFormatTag,))
wave.Error: unknown format: 49
字元串 f是路徑。WAV 文件,它工作在任何我的媒體播放器播放時。 我當然導入 wave的模塊。 我試過 f,作為一個相對和絕對路徑。 我試著用"wav"取代"WAV"。
錯誤什麼導致的?
投票
Python 的波模塊工作與特定類型的 WAV: PCM (WAVE_FORMAT_PCM: 0x0001)。
在您的情況下,您使用 WAV 類型 WAVE_FORMAT_GSM610[0x0031 = hex(49)].
你可以使用像大膽或者一些程序轉換的編解碼器,WAV 文件的類型更改為 lib。