Генерирование сигналов путем создания m-скрипта. Данный способ отличается тем, что все команды набираются в специальном окне редактора m-файлов (рис.3).
Рис.3. Набор команд в окне редактора m-файлов
Данный способ удобен тем, что вместо сторонних программных продуктов используется собственный инструментарий MATLAB, специализированный для написания и отладки m-скриптов.
Генерирование сигналов путем создания m-функции. Данный способ отличается тем, что входные данные записывают как аргумент некоей функции , а выходные – как значение этой функции. Удобство в том, что символьные обозначения данных могут отличаться от обозначений, используемых в теле функции. Более того, числовые значения входных данных можно просто задавать в наименовании вызываемой функции. Последнее обстоятельство продемонстрируем на примере.
Создадим подпрограмму – m-скрипт ton.m вида:
% скрипт ton
s=A*sin(2*pi*f0*t+Fi0); % вычисление отсчетов сигнала
Команду выполнения этого скрипта нужно «окружить» командами подготовки входных данных и вывода выходных данных:
A=1; f0=100; Fi0=pi/2; Fs=1000; N=20; % параметры сигнала
t=(0:N-1)/Fs; % моменты времени
ton; % вычисление отсчетов
%сигнала
plot(t,s) % вывод графика
title('Гармонический сигнал') % заголовок
xlabel('ВремЯ, с'); ylabel('Уровень'); % надписи вдоль осей
grid on % координатнаЯ сетка
Очевидно, обозначения входных и выходных данных вызывающей программы должны совпадать с обозначениями соответствующих данных вызываемой подпрограммы.
Теперь поступим по-иному – напишем и сохраним m-функцию под именем ton_sig.m:
%-------функциЯ ton_sig.m -----------
% [s,t]=ton_sig(B,f1,Fi1,Fs,N1)
%---------------------------------------
% генерирование гармонического сигнала
% y = B * sin(2*pi*f1*x + Fi1),
% B - амплитуда;
% N1 - количество отсчетов сигнала;
% f1 - частота;
% Fs - частота дискретизации;
% Fi1 - начальнаЯ фаза сигнала
%---------------------------------------
function [y,x] = ton_sig( B, f1, Fi1, Fs, N1 )
%---------------------------------------
x = (0:N1-1)/Fs; % моменты времени
y = B * sin( 2*pi*f1*x + Fi1 );
%-------- конец функции ton_sig.m ----------
Теперь m-скрипт генерирования того же отрезка косинусоиды будет выглядеть так:
% гармонический сигнал
[s,t]=ton_sig(1,100,pi/2,1000,20) % вычисление отсчетов сигнала
plot(t,s) % вывод графика
title('Гармонический сигнал') % заголовок
xlabel('ВремЯ, с'); ylabel('Уровень'); % надписи вдоль осей
grid on % координатнаЯ сетка
Как видим, теперь числовые значения входных данных задаются как аргументы m-функции ton_sig.m. Выходные данные функции используются для построения графика.
Очевидно, применение m-функций предпочтительно в том случае, когда алгоритм формирования значений функции достаточно сложный, содержится много команд и обращений к разнообразным библиотечным функциям с непростым синтаксисом.
Очевиден и недостаток m-функций – необходимо помнить их синтаксис. Впрочем, получить нужную информацию можно, если в командном окне задать команду help:
>> help ton_sig
В результате на мониторе отобразится комментарий, с которого начинается m-функция. Для приведенного выше примера текст помощи имеет следующий вид:
%-------функциЯ ton_sig.m -----------
% [s,t]=ton_sig(B,f1,Fi1,Fs,N1)
%---------------------------------------
% генерирование гармонического сигнала
% y = B * sin(2*pi*f1*x + Fi1),
% B - амплитуда;
% N1 - количество отсчетов сигнала;
% f1 - частота;
% Fs - частота дискретизации;
% Fi1 - начальнаЯ фаза сигнала
%---------------------------------------
Таким образом, очевиден вывод: очень важно при программировании m-функций снабжать их качественным и подробным комментарием.
Требования к содержанию отчета: составьте отчет в электронном виде, включающий все команды, вводимые в командной строке MATLAB и все полученные графики.
Достарыңызбен бөлісу: |