이 질문에는 이미 답변이 있습니다.
나는 세 번째 축으로 시간과 진폭에 대해 주파수를 그려내는 스펙트로 그램 내에서 진폭 피크를 찾으려고합니다.
내가 보았고 다음을 사용하여 솔루션을 코딩하려고했습니다.scipy.signal.find_peaks_cwt
그러나 공식 참조 가이드는widths
매개 변수.
피크를 찾을 때scipy.signal.find_peaks_cwt
그것은 주파수 - 시간 좌표를 반환 할 것인가? 그렇지 않다면 로컬 맥시마 좌표를 반환하는 데 사용할 다른 라이브러리 나 메서드가 있습니까?
이것은widths
매개 변수scipy.signal.find_peaks_cwt
?
마찬가지로scipy.signal.find_peaks_cwt
배열을 다루는 이유 왜 로컬 맥시마를 찾기 위해 왜 스펙트로 그램을 그릴 필요가 있습니까?
import numpy as np
import matplotlib.pyplot as plt
import scipy.io.wavfile
from scipy import signal
def create_spectrogram(audio):
rate, data = scipy.io.wavfile.read(audio)
data_1D = data.flatten()
plt.specgram(data_1D, NFFT = 64, Fs = 64, noverlap=32)
plt.savefig("melody")
plt.show()
if __name__ == '__main__':
audio = "melody.WAV"
create_spectrogram(audio)
모래밭:scipy.signal.find_peaks_cwt
참조 가이드 :https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.signal.find_peaks_cwt.html
데이터가 코드에 정확히 저장되는 방법에 대해 좀 더 자세한 정보를 제공해 주시겠습니까? 숫자 배열, scipy.signal.spectrogram 또는 간단한 파이썬 목록입니까? 코드 스 니펫 (snippet)은 좋은 솔루션을 찾을 수 있도록 도와줍니다.
잠시 동안 내가 제안 할 유일한 "쉬운"방법은numpy.amax (), 축 매개 변수에 주어진 값을 현명하게 선택하면 찾고자하는 최대 값을 얻을 수 있습니다.
find_peaks_cwt
1 차원 배열 용입니다. 2-D 스펙트로 그램에서 로컬 피크를 찾으려면 다음을 읽으십시오.stackoverflow.com/questions/3684484/… - Gerges Dib