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
•
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
)
(
t
p
r
Recording
Record Head
8156
.
0
)
(
p
r
Introduction
s
t
r
p
r
r
t
Because
and the record function
Ψ
r
is assumed invertible, we have
s
r
r
or
r
s
r
1
)
(
t
p
r
Recording
Record Head
8156
.
0
)
(
p
r
Introduction
ˆ
s
t
r
p
r
pb
t
we have
pb
r
s
ˆ
Combining this with our previous expression for
r
gives
pb
r
s
s
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
v
0
= nominal time the record head would have been at
position
p
had the record function been ideal
So
w
p
r
1
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
.
0.8156
p
t
p
/
v
0
Nominal 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
/
v
0
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
/
v
0
w
p
Original recording
actual time
0.7942
p
t
p
/
v
0
Ready for
Ψ
pb
Corrected recording
Introduction
Basic Assumptions
pb
t
v
0
t
•
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
i
p
w
if
e
)
(
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
f
0
i
p
w
if
e
)
(
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
f
max
(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
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
Enter the password to open this PDF file:
File name:
-
File size:
-
Title:
-
Author:
-
Subject:
-
Keywords:
-
Creation Date:
-
Modification Date:
-
Creator:
-
PDF Producer:
-
PDF Version:
-
Page Count:
-
Preparing document for printing…
0%
Σχόλια 0
Συνδεθείτε για να κοινοποιήσετε σχόλιο