a frequency domain technique for correction of audio distortion caused by variable recording speed:...
TRANSCRIPT
A Frequency Domain Technique for Correction of Audio Distortion Caused by Variable Recording Speed:
Authors
Robert HembreeHenry SkibaAlex Smith
AdvisorDr. Marcus Pendergrass
• Introduction
• Recovery Algorithm
• Mathematical Model
• Performance Testing
• Conclusion
Outline
• Wow and Flutter Distortion – Audio distortion caused by variations in the
speed at which data was recorded – Wow refers to low frequency variations in the
recording speed– Flutter refers to high frequency variations in
the recording speed
• We will use the term “wobble” to refer to either wow or flutter distortion
Introduction
s t Signal to be recorded
Input signal
p r t Position of record head at time t
Position function for record head (record function)
r p Data value recorded at position p
The recording
)(tp r
Recording
Record Head
8156.0)( pr
Introduction
s t r p r r t
Because
and the record function Ψr is assumed invertible, we have
s rr or
r sr 1
)(tp r
Recording
Record Head
8156.0)( pr
Introduction
ˆ s t r p r pb t we have
pbrs ˆ
Combining this with our previous expression for r gives
pbrss 1ˆ
Position function for playback head (playback function)
p pb t Position of playback head at time t
Played-back signal
ˆ s t Signal played back from the recording
Because
Introduction
proof
Reciprocity Theorem
ˆ s s for all s if and only if
pb r
r 1 pb identity
ˆ s s for all s if and only if
So a mismatch between Ψr and Ψpb causes distortion:
pb r ˆ s s
Introduction
t r 1 p
• The wobble w(p) at position p in the recording is defined as the timing error at position p during the record process
• The timing error is the difference between the actual time that the record head was at position p, and the nominal time it would have been at position p had the record function been ideal (i.e. equal to playback function).
= actual time during record process when the record head was at position p
p
v0
= nominal time the record head would have been at position p had the record function been ideal
So
w p r 1 p p /v0
t p /v0
w(p) is the timing error at position p
Introduction
• Knowing the wobble function w(p) would enable us to correct for distortion caused by a mismatch between Ψr and Ψpb .
0.8156
p
t p /v0Nominal time - incorrect
Original recording
Introduction
• Knowing the wobble function w(p) would enable us to correct for distortion caused by a mismatch between Ψr and Ψpb .
0.8156
p
actual time
t p /v0 w p Original recording
Introduction
• Knowing the wobble function w(p) would enable us to correct for distortion caused by a mismatch between Ψr and Ψpb .
Resample
0.8156
p
t p /v0 w p Original recording
actual time
0.7942
p
t p /v0 Ready for Ψpb
Corrected recording
Introduction
Basic Assumptions
pb t v0t
• The playback function is ideal, constant velocity:
• The record function is unknown, but invertible.
• The record and playback functions are continuous and differentiable.
• The recording contains an isolated sinusoid of known frequency. This will be used as a reference by the recovery algorithm.
Introduction
Wobble
f f
Wobble-Induced Distortion in the Frequency Domain
• To correct wobble distortion, we need information about the wobble
• We might know something about the original signal that was recorded.– We will focus on the case when the recording
contains a sine wave of known frequency
Wobble Recovery Algorithm
• We can use that information, along with the distorted recording, to deduce the wobble function.
• This wobble function can be used to resample the corrupt file in order to recover the original file
Wobble Recovery Algorithm
Baseband Shift
f f
Correcting for Wobble in a Sinusoid
f
Inverse FT ipwife )(2 0
Correcting for Wobble in a Sinusoid
Wobble
f f
Wobble-Induced Distortion in the Frequency Domain
f
BandPass Filter
f
Wobble Recovery Algorithm
Shift Baseband Inverse Fourier Transform
f0
ipwife )(2 0
Wobble Recovery Algorithm
Complex ln
t
p
w(p)+ϑ
Interpolate
(timing error)
is a phase shift in the model, which only introduces a delay
Wobble Recovery Algorithm
Modeling the Wobble
• In order to test our recovery algorithm, we need a variety of distorted recordings to work with.
• A model for the record function Ψr was developed.
• Model encompasses a variety of distortion scenarios
• Weak to strong distortion
• Slowly-varying to quickly-varying distortion
Modeling the Wobble
• Begin by modeling the velocity function of the record head.
v t dp
dt r t
• Without loss of generality the average velocity is 1.
• User specifies
• standard deviation of the velocity fluctuations
• maximum frequency of the velocity fluctuations in time.
Modeling the Wobble
• Velocity is modeled as
v t exp a bn t
• n(t) is a band-limited Gaussian noise process
• lognormal velocity process
• maximum frequency in n(t) is fmax (user specified)
• a and b are chosen so that
E v t 1
Var v t 2user specified
Simulated Wobble Example
0.1, fmax 1 Hz
Simulated Wobble Example
0.1, fmax 10 Hz
Simulated Wobble Example
0.5 fmax 10 Hz
How well does the Algorithm actually work?
Henry Skiba
Introduces White Gaussian noise to the recording at varying power
Robert Hembree
Steps a structured interferer through a sine wave
Performance Testing
• Developed wobble recovery algorithm
-Uses a reference sinusoid to recover wobble, and then resample the recording
• Performance Tests were performed on the algorithm– Random Noise
10^-2 relative error at 10 dB SNR
- Structured Interferer
10^-3 relative error at 10dB SNR
Interpolation raises the noise floor
Conclusion