#plt.plot(x) #plt.grid() #plt.show() #mLib.fftPlot(x, fs=1000) sd.Thd(x, fs) sd.ThdN(x, fs) elif c == 'w': sRate = 44100.0 t = np.arange(0, 2.0, 1 / sRate) samples = np.sin(2 * np.pi * 440.0 * t) IOs.writeWaveFile('test1.wav', samples, int(sRate)) sampleRate = 44100 samples = sd.KarplusStrong(1 * sampleRate, sampleRate, 391) IOs.writeWaveFile('test2.wav', samples, int(sampleRate)) samples -= np.mean(samples) windowed = samples * signal.blackmanharris(len(samples)) f = np.fft.rfft(windowed) i = np.argmax(np.abs(f)) ThdValue = sd.rms_harmony(f, i) / np.abs(f[i]) print('freq = %f and thd = %f' % (i, ThdValue)) #Thd(samples, sampleRate) #ThdN(samples, sampleRate) plt.plot(np.abs(f))