# A Frequency Domain

Τεχνίτη Νοημοσύνη και Ρομποτική

24 Νοε 2013 (πριν από 4 χρόνια και 5 μήνες)

84 εμφανίσεις

A Frequency Domain
Technique for Correction of
Audio Distortion Caused by
Variable Recording Speed:

Authors

Robert Hembree

Henry Skiba

Alex Smith

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

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

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
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
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
Ψ
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

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


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