У меня есть файл WAV, который содержит записанный звуковой сигнал.
Частота дискретизации 44100
Количество каналов 1
Комплектные образцы N 90405
с 2.05
Звуковой сигнал только 50 мс.
Изображение чирика:
[https://i.imgur.com/Hr4u5tx.jpg][1]
Код, который у меня есть для чтения файла wav и выполнения некоторой базовой обработки.
fs_rate, signal = wavfile.read("chirp.wav")
print ("Frequency sampling", fs_rate)
l_audio = len(signal.shape)
print ("Channels", l_audio)
if l_audio == 2:
signal = signal.sum(axis=1) / 2
N = signal.shape[0]
print ("Complete Samplings N", N)
secs = N / float(fs_rate)
print ("secs", secs)
Ts = 1.0/fs_rate # sampling interval in time
print ("Timestep between samples Ts", Ts)
t = scipy.arange(0, secs, Ts) # time vector as scipy arange field / numpy.ndarray
FFT = abs(scipy.fft(signal))
FFT_side = FFT[range(N//2)] # one side FFT range
freqs = scipy.fftpack.fftfreq(signal.size, t[1]-t[0])
fft_freqs = np.array(freqs)
freqs_side = freqs[range(N//2)] # one side frequency range
fft_freqs_side = np.array(freqs_side)
plt.subplot(311)
p1 = plt.plot(t, signal, "g") # plotting the signal
plt.xlabel('Time')
plt.ylabel('Amplitude')
plt.savefig('chirp.jpg')
Проблема:
Используя python, как узнать, где находится первая точка сэмпла в звуковом файле.
Первая точка, когда был получен щебет.
Сигнал содержит фоновый шум. Результат, который я ожидаю
Должен сказать, что это то место, где ваш сигнал ЛЧМ начинается с частоты 2 кГц.
PS: Это не домашнее задание. Я изучаю DSP. Вроде самообучения.