반응형
Numpy에 내장함수를 이용하여 간단하게 FFT를 해보자.
다음과 같은 음원 중 일부를 가지고 FFT를 진행한다.
# linear scale
import matplotlib.pyplot as plt
import librosa
import numpy as np
wav_file = '파일경로/파일명'
wav, sr = librosa.load(wav_file,sr=16000)
# 음원에서 FFT 시작점, N-point는 320
start = int(sr * 0.3)
end = start + 320
wav = wav[start:end]
signal = np.fft.fft(wav)
signal = signal ** 2 / len(signal)
plt.plot(abs(signal))
plt.xlabel("bin")
plt.xlim(0, int(len(signal)/2))
plt.ylabel("Amplitude")
plt.grid()
plt.show()
# log scale
import matplotlib.pyplot as plt
import librosa
import numpy as np
wav_file = '파일경로/파일명'
wav, sr = librosa.load(wav_file,sr=16000)
# 음원에서 FFT 시작점, N-point는 320
start = int(sr * 0.3)
end = start + 320
wav = wav[start:end]
signal = np.fft.fft(wav)
signal = signal ** 2 / len(signal)
signal = librosa.power_to_db(signal)
plt.plot(signal)
plt.xlabel("bin")
plt.xlim(0, int(len(signal)/2))
plt.ylabel("Amplitude")
plt.grid()
plt.show()
이와 같이 numpy의 fft 내장함수를 이용하여 fft의 결과를 log와 linear로 그릴 수 있다.
반응형
'Python' 카테고리의 다른 글
[Python] 프로퍼티 (Property) 사용하기 (2/2) (0) | 2022.04.07 |
---|---|
[Python] 프로퍼티 (Property) 사용하기 (1/2) (0) | 2022.04.07 |
[Windows] 에서 파이썬 설치하기 (0) | 2021.01.16 |
cnn example (0) | 2020.04.20 |
TensorFlow를 이용해서 MNIST 숫자 분류를 위한 Convolutional Neural Networks(CNNs) 구현해보기 (0) | 2020.04.13 |
댓글