| Цифровые сигнальные процессоры Вопросы, связанные с применением цифровых сигнальных процессоров: программирование, отладочные средства, алгоритмы... |
Сжатие динамического диапазона НЧ сигнала
14.01.2011, 13:21
|
|
|
Гражданин KAZUS.RUN
Регистрация: 30.05.2008
Адрес: Нижний Новгород
Сообщений: 901
Сказал спасибо: 90
Сказали Спасибо 1,274 раз(а) в 412 сообщении(ях)
|
Re: Сжатие динамического диапазона НЧ сигнала
Само 8-битовое преобразование может внести гораздо больше искажений в речевой сигнал, чем последующая цифровая компрессия. Поэтому обычная "гладкая" аналоговая компрессия может оказаться даже в выигрыше по разборчивости сигнала, несмотря на возникающие нелинейные искажения (вспомните про нелинейные искажения невывысоких порядков ламповых усилителей, которые даже приятны для восприятия человеческим ухом). И не зря в телефонии при такой малой разрядности АЦП обычно имеет не линейную, а близкую к логарифмической характеристику, что как бы повышает "эффективную" разрядность линии передачи. Компрессия динамического диапазона применяется довольно широко. К примеру, компрессор в известной системе Sony-minidisk независимо ужимает динамику отдельных спектральных составляющих звукового сигнала, и звук становится более "плотным", разборчивым и приятным. Однако некоторые фонограммы начинают после этого звучать просто смешно (громкие и тихие сигналы "вырввниваются"). Поэтому, прежде, чем городить цифровую обработку, ИМХО, нужно проанализировать, а не будет ли проще и лучше это сделать обычным аналоговым способом. Иначе, все равно до компрессии придется оцифровывать сигнал с большей, чем 8 бит разрешающей способностью.
Последний раз редактировалось you_go; 14.01.2011 в 13:24.
|
|
|
|
14.01.2011, 13:58
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,548
Сказал спасибо: 5,035
Сказали Спасибо 10,605 раз(а) в 3,594 сообщении(ях)
|
Re: Сжатие динамического диапазона НЧ сигнала
Не считаю себя большим спецом в обработке звука. Поэтому, если бы передо мной стояла задача ограничить динамический диапазон речи, я бы в первом приближении применил нелинейное преобразование, близкое к логарифмическому. Например, диодный переход, или канал полевика. Если нелинейные искажения велики - применил бы схему посложнее, вроде предложенной
NOPROBLEM, в пост #13.
Если же нелинейные искажения должны быть минимальными, то однозначно применил бы преобразование, подобное быстрой АРУ. Но у нее тоже есть недостаток. Реакция на изменения уровня сигнала происходит с запаздыванием. Поэтому часть пикового значения может попадать в тракт. Кроме того, скорость срабатывания АРУ чаще всего делается несимметричной - с быстрым нарастанием затухания, и с медленным спадом. Поэтому после короткого резкого всплеска громкости АРУ еще несколько секунд продолжает значительно давить амплитуду сигнала.
Чтобы убрать и этот недостаток, и в целом улучшить качество компрессии, я бы ввел в тракт довольно большую задержку сигнала, до 0,5...1...2 секунд. Конечно, лучше всего такие задержки реализуются цифровыми методами.
То есть, это выглядело бы так:
1. Полосовой фильтр, для подавления мусора.
2. АЦП
3. FIFO, объемом (слов)=(длительность задержки, с)*(частота квантования, Гц)
4. ЦАП
5. ФНЧ
Анализ уровня сигнала происходит до АЦП, а АРУ воздействует на сигнал уже после ЦАП, или после ФНЧ. При этом АРУ не быстрая, а наоборот - медленная, начинает срабатывать с упреждением, уровень меняется плавно, без резких бросков.
Реализация АРУ может быть как аппаратной, так и программной. Времени для анализа сигнала достаточно. FIFO можно применить аппаратный, внешний, если АРУ делать аппаратно. А если АРУ программная, то в качестве FIFO придется использовать ОЗУ микроконтроллера.
|
|
|
|
14.01.2011, 14:40
|
|
|
Прохожий
Регистрация: 07.12.2007
Сообщений: 7
Сказал спасибо: 2
Сказали Спасибо 6 раз(а) в 2 сообщении(ях)
|
Re: Сжатие динамического диапазона НЧ сигнала
Сообщение от NOPROBLEM
|
Насколько я знаком с данным вопросом, компрессоры типа АРУ не годятся для передачи речи, имеющей принципиаьно негладкий сигнал. Логарифмирование в чистом виде приводит к возникновению гармоник, ухудшающих разборчивость речи. В связной технике давно разработан и успешно используется метод, когда после логарифмического компрессора смещают по времени искажения сигнала, а затем его вновь подавляют логарифмированием. Сам делал такие компрессоры для домофонов в 80Х, эффект потрясающий. Любой шерох и шепот на лесничной клетке слышится без напряжения, а если кричать прямо в микрофон, то тоже нет никакой перегрузки. Недавно по просьбе товарища поднял старые записи, а затем промоделировал дивайс в ВИССИМе на современных элементах. Могу поделиться (бескорыстно).
А теорию читал у В.Т. Полякова в "Радиолюбителю о технике прямого преобразования". Программной реализацией компрессора не занимался.
|
Вот проделал давно, публикация ещё с трансформатором для фазовращателя была ещё в конце 60-х.
Для речи и для электрогитары идеальное решение, никак не превзойти по последующей субъективной оценке. Я доказательства за последние 20 лет предъявлял ну, паре десятков оппонентов уже . Последняя реализация была на ИМС дилея + дифференциальный сумматор.
И всё параметрически - никаких хвостов-затыков!
|
|
|
|
14.01.2011, 15:06
|
|
|
Временная регистрация
Регистрация: 19.03.2007
Сообщений: 53
Сказал спасибо: 3
Сказали Спасибо 34 раз(а) в 21 сообщении(ях)
|
Re: Сжатие динамического диапазона НЧ сигнала
Сообщение от Alex9797
|
|
Если же нелинейные искажения должны быть минимальными, то однозначно применил бы преобразование, подобное быстрой АРУ. Но у нее тоже есть недостаток. Реакция на изменения уровня сигнала происходит с запаздыванием.
|
При «прямом управлении» - нет. И даже при «обратном управлении» время реакции может быть реализовано (и реализовано более полувека назад) нужной длительности без всяких цифровых методов.
Сообщение от Alex9797
|
|
Кроме того, скорость срабатывания АРУ чаще всего делается несимметричной - с быстрым нарастанием затухания, и с медленным спадом.
|
Никто не мешает делать её с любыми (разумными для практики) временными характеристиками. Вы о «слоговых компрессорах» (давних, аналоговых) слышали?
Сообщение от Alex9797
|
|
Поэтому после короткого резкого всплеска громкости АРУ еще несколько секунд продолжает значительно давить амплитуду сигнала.
|
«Время восстановления» полностью подвластно разработчику и пользователю.
Более того, уже давным-давно реализованы аналоговые схемы, в которых время восстановления управляется самой длительностью всплеска уровня.
Всё это, между прочим, предельно доходчиво разъяснено в той самой, столь пренебрегаемой, книжице…
|
|
|
|
Сказали "Спасибо" FedotLapteshchekhlioboff
|
|
|
15.01.2011, 11:14
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 11.07.2006
Адрес: Москва, Тушино
Сообщений: 3,709
Сказал спасибо: 778
Сказали Спасибо 994 раз(а) в 552 сообщении(ях)
|
Re: Сжатие динамического диапазона НЧ сигнала
Сообщение от niXto
|
|
Так вот именно это ТС и хочет сделать программно - сжать сигнал допустим с 16-24 битного АЦП до 8-12 бит. Почему именно программно - ему виднее
|
Похоже классическая алтернатива: "Вам шашечки или ехать?" плавно преобразуется в :"Вам качественный звук или программная реализация?"
__________________
От ложного знания к истинному незнанию!
|
|
|
|
15.01.2011, 11:27
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 11.07.2006
Адрес: Москва, Тушино
Сообщений: 3,709
Сказал спасибо: 778
Сказали Спасибо 994 раз(а) в 552 сообщении(ях)
|
Re: Сжатие динамического диапазона НЧ сигнала
Сообщение от FedotLapteshchekhlioboff
|
|
Никто не мешает делать её с любыми (разумными для практики) временными характеристиками.
|
Так и аналоговыми методами можно получит любые характеристики. Но в том то и штука, что увеличения достоверности оценки время должно быть максимальным, а для сохранения качества-минимальным. Любое реальное значение портит оба показателя, но в разной степени в зависимости от значения. Единственный надежный вариант - обработка в режиме постпроцессора. Причем лучше посадить хорошего звукооператора, чем тупую программу. Хотя и MP3Gaint тоже дает приличные результаты...
__________________
От ложного знания к истинному незнанию!
|
|
|
|
15.01.2011, 12:00
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
|
Re: Сжатие динамического диапазона НЧ сигнала
Сообщение от NOPROBLEM
|
|
Похоже классическая алтернатива: "Вам шашечки или ехать?" плавно преобразуется в :"Вам качественный звук или программная реализация?"
|
Программно все гораздо проще и легче. Любой фильтр - десяток слов программы (ну и подпрограмма фильтра естественно). Нужен полосовой фильтр 50 Гц 8-го порядка? - Нет ничего проще, сотня байт памяти программ контроллера, и не нужен килограмм дросселей. В аналоговой часто упрощают, не всегда можно точно подобрать номиналы деталей - в цифровой никто ничего не будет упрощать а погрешность легко достижима в доли процента. И чтоб изменить количество и порядок фильтров - не надо делать новую плату, просто перепрошей контроллер...
так что не вижу юмора.
|
|
|
|
15.01.2011, 13:33
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 11.07.2006
Адрес: Москва, Тушино
Сообщений: 3,709
Сказал спасибо: 778
Сказали Спасибо 994 раз(а) в 552 сообщении(ях)
|
Re: Сжатие динамического диапазона НЧ сигнала
Сообщение от niXto
|
Программно все гораздо проще и легче. Любой фильтр - десяток слов программы (ну и подпрограмма фильтра естественно). Нужен полосовой фильтр 50 Гц 8-го порядка? - Нет ничего проще, сотня байт памяти программ контроллера, и не нужен килограмм дросселей. В аналоговой часто упрощают, не всегда можно точно подобрать номиналы деталей - в цифровой никто ничего не будет упрощать а погрешность легко достижима в доли процента. И чтоб изменить количество и порядок фильтров - не надо делать новую плату, просто перепрошей контроллер...
так что не вижу юмора.
|
Вам что, нужен фильтр 8 порядка? Или надо менять порядок фильтра чаще чем раз в неделю?
И не надо заливать, что в программной реализации ни кто не упрощает. Здесь грамотные люди собрались, и программно и аппаратно большинство людей кое что сделало и разницу понимает. Думаю, дело в другом. Если сейчас и учат чему, так программированию. Для этого есть все. А вот схематехнике я уж и не знаю, где учат. А где хорошо учат, так думаю ни кто и не скажет. Поэтому молодежь электроники как огня боится. Разъем распаять-вершина мастерства. Потому и норовят все что можно и нельзя программно решить.
__________________
От ложного знания к истинному незнанию!
|
|
|
|
Сказали "Спасибо" NOPROBLEM
|
|
|
15.01.2011, 17:42
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
|
Re: Сжатие динамического диапазона НЧ сигнала
Сообщение от NOPROBLEM
|
|
И не надо заливать, что в программной реализации ни кто не упрощает. Здесь грамотные люди собрались, и программно и аппаратно большинство людей кое что сделало и разницу понимает.
|
Перечитайте 1-й и 4-й пост ТС. Я не модератор, но если желаете порассуждать по аналоговым фильтрам - создайте отдельную тему. Здесь тема по цифровым фильтрам.
|
|
|
|
15.01.2011, 21:32
|
|
|
Временная регистрация
Регистрация: 19.03.2007
Сообщений: 53
Сказал спасибо: 3
Сказали Спасибо 34 раз(а) в 21 сообщении(ях)
|
Re: Сжатие динамического диапазона НЧ сигнала
Сообщение от niXto
|
|
…если желаете порассуждать по аналоговым фильтрам - создайте отдельную тему. Здесь тема по цифровым фильтрам.
|
Это откуда следует из зачина ветки? Исходный вопрос
Сообщение от makser1
|
Не смог найти практическую (да и теоретическую) информацию по алгоритмам сжатия динамического диапазона сигнала, в радиосвязи называется "снижение пик фактора".
Может кто-нибудь поделится информацией?
|
относится к любым алгоритмам сжатия динамического диапазона сигнала. И уж проблема снижения пик-фактора в радиосвязи и радиовещании была решена ещё до 2-й мировой, какими там «цифровыми фильтрами»…
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:45.
|
|