Задержки

Задержка, как я посмотрю, есть весьма животрепещущая сущность. Гугл и Яндекс при наборе этого слова в поисковой строке на первое место выдают: «задержка месячных». Значит, всё-таки тема продолжения рода актуальна. Подозреваю, что словом «задержка» начинаются русскоязычные запросы, находящиеся где-то в топе поисковых запросов. Я сегодня тоже обнаружил задержку, правда, несколько иного сорта.

delay

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

Нашёл я, значит, ещё одну задержку в 60 мс, которая при определённой конфигурации играет губительную роль в спектакле акустического подавления эхо. Сначала грешил на заголовок wav-файла, который алгоритмом не учитывается. Но заголовок на такую задержку никак не тянет. Не поленился дописать выдачу кое-какой отладочной информации и, только увидев задержку в виде количества отсчётов сигнала, пустил в голову мысль о групповой задержке цифрового фильтра. И ведь неоднократно задавал себе вопрос: «Может, задержка фильтра?» — но благополучно отгонял его от себя, считая эту версию совершенно несостоятельной. Всё дело, естественно, в невысокой квалификации в данной сфере, которая только на работе в Самсунге оказалась для меня центровой.

Задержка в какой-нибудь электрической или механической системе — это очень понятная вещь: если крикнуть что-нибудь в трубу, то звук на другом конце не появится раньше начала крика, но и в тот же самый момент его там быть не может хотя бы в силу здравого смысла, то есть природной физической интуиции. Если подать напряжение на вход электрической цепи, то не стоит ждать напряжения где-нибудь на выходе прежде подачи на вход. Всё то же самое работает и для цифрового фильтра, в чём меня по идее убеждать излишне. Но тут программирующий радиофизик попадает в засаду программиста.

Алгоритм по возможности пишется так, чтобы, поглотив кусок сигнала, за цикл обработки выдавать на выходе результат от того же самого куска. Тогда, вроде как, задержки нет. Точнее, есть конечное время исполнения одного цикла обработки, но его не видно, если оно короче обрабатываемого куска. В некоторых случаях может понадобиться ждать второй кусок сигнала, чтобы выдать результат от первого, — и это очевидная задержка, которой в нашем случае удаётся избежать. Последние несколько месяцев я только и делал, что сокращал время исполнения, умудрившись ужать его в 20 раз от первой лобовой версии алгоритма, практически не потеряв качества преобразования. Поэтому казалось, что задержки системы бесконечно прекрасны в своей милипизерности. И тут выясняется, что, даже сократив время работы всего алгоритма до нуля (!), он всё равно будет задерживать сигнал на очень приличное время, потому что в нём последовательно трудятся три цифровых фильтра.

Весь позор я осознал, когда забил в поиске Гула следующее:

method

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

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

У нас вот выясняется, что задержка достаточно ровная, чтобы сигнал не исказился, но при этом достаточно большая, чтобы сдвинуть один сигнал относительно другого. По счастью, мы выбрали другую схему исполнения, где данной проблемы нет, и я доволен, что не придётся всё пересчитывать и возвращаться к тому варианту, от которого уже отказались. Можно утверждать, что найден действительно серьёзный аргумент в пользу чуть более дорогого решения, а не просто «может быть нестабильно», «может хуже сходиться» и тому подобный лепет. Самсунг прилагает немало усилий для удешевления своих решений, ибо, например, выигрыш в пол-бакса на одной микросхемке оборачивается миллионами долларов на партиях в десятки миллионов телевизоров. Вот и выходит, что найм одного специалиста, способного отыграть эти пол-бакса, заметно окупается по результатам сведения дебетов с кредитами, даже с учётом тех специалистов, которые тот выигрыш не приносят. Справедливости ради, надо отметить, что в случае запуска нашей системы в производство, пол-бакса таки будут сэкономлены.

Запись опубликована в рубрике работа в Самсунге, Южная Корея с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.