1_Spojité_signály
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
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]
-50
-40
-30
-20
-10
0
10
20
30
40
50
-0.2
0
0.2
0.4
0.6
0.8
1
Step function
t
f(
t)
Signály a systémy
17
a= shift time [sec] (a<=max(t), 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.
V . 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 a případně
A a sledujte generované obrázky.
Nyní s pomocí funkce „StepFunction.m“ vytvoříme jednotkový impuls o šířce
a
2 a středu b
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)
-50
-40
-30
-20
-10
0
10
20
30
40
50
-0.2
0
0.2
0.4
0.6
0.8
1
Step function a=0 A=1
t [sec]
f(
t)
[
V
]
18
Fakulta elektrotechniky a komunikačních technologií VUT v Brně
% 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