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

Preview:

Citation preview

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

Recommended