Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Использование ШИМ для вывода речи
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
kons
Современные контроллеры и DSP редко имеют ЦАП, но обычно имеют ШИМ. Для вывода речи с телефонным качеством (12-13 бит) разрядности ШИМ при частотах 32 кГц и выше недостаточно (даже при тактовой частоте 160 МГц симметричная ШИМ имеет 160000/32/2=2500 ступеней). Кто-нибудь решал эту проблему (например, с помощью дельта-сигма модулятора)?
rat
Когда-то генерировал синусоиду 800Гц авровским ШИМом, КНИ даже без фильтра был вроде неплохой. Телефонное качество это 3кГц. Что-то смутно подсказывает, что на 160МГц проблем с этим быть не должно. wink.gif
SM
Для сигма-дельты и телефонного качества достаточно 2 мгц тактовой преобразователя. Только вот ШИМ там нафиг не сдался smile.gif
kons
Насчет 2 МГц - согласен, но программно это делать слегка напряжно, а на кодеке неинтересно - охота сэкономить деньги и место на плате. Да и некуда к TMS320F2808 подключать кодек - нет BSP.
Идея с ШИМ состоит в следующем:
1.Интерполируем хорошим фильтром с 8 кГц до частоты ШИМ (не ниже 64 кГц).
2.Делаем программно цифровой дельта-сигма модулятор первого или второго порядка с многоразрядным (=разрядности ШИМ) выходом. За счет этого вытесняем шумы квантования ШИМ в область выше звуковых частот.
3.Выводим это в ШИМ, далее достаточно простенького ФНЧ.
SM
Без BSP согласен, гнило. А с BSP это (2 мгц дельта-сигма) делается более менее приемлемо, формируется битовый поток, и гонится 32-битными словами в синхронном режиме через ДМА. А с многоразрядным NS-преобразованием идея вполне хорошая. Только просчитайте, хватит ли увеличения разрядности при Ваших параметрах.
kons
В теории SNR хватает, даже с запасом. А на практике - надо делать и слушать. Поэтому мне и интересно - может, кто пробовал?
admin
поудалял лишние сообщения.
SM
Я сам делал указанным методом сигму-дельту на 55хх через McBSP однобитную. Работало как положено. Многобитную не пробовал за ненадобностью.
Stanislav
Цитата(kons @ Sep 28 2005, 16:00)
Современные контроллеры и DSP редко имеют ЦАП, но обычно имеют ШИМ. Для вывода речи с телефонным качеством (12-13 бит) разрядности ШИМ при частотах 32 кГц и выше недостаточно (даже при тактовой частоте 160 МГц  симметричная ШИМ имеет 160000/32/2=2500 ступеней). Кто-нибудь решал эту проблему (например, с помощью дельта-сигма модулятора)?
*

Делал, по-моему, на АТмеге, с помощью ШИМ "честный" 16-разрядный ЦАП, работающий с частотой 32 кГц. Никаких с.-д. модуляторов не использовалось, только на выходе ФНЧ 3-го порядка на опере. Качество после фильтрации примерно соответствовало 16-бит 16 кГц аудио сигма-дельта ЦАПу.
//---------------------------------
Да, забыл сказать. ЦАП для сравнения выбран был не ахти какой - AD73311, но для речевых приложений и телефонии вполне приемлемый.
kons
Станислав, а можно чуть подробнее - это очень интересно, хоть АD73311 и не дотягивает до телефонного качества.
У меги с тактовой 16 МГц при 32 кГц разрешение ШИМ = 9 бит, и это еще в несимметричном режиме. Если не использовался с-д, то откуда взялись еще 7 бит? Суммировались выходы 2 каналов в пропорции 1:128 или 1:256?
Какова была частота среза ФНЧ?
И еще, при такой низкой тактовой частоте как боролись с интермодуляционными искажениями, характерными для ШИМ?
Stanislav
Цитата(kons @ Oct 18 2005, 18:54)
Станислав, а можно чуть подробнее - это очень интересно, хоть АD73311 и не дотягивает до телефонного качества.
     У меги с тактовой 16 МГц при 32 кГц разрешение ШИМ = 9 бит, и это еще в несимметричном режиме. Если не использовался с-д, то откуда взялись еще 7 бит? Суммировались выходы 2 каналов в пропорции 1:128 или 1:256?
     Какова была частота среза ФНЧ?
     И еще, при такой низкой тактовой частоте как боролись с интермодуляционными искажениями, характерными для ШИМ?

AD73311 на 16 кГц имеет именно телефонное качество (хотя, лично мне чип не нравится).
Был применен фильтр Чебышева 3-го порядка с неравномерностью АЧХ около 0,5 дБ и спадом до -3 дБ в районе 4,5 кГц.
Искажения, конечно, есть, но для телефонной речи не столь уж заметны. Частоту же ШИМ можно повысить и до 64 кГц, с программной интерполяцией. Был выбран оптимум по неким субъективным и объективным критериям.
Для phase-correct ШИМ искажений должно быть значительно меньше, но на АТмеге оно реализуется сложнее.
Свое решение выложу в понедельник здесь. Сейчас решил оформить это в виде задачки.
vm1
Можно попробовать отдельно управлять
динамическим диапазоном и формой сигнала.
Тоесть выводить сигнал с цифровой ошибкой
пропорциональной его амплитуде.
Тогда требования к разрядности для формы сигнала
резко снижаются.
729
Решал такую задачу много лет назад, и именно через (не сигма, но простейший) дельта-модулятор. Опыт повторил лет 5 назад, результат - уже на 10МГц качество ЦАПа (при соответствующем синтезе, то есть того же дельта-модулятора на входе) было соизмеримо с качеством среднего CDюка от Panasa (к сожалению, только на слух), и это при полном отсутствии ФНЧ и прочего (в качестве ФНЧ были наушники от Panasa и собственные уши). Но ШИМ тут не работает, работает, грубо говоря, обычный RC аналоговый интегратор при правильной оцифровке (синтезе).
Делал и такую штуку - раскачивал аналоговый сигнал на ОУ, выводил его среднее на порог срабатывания, совал прямо на вход ПЛИС (Xilinx XC2018, ох, давно это было), тактировал килогерцами 5-ью (чистое, но качественное клиппирование речи), далее таблица 8 в 8, и вывод с этой самой XC2018 прямо на 8-ми разрядную R-2R резисторную цепь, усиливал и... получал 98-ми процентную слоговую разборчивость (меряли на Госкомиссии, то есть хорошо меряли). Так что, могут быть и варианты. Дерзайте и не бойтесь всякой непотребной нелинейки преобразованияsmile.gif))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.