Каковы хорошие способы обнаружения ограничения сигнала в записи?

32

По записи мне нужно определить, произошло ли какое-либо отсечение.

Могу ли я с уверенностью заключить, что имел место отсечение, если какой-либо (один) образец достигает максимального значения образца, или я должен искать серию последующих образцов на максимальном уровне?

Запись может быть взята из 16 или 24-битных аналого-цифровых преобразователей и преобразована в значения с плавающей запятой в диапазоне от . Если это преобразование принимает форму деления на 2 15 - 1 или 2 23 - 1 , то предположительно отрицательные пики могут быть несколько ниже, чем -1, и выборки со значением -1 не обрезаются?1...121512231

Очевидно, что всегда можно создать сигнал специально, чтобы победить алгоритм обнаружения отсечения, но я смотрю на записи речи, музыки, синусоидальных волн или розового / белого шума.

Хан
источник
8
Имейте в виду, что уровень отсечения не всегда является цифровым максимумом. Если аналоговая схема (или даже аналоговая сторона АЦП) имеет немного более низкий уровень ограничения, чем цифровая максимальная, она будет обрезаться раньше. Если он обрезает аналог и затем проходит через некоторую фильтрацию, он даже не будет прямой линией. Какие сценарии вам нужно определить?
эндолит
1
Записи производятся с помощью звукового устройства ПК (обычно подключаемого через USB). В основном они являются реакциями на развертку или стимул MLS и используются для расчета импульсного отклика помещения. Я не контролирую аппаратное обеспечение, поэтому отсечение может даже произойти на выходе стимула. Не думал об этом раньше, но я рад, что ты подумал об этом.
Хан

Ответы:

30

Я был в процессе ввода ответа почти так же, как Йода . Он, наверное, самый надежный, но я предложу другое решение, так что у вас есть несколько вариантов.


Если вы возьмете гистограмму вашего сигнала, вы, скорее всего, будете иметь форму колокола или треугольника, в зависимости от типа сигнала. Чистые сигналы будут следовать этой схеме. Многие студии звукозаписи добавляют эффект «громкости», который вызывает небольшой удар в верхней части, но он все еще выглядит несколько плавно. Вот пример из настоящей песни от крупного музыканта:

Гистограмма

Вот гистограмма сигнала, который Йода дает в своем ответе:

Гистограмма без отсечения

А теперь случай их отсечения:

Гистограмма с отсечением

Этот метод иногда можно обмануть, но это по крайней мере что-то, что можно бросить в сумку с инструментами для ситуаций, когда метод FFT, похоже, не работает для вас или слишком много вычислений для вашей среды.

Kellenjb
источник
2
Это сумасшедший потрясающий эффект. Очень интересно.
Кортук
Я рад, что вы предложили этот метод. Я должен был включить это сам ...
PearsonArtPhoto
Я говорю это именно потому, что это наиболее реализуемый метод. Это прикладная форма других данных опций, но похоже, что сигнал «ошибка» гораздо более понятен.
Кортук
1
Можно также сначала взять абсолютное значение сигнала и получить более гладкую одностороннюю гистограмму
эндолит
Мои пальцы зудят, чтобы проверить это на моих сигналах. Спасибо.
Хан
20

Самый простой ответ, если вы имеете дело с короткими записями, - это прослушать их и обнаружить «треск» (короткий звук с шипами) при воспроизведении. Однако более надежным решением является анализ частотного спектра записи.

Напомним, что когда сигнал обрезается при некотором пороге, он локально напоминает прямоугольную волну в обрезанных областях. Это вводит высшие гармоники в частотный спектр, которых не было бы изначально. Если ваш сигнал имеет ограниченную полосу пропускания (большинство сигналов реального мира), и вы производите выборку значительно выше частоты Найквиста, то это ясно как день.

Вот короткий пример в MATLAB, демонстрирующий это. Здесь я создаю сигнал с полосой пропускания длительностью 1 с, сэмплированный с частотой 1000 Гц, а затем обрезаю его между ±0.8(см. Верхний график на рисунке ниже)

time = 0:0.001:1;
cleanSignal = sin(2*pi*75*time).*chirp(time,50,1,200);
clippedSignal = min(abs(cleanSignal),0.8).*sign(cleanSignal);

введите описание изображения здесь

Вы можете четко видеть, что частотный спектр исходной несогласованной формы сигнала является чистым и стремится к нулю за пределами полосы пропускания (внизу слева), тогда как в ограниченном сигнале наблюдается общее незначительное искажение спектра (ожидается, если оно ограничено) и большинство важно, что высшие гармоники / пики / ненулевые вклады в спектре за пределами полосы пропускания сигнала (справа внизу).

Как правило, это может быть лучшим подходом, поскольку обнаружение отсечения путем просмотра значений обычно не является точным, если только вы сами не спроектировали оборудование и точно не знаете значение порога.

Лорем Ипсум
источник
1
Некоторые из моих сигналов (особенно MLS) идут вплоть до частоты Найквиста. Так что этот метод, вероятно, не всегда применим для меня.
Хан
@yoda Имея спектры в руках, как можно сказать, что спектр «грязный», как вы указали? Какой тест можно выполнить?
Спейси
9

Отчасти это зависит от метода записи. Похоже, вы используете только 1 конвертор, что несколько упрощает вещи.

Вы должны искать что-нибудь выше некоторого порога, и, в частности, более чем одну точку рядом друг с другом. Как правило, аналого-цифровые преобразователи фактически не считывают до своего максимального значения, если вы не проверите его очень точно, поэтому поймите, что максимальное значение может быть ниже, чем кажется возможным.

Учитывая ваши параметры, я бы искал последовательные сигналы выше .98 или ниже -.98, с некоторыми изменениями, чтобы определить, каким должен быть оптимальный порог (я бы не стал приводить его ниже .9). Возможно, было бы разумно обнаружить одного на максимуме, а другого - ближе чем к .8.

Причина игнорирования одного конкретного измерения состоит в том, что обычно возникают пики, которые не имеют никакого отношения к сигналу вообще. Это будет уменьшено в случае, если вы используете один известный хороший аналого-цифровой преобразователь. Вполне вероятно, что если вы используете массив детекторов или изображение, некоторые из детекторов будут плохими, что может привести к частому отсечению.

PearsonArtPhoto
источник
Очень практичный совет здесь. Вместе с подходом @ Kellenjb это должно дать мне достаточно, чтобы начать работать над реализацией.
Хан
3

MLS (последовательности максимальной длины) особенно сложно анализировать для отсечения. Их коэффициент амплитуды (= пик / среднеквадратичное значение) очень близок к 1, что даже на три дБ меньше, чем у синусоидальной волны. Многие ЦАП предназначены для восприятия синусоидальной волны как наихудшего случая, и MLS, воспроизводимый на полной амплитуде, может легко обрезать выходную схему интерполяции ЦАП.

Следующая проблема состоит в том, что ограниченный MLS выглядит почти идентично не ограниченному, поскольку амплитуды почти все + -пиковые в первую очередь. Также анализ PDF не работает, так как PDF MLS - это просто два больших пика по краям.

В типичном измерении импульсной характеристики в помещении наиболее вероятной точкой отсечения фактически являются ЦАП, усилитель или динамик. Пройдя через комнату, она выглядит гораздо менее похожей на MLS, и поэтому ее проще оценить с помощью методов, описанных выше.

Почти во всех акустических измерениях минимальный уровень шума определяется собственным шумом микрофона или фоновых шумов, а не АЦП. Поэтому не очень важно оптимизировать входное усиление в аналого-цифровом преобразовании, и оставляя достаточно свободного места перед ограничением (10 дБ или около того), вполне нормально.

Как правило, хорошей идеей является измерение с помощью нескольких различных уровней возбуждения и просмотр SNR измерения. На низких уровнях доминирует акустический фоновый шум, а на высоких уровнях что-то ограничивает, сжимает или обрезает. Хитрость в том, чтобы сделать хорошее измерение - найти хорошее место между ними.

Hilmar
источник