Praktikum softverski alati OT2PSA Školska 2016/2017 godina
Simulacija Kreiranje računarskog programa koji modeluje neki fenomen (na primer, propagacija signala kroz telekomunikacioni kanal, zvuk u zatvorenom prostoru) ili sklop (na primer, radio prijemnik, A/D konvertor...) Cilj: edukacija, provera karakteristika novopredloženog rešenja
Simulacija Monte Carlo simulacija veliki broj ponavljanja iste simulacije sa različitim ulaznim signalima Usrednjavanje rezultata Na primer, procena uticaja šuma na odlučivanje u prijemniku
Simulacija U telekomunkacionim sistemima je često deo posmatranog sistema kontinualan (analogni) a deo digitalan Digitalna deo sistema se praktično može i realizovati kao parče koda
Signali 1 Kontinualni Kontinualna funkcija vremena, vrednosti pripadaju neograničenom skupu - x(t)=cos(ω 0 t)
Signali 2 Digitalni (telekom terminologija) Kontinualna funkcija vremena, vrednosti pripadaju konačnom skupu M-arni signal x(t)=u n, (n-1)t t<nt. U 1,0,1 n
Signali 3 Diskretni (DSP terminologija) Definisani samo za diskretne vrednosti nezavisne promenljive vremena (amplituda diskretnog signala može biti kontinualna ili diskretna)
Signali 4 Digitalni (DSP terminologija) Diskretan signal (kvantizacija amplituda diskretnog signala) - y=round(x*4)/4
Kontinulani signali 1 1 0.8 0.6 0.4 Sinusoida x=sin(2 ft) 0.2 T=20 ms x(t) 0-0.2-0.4 T 20 odbiraka po periodi -0.6-0.8-1 0 0.005 0.01 0.015 0.02 0.025 t
Kontinulani signali 2 1 0.8 0.6 Generisanje sinusoide 0.4 0.2 x(t) 0-0.2-0.4-0.6-0.8-1 0 0.005 0.01 0.015 0.02 0.025 t
Kontinulani signali 3 1 0.8 0.6 0.4 0.2 x(t) 0-0.2-0.4-0.6-0.8-1 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 t
Kontinulani signali 4 1 0.8 0.6 0.4 0.2 x(t) 0-0.2-0.4-0.6-0.8-1 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 t
Odabiranje broj odbiraka po periodi 1 0.5 min max P x(t) 0-0.5-1 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 t x 1 (t) -0.9511 0.9511 0.5 1 0.5 x(t) 0-0.5 x 2 (t) -1 1 0.5-1 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2 t
Računanje snage prostoperiodičnog signala T T N n N n T T n x N P T T n x T N P dt t x T P 0 2 0 2 0 2 1 ˆ 1 ˆ 1 MATLAB P=sum(x.*x)/length(x); Računanje srednje snage signala konačne dužine
Diskretizacija po vremenu Definiše se T interval odabiranja (interval vremena između dva susedna odbirka siganala) Najčešće su odbirci signala ekvidistantni, odnosno T=const. Frekvencija odabiranja (sampling frequency) f s =1/ T
Diskretizacija po vremenu 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-1 0.095 0.096 0.097 0.098 0.099 0.1 0.101 0.102 0.103 0.104 0.105 t [s] 2 T 1 = T 2
Diskretizacija po vremenu Koliko malo ili veliko treba da bude T? Primer krtanje automobila u filmovima, zašto vidimo okretanje točkova i pri velikim brzinama, zašto točkovi idu u nazad?
Primer 1 Točak, ima jednu tačku na obodu
fs=25 Hz f=1 Hz (jedan obrtaj u sekundi) Primer 2
fs=25 Hz f=5 Hz (5 obrtaja u sekundi) Primer 3
fs=25 Hz f=24 Hz (24 obrtaja u sekundi) Primer 4
fs=25 Hz f=101 Hz (101 obrtaja u sekundi) Primer 5
Primer 6 close all clear fs=25; f=101; dt=1/fs; t=0:dt:1-dt; figure filename = 'f_101.gif'; x=[-1:0.01:1]; yg=sqrt(1-x.^2); yd=-sqrt(1-x.^2); y=cos(2*pi*f*t)+1i*sin(2*pi*f*t);
Primer 7 for br=1:length(t) plot(x,yg,'k',x,yd,'k',0.9*real(y(br)),0.9*imag(y(br)),'ro'); line([0 0.9*real(y(br))],[0 0.9*imag(y(br))]); axis('square'); drawnow frame=getframe(1); im=frame2im(frame); [A,map]=rgb2ind(im,256); end if br==1; imwrite(a,map,filename,'gif','loopcount',inf,'delaytime',dt); else imwrite(a,map,filename,'gif','writemode','append','delaytime',dt); end
Teorema o odabiranju Da bi signal mogao da se rekonstruiše iz svojih odbiraka (da bi bio na adekvatan način pedstavljen u t-diskretnom domenu) frekvencija odabiranja f s mora biti f m2 f m1 X c (f) f m1 X s (f) f m2 f f s 2 f m gde je f m maksimalna frekvencija u spektru signala koji diskretizujemo. U protivnom dolazi do preklapanja u spektru (aliasing). aliasing (preklapanje u spektru) -2f s -f s f m1 2f s f s f s 2f s f fs fm m2 2 f m1 X s (f) f f f s s m 1 f m2 2f s f f
Teorema odabiranja primer generisanja sinusoide close all; clear; N=100; fs=1000; f1=100; f2=900; Dt=1/fs; t=(0:dt:(n-1)*dt)'; x1=cos(2*pi*f1*t); x2=cos(2*pi*f2*t); figure,plot(t,x1,'linewidth',2); hold on plot(t,x2,'r:'); xlabel('\itt'); title('vremenski oblik signala'); legend('x_1','x_2'); X1=fftshift(abs(fft(x1)))/length(x1); X2=fftshift(abs(fft(x2)))/length(x2); Df=fs/N; f=(-fs/2:df:fs/2-df); figure,s1=stem(f,x1); hold on set(s1,'marker','o','markersize',6,'color',[0 0 1]); s2=stem(f,x2); set(s2,'marker','*','markersize',4,'color',[1 0 0]); xlabel('\itf'); title('spektri signala'); legend('x_1','x_2');
Teorema odabiranja primer generisanja sinusoide 1 0.8 0.6 0.4 0.2 0-0.2-0.4 Vremenski oblik signala x 1 x 2 N=100; fs=1000; f1=100; f2=900; Dt=1/fs; t=(0:dt:(n-1)*dt)'; x1=cos(2*pi*f1*t); x2=cos(2*pi*f2*t); -0.6-0.8-1 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 t
Teorema odabiranja primer generisanja sinusoide 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8 x c1 (t) - 100 Hz x c2 (t) - 900 Hz odbirci x 1 [n] odbirci x 2 [n] N=10; fs=1000; f1=100; f2=900; Dt=1/fs; t=(0:dt:(n-1)*dt)'; x1=cos(2*pi*f1*t); x2=cos(2*pi*f2*t); -1 0 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.01 t
Teorema odabiranja primer generisanja sinusoide 1 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8 N=10; fs=1000; f1=100; f2=900; Dt=1/fs; t=(0:dt:(n-1)*dt)'; x1=cos(2*pi*f1*t); x2=cos(2*pi*f2*t); -1 0 1 2 3 4 5 6 7 8 9 x 10-3 Kada simuliramo neki kontinualni proces, mi zapravo radimo sa nizom odbiraka signala (plave tačke na gornjoj slici)
Teorema odabiranja primer generisanja sinusoide 0.7 0.6 0.5 Spektri signala x 1 x 2 X1=fftshift(abs(fft(x1)))/length(x1); X2=fftshift(abs(fft(x2)))/length(x2); Df=fs/N; f=(-fs/2:df:fs/2-df); 0.4 0.3 0.2 0.1 0-500 -400-300 -200-100 0 100 200 300 400 500 f
Spektri signala Kada pravimo simulaciju koja podrazumeva kontinualne signale, spektre signala, u stvari, simulacijom procenjujemo na osnovu spektra diskretnog signala (koji jedino imamo na raspolaganju, odnosno možemo da ga numerički sračunamo na osnovu odbiraka signala) Drugi mogući pristup je da se kombinuje simulacija sa analitičkim proračunima
Spektri signala Procena spektra signala zavisi od toga koliko smo se pametno uklopili u ograničenja koja realno postoje Ima smisla (na osnou teoreme o odabiranju) posmatrati opseg frekvencija (-fs/2 fs/2), fs frekvencija odabiranja [Hz]
Spektri signala Ograničenja u proceni spektra signala proističu iz same činjenice da smo signal diskretizovali Moguće su i grube greške koje nastaju kao posledina našeg nepoznavanja tehnika, matematičkih modela i alata koji se koriste
Spektri signala Procena dvostranog spektra (najjednostavnija, često nedovoljno dobra) X1=fftshift(abs(fft(x1)))/length(x1); fft Built in MATLAB funkcija koja računa DFT (Discrete Fourier Transform) N 1 n 0 kn j 2 N X k x n e, 0 k N 1 X[k] odbirci procene spektra (gruba definicija) kompleksan niz x[n] odbirci signala (dobijeni na neki način, generisani ili učitani)
Spektri signala X1=fftshift(abs(fft(x1)))/length(x1); fftshift MATLAB funkcija koja obrće niz tako da predstava bude što sličnija onoj iz telekomunikacija (spektar centriran oko nule) abs MATLAB funkcija koja računa moduo
Primer prostoperiodični signali N=100; fs=1000; f1=100; Dt=1/fs; t=(0:dt:(n-1)*dt)'; x1=sin(2*pi*f1*t); x2=2*cos(2*pi*f1*t); figure,plot(t,x1,t,x2), xlabel('\itt'); title('vremenski oblik signala'); legend('x_1','x_2');
Primer prostoperiodični signali X1=fftshift((fft(x1)))/length(x1); X2=fftshift((fft(x2)))/length(x2); Df=fs/N; f=(-fs/2:df:fs/2-df); figure,stem(f,[real(x1) real(x2)]), xlabel('\itf'); title('spektri signala - realni deo'); x1=sin(2*pi*f1*t); x2=2*cos(2*pi*f1*t); 2 f0 2 f0 f f 2 2 f t A0 cos 2 f0t F f A 0 2 2 f0 2 f0 f f 2 2 f t A0 sin 2 f0t F f A 0 2 j
Primer prostoperiodični signali figure,stem(f,[imag(x1) imag(x2)]), xlabel('\itf'); title('spektri signala - imaginarni deo'); x1=sin(2*pi*f1*t); x2=2*cos(2*pi*f1*t); 2 f0 2 f0 f f 2 2 f t A0 cos 2 f0t F f A 0 2 2 f0 2 f0 f f 2 2 f t A0 sin 2 f0t F f A 0 2 j
Primer prostoperiodični signali figure,stem(f,[abs(x1) abs(x2)]), xlabel('\itf'); title('spektri signala - moduo'); x1=sin(2*pi*f1*t); x2=2*cos(2*pi*f1*t); 2 f0 2 f0 f f 2 2 f t A0 cos 2 f0t F f A 0 2 2 f0 2 f0 f f 2 2 f t A0 sin 2 f0t F f A 0 2 j
Primer prostoperiodični signali close all; clear; N=100; fs=1000; f=105; Dt=1/fs; t=(0:dt:(n-1)*dt)'; x=sin(2*pi*f*t); figure,plot(t,x), xlabel('\itt'); X=fftshift((fft(x)))/length(x); Df=fs/N; f=(-fs/2:df:fs/2-df); figure,stem(f,abs(x)), xlabel('\itf');? 2 f0 2 f0 f f 2 2 f t A0 cos 2 f0t F f A 0 2 2 f0 2 f0 f f 2 2 f t A0 sin 2 f0t F f A 0 2 j
Primer prostoperiodični signali Zašto spektar ne izgleda kao po formuli? Gde smo pogrešili? Zapravo, nismo pogrešili, jednostavno, procena spektra kontinualnog signala na ovaj način ima ograničenja koja će postati jasnija kasnije u toku studija
Učitavanje audio fajlova 1 close all clear [x,fs]=audioread('govor_8000.wav'); t=(0:length(x)-1)'; figure,plot(t,x); xlabel('\itt'); ylabel('{\itx}({\itt})'); Df=fs/length(x); f=(-fs/2:df:fs/2-df); X=fftshift((fft(x)))/length(x); figure,plot(f,abs(x)); xlabel('\itf'); ylabel('{\itx}({\itf})'); x(t) 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8 0 0.5 1 1.5 2 2.5 t x 10 5 2.5 x 10-3 2 1.5 X(f) f s je određeno frekvencijom odabiranja sa kojom je snimljen signal koji smo učitali (učitava se kao parametar iz *.wav fajla) 1 0.5 0-4000 -3000-2000 -1000 0 1000 2000 3000 4000 f
Puštanje audio fajlova close all clear [x1,fs]=audioread('govor_8000.wav'); x2=x1.*(0:length(x1)-1)'/length(x1); t=(0:length(x1)-1)'; figure,plot(t,x1,t,x2,'r:'); xlabel('\itt'); legend('x_1','x_2'); p=audioplayer(x2,fs); play(p); 1 x 1 0.8 x 2 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8 0 0.5 1 1.5 2 2.5 t x 10 5
Učitavanje slika close all clear info_slika=imfinfo('naslovna_sneg','jpg'); info_slika = Filename: 'M:\backup_fujitsu_2017_02_18\D\nastava\psa\2016_2017\naslovna_sneg.jpg' FileModDate: '12-Apr-2017 00:59:42' FileSize: 134386 Format: 'jpg' FormatVersion: '' Width: 320 Height: 240 BitDepth: 24 ColorType: 'truecolor' FormatSignature: '' NumberOfSamples: 3 CodingMethod: 'Huffman' CodingProcess: 'Sequential' Comment: {}
Učitavanje slika close all clear info_slika=imfinfo('naslovna_sneg','jpg'); slika=imread('naslovna_sneg.jpg'); size(slika) slika(1:3,1:3,1) ans = 240 320 3 >> whos Name Size Bytes Class Attributes ans = 53 43 21 45 45 16 54 27 13 ans 1x3 24 double info_slika 1x1 2742 struct slika 240x320x3 230400 uint8
Jednostavno prikazivanje slika slika(150:200,160,1)=255; slika(150:200,200,1)=255; slika(150,160:200,1)=255; slika(200,160:200,1)=255; slika(150:200,160,2)=0; slika(150:200,200,2)=0; slika(150,160:200,2)=0; slika(200,160:200,2)=0; slika(150:200,160,3)=0; slika(150:200,200,3)=0; slika(150,160:200,3)=0; slika(200,160:200,3)=0; imshow(slika);
Povorka impulsa Koristi se MATLAB funkcija randsrc(br_vrsta,br_kolona,[alphabet; prob]). Funkciju koristimo tako da daje približno jednak broj nula i jedinica. 1 Da bi se modelovao digitalni signal (telekom terminologija), potrebno je produžiti svaku nulu ili jedinicu. 0.8 0.6 0.4 0.2 0-0.2-0.4-0.6-0.8-1 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 t
Primer 1 %% Povorka nula i jedinica - unipolarna close all; clear; N=10; %broj impulsa xd=randsrc(n,1,[0 1]); %generisanje nula i jedinica, p0=0.5 N_odb_po_imp=8; %broj odbiraka po impulsu xi=zeros(n*n_odb_po_imp,1); for br=1:n xi((br-1)*n_odb_po_imp+1:br*n_odb_po_imp)=xd(br); end; T=0.01; % trajanje impulsa t=(0:length(xi)-1)'*t/n_odb_po_imp; figure,plot(t,xi,'.'),xlabel('t'),ylim([-1.2 1.2]); figure,plot(t,xi),xlabel('t'),ylim([-1.2 1.2]);
Primer 1 1 0.8 0.6 0.4 0.2 0 Trajanje usponske ivice ΔT -0.2-0.4-0.6-0.8-1 1 0.8 0.6 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 t 0.4 0.2 0-0.2 N=8 odbiraka po impulsu T=0.01s trajanje impulsa fs=n/t (ΔT=1/fs=T/N) -0.4-0.6-0.8-1 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 t
Filtri LowPass propušta sve frekvencije od 0 do f g (propusnik niskih frekvencija NF) HighPass propušta sve frekvencije od f g (propusnik visokih vrekvencija VF) BandPass propušta sve frekvencije između f g1 i f g2 (propusnik opsega PO) BandStop ne propušta frekvencije između f g1 i f g2 (nepropusnik opsega PO)
Filtri LP 1 H(jf) % projektovanje filtra fs=10000; % frekvencija odabiranja fg=200; % granica propusnog opsega filtra N=5; % red filtra [b,a]=butter(n,fg/(fs/2)); % funkcija koja projektuje Butterworth-ov filtar reda N f % filtriranje y=filter(b,a,x); f g
Filtri HP 1 H(jf) fs=10000; % frekvencija odabiranja fg=200; % granica propusnog opsega filtra N=5; % red filtra [b,a]=butter(n,fg/(fs/2),'high'); % funkcija koja projektuje Butterworth-ov filtar reda N f % filtriranje y=filter(b,a,x); f g
Filtri BP 1 H(jf) fs=10000; % frekvencija odabiranja fg1=200; fg2=500; fg=[fg1 fg2]; % granice propusnog opsega filtra N=5; % polovina reda filtra [b,a]=butter(n,fg/(fs/2)); % funkcija koja projektuje Butterworth-ov filtar reda N f % filtriranje y=filter(b,a,x); f g1 f g2
Primeri Primer 1 - filtar propusnik niskih frekvencija Primer 2 - filtar propusnik visokih frekvencija Primer 3 - filtar propusnik opsega frekvencija Primer 4 filtriranje muzičkog signala
LP %% Filtar propusnik niskih frekvencija % projektovanje filtra close all; clear; fs=10000; % frekvencija odabiranja fg=1000; % granica propusnog opsega filtra N=5; % red filtra [b,a]=butter(n,fg/(fs/2)); % funkcija koja projektuje Butterworth-ov filtar reda N N se zove red filtra i biramo ga da bude 5 ili 7, veći red filtra daje filtar čija amplitudska karakteristika više liči na idealnu ali može doći do problema pri implementaciji, tj. izbor reda filtra je inženjrski kompromis
LP [b,a]=butter(n,fg/(fs/2)); % test signal DT=1/fs; t=(0:dt:10)'; %vektor vremenskih trenutaka u kojima se vrsi odabiranje signala x=cos(2*pi*t*500)+cos(2*pi*2000*t); % filtriranje y=filter(b,a,x); % crtanje figure,plot(t,x,t,y),xlabel('t'); xlim([0 0.01]) Filtriranje signala, b i a koeficijenti dobijeni funkcijom koja projektuje filtar, x ulazni signal, y izlazni signal Uspostavljanje ustaljenog režima, u ozbiljnoj simulaciji bi odsekli ovaj deo signala
LP % spektri - drugi na?in, Nf broj ta?aka po frekvencijskoj osi (jednostrani spektar) Nf=100; f=(0:nf-1)/nf*fs/2; X=2*freqz(x,1,Nf,fs)/length(x); Y=2*freqz(y,1,Nf,fs)/length(y); H=freqz(b,a,Nf,fs); figure,plot(f,abs(x),f,abs(y),f,abs(h)); Spektri signala jednostrani, Nf - broj tačaka po f osi treba da bude realtivno veliki, tipično 100<Nf<10000, ako ne znamo bolje, možemo uzeti da je Nf=fs/2 Frekvencijski odziv filtra (terminologija SiS i obrada signala) odnosno funkcija prenosa (terminologija telekom)
LP l1=line([0 fg],[1 1]); l2=line([fg fg],[0 1]); l3=line([fg fs/2],[0 0]); set([l1,l2,l3],'color',[1 0 0],'linewidth',2,'linestyle',':'); xlabel('f'); legend('ulaz','izlaz','realan filtar','idealan filtar'); Karakteristiku idealnog filtra crtamo na silu, kao tri linije Projektovani filtar odstupa od idealnog
HP %% Filtar propusnik visokih frekvencija % projektovanje filtra close all; clear; fs=10000; % frekvencija odabiranja fg=2000; % granica propusnog opsega filtra N1=5; % red filtra N2=11; [b1,a1]=butter(n1,fg/(fs/2),'high'); % funkcija koja projektuje Butterworth-ov filtar reda N [b2,a2]=butter(n2,fg/(fs/2),'high'); Nf=100; f=(0:nf-1)/nf*fs/2; H1=freqz(b1,a1,Nf,fs); H2=freqz(b2,a2,Nf,fs); figure,plot(f,abs(h1),f,abs(h2)); legend('n_1=5','n_2=11');
HP % test signal DT=1/fs; t=(0:dt:0.1)'; %vektor vremenskih trenutaka u kojima se vrsi odabiranje signala x=cos(2*pi*t*50)+cos(2*pi*3000*t); % filtriranje y=filter(b1,a1,x); % crtanje figure,plot(t,x,t,y),xlabel('t'); % spektri Nf=100; f=(0:nf-1)/nf*fs/2; X=2*freqz(x,1,Nf,fs)/length(x); Y=2*freqz(y,1,Nf,fs)/length(y); figure,plot(f,abs(x),f,abs(y)),xlabel('f');
HP
BP
Gausov šum Koristi se MATLAB funkcija randn(br_vrsta,br_kolona). Funkcija odgovara normalizovanoj Gausovoj raspodeli, =0, =1. Ovako modelovan šum je, zapravo, spektralno ograničen [0 f s /2]. Da bi se modelovao šum zadate srednje vrednosti =mi0 i zadate srednje kvadratne vrednosti 2 =varijansa_suma n=mi0+sqrt(varijansa_suma)*randn(br_vr,br_kol);
Primeri Primer 1 beli Gausov šum Primer 2 filtriran šum
Primer 2 filtriran šum
Primer 2 filtriran šum
Primer 2 filtriran šum
Integracija Koristi se MATLAB funkcija izlaz=cumsum(ulaz). t y t x d 0 d T k T t n T n y n T x k T T k 0 n k 0 y n T x k Ovo može i bolje, ali za prvi korak je Ok i ovako y=cumsum(x)*dt;
Primeri Primer 1 integracija cos funkcije Primer 2 periodicna povorka pravougaonih impulsa Primer 3 integrator s rasterećenjem
Primer 1 %% Primer 15 - Integrator close all; clear; fs=10000; % frekvencija odabiranja % test signal DT=1/fs; t=(0:dt:0.1)'; %vektor vremenskih trenutaka u kojima se vrsi odabiranje signala x=cos(2*pi*t*100); y=cumsum(x)*dt; yt=sin(2*pi*t*100)/(2*pi*100); figure,plot(t,y,t,yt,'r'),xlabel('t'); legend('simulacija','teorija')
Primer 2 %% Primer 16 - Povorka nula i jedinica - polarna + integrator close all; clear; %Povorka nula i jedinica - polarna close all; clear; N=10; %broj bita xd=ones(n,1); xd(2:2:end)=-1; %napunimo niz sa 1 pa svaki drugi odbirak zamenimo sa -1 N_odb_po_imp=100; %broj odbiraka po impulsu x=zeros(n*n_odb_po_imp,1); for br=1:n x((br-1)*n_odb_po_imp+1:br*n_odb_po_imp)=xd(br); end; T=1; % trajanje impulsa (impuls (1) pauza (-1) perioda je 2); t=(0:length(x)-1)'*t/n_odb_po_imp; figure,plot(t,x),xlabel('t'),ylim([-1.2 1.2]); % integrator DT=T/N_odb_po_imp; y=cumsum(x)*dt; figure,plot(t,x,t,y),xlabel('t'); crtanje_ds_spektra([x y],1/dt); xlim([-3 3]);
Primer 2
Primer 2
Primer 3 close all; clear; N=10; %broj impulsa xd=randsrc(n,1,[-1 1]); %generisanje nula i jedinica, p0=0.5 N_odb_po_imp=100; %broj odbiraka po impulsu x=zeros(n*n_odb_po_imp,1); for br=1:n x((br-1)*n_odb_po_imp+1:br*n_odb_po_imp)=xd(br); end; T=1; % trajanje impulsa DT=T/N_odb_po_imp; t=(0:length(x)-1)'*dt; % integrator y=cumsum(x)*dt; % integrator s rasterecenjem z=zeros(size(x)); for br_1=1:length(xd) for br_2=1:n_odb_po_imp z((br_1-1)*n_odb_po_imp+1:br_1*n_odb_po_imp)= cumsum(x((br_1-1)*n_odb_po_imp+1:br_1*n_odb_po_imp))*dt; end; end; figure,plot(t,x,t,y,t,z),xlabel('t'); legend('ulaz','integrator','integrator sa rasterecenjem');
Pimer 3
Diferenciranje dx y t dt dt T t dx y y n T t x n T n x x t n T x n 1 x x T n x n 1 T T I ovo može bolje, ali je za početak ovo Ok y(1)=x(1); y(2:end)=(x(2:end)-x(1:end-1))/dt;
Primeri Primer 1 diferenciranje cos funkcije Primer 2 diferenciranje povorke impulsa
Primer 1 close all; clear; fs=1000; % frekvencija odabiranja % test signal DT=1/fs; t=(0:dt:0.1)'; %vektor vremenskih trenutaka u kojima se vrsi odabiranje signala x=cos(2*pi*t*100); y=x; y(2:end)=(x(2:end)-x(1:end-1)); y=y/dt; yt=-2*pi*100*sin(2*pi*t*100); figure,plot(t*fs,y,t*fs,yt),xlabel('t'); legend('simulacija','teorija');
Primer 1
Primer 2 close all; clear; N=10; %broj impulsa xd=randsrc(n,1,[-1 1]); %generisanje nula i jedinica, p0=0.5 N_odb_po_imp=100; %broj odbiraka po impulsu x=zeros(n*n_odb_po_imp,1); for br=1:n x((br-1)*n_odb_po_imp+1:br*n_odb_po_imp)=xd(br); end; x=2*(x(:)-0.5); T=1; % trajanje impulsa DT=T/N_odb_po_imp; t=(0:length(x)-1)'*dt; plot(t,x),xlabel('t'),ylim([-1.2 1.2]); % diferenciranje y=x; y(2:end)=(x(2:end)-x(1:end-1))/dt; figure,plot(t,x,t,y),xlabel('t'),ylim([-5 5]);
Primer 2
Primer prenosa u osnovnom Odlučivanje opsegu Korišćenje regeneratora, korišćenje pojačavača Dukić, Principi telekomunikacija, Slika, 7.5.1 Prijemnik sa integracijom i rasterećenjem Dukić, Principi telekomunikacija, 7.6.4