from scipy.signal import chirp from analysis import split_to_blocks from synthesis import generate_and_save from reassignment import compute_spectra block_size = 2048 fs = 44100 f1, f2 = 440, 880 duration = block_size / fs times, x = generate_and_save(lambda t: chirp(t, f1, duration, f2), duration=duration, fade_ends=False) x_blocks = split_to_blocks(x, block_size, block_size) X, X_cross_time, X_cross_freq, X_inst_freqs, X_group_delays = compute_spectra( x_blocks[0], w) idx = (X_inst_freqs >= f1 / fs) & (X_inst_freqs <= f2 / fs) plt.scatter(X_group_delays[idx], X_inst_freqs[idx], alpha=0.5, s=abs(X)[idx], c=abs(X)[idx])
def phase_spectrum(x): return arg(compute_spectra(split_to_blocks(x, block_size, hop_size)[0], w)[0])
from scipy.signal import chirp from analysis import split_to_blocks from synthesis import generate_and_save from reassignment import compute_spectra block_size = 2048 fs = 44100 f1, f2 = 440, 880 duration = block_size / fs times, x = generate_and_save(lambda t: chirp(t, f1, duration, f2), duration=duration, fade_ends=False) x_blocks = split_to_blocks(x, block_size, block_size) X, X_cross_time, X_cross_freq, X_inst_freqs, X_group_delays = compute_spectra(x_blocks[0], w) idx = (X_inst_freqs >= f1 / fs) & (X_inst_freqs <= f2 / fs) plt.scatter(X_group_delays[idx], X_inst_freqs[idx], alpha=0.5, s=abs(X)[idx], c=abs(X)[idx])
def phase_spectrum(x): return arg( compute_spectra(split_to_blocks(x, block_size, hop_size)[0], w)[0])