Signal Processing: Recovering Wobble Through The Use Of Fourier

advertisement
A Frequency Domain
Technique for Correction of
Audio Distortion Caused by
Variable Recording Speed:
Authors
Robert Hembree
Henry Skiba
Alex Smith
Advisor
Dr. Marcus Pendergrass
Outline
•
•
•
•
•
Introduction
Recovery Algorithm
Mathematical Model
Performance Testing
Conclusion
Introduction
• 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
Input signal
st 
Signal to be recorded
Position function for record head (record function)

p   r t 
Position of record head at time t
The recording
rp

Data value recorded at position p
Record Head

Recording
r ( p)  0.8156
p   r (t )
Introduction
Because
st  rp  rr t 
and the record function Ψr is assumed invertible, we have


Recording
s  r r
r  sr1
or
 Head
Record
r ( p)  0.8156
p   r (t )
Introduction
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

sˆt  rp  rpb t
we have

sˆ  r pb
Combining this with our previous expression for r gives
sˆ  s r1 pb

Introduction
Reciprocity Theorem
sˆ  s
for all s if and only if
 pb   r
proof

sˆ  s
 if
for all s if and only
r1 pb  identity

So a mismatch between Ψr and Ψpb causes distortion:

 pb  r  sˆ  s
Introduction
• 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).
t  r1p = 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  
1
r
p  p /v 0
 t  p /v 0
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 .
t  p /v 0
Original recording
0.8156

p
Nominal time - incorrect
Introduction
• Knowing the wobble function w(p) would enable us to correct for
distortion caused by a mismatch between Ψr and Ψpb .
t  p /v 0  wp
Original recording
0.8156

p
actual time
Introduction
• Knowing the wobble function w(p) would enable us to correct for
distortion caused by a mismatch between Ψr and Ψpb .
t  p /v 0  wp
Original recording
actual time
0.8156

p
Resample
t  p /v 0
0.7942
Corrected recording

p
Ready for Ψpb
Introduction
Basic Assumptions
• The playback function is ideal, constant velocity:
 pb t   v0t
• 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.
Wobble-Induced Distortion in the
Frequency Domain
Wobble
f
f
Wobble Recovery Algorithm
• 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
Correcting for Wobble in a Sinusoid
Baseband Shift
f
f
Correcting for Wobble in a Sinusoid
Inverse FT
f
e
2if0 w( p ) i
Wobble-Induced Distortion in the
Frequency Domain
Wobble
f
f
Wobble Recovery Algorithm
BandPass Filter
f
f
Wobble Recovery Algorithm
Inverse Fourier Transform
Shift Baseband
0
f
e
2if0 w( p ) i
Wobble Recovery Algorithm
p
Complex ln
w(p)+ϑ
(timing error)
t
 is a phase shift in the
model, which only
introduces a delay
Interpolate
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.
dp
vt 
 rt
dt
• 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    2
user specified
Simulated Wobble Example
  0.1,
f max  1 Hz
Simulated Wobble Example
  0.1,
f max  10 Hz
Simulated Wobble Example
  0.5
f max  10 Hz
Performance Testing
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
Conclusion
• 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
Download