In [ ]:
import numpy as np
import matplotlib.pyplot as plt
from IPython.display import Audio, display
In [ ]:
%matplotlib inline
plt.rcParams.update({'font.size': 18})
In [ ]:
def beat_freq(f, max_time, rate):
t = np.linspace(0, max_time, rate*max_time)
signal = np.sin(2*np.pi*f*t)
display(Audio(data=signal, rate=rate))
return signal
In [ ]:
signal_250 = beat_freq(250.0, 1, 11025)
signal_275 = beat_freq(275.0, 1, 11025)
signal_300 = beat_freq(300.0, 1, 11025)
In [ ]:
signal = np.hstack((signal_275+signal_300, signal_275+signal_250))
In [ ]:
fig1 = plt.figure(figsize=(10, 8), facecolor='white')
plt.specgram(signal, NFFT=4096, Fs=11025, noverlap=2048, cmap='viridis')
ax1 = plt.gca()
ax1.set_ylim([0, 600])
plt.xlabel('Time bin [s]')
plt.ylabel('Frequency [Hz]')
plt.show()
In [ ]:
fig2 = plt.figure(figsize=(10, 8), facecolor='white')
plt.specgram(signal, NFFT=1024, Fs=11025, noverlap=512, cmap='viridis')
ax2 = plt.gca()
ax2.set_ylim([0, 600])
plt.xlabel('Time bin [s]')
plt.ylabel('Frequency [Hz]')
plt.show()