I've generated this spectrogram using wavelet convolution.
The chirp is generated like so:
framerate = 10000 DURATION = 10 N = DURATION*framerate k = np.arange(N) chirp = sig.chirp(k, 0.01, N, .49)
Each row (linearly representing a frequency) is generated like so: $$row_f = |IFFT(FFT(chirp) * FFT(wavelet_f))|$$ where $f$ represents the frequency.
When I use
matplotlib's built in spectrogram tool, I get this image:
L = 100 # length of one segment overlap = L/2 # overlap between segments plt.figure(figsize = (10, 5)) plt.specgram(sounddata, NFFT=L, Fs=2, noverlap=overlap, sides='onesided')
In this plot, the line is seemingly cleaner - not blurring over time. Why is the line blurring? I thought wavelet convolution was supposed to have higher resolution than STFT.