Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }