public static double[,] DecibelSpectra(double[,] amplitudeM, double windowPower, int sampleRate, double epsilon, FrequencyScale freqScale) { double[,] powerSpectra = PowerSpectra(amplitudeM, windowPower, sampleRate, epsilon, freqScale); // Convert the power values to log using: dB = 10*log(power) var decibelSpectra = MatrixTools.Power2DeciBels(powerSpectra, out var min, out var max); return(decibelSpectra); }
public static double[,] ConvertAmplitudeSpectrogramToDecibelOctaveScale(double[,] inputSpgram, FrequencyScale freqScale) { //var dataMatrix = MatrixTools.Submatrix(inputSpgram, 0, 1, inputSpgram.GetLength(0) - 1, inputSpgram.GetLength(1) - 1); //square the values to produce power spectrogram var dataMatrix = MatrixTools.SquareValues(inputSpgram); //convert spectrogram to octave scale dataMatrix = ConvertLinearSpectrogramToOctaveFreqScale(dataMatrix, freqScale); dataMatrix = MatrixTools.Power2DeciBels(dataMatrix, out var min, out var max); return(dataMatrix); }