Моделирование квантования в Simulink
Блок Scalar Quantizer Encoder(рис.29)находится в разделе signal processing Blockset\Quantizers.
Рис.29. Блок Scalar Quantizer Encoder
Данный блок имеет один вход и один выход изначально, нам же необходимо три выхода, где на вход подается квантуемый сигнал. На выходах, сверху вниз: вектор ind, вектор xQ, вектор квадратов ошибки квантования (а не средний квадрат ошибки, как в случае m-функции quantiz). Для этого необходимо убрать лишние входы и добавить нужные выходы.
Рис. 30
Пример 2. Применение блока Scalar Quantizer Encoder.
Собираем схему, показанную на рис. 31.
Рис. 31. Квантование сигнала блоком Sampled Quantizer Encode
Настраиваем блок From Workspace(рис. 32).
Рис.32. Окно-маска для настройки блока From Workspace
Блоки To Workspace настраиваем следующим образом (рис. 33).
Рис. 33. Окно-маска для настройки блока To Workspace
Обратите внимание: формат результата – массив (array), а не структура (structure). Данные в формате массива удобнее анализировать, поскольку не нужно тратить время на их извлечение из структуры с помощью специальных довольно громоздких команд.
Далее в командном окне MATLAB строим график фрагмента массива y(рис. 34).
stem(y)
Рис. 34. График значений y
Сравнивая графики на рис. 28 и рис. 34, видим, что на 34 изображен массив индексов, но без первого элемента. Таким образом, «потерялся» один (первый) элемент. Это понятно, поскольку размер входной выборки мы задавали 19. (Непонятно другое, – почему схема на рис. 30 отказывается работать, если размер входной выборки задается равным 20!)
Аналогично строим график выходного сигнала y1 со второго выхода (рис.35).
Рис. 35. График значений y1
Сравнивая рис. 35 и рис. 27 видим, что на рис. 35 изображен квантованный сигнал, но также без первого отсчета.
Наконец, строим график массива y2 (рис. 36).
Рис. 36. График значений y2
Сопоставляя рис. 34, рис. 35, и рис. 36, заключаем, что на рис. 36 изображен квадрат ошибки (массив), а не средний квадрат ошибки (число).
Таким образом, реализация квантования с помощью m-функции quantiz и с помощью блока Scalar Quantizer Encoder приводит к несколько отличающимся результатам.
Заметим в заключение, что в разделе Help утверждается, что в качестве входного сигнала блока Scalar Quantizer Encoder могут быть: только число (скаляр), для последовательности чисел необходимо использовать блок Vector Quantizer Encoder.
Дата добавления: 2015-09-29; просмотров: 1830;