3. Основы программирования в MATLAB
MATLAB поддерживает еще один режим работы – пакетный. В этом режиме можно составлять программы, которые представляют собой последовательность команд пользователя и хранятся на диске в виде отдельного файла.
Файлы, которые содержат команды языка MATLAB (M-языка), называются М-файлами. Создать М-файл можно в любом текстовом редакторе, но удобнее для этой цели использовать специальный редактор M-файлов, входящий в состав MATLAB. Подготовленный и записанный на диск m-файл становится частью системы, и его можно вызывать как из командной строки, так и из другого m-файла. Есть два типа m-файлов: файлы-сценарии и файлы-функции. Важно, что в процессе своего создания они проходят синтаксический контроль с помощью встроенного в систему MATLAB редактора/отладчика m-файлов.
3.1. Создание Файл-сценарий
Файл-сценарий, именуемый также Script-файлом, является просто записью серии команд без входных и выходных параметров. Он имеет следующую структуру:
«Основной комментарий %Дополнительный комментарий Тело файла с любыми выражениями Важны следующие свойства файлов-сценариев:
они не имеют входных и выходных аргументов;
работают с данными из рабочей области;
в процессе выполнения не компилируются;
представляют собой зафиксированную в виде файла последовательность операций, полностью аналогичную той, что используется в сессии.
Основным комментарием является первая строка текстовых комментариев, а дополнительным — последующие строки. Основной комментарий выводится при выполнении команд lookfor и help имя_каталога. Полный комментарий выводится при выполнении команды help имя_файла. Рассмотрим следующий файл-Сценарий (создадание трехчастотного сигнала на фоне сильного шума, создаваемого генератором случайных чисел):
% создадание трехчастотного сигнала на фоне сильного шума, создаваемого генератором %случайных чисел
f1=150;
f2=200;
f3=250;
t=0:0.0005:1;
x=sin(2*pi*f2*t)+0.4*sin(2*pi*f1*t)+0.4*sin(2*pi*f3*t);
y=x+2*randn(size(t));
plot(y(1:100),'b')
Рис. 3.1 Форма зашумленного сигнала
Первые две строки здесь — это комментарий, остальные — тело файла. Обратите внимание на возможность задания комментария на русском языке. Знак % в комментариях должен начинаться с первой позиции строки. В противном случае команда help name не будет воспринимать комментарий (иногда это может понадобиться) и возвратит сообщение вида No help comments found in-name.m.
Переменные, используемые в файлах-сценариях, являются глобальными, т. е. они действуют одинаково в командах сессии и внутри программного блока, которым является файл-сценарий. Поэтому заданные в сессии значения переменных используются и в теле файла. Имена файлов-сценариев нельзя использовать в качестве параметров функций, поскольку файлы-сценарии не возвращают значений. Можно сказать, что файл-сценарий — это простейшая программа на языке программирования MATLAB
Сигнал показанный на рис. 3.1 имеет среднюю частоту 200 рад/с и два боковых сигнала с частотами 150 и 250 рад/с, что соответствует амплитудно-модулированному сигналу с частотой модуляции 50 рад/с и глубиной модуляции 0.8 (амплитуда боковых частот составляет 0.4 от амплитуды центрального сигнала). Нетрудно заметить, что из него никоим образом не видно, что полезный сигнал — амплитудно-модулированное колебание, настолько оно забито шумами. Теперь построим график спектральной плотности полученного сигнала с помощью прямого преобразования Фурье, по существу переводящего временное представление сигнала в частотное. Этот график в области частот до 300 Гц строится с помощью следующих команд:
Y=fft(y,1024);
Pyy=Y.*conj(Y)/1024;
f=2000*(0:150)/1024;
plot(f,Pyy(1:151),’b’);
График спектральной плотности сигнала, построенный в этом примере, представлен на рис. 3.2. Даже беглого взгляда на рисунок достаточно, чтобы убедиться в том, что спектрограмма сигнала имеет явный пик на средней частоте амплитудно-модулированного сигнала и два боковых пика. Все эти три частотные составляющие сигнала явно выделяются на общем шумовом фоне. Таким образом, данный пример наглядно иллюстрирует технику обнаружения слабых сигналов на фоне шумов, лежащую в основе работы радиоприемных устройств.
Рис. 3.2. График спектральной плотности сигнала, приведенного на рис. 3.1
Чтобы создать M-файл, необходимо щелкнуть кнопкой New M-File главной панели инструментов MATLAB. Появится новое окно – текстовый редактор с готовым для редактирования пустым документом. После набора текста Файл-сценарий и его отладки необходимо создать М-файл, для чего воспользоваться пунктом меню File\Save As имя М-файла.
Рисунок 3.3 – Создание M-файла
Do'stlaringiz bilan baham: |