Меню сайта
Форма входа
Главная » Статьи » MATLAB » Прикладное программирование

Программирование генераторов периодический сигналов и одиночных импульсов

Главный файл программы .Имя - Lastlab.m. Тип файла – сценарий.

 

%   Lastlab- головной файл программы .

%   В данной программе происходит моделирование однократного и гармонического импульса

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

%так же указываются временные промежутки , на которых поведение импульса

%различно.

%   Моделирование однократного импульса происходит внутри функции

%wind_impulse , гармонического в wind_imp_hhl соответственно. Постороение

%происходит непосредственно в головном файле.

 

clear all, close all;clc;               %очистка памяти и рабочего пространства

t=0:0.01:8;                               % формирование массива времени

t0=1;                                        %Начало действия сигнала

A=5;                                        % Максимальное значение

a=1;                                         % параметры импульса

T1=2;                                       % промежутки , на которых поведение

T2=0.8;                        % функции различно

 

W=wind_impulse(t,t0,A,a,T1,T2);                       % формирование однократного импульса

plot(t,W),grid on,hold on;                                 % построение графика однократного импульса

figure;                                                             %инициализация нового окна

W=wind_imp_hnl(t,t0,A,T1);                  % формирование многократного импульса

plot(t,W),grid on,hold on;                                 % построение графика многократного импульса

title(' Wind impulse ');

xlabel(' time ');

ylabel(' W(t) ');

 

1.      ФУНКЦИЯ МОДЕЛИРУЮЩАЯ ОДИНОЧНЫЙ ИМПУЛЬС:

 

function W=wind_impulse(t,t0,A,a,T1,T2)

 

for i=1:length(t)

   

    if (t(i)<=t0)||(t(i)>t0+T1+a+T2)

        W(i)=0;

    end   

    if (t(i)>t0)&&(t(i)<=t0+T1)

        W(i)=sin(pi/(2*A)*(A/T1)*(t(i)-t0))*A;

    end

    if (t(i)>t0+T1)&&(t(i)<=t0+a+T1)

        W(i)=A;

    end

    if (t(i)>t0+a+T1)&&(t(i)<t0+a+T1+T2)

        W(i)=A*exp((-(t(i)-t0-T1-a)*7)/T2);

    end

end

 

 

2.     ФУНКЦИЯ ГАРМОНИЧЕСКОГО СИГНАЛА

 

function W=wind_imp_hnl(t,t0,A,T)

 

K=0;

for i=1:length(t)                       

    W(i)=0;

    K=t(i);

    while K>T

        K=K-T;

    end;      

    if (K>=0)&&(K<T/4)

        W(i)=(A*4/T*K^2)/0.5;

    end;   

   

    if (K>=T/4)&&(K<T/2)

        W(i)=(A*4/T*(K-T/2)^2)*2;

    end;

   

    if (K>=0.5*T)&&(K<0.75*T)

        W(i)=(-A*4/T*(K-T/2)^2)*2;

    end;

   

    if (K>=0.75*T)&&(K<T)

        W(i)=(-A*4/T*(K-T)^2)*2;

    end;   

end;


 

Категория: Прикладное программирование | Добавил: nazgull (24.05.2012)
Просмотров: 2225 | Теги: периодический сигналов, Программирование генераторов, одиночных импульсов в матлабе | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ссылки