An toolbox for audio processing in Matlab,the verison of Matlab is R2016a.
The audio sample in this toobox is 8000Hz, 16 bits.
extract audio fingerprinter by calcuating the difference of the energy of each frequency sub-band
- divide audio into frames, the overlap length is alterable
- do fft for each frame
- divide frequency spectrum into 32 frequency sub bands
- calcuate the energy of each sub band
- calcuate audio fingerprinter as follow
calcuate the zero-crossing which can be used to predict the frequency roughly
- divide audio into frames
- calcuate zcr of each frame using the following equation
where sgn(x) is given by
The result is shown below.
This function is to get few maximuns in local matrix in a given matrix
calcuate the enegry max points(also called landmark) in frequency spectrum
- divide audio into frames, the overlap length is alterable
- do fft for each frame
- calcuate the energy of frequency
- calcuate the local maximum as landmark
The result is shown below
calcuate the short-time energy
1.divide audio into frames, the overlap length is alterable
2.calcuate the energy using the following equation:
Implementation of matlab function Specgram()
where a = b = 0.953125
r0 = r1 = 0
COR0 = COR1 =0
VAR0 = VAR1 = 1
The update procedure is shown below:
K1(n) = bCOR0(n-1)/VAR0(n-1);
K2(n) = bCOR1(n-1)/VAR1(n-1);
Xest(n) = K1(n)r0(n-1) + K2(n)r1(n-1);
e0(n) = Xrec(n);
e1(n) = e0(n) - K1(n)r0(n-1);
VAR0(n) = uVAR0(n-1) + 0.5[r0(n-1)^2+e0(n)^2];
COR0(n) = uCOR0(n-1) + r0(n-1)e0(n);
VAR1(n) = uVAR1(n-1) + 0.5*[r1(n-1)^2+e1(n)^2];
COR1(n) = u*COR1(n-1) + r1(n-1)e1(n);
r1(n) = a(r0(n-1)-K1(n)e0(n));
r0(n) = ae0(n);
Xerr(n) = Xrec(n) - Xest(n);
The function returns the estimate value Xest and the setimate error Xerr