Monday, May 24, 2010

Audio rendering from undulation

Summary

  1. Previously we focused on extracting audio from the 2D groove undulation of a 1kHz sinewave, i.e., the radius of the groove edges to the disc center, and found that

    1. The data contains lots of noises.
    2. The signal do not appear to be fluctuating around the horizonal
      axis, i.e., not centered to the 0-DC component. It includes a
      time-varying DC offset that brings the entire signalup above or down below horizontal asis. 
    3. The resulting sine signal has periodically varying pitch around the expected 1kHz component.
  2. The processing steps involved for extracting audio from undulation (order unclear)

    1. Resampling the undulation at a fixed lower sampling rate
    2. Differentiation against time
    3. Possible filtering
    4. Stereo decoding

  3. We had theories about the above problems that

    1. The noise may be from extracted groove undulation under the
      extremely high resolution. The imperfect local groove shape then gets
      amplified by differentiation. In other words, they are likely ignored
      when played with the phonograph stylus.

    2. #1.1 and 1.3 may be from the error in disc center estimation which caused the periodic fluctuation in the group envelope of the extracted undulation.

  4. A few questions about the above problems were not addressed

    1. What are the noises? Are they gaussian or signal-related? Are
      they from the slight (1-2 pixels) discontinuity at the boundaries of
      stitched FOVs or  just signal-related?
    2. How would DC offset applied to an audio signal affect its perceived pitches?
    3. Can we find a model of the center estimate error  and counteract the error by imposing a compensation based on this model?

  5. We decided to address #3.1 first and leave the pitch-fluctuation aside till later.
  6. Last week, the order of the steps listed in #2 and the parameters setup of each individual step were investigated. Some questions from #4 were answered:
    1. The noises are not white noises and sound like crackles. From
      filtering tests, they are signal-related broad band noises that can
      cover the entire audible bandwidth.The noises can be reproduced by extracting a small subset of undulations (1 or 2 FOVs) and repeat them.

    2. The noises cannot be suppresed by using simple moving-average
      filtering alone, before or after the signal gets resampled or
      differentiated.

    3. The visible time-varying DC offset we saw previously, which
      shows itself as a snake across the 3-second sinewave group amplitude,
      was introducedby the wavelet differentiator that I used all along, not by the center estimate error. The DC offset itself doesn't
      cause the pitch fluctuation, although the fluctuation should still be
      caused by center estimation error. It's just that the big snake we saw
      is not the visual representation of the audible signal frequency
      fluctuation.

    4. When using numerical differentiation by definition (dy/dx), there is no DC offset.

  7. The crackle noises can be suppressed by using the same wavelet-based differentiator before resampling, but
    due to some bugs the output audio is at a wrong sampling rate and
    longer -than-expected signal (3 sec => 24 sec), which I need to
    figure out how.


Details

  1. Tried a few combinations of the processing sequence in Summary #2. The only combination that can remove the crackes is as described in #7. See Details #2.2

  2. Tried differentiation by definition and a couple of models under the wavelet framework.
    1. Differentiation by definition does not introduce DC offset, but is susceptible to noise and contains pitch fluctuation. [See figure below].
      1. Global audio signal view: http://kakyoism.webhop.net/~kakyo/0.report/42.audio_diff/diff_by_def_after_resample_global.png
      2. A portion of the same signal: http://kakyoism.webhop.net/~kakyo/0.report/42.audio_diff/diff_by_def_after_resample.png
      3. Audio (48kHz): http://kakyoism.webhop.net/~kakyo/0.report/42.audio_diff/audio_mitac_stereo_v2_algo7.wav
      4. Stick in a lowpass before resampling does not help suppress
        the noise (tried cut-off frequency at 2kHz). The differentiation still
        amplifies them to the audible degree.

    2. According to papers such as this one, wavelet differentiator offers better noise suppression among existing numerical differentiators, especially under low SNR. [See result below]
      1. Global audio signal view: http://kakyoism.webhop.net/~kakyo/0.report/42.audio_diff/diff_by_wavelet_before_resample_global.png
      2. A portion of the same signal: http://kakyoism.webhop.net/~kakyo/0.report/42.audio_diff/diff_by_wavelet_before_resample.png
      3. Audio (48kHz): http://kakyoism.webhop.net/~kakyo/0.report/42.audio_diff/audio_mitac_stereo_v2_algo12.wav
      4. Audio (384kHz): http://kakyoism.webhop.net/~kakyo/0.report/42.audio_diff/audio_mitac_stereo_v2_algo12-384khz.wav
  3. Tried #2 on the music signal
    1. With differentiation by definition, Audio (48kHz), no sampling rate error, DC offset, but with pitch fluctuation and noises: http://kakyoism.webhop.net/~kakyo/0.report/42.audio_diff/audio_mitac_stereo_v2_algo7_music.wav
    2. With wavelet differentiation, Audio (48kHz): sampling rate error: http://kakyoism.webhop.net/~kakyo/0.report/42.audio_diff/audio_mitac_stereo_v2_algo12_music.wav
    3. With wavelet differentiation, Audio (144kHz): sampling rate error after trial and error, the signal length is the closest to the expected: http://kakyoism.webhop.net/~kakyo/0.report/42.audio_diff/audio_mitac_stereo_v2_algo12_music-144khz.wav

  4. Tried resampling with linear and polynomial interpolation. Doesn't make an audible difference.

  5. Tried zero-phase and regular low-pass filtering. Zero-phase filtering introduce DC-offset, regular low-pass filtering is very unstable.

  6. Tried moving average filtering in time-domain. Doesn't help unless we use wavelet differentiator before resampling.


Plan

  • I haven't found how to fix he visible DC offset and the sampling rate error introduced by the wavelet differentiator.
    The quality and side-effect of numerical differentiation are said to be
    highly problem specific. So I'll dig into the numerical differentiatora little deeper with basic tests and also check out the Stotzer's solution. In a week, I should be able to get it right.

Labels: , ,

0 Comments:

Post a Comment

Links to this post:

Create a Link

<< Home