Моделирование аналого-цифрового преобразования 1
      

Библиотека Sources


    Кроме источников сигналов нам потребуются следующие блоки, которые также следует поместить в окно модели:

блок выборки и хранения Simulink\Discrete\Zero-Order Hold (то есть блок Zero-Order Hold, находящийся в библиотеке Simulink\Discrete) — осуществляет выборку мгновенного значения входного сигнала в заданный момент времени и фиксацию его на выходе вплоть до следующего момента выборки; квантователь Simulink\Nonlinear\Quantizer — выполняет квантование входного сигнала по уровню; сумматор Simulink\Math\Sum (пиктограмма имеет вид кружка со знаками арифметических операций “+” и/или “-”) — выполняет суммирование входных дискретных сигналов с учётом указанных знаков; коэффициент умножения Simulink\Math\Gain — выполняет умножение входного сигнала на заданную величину; константа Simulink\Sources\Constant — генерирует постоянную величину; ручной переключатель Simulink\Nonlinear\Manual  Switch — изменяет своё состояние двойным щелчком левой клавишей мыши; мультиплексор Simulink\Signals & Systems\Mux — позволяет передавать указанное количество входных сигналов по одной линии, подключённой к выходу блока; осциллограф Simulink\Sinks\Scope — отображает в виде графика входной сигнал; цифровой индикатор Simulink\Sinks\Display — отображает численное значение текущего отсчёта входного сигнала; блок вычисления дисперсии DSP Blockset\Math Functions\Statistics\Variance — вычисляет дисперсию входного сигнала; блок вычисления гистограмм DSP Blockset\Math Functions\Statistics\Histogram — вычисляет гистограмму для заданного диапазона значений входного сигнала; блок графического отображения DSP Blockset\DSP Sinks\User-Defined Frame Scope — позволяет строить графики входных данных, не ограничивая пользователя только временными или частотными зависимостями; блок буферизации и вычисления квадрата преобразования Фурье DSP Blockset\DSP Sinks\Buffered FFT Frame Scope — накапливает в буфере отсчёты входного сигнала, после заполнения буфера вычисляет квадрат преобразования Фурье.

Командное окно MATLAB и запуск Simulink


В том и другом случае откроется окно Simulink Library Browser (система просмотра библиотек Simulink), изображённое на рис. 3. В верхней части этого окна две крайние левые кнопки служат, соответственно, для создания новой и открытия существующей модели. После нажатия левой кнопки на экране появится окно для построения новой модели. Процесс построения модели АЦП, как впрочем, и любой другой модели Simulink, включает её компоновку и задание необходимых параметров. Компоновка заключается в выборе из библиотек Simulink необходимых блоков, их размещение в открывшемся окне и соединение между собой.





Компоновка модели


    Перед построением модели необходимо предварительно загрузить систему MATLAB и запустить Simulink. Запуск выполняется из командного окна MAT-LAB, для чего необходимо подвести курсор мыши к кнопке запуска этой программы, находящейся в верхней части окна, и щёлкнуть левой клавишей мыши либо набрать в командном окне следующую команду simulink, как показано на рис. 2.



Моделирование аналогово-цифрового преобразования сигналов


Блок вычисления гистограмм (Histogram) предна-значен для вычисления, а блок графического отображения (User-defined Frame Scope) — для построения гистограммы (в нашем случае, ошибки квантования). В рассматриваемой модели блок Histogram формирует векторный выходной сигнал, содержащий число значений входного сигнала, попадающих в заданные интервалы (иногда их называют бины), а блок User-defined Frame Scope строит график, на котором по оси ординат отложены значения этого сигнала, а по оси абцисс — номера интервалов, называемых интервалами группировки.

    Вычисление и отображение дисперсии ошибки выполняется соответственно блоками Variance и Display. Как видно из рисунка, в зависимости от положения переключателя Manual Switch, на входы Rst блоков Variance и Histogram поступают постоянные сигналы, равные либо нулю, либо единице. При поступлении на эти входы ненулевого (в данном случае, равного единице) сигнала, накопленная в блоках информация стирается, и происходит обнуление выходов.

    Кроме моделирования во временной области, можно вычислять и графически отображать оценки спектральной плотности мощности (СПМ) исходного и преобразованного сигналов и ошибки квантования. Это выполняется с помощью блоков Buffered FFT Frame Scope и Buffered FFT Frame Scope1, которые вычисляют квадрат амплитуды преобразования Фурье входных данных, накопленных в буфере каждого из блоков, а затем выводят результаты в виде графиков. Каждый раз после заполнения буфера, вычисления и графического отображения результата происходит очистка буфера, и процесс повторяется. Блоки Gain–Gain2 играют роль масштабирующих множителей (усилителей, аттенюаторов). Таким образом, при моделировании можно наблюдать изменяющуюся СПМ, соответствующую разным выборкам сигналов, взвешенных прямоугольным временным окном. Размер окна совпадает с размером буфера.



Описание моделируемой системы


    Для того, чтобы продемонстрировать, насколько просто и удобно строить модели устройств и создавать “измерительные стенды” в Simulink, смоделируем простейший АЦП, функциональная схема которого показана на рис. 1. Наша цель — изучить эффекты аналого-цифрового преобразования. Исходный сигнал с генераторов, расположенных в левой части рисунка, поступает на вход АЦП, моделируемого с помощью последовательно соединённых блоков Zero-Order Hold и Quantizer (на рисунке модель заключена в контур). Осциллографы позволяют наблюдать за исходным сигналом и результатом его преобразования (Scope1), а также за поведением ошибки квантования (Scope).



Поиск и перемещение блоков


Процедура поиска и перемещения блоков из библиотек Simulink в окно модели во многом напоминает операции копирования и перемещения файлов в среде Windows. В частности, технология работы с Simulink Library Browser (рис. 3) аналогична работе с Проводником Windows. Поместим в окно модели блоки источников сигналов Signal Generator (генератор синусоидальных, прямоугольных, пилообразных и случайных сигналов) и Band-Limited White Noise (генератор шума в заданной полосе частот), находящиеся по адресу Simu-link\Sources, для чего откроем библиотеку Simulink в окне Simulink Library Browser и находящуюся в ней библиотеку Sources. В результате, окно Simulink Library Browser примет вид, аналогичный показанному на рис. 4 (там также указаны блоки, которые следует переместить в окно модели). Для перемещения курсор мыши устанавливается на нужный блок. Затем, нажав левую клавишу мыши, блок перемещает его в окно модели. Отметим, что, кроме непосредственного просмотра содержимого библиотек, любой блок может быть найден по имени (если оно известно), введённому в текстовое поле, расположенное в правой верхней части Simulink Library Browser (рис. 4).



Соединение и дублирование блоков


Для объединения блоков в систему необходимо соединить их входные и выходные порты, которые на пиктограммах блоков отмечены значком “>”. В качестве примера на рис. 5 показаны порты блока Gain (коэффициент усиления). Для того, чтобы соединить два блока между собой, надо подвести курсор мыши к порту одного из соединяемых блоков (при этом курсор примет форму крестика, как показано на рис. 6а), нажать левую клавишу мыши и, удерживая её в нажатом положении, переместить курсор к порту другого блока (курсор примет вид двойного крестика, что отражено на рис. 6б), после чего отпустить удерживаемую клавишу.



первая публикация по наиболее простым


В рамках проекта “MATLAB для DSP” настоящая статья — первая публикация по наиболее простым и удобным средствам имитационного моделирования, которые предоставляет пакет MATLAB. Речь идёт о составной части этого пакета — программе Simulink. Несмотря на то, что Simulink’у посвящены обстоятельные разделы в книге по MATLAB [1] и даже отдельная монография [2], представляется полезным на конкретных примерах показать, как возможности Simulink могут быть использованы в задачах построения систем для цифровой обработки сигналов и учебном процессе. Здесь мы следуем известной рекомендации Ньютона: примеры часто бывают поучительнее методов. Читатель, будь то преподаватель, инженер или студент, имеет возможность без труда повторить наши примеры, что побудит использовать MATLAB в практической деятельности.
    Каждый, кто занимается цифровой обработкой сигналов, знает, как важно построить математическую модель проектируемого устройства, реализовать её в виде программы и затем провести на этой модели испытания в условиях, “приближающихся к боевым”.
    Simulink является мощным средством решения таких задач для разных предметных областей и, может быть, в первую очередь, для задач в области цифровой обработки сигналов. Использование Simulink во многих случаях исключает утомительные и трудоёмкие этапы составления и отладки программ, позволяя сосредоточить основные усилия непосредственно на решении “своих” предметно-ориентированных задач. Инженеру или студенту нужно освоить правила использования готовых функциональных блоков, из которых, как из конструктора, составляется модель проектируемого устройства, а также, и это следует особо подчеркнуть, “испытательный стенд”, то есть вся необходимая инфраструктура, включающая источники сигналов, измерительные приборы и средства наблюдения за процессами и характеристиками процессов. При этом гарантируется высокое качество “строительного материала”, в создании которого использованы опыт и знания ведущих специалистов.


    Итак, Simulink — это интерактивная графическая программа, управляемая мышью, которая позволяет моделировать динамические системы на уровне структурных и функциональных схем. Библиотеки Simulink содержат большое количество разнообразных функциональных блоков, которые отображаются на экране в виде пиктограмм.
    Построение модели сводится к перемещению с помощью мыши необходимых блоков из библиотек Simulink в окно создаваемой модели и соединению этих блоков между собой. Работая с программой Simulink, можно создавать модели линейных и нелинейных, аналоговых, дискретных и смешанных (аналогово-дискретных) цепей и систем, изменять параметры блоков непосредственно во время процесса моделирования и сразу же наблюдать реакцию моделируемой системы. Всё это делает работу с Simulink одинаково привлекательной как для начинающих пользователей, так и для опытных специалистов. В пакет MATLAB 5.3 входит подробное описание программы Simulink, которое содержится в файле sl_using.pdf. Отметим также вышедшие недавно книги [1,2], содержащие основные сведения о Simulink и примеры моделей динамических систем.
    В настоящей статье описывается процесс построения простой модели аналого-цифрового преобразователя (АЦП), а также рассматриваются эффекты, связанные с аналого-цифровым преобразованием. В первой части приводятся состав и краткое описание модели, процесс её построения, а также процедура компоновки модели. Во второй части, которая будет опубликована в “Chip News” № 3, будут приведены процесс построения модели, необходимые сведения о входящих в неё функциональных блоках и результаты моделирования, а также дополнительные возможности по использованию модели.