Главная » Статьи » Мои статьи |
Scilab- генератор сигналовКак отмечалось в первой части (part1), в пакет Scilab входит Хcos — графический редактор для визуального моделирования гибридных динамических систем, аналогичный Simulink (Matlab). При использовании Хcos, разработчик создает на экране дисплея модель устройства из стандартных библиотечных блоков и проводит необходимые расчеты. Преимущество такого типа моделирования заключается в том, что разработчику достаточно начальных знаний языка программирования и численных методов, а также знаний предметной области, в которой он работает. Важно также отметить, что при использовании Xcos, создание моделей основывается на использовании технологии Drag-and-Drop. «Кирпичиками» при построении модели служат визуальные блоки, которые хранятся в библиотеке Xcos. Рис.1 Используя блоки из палитры, перетащим мышью нужные блоки в окно Xcos (рис.2). Рис.2 Мы использовали блоки GENSIN_f (генератор синусоиды), CLOCK_c (счётчик времени), CSCOPE (осциллограф). Если кликнуть мышью на каждый блок в нашей схеме, то можно менять параметры, например для блока GENSIN_f можно менять амплитуду, частоту и фазу (рис.3). Рис.3 В пункте "Моделировать" выберем пункт "Запустить", в результате появится ещё одно окно с графиком нашего сигнала (рис.4). Рис.4 Настроим параметры таким образом, чтобы получить нужные нам звуковые сигналы. Рис.5 Рис.6 В нашу модель мы добавили блок усиления с коэффициентом усиления 1. Этот коэффициент можно менять как в большую, так и в меньшую сторону. Полученные данные запишем в рабочую среду Scilab, а затем через него можно записать в файл формата .wav или воспроизвести. К сожалению, напрямую в Xcos можно записывать звуковые файлы только в формате .au (http://www.online-convert.com/ru/file-format/au). Рис.7 добавив вывод данных в рабочее пространство Scilab в виде переменной А. Записать в файл:
Аналогично, через рабочее пространство Scilab можно передать данные из внешних файлов в Xcos. Рис.8 Передаточная функция фильтра Создадим модель (рис.9), используя блоки RAND_m (генератор случайных сигналов), GAINBLK_f (усиление), SUMMATION (суммирование), CONST_m (генератор постоянной величины),DLR (дискретная передаточная функция),CLOCK_c (блок, задающий частоту дискретизации), CMSCOPE(многооконный осциллограф). Параметры А и В для блока RAND_m зададим равными -1 и 2 соответственно, для того, чтобы амплитуда сигнала менялась в диапазоне [-1,1]. Рис.9 Вывод данных в рабочее пространство Scilab в виде переменной осуществляется аналогично рис.7.
| |
Просмотров: 3101 | |
Всего комментариев: 0 | |