Napište kód v Matlabu, který vykreslí jednorozměrný, diskrétní jednotkový skok.
t=-10:20; %definice časové periody signálu step=heaviside(t); %heaviside(x) je funkce v Matlabu, jejíž hodnoty jsou 0 pro x < 0, 1 pro x > 0, a 0.5 pro x = 0. step(t==0)=1; figure; %příkaz na vykreslení obrázku stem(t,step); grid on; xlabel('n'); ylabel('f(n)'); title('1D diskrétní jednotkový skok'); axis([-10 10 -1 3]);
Napište kód v Matlabu, který generuje sinusový signál.
range=6*pi; %časový rozsah signálu t=0:0.001:range; %časové body A=[1 0.13]; %vektor amplitud w=[1 3]; %vektor frekvencí [Hz] phi=[0 0]; %vektor fází sig1=A(1)*sin(w(1)*t+phi(1)); % definování jednotlivých signálů sig2=A(2)*sin(w(2)*t+phi(2)); signal=sig1+sig2; figure; plot(t,sig1,':r','LineWidth',2); hold on; plot(t,sig2,'--g','LineWidth',2); hold on; plot(t,signal,'LineWidth',2); grid on; axis([0 rozsah -1.2*sum(A) 1.2*sum(A)]); xlabel('t [s]'); ylabel('f(t)'); title(Harmonické signály a jejich součet);
Napište kód v Matlabu pro určení diskrétní Fourierovy transformace a frekvenčních charakteristik.
count=32; Ts=4/count; %vzorkovací frekvence per=4; %počet period syms k; %symbolické proměnné syms n; signal=[3.*ones(1,count/4) 2.*ones(1, count /4) ones(1, count /4) zeros(1, count /4)]; fn=[]; for n=1:per fn=[fn signal]; end n=0:count*per-1; figure; stem(n,fn); title('Diskrétny signál'); axis([0 length(fn) min(abs(fn))-0.5 max(abs(fn))+0.5]); grid on; figure; Xk=fft(signal); %diskrétní Fourierova transformace os=0:length(Xk)-1; stem(os,abs(Xk)); %magnitudová frekvenční charakteristika title('Magnitudová frekvenční charakteristika'); grid on; figure; stem(os,angle(Xk)); %fázová frekvenční charakteristika title('Fázová frekvenční charakteristika'); grid on;