01.12.2014 Views

uvod - Laboratorij za obdelavo signalov in daljinska vodenja

uvod - Laboratorij za obdelavo signalov in daljinska vodenja

uvod - Laboratorij za obdelavo signalov in daljinska vodenja

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

60 2. Vrste <strong>signalov</strong> <strong>in</strong> elementarne operacije<br />

2.11 Elementarne operacije s programom MATLAB<br />

MATLAB ☞<br />

V prejšnem razdelku smo pregledali elementarne operacije nad signali <strong>in</strong> <strong>za</strong>poredji.<br />

Sedaj pa poglejmo, kako jih lahko pri <strong>za</strong>poredjih računamo s pomočjo<br />

programa MATLAB. Seveda bomo uporabnost programa pri elementarnih<br />

računskih operacijah poka<strong>za</strong>li na (končnih) <strong>za</strong>poredjih.<br />

2.11.1 Seštevanje <strong>za</strong>poredij<br />

Dve <strong>za</strong>poredji seštejemo tako da seštejemo istoležne podatke:<br />

{x 1 [n]} + {x 2 [n]} = {x 1 [n] + x 2 [n]} . (2.53)<br />

Za ukaz seštevanja program MATLAB uporablja znak +. Da lahko dve <strong>za</strong>poredji<br />

seštejemo, morata biti enako dolgi. Če to nista, ali pa so podatki pri<br />

enako dolgih <strong>za</strong>poredjih na različnih mestih, seštevanja ne moremo izvesti.<br />

Kadar podatki niso urejeni, moramo najprej opraviti poravnavo podatkov,<br />

na primer x 1 [n] <strong>in</strong> x 2 [n] tako, da imajo enako pozicijo v vektorju. Pri tem<br />

moramo skrbno upoštevati mehanizem označevanja podatkov z <strong>in</strong>deksi. Tem<br />

postopkom so v programu MATLAB namenjeni logični operator preseka &,<br />

realcije <strong>in</strong> == ter funkcija f<strong>in</strong>d. Njihovo uporabo lahko uvidimo iz<br />

def<strong>in</strong>icije funkcije, ki sešteje dve <strong>za</strong>poredji (program MATLAB 2.5):<br />

MATLAB 2.5: Seštevanje <strong>za</strong>poredij<br />

function [y,n] = sigsuma(x1,n1,x2,n2)<br />

% funkcija sešteje <strong>za</strong>poredji y(n) = x1(n)+x2(n)<br />

% ------------------------------------------------------------------<br />

% y = seštevek po podatkih <strong>za</strong>poredij x1 <strong>in</strong> x2 dolž<strong>in</strong>e n1 <strong>in</strong> n2<br />

% x1 = <strong>za</strong>poredje dolž<strong>in</strong>e n1<br />

% x2 = <strong>za</strong>poredje dolž<strong>in</strong>e n2 (n2 se lahko razlikuje od n1)<br />

% ------------------------------------------------------------------<br />

n = m<strong>in</strong>(m<strong>in</strong>(n1),m<strong>in</strong>(n2)):max(max(n1),max(n2)); % trajanje y(n)<br />

y1 = zeros(1,length(n)); y2 = y1;<br />

% <strong>in</strong>iciali<strong>za</strong>cija<br />

y1(f<strong>in</strong>d((n>=m<strong>in</strong>(n1))&(n=m<strong>in</strong>(n2))&(n

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!