DBMS_JOB vs DBMS_SCHEDULER

Я создал эту функцию, которая позволяет вводить строку и возвращает список строк, обрезанных любым символом

 func Trim(input:String, character:Character)-> [String]
{
    var collection:[String] = [String]()
    var index  = 0
    var copy = input
    let iterable = input
    var trim = input.startIndex.advancedBy(index)

    for i in iterable.characters

    {
        if (i == character)
        {

            trim = input.startIndex.advancedBy(index)
            // apennding to the list
            collection.append(copy.substringToIndex(trim))

            //cut the input
            index += 1
            trim = input.startIndex.advancedBy(index)
            copy = copy.substringFromIndex(trim)

            index = 0
        }
        else
        {
            index += 1
        }
    }
    collection.append(copy)
    return collection

}

, так как не нашел способа сделать это в swift (компилируется и отлично работает в Swift 2.0)

23
задан Ryan Eastabrook 11 November 2010 в 07:29
поделиться

1 ответ

При измерении уровня звукового сигнала следует рассчитать дБ на основе среднеквадратичного значения. В вашем примере вы смотрите на абсолютный пиковый уровень. Одно (пиковое) значение выборки определяет значение в дБ, даже когда все остальные выборки равны 0.

попробуйте это:

double sum = 0;
for (var i = 0; i < _buffer.length; i = i + 2)
{
    double sample = BitConverter.ToInt16(_buffer, i) / 32768.0;
    sum += (sample * sample);
}
double rms = Math.Sqrt(sum / (_buffer.length / 2));
var decibel = 20 * Math.Log10(rms);

Для «мгновенных» уровней в дБ вы обычно рассчитываете среднеквадратическое значение в сегменте 20–50 мс. Обратите внимание, что рассчитанное значение дБ относительно полной шкалы. Для звука значение дБ должно быть связано с 20 uPa, и вам нужно будет откалибровать ваш сигнал, чтобы найти правильное преобразование из цифровых значений в значения давления.

32
ответ дан 29 November 2019 в 02:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: