- Stahuj zápisky z přednášek a ostatní studijní materiály
- Zapisuj si jen kvalitní vyučující (obsáhlá databáze referencí)
- Nastav si své předměty a buď stále v obraze
- Zapoj se svojí aktivitou do soutěže o ceny
- Založ si svůj profil, aby tě tví spolužáci mohli najít
- Najdi své přátele podle místa kde bydlíš nebo školy kterou studuješ
- Diskutuj ve skupinách o tématech, které tě zajímají
Studijní materiály
Zjednodušená ukázka:
Stáhnout celý tento materiáljádřit jako součet její sudé a liché části tj. .
Je funkce sudou nebo lichou funkcí? Jaká je její základní perioda? Je funkce sudou nebo lichou funkcí? Jaká je její základní perioda?
Na jsou ukázány tři periodické signály. Jednocestně usměrněné harmonické napětí (vlevo), dvoucestně usměrněné harmonické napětí (uprostřed) a pilovitý průběh (vpravo). Vyjádřete je pomocí základních signálů.
Obr. \s 1 16:Příklady periodických signálů
Načrtněte funkce , , . Je funkce omezená v čase? Diskutujte proč. Kterou hodnotu času lze u této funkce považovat za reálné „nekonečno“ (kdy funkční hodnota klesne na 1% své počáteční hodnoty).
Cvičení v MATLABu ke kapitole
Zabýváme se signály se spojitým časem (zkráceně nazývané spojité signály). Takový signál je z matematického hlediska definován pro všechny časové okamžiky reálné osy času tj. pro všechna reálná čísla z této osy. Takový signál v číslicovém počítači nelze reprezentovat. V číslicovém počítači lze signál reprezentovat jen jako konečnou posloupnost hodnot signálu v jistých časových okamžicích (obvykle ekvidistantních). Osa času je tedy diskrétní a signál je v těchto časových okamžicích vzorkován, a to po nějakou konečnou dobu . Počet vzorků za tuto dobu označme . Předbíháme tak ve výkladu o signálech (vzorkování bude náplní následujících kapitol), ale bez toho by nebylo možno realizovat úlohy v MATLABu.
Vytvořme diskrétní časovou osu pomocí příkazů MATLAB:
P=100; % time interval [sec]
N=512;% number of samples
t=linspace(-P/2,P/2,N); % discrete time axis
Vytvořme signál typu jednotkový skok a zobrazme jej:
name='Step function';
ft(1:N)=0;
ft((round(N/2)+1):N)=1;
plot(t,ft)
axis([-P/2 P/2 -0.2 1.2])
title(name);
xlabel('t');
ylabel('f(t)');
Výsledkem je následující průběh.
Tento signál budeme v dalším často používat. Proto jej vytvoříme jako MATLABovskou funkci s tím, že do ní ještě zavedeme časový posuv o sekund. Budeme mít tedy naprogramovánu funkci tj. posunutý jednotkový skok:
% function StepFunction(t,a)
% t= time axis [sec]
% a= shift time [sec] (a=min(t))
function [ft]=StepFunction(t,a)
P=max(t)-min(t);% observation time [sec]
N=length(t);% number of samples [-]
if abs(a)>P/2% limit of shift time [sec]
a=sign(a)*P/2;
end;
ft=t;
ft(1:N)=0;
n=sign(a)*round(abs(a)*(N-1)/P); % a is real, n must be integer
ft((round(N/2)+1-n):N)=1;
return;
Tento program uložte pod názvem „StepFunction.m“. První tři řádky jsou komentář, který lze využít k popisu chování funkce a významu jednotlivých parametrů. Napíšete-li do příkazového okna MATLAB následující text
function StepFunction(t,a)
t= time axis [sec]
a= shift time [sec] (a=min(t))
Nyní budeme funkci StepFunction.m volat. Toto volání si také vytvoříme jako funkci kterou nazveme StepFunctionPlot.m. Budeme předpokládat, že naše signály reprezentují čásový průběh napětí ve voltech. . Bude
% function StepFunctionPlot(a,A)
% a= time shift [sec]
% A= amplitude [V]
function StepFunctionPlot(a,A);
P=100; % time interval [sec]
N=512;% number of samples [-]
t=linspace(-P/2,P/2,N); % discrete time axis
name='Step function';
ft=A*StepFunction(t,a);
plot(t,ft)
axis([-P/2 P/2 -0.2*A 1.2*A])
title([name,' a='num2str(a),' A=',num2str(A)]);
xlabel('t [sec]');
ylabel('f(t) [V]');
return
a po zavolání StepFunctionPlot(0,1) obdržíme předchozí obrázek. Volejte tuto funkci s různou hodnotou parametru případně a sledujte generované obrázky.
Nyní s pomocí funkce „StepFunction.m“ vytvoříme jednotkový impuls o šířce a středu s využitím operace posunu v čase a rozdílu jednotkových skoků. Opět naprogramujeme jako funkci pojmenovanou UnitImpuls.m neboť ji budeme v dalším používat. Bude:
% function UnitImpuls(t,a,b)
% t=time axis [sec]
% a= half width of impuls [sec]
% b= centre of impuls [sec]
function [ft]= UnitImpuls(t,a,b);
P=max(t)-min(t);
if abs(b)>P/2% limit of impuls center
b=sign(b)*P/2;
end;
ft=StepFunction(t,b+a)-StepFunction(t,b-a);
return
Volání této funkce naprogramujte opět jako funkci s názvem UnitImpulsPlot.m. Bude
% function UnitImpulsPlot(a,b,A)
% a= half width of impuls [sec]
% b= center of impuls [sec]
% A= amplitude of
Vloženo: 28.04.2009
Velikost: 709,50 kB
Komentáře
Tento materiál neobsahuje žádné komentáře.
Copyright 2025 unium.cz


