Схемные решения однобитного квантователя
На рис.4 показано схемное решение, приведенное в примере программы МАТЛАБ. Однако полезно рассмотреть и иные схемные решения – это позволяет лучше уяснить возможности отдельных модулей Simulink.
Итак, на рис.9 приведено схемное решение с использованием знаковой функции sign (из библиотеки Math Functions программы Simulink).
Рис.9. LDM-кодер с однобитным квантователем в виде функции sign
На рис.10 приведено еще одно схемное решение – с использование блока Sampled quantizer encode из библиотеки Communications Blockset/Source Coding.
Рис.10. LDM-кодер с однобитным квантователем в виде блока Sampled quantizer encode
При этом нужно правильно настроить параметры этого блока (рис.11).
Как следует из рис.11, параметр partition – одноэлементный вектор, элемент которого равен нулю.
Параметр codebook – двухэлементный вектор, с элементами 0 и 1. Очевидное неудобство блока Sampled quantizer encode – необходимость задания еще двух параметров: длины вектора входного сигнала и частоты дискретизации. Чтобы схема работала верно, нужно правильно задать и эти параметры: длину вектора входного сигнала задать равной 1, а частоту дискретизации – 8000, а не 64000, как это сделано в окне настройки параметров модели в целом (рис.12).
Рис.11. Параметры блока Sampled quantizer encode
Рис.12. Параметры модели
Упрощенные схемы ldm кодера и декодера
После удаления из схемы рис. 5 блоков усиления, схема кодера приобретает вид, показанный на рис.13. В этой схеме применены два блока задержки на один такт. Однако нетрудно видеть, что схема на рис.13 эквивалентна схеме на рис.14, содержащая всего один блок единичной задержки.
В литературе [1] приводятся предельно упрощенные схемы кодера и декодера (рис.15), не содержащие, по сравнению со схемами рис.10 и 14, блоков биполяризации сигнала ошибки.
Рис.13. Кодер с двумя блоками единичной задержки
Рис.14. Кодер с одним блоком единичной задержки
а) б)
Рис.15. Предельно упрощенные схемы LDM кодера и декодера
Восстановленный сигнал при этом имеет вид, показанный на рис.16. Очевидно, удаление блоков преобразования однополярного сигнала 0 - 1 в биполярный ± 1 привело к необратимым последствиям – говорить о каком-либо восстановлении сигнала уже не приходится.
Данный пример чрезвычайно полезен, поскольку, с одной стороны, наглядно демонстрирует полезность моделирования в среде Simulink, а с другой стороны, показывает, как плохо могут работать упрощенные «книжные» схемы.
Рис.16
Рис.16а (интервал времени 0-0.04с)
Влияние увеличения частоты дискретизации
Если увеличить частоту дискретизации будет наблюдаться улучшение формы восстанавливаемого сигнала на крутых склонах сигнала. На рис.17 показан случай увеличения частоты дискретизации в 4 раза – с 8 кГц до 32 кГц.
Рис.17. Увеличение частоты дискретизации с 8 кГц до 32 кГц
Однако при этом сохраняется заметный «пилообразный» шум сигнала ошибки – чтобы его убрать рекомендуют на выходе декодера ставить НЧ фильтр. Действительно, после постановки такого фильтра (рис.18) качество сигнала улучшается (рис.19) – форма его весьма близка к форме исходного сигнала, отличие – в задержке его примерно на 0.8 мс относительно исходного.
Рис.18. Добавление ФНЧ после LDM Decoder
Рис.19. Восстановленный сигнал после ФНЧ
Параметры
ФНЧ в данном конкретном случае:
нерекурсивный фильтр с окном Кайзера,
,
порядок фильтра 50, частота среза 2 кГц
на уровне –6 дБ (относительно АЧХ на
нулевой частоте).
