Audacity 3.2.0
|
General routine to interpolate (or even extrapolate small amounts) audio when a few of the samples are bad. Works great for a few dozen bad samples, but not so well with hundreds. Uses the least-squares autoregression (LSAR) algorithm, as described in: More...
#include "SampleFormat.h"
Go to the source code of this file.
Classes | |
class | Vector |
Holds a matrix of doubles and supports arithmetic operations, including Vector-Matrix operations. Used by InterpolateAudio. More... | |
class | Matrix |
Holds a matrix of doubles and supports arithmetic, subsetting, and matrix inversion. Used by InterpolateAudio. More... | |
Functions | |
bool | InvertMatrix (const Matrix &input, Matrix &Minv) |
Matrix | TransposeMatrix (const Matrix &M) |
Matrix | IdentityMatrix (unsigned N) |
Vector | operator+ (const Vector &left, const Vector &right) |
Vector | operator- (const Vector &left, const Vector &right) |
Vector | operator* (const Vector &left, const Vector &right) |
Vector | operator* (const Vector &left, double right) |
Vector | VectorSubset (const Vector &other, unsigned start, unsigned len) |
Vector | VectorConcatenate (const Vector &left, const Vector &right) |
Vector | operator* (const Vector &left, const Matrix &right) |
Vector | operator* (const Matrix &left, const Vector &right) |
Matrix | operator+ (const Matrix &left, const Matrix &right) |
Matrix | operator* (const Matrix &left, const double right) |
Matrix | ScalarMultiply (const Matrix &left, const Matrix &right) |
Matrix | MatrixMultiply (const Matrix &left, const Matrix &right) |
Matrix | MatrixSubset (const Matrix &M, unsigned startRow, unsigned numRows, unsigned startCol, unsigned numCols) |
Matrix | MatrixConcatenateCols (const Matrix &left, const Matrix &right) |
General routine to interpolate (or even extrapolate small amounts) audio when a few of the samples are bad. Works great for a few dozen bad samples, but not so well with hundreds. Uses the least-squares autoregression (LSAR) algorithm, as described in:
Holds both the Matrix and Vector classes, supporting linear algebra operations, including matrix inversion. Used by InterpolateAudio.
Simon Godsill, Peter Rayner, and Olivier Cappe. Digital Audio Restoration. Berlin: Springer, 1998.
This is the same work used by Gnome Wave Cleaner (GWC), however this implementation is original.
Definition in file Matrix.h.
Matrix IdentityMatrix | ( | unsigned | N | ) |
Definition at line 127 of file Matrix.cpp.
Referenced by InvertMatrix().
Definition at line 289 of file Matrix.cpp.
References Matrix::Cols(), IdentityMatrix(), Matrix::Rows(), and Matrix::SwapRows().
Referenced by InterpolateAudio().
Definition at line 267 of file Matrix.cpp.
References Matrix::Cols(), and Matrix::Rows().
Referenced by InterpolateAudio().
Definition at line 243 of file Matrix.cpp.
References Matrix::Cols(), and Matrix::Rows().
Referenced by InterpolateAudio().
Matrix MatrixSubset | ( | const Matrix & | M, |
unsigned | startRow, | ||
unsigned | numRows, | ||
unsigned | startCol, | ||
unsigned | numCols | ||
) |
Definition at line 256 of file Matrix.cpp.
Referenced by InterpolateAudio().
Definition at line 223 of file Matrix.cpp.
References Matrix::Cols(), and Matrix::Rows().
Definition at line 200 of file Matrix.cpp.
References Matrix::Cols(), Vector::Len(), and Matrix::Rows().
Definition at line 188 of file Matrix.cpp.
References Matrix::Cols(), Vector::Len(), and Matrix::Rows().
Definition at line 153 of file Matrix.cpp.
References Vector::Len().
Definition at line 162 of file Matrix.cpp.
References Vector::Len().
Definition at line 212 of file Matrix.cpp.
References Matrix::Cols(), and Matrix::Rows().
Definition at line 135 of file Matrix.cpp.
References Vector::Len().
Definition at line 144 of file Matrix.cpp.
References Vector::Len().
Definition at line 232 of file Matrix.cpp.
References Matrix::Cols(), and Matrix::Rows().
Definition at line 280 of file Matrix.cpp.
References Matrix::Cols(), and Matrix::Rows().
Referenced by InterpolateAudio().
Definition at line 178 of file Matrix.cpp.
References Vector::Len().
Referenced by InterpolateAudio().
Definition at line 170 of file Matrix.cpp.
Referenced by InterpolateAudio().