I have audio of VHS with speech and music, and with noise of frequency that's higher and lower than most of human speech, with apparently least but still significant energy in-between, that cannot be filtered with band-rejection. The best audible SNR improvement I got was by eliminating (FFT-zeroing) below 320 Hz and above 3900 Hz.

What use-ready options do I have? I'm willing to design filters a little but not training AI algorithms and stuff. Paid is an option but there's 6+ hours of audio. At least, that's what's preferable, but any useful insights are accepted.

I know nothing about any of VHS stuff, but I can retrieve info from the source - asking for a friend.

Data specs

  • Files: noisy -- ~pure noise -- clean -- (no download needed; 2.1MB, ~2 mins total)
  • 22050 Hz audio, 29.97 FPS video, h.265-encoded mp4
  • VHS/VCR is NTSC format

VHS info

  • Converted to mp4 by "playing VHS in an NTSC format VCR that's hooked up to an analog capture card configured to capture NTSC video and audio data", the analog capture card is plugged into a modern computer via USB, which is fed to OBS Studio for conversion to software-encoded h.265-encoded mp4 video. Recorded 15 years ago.
  • First four tracks of VHS are noisy, last (and the only other) two are clean. A proposed explanation is, "VCR heads"(?) were dirty at time of recording the first four, then they were cleaned.

Some visuals

Left is completely clean, right is total noise. Here's signal + noise. Y-axis is Hertz. Plots code.

  • $\begingroup$ Does this noise have a name? $\endgroup$ May 27 at 6:12

2 Answers 2


The noise appears to be primarily rectangular pulses that have been bandpass filtered and that a fairly consistent.

Here is an outline on how this could be done:

  1. Build a model of the noise. I tried a rectangular pulse that was 128 samples along, high passed 2nd order at 10 Hz lowpassed 1rst order at 100Hz.
  2. Identify the location of the noise pulses through cross correlation
  3. Optimize gain of noise model ad simply subtract the modelled pulse

I did a quick dirty hack on that and found it sounded already a lot better (although certainly not clean either). Below is a picture that shows the first pulse before and after.

That's work in progress and there are certainly ways to refine this further.

enter image description here

  • 1
    $\begingroup$ Seems the legend is switched around? $\endgroup$
    – Jdip
    May 29 at 22:21
  • $\begingroup$ Makes sense, thanks, I'll read closer later. In retrospect it's certainly pulse-like in time-frequency, but fairly distorted - still a contender for synchrosqueezing-based filtering as I've done here. $\endgroup$ May 30 at 16:07

The noise seems highly predictable. More so than I would expect of crappy old VHS hw (which I know nothing about).

Could it be buffer under/overrun in the computer used to grab the video?

  • $\begingroup$ It's a pulse contamination. Buffering looks fine $\endgroup$
    – Hilmar
    May 27 at 22:57
  • $\begingroup$ The noise is also present in VHS playback. @Hilmar Couldn't find much searching "pulse contamination", can you share a reference? Could post as a short answer. $\endgroup$ May 29 at 9:22
  • $\begingroup$ @OverLordGoldDragon: I posted an outline answer with some more details. $\endgroup$
    – Hilmar
    May 29 at 21:57

Your Answer

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

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