Это отступление от моего приложения храпа .
У меня была проблема с созданием автокорреляции аудиосигнала, чтобы проверить, хорошо ли это соотносится с храпом / дыханием. У меня есть простой алгоритм (в качестве нулевого элемента выдается 1.0, что является хорошим признаком), но мне интересно, как оценить результат, чтобы определить, сильна ли автокорреляция, и, возможно, далее, как использовать его для разделения различные возможные источники звука.
Вопрос № 1: Является ли RMS автокорреляции (пропускающий элемент ноль) такой же хорошей метрикой «качества», как и любая другая, или есть что-то лучше?
Для уточнения: я просто хочу, чтобы числовой способ (вместо «просмотра» на графике) отличал сильно автокоррелированный сигнал от менее хорошо автокоррелированного.
(Я не знаю достаточно, чтобы знать, какие еще вопросы задавать.)
Некоторые ранние результаты: в некоторых случаях автокорреляция (среднеквадратичное или пиковое) демонстрирует резкий скачок в храпе - именно тот ответ, который я хотел бы увидеть. В других случаях в этих измерениях вообще нет видимого движения (а это может быть два последовательных храпа с двумя ответами), а в ситуациях с высоким уровнем шума измерения фактически падают (немного) во время храпа.
Обновление - 22 мая. Наконец-то у меня появилось время поработать над этим. (Меня отвлекло другое приложение, которое буквально вызывает боль.) Я подал вывод автокорреляции в БПФ, и вывод несколько интересный - он показывает довольно драматический пик около начала координат, когда начинается храп.
Так что теперь я столкнулся с проблемой квантования этого пика как-то. Как ни странно, самые высокие пики по абсолютной величине имеют место в другое время, но я пробовал соотношение пика к среднему арифметическому, и это хорошо отслеживается. Итак, какие есть хорошие способы измерить «остроту» БПФ. (И, пожалуйста , не говорите, что мне нужно взять БПФ - эта штука уже близка к глотанию собственного хвоста. :))
Кроме того, мне пришло в голову, что качество БПФ могло бы несколько улучшиться, если бы я зеркально отразил подаваемые результаты автокорреляции с нулем (который по определению равен 1,0) в середине. Это поставило бы «хвосты» на обоих концах. Это (возможно) хорошая идея? Должно ли зеркальное изображение быть вертикальным или перевернутым? (Конечно, я попробую это независимо от того, что вы говорите, но я подумал, что, может быть, я получу некоторые подсказки по деталям.)
Пробовал плоскость--
Мои тестовые случаи можно условно разделить на категорию «с хорошим поведением» и категорию «проблемные дети».
Для «хороших» тестовых случаев плоскостность БПФ автокорреляции резко падает, а отношение пика к средней автокорреляции возрастает во время храпа. Соотношение этих двух чисел (отношение пиков, деленное на плоскостность) является особенно чувствительным, демонстрируя 5-10-кратный подъем во время вдоха / храпа.
Однако для «проблемных детей» цифры идут в противоположном направлении. Отношение пик / среднее значение слегка падает, в то время как плоскостность фактически увеличивается на 50-100%.
Разница между этими двумя категориями (в основном) тройная:
- Уровень шума (обычно) выше у «проблемных детей»
- Уровни звука (почти всегда) ниже у "проблемных детей"
- «Проблемные дети», как правило, состоят из большего количества дыхания и меньшего фактического храпа (и мне нужно обнаружить оба)
Любые идеи?
Обновление - 25/5/2012: Танец победы немного преждевременен, но когда я отразил автокорреляцию о точке, взял БПФ этого, а затем сделал спектральную плоскостность, моя схема комбинированного отношения показала хороший скачок несколько разных сред. Отражение автокорреляции, кажется, улучшает качество БПФ.
Тем не менее, один незначительный момент заключается в том, что, поскольку «постоянная составляющая» отраженного «сигнала» равна нулю, нулевой результат БПФ всегда равен нулю, и этот тип разбивает геометрическое среднее, которое включает в себя ноль. Но пропуск нулевого элемента, кажется, работает.
Результат, который я получаю, далеко не достаточен для самостоятельного определения храпа / вдоха, но кажется, что это довольно чувствительное «подтверждение» - если я не получаю «прыжок», то это, вероятно, не храп / дыхание.
Я не анализировал это близко, но я подозреваю, что происходит то, что свистящий звук появляется где-то во время вдоха / храпа, и этот свист - то, что обнаруживается.