Непрерывные и дискретные по времени сигналы, страница 2

function I=integr1(N)            %объявление функции I=integr(N)

t=0:2*pi/N:2*pi;                    %задаётся интервал

%вычисление интеграла методом прямоугольников

I=(2*pi/N)*sum(sin(t).^2);  

disp('Результат'), disp(I)      %Вывод результата на экран

end

Пример выполнения:

При  N=50,

 integr1(50)            

Результат:

Интеграл равен

    3.1416

ans =

    3.1416

8.2.Составление  script – файлa (файл – сценарий)  для вычислениятого же интеграла, в котором предусмотрен ввод значений числа точек Nс помощью команды input

N=input('Введите число точек  N = '); %ввод значений числа точек N с помощью команды input

t=0:2*pi/N:2*pi;                                    % задаётся интервал

s=0;

for t=0:2*pi/N:2*pi                               %Цикл для вычесления интеграла методом прямоугольника

s=s+sin(t)^2;   

end;

disp('Интеграл равен'),I=2*pi/N*s     %Вывод результата на экран

 Пример выполнения:

Введите число точек  N = 50

Интеграл равен

I =  3.1416

Cложные вычисления требуют, как правило, программирования на языке Matlab  и записи программ  в виде М – файлов.
M – файлы могут быть функциями с входными и выходными переменными или файлами - сценариями – наборами команд и функций  MATLAB  [2].

Структура  м-файла:

function   var = functionname (список параметров)

% основной комментарий

% дополнительный комментарий

тело  функции

var = выражение

 Скрипт – файлы (scriptfiles)  являются независимо исполняемыми блоками операторов и команд, они содержат просто последовательность команд без входных и выходных  параметров.

Структура Скрипт – файла:

%Основной комментарий

%Дополнительный комментарий

Тело файла с любыми выражениями

9.  Составление файл-сценарий для генерирования шума, сигнала и посторонние их суммы.

9.1.  Генерирование 50 значений случайного шума с помощью функции  randn(),
9.2  Генерирование сигнала

9.3  Построение графиков шума,  сигнала и их суммы (смеси) в отдельных графических подокнах

t = 1:1:49;

x = randn (1, length(t));

xt = 2.*t.*(0.9).^t;

subplot (3,1,1)

stem (t,x)

title ('График случайного шума')

xlabel ('t')

ylabel ('x(t)')

subplot (3,1,2)

stem (t,xt)

title ('График сигнала')

xlabel ('t')

ylabel ('Сигнал')

subplot (3,1,3)

stem (t,x+xt)

title ('График сигнала x(t) и график случайного шума')

xlabel ('t')

ylabel ('x(t)')



Рис. 8. Графики случайного шума и сигнала   и их суммы.

10.    Изучение процедуры, представленной в Приложении 1.

% Процедура генерирования и построения графиков

% единичного импульса (imp), ступенчатого (step)

% и пилообразного (ramp) сигналов

L = input('Введите длину сигнала= ');

n = 1:L;

FT = input(' Введите частоту отсчетов = ');

T = 1/FT;

imp = [1 zeros(1,L-1)];     % вариант 

imp = (n==1);                   % генерирование единичного импульса

step = ones(1,L);               % генерирование ступенчатого сигнала

ramp = (n-1).*step;           % генерирование пилообразного сигнала

subplot(3,1,1);

stem(n-1,imp);

set(gca,'FontName','Arial Cyr', 'FontSize',10)

xlabel([' Интервал отсчетов',num2str(T), ' сек']);

ylabel('Амплитуда');

subplot(3,1,2);

stem(n-1,step);

set(gca,'FontName','Arial Cyr', 'FontSize',10)

xlabel(['Интервал отсчетов ',num2str(T), ' сек']);

ylabel('Амплитуда');

subplot(3,1,3);

stem(n-1,ramp);

set(gca,'FontName','Arial Cyr', 'FontSize',10)

xlabel(['Интервал отсчетов',num2str(T), ' сек']);

ylabel('Амплитуда');

Выполнение:

>> signals

Введите длину сигнала= 20

Введите частоту отсчетов = 4

Рис.9. Графики единичного импульса (imp), ступенчатого (step) и пилообразного (ramp) сигналов.

В процедуре Приложения 1 использованы следующие функции:

  • zeros(m.n) или zeros([m n]) — возвращают матрицу размера mxn, состоящую из нулей;
  • ones(m.n) или ones([m п]) — возвращают матрицу размера mxn, состоящую из единиц;

Выводы :

1.  Для построения непрерывного сигнала используется команда plot, параметрами которой является тип линии, тип точки и цвет линии.

Для дискретного сигнала используется аналогичная команда stem.
2.   Команды,  наиболее часто используемые при работе с графиками в Matlab :
       plotstem– комнады для построения графиков

Gridкомандадобавления сетки к графику,

Subplo(r,c,n) - Разбивает графическое окно на  r * c подокон и устанавливает подокно  n в качестве активного.

Figure- Устанавливает фигуру (окно) n  активной,

Title- заголовок графика ,

Axis- Установка масштабов по осям  x и  y,

Xlabel- Метка по оси x,

Ylabel - Метка по оси y.

2.  Для построения  в одном графическом окне несколько графиков  функций может применяться команда hold. Другой способ: команда subplot(r,c,n) , которая разбивает графическое окно на  r * c подокон и  устанавливает подокно  n в качестве активного.

3.  Для формирования импульса прямоугольной формы используется команда rectpuls и tripuls для получения треугольного  импульса.  

4.  Написание Файл – функции и скрипт – файлов необходимо для расчета  сложных вычислений, и записи программ  в виде М – файлов. Эти файлы позоляют повторить вычисления без повторного набора всех команд в отличии от среды калькулятора в среде Matlab.  

Структура  м-файла:

function   var = functionname (список параметров)

% основной комментарий

% дополнительный комментарий

тело  функции

var = выражение

     Структура Скрипт – файла:

%Основной комментарий

%Дополнительный комментарий

Тело файла с любыми выражениями



Использованная литература:

1.  Лекция №1 Лекционный курс «Теория и обработка сигналов», доц. Щетинин Ю.И., 2010 г.

2.  Щетинин Ю.И. MATLAB  в  ТОС: Электронное уч. пособие. - Новосибирск. 2004.

3.  Голышев Н.В., Щетинин Ю.И. Теория и обработка сигналов.:  Уч. пособие.- Новосибирск. Изд-во НГТУ,  1998 - ч.2.

Web – ресурсы

1.  http://radiomaster.ru/cad/matlab/index.php