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 st Signal to be recorded Position function for record head (record function) p r t Position of record head at time t The recording rp Data value recorded at position p Record Head Recording r ( p) 0.8156 p r (t ) Introduction Because st rp rr t and the record function Ψr is assumed invertible, we have Recording s r r r sr1 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 rp rpb t we have sˆ r pb Combining this with our previous expression for r gives sˆ s r1 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 r1 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 r1p = 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 wp 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 wp 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 wp 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 2if0 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 2if0 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 vt rt 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 vt expa bnt • 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 vt 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