A Frequency Domain

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

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

66 εμφανίσεις

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