I have recording of singing voice recorded in studio with high quality devices. When I open it as spectrogram (using ocenaudio), the periodic impulse like high frequency components are shown as in Figure. (vertical lines)

There is no instrument and only exist singing voice of a male adult.

Is this normal and negligible? or there might be a problem in recording process?

What might cause this?


3 Answers 3


From this post on the same topic over on Digital Signal Processing Stack Exchange:

Vertical lines noise in spectrogram

Window functions that are not zero-ended produce these vertical lines. For example, Rectangular Window, Hamming Window, Gaussian Window (with low sigma) produce these lines, and Barlett Window, Hanning Window, Blackmann Window, Welch Window, don't.


enter image description here

The figure shows the spectrogram of the same voice with the Blackman window for spectrogram.

It turned out that the custom config to make spectrogram(windows size and type in this case) produced the artifact. Preset config does not show the vertical lines. And spectrogram from Adobe Audition also is okay.


The problem probably lies in noise-shaping DSP techniques used by sigma-delta ADCs and DACs, which I personally strive to avoid. @uhoh, you'll never get virtually close even to 20-bit dynamic range (using real, read R2R temperature-compensated no-oversampling DACs) with any analog gear (2^20 is much much higher dynamic range than ~140dB which is about the limit of any analog gear).

If you want real, as colloquially called "analog" sound feel, use R2R DACs with no oversampling as well as so-called flash ADCs. Would be expensive as hell, but beats any analog gear in every possible way. Sigma-delta DACs, currently 90% of pro-audio market and close to 100% of consumer audio market are actually 1-bit DACs which run at "insane" frequencies like tens of MHz followed by a reconstruction filter (which is usually also quite poor quality) so they're obviously doing extreme oversampling to "make up" their 1-bit dynamic range with high "sampling rate". If anything 1-bit can be called "sampling", of course.

To get this close as we know them nowadays to real DACs they need some DSP processing, of which the crucial part is aggressive noise-shaping techniques moving most of the quantization noise (which obviously is extremely high here) to 30-40+ kHz range, which is supposed to being cut-off by the (low-pass) reconstruction filter.

But filters as well as switching elements (transistors) aren't ideal, and that's the actual problem. The delta-part of this kind of DACs/ADCs is briefly a feedback for the DSP processor. Everything above is a great simplification, but I hope it's understandable for people without advanced DSP background.

Even further, often those DACs are using just like 6-10 most significant bits of every sample of your PCM recording, they aren't able to reproduce more dynamic range on 1-bit output, even with their DSP processing. That's why noise-shaping gets even more important. Similar things are happening with sigma-delta ADCs, but it's also a huge simplification. Also speaking briefly, sigma-delta ADCs are much more difficult to replace than equivalent DACs.

Summarizing, some part of your (recording) chain is probably doing some crude noise-shaping, that's could be why you see some high-amplitude noise on the borderline of audible frequencies.

  • I do have some DSP background and you lost me at "2^16 is much much higher dynamic range than ~140dB"
    – ojs
    Commented Feb 21, 2022 at 14:30
  • @ojs well, I've been thinking about a 20-bit R2R DAC like the one I have in my studio. It has 120dB "native" dynamic range and about 130dB with some dithering applied (which is still much better that anything 1-bit based), and I doubt you can get close to such values with any real analog setup (not speaking of a single device, rather more like a whole chain). Thanks for pointing this out, just corrected the bit depth. Commented Feb 21, 2022 at 14:35
  • Can you explain why changing window function for the spectrogram makes the artefact disappear?
    – ojs
    Commented Feb 21, 2022 at 14:38
  • @ojs, I'm not the author of both programs used by the op to create a spectrogram, but shooting blind, maybe some Gaussian functions are applied by the other function before passing it through FFT (that's the first thing on my mind that would cause outcome like that). Or could be a change in FFT parameters, making it less precise, but faster, that could also cause such difference. Commented Feb 21, 2022 at 14:43
  • So you're absolutely certain the pulsing is in the signal and hidden by choice of window function, not the other way round? Could you add some detail that explains the periodicity of the noise?
    – ojs
    Commented Feb 21, 2022 at 15:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.