Я не совсем уверен, что именно вы пытаетесь сделать, но я подозреваю, что файл Sine_10000Hz.bin - это не то, что вы думаете.
Возможно, он содержит более одного канала (слева и справа)?
Реально ли подписаны 16-битные целые числа?
Нетрудно создать синусоидальную волну 10 кГц в 16-битных целых числах в numpy.
import numpy as np
import matplotlib.pyplot as plt
n_samples = 2000
f_signal = 10000 # (Hz) Signal Frequency
f_sample = 44100 # (Hz) Sample Rate
amplitude = 2**3 # Arbitrary. Must be > 1. Should be > 2. Larger makes FFT results better
time = np.arange(n_samples) / f_sample # sample times
# The signal
y = (np.sin(time * f_signal * 2 * np.pi) * amplitude).astype('int16')
Если вы построите 30 точек сигнала, вы увидите, что на цикл приходится около 5 точек.
plt.plot(time[:30], y[:30], marker='o')
plt.xlabel('Time (s)')
plt.yticks([]); # Amplitude value is artificial. hide it

Если вы строите 30 образцы данных из Sine_10000Hz.bin имеет ли он около 5 точек за цикл?
Это моя попытка воссоздать работу FFT, насколько я понимаю.
fft_value = np.fft.fft(y) # compute the FFT
freqs = np.fft.fftfreq(len(fft_value)) * f_sample # frequencies for each FFT bin
N = len(y)
plt.plot(freqs[:N//2], np.abs(fft_value[:N//2]))
plt.yscale('log')
plt.ylabel("Amplitude")
plt.xlabel("Frequency [Hz]")
Я получаю следующее сюжет

Ось Y этого графика находится в логарифмическом масштабе. Обратите внимание, что амплитуда пика в тысячах. Амплитуда большинства остальных точек данных составляет около 100.
idx_max = np.argmax(np.abs(fft_value)) # Find the peak in the coefficients
idx_min = np.argmin(np.abs(fft_value)) # Find the peak in the coefficients
print(f'idx_max = {idx_max}, idx_min = {idx_min}')
print(f'f_max = {freqs[idx_max]}, f_min = {freqs[idx_min]}')
print(f'fft_value[idx_max] {fft_value[idx_max]}')
print(f'fft_value[idx_min] {fft_value[idx_min]}')
дает:
idx_max = 1546, idx_min = 1738
f_max = -10010.7, f_min = -5777.1
fft_value[idx_max] (-4733.232076236707+219.11718299533203j)
fft_value[idx_min] (-0.17017443966211232+0.9557200531465061j)