Facebook
From joSe, 8 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 261
  1. % 1. a)
  2. Fs=4000;
  3. T=1/Fs;
  4. L=1000;
  5. t=(0:L-1)*T;
  6.  
  7. y=0.7*sin(2*pi*300*t)+sin(2*pi*700*t);
  8. subplot(211)
  9. plot(t(1:200),y(1:200))
  10. title('Sinusni signal');
  11. xlabel('Vrijeme');
  12. ylabel('Amplituda');
  13.  
  14. NFFT=2^nextpow2(L);
  15. Y=fft(y,NFFT)/L;
  16. f=Fs/2*linspace(0,1,NFFT/2+1);
  17. subplot(212)
  18. plot(f,2*abs(Y(1:NFFT/2+1)),'r')
  19. xlabel('Frekvencija');
  20. ylabel('Funkcija y');
  21.  
  22. %% b)
  23. clear all
  24. clc
  25.  
  26. fs=44000;
  27. Wp=[2*3000/fs];
  28. Ws=[2*2900/fs];
  29. Rp=1;
  30. Rs=40;
  31.  
  32. d=fdesign.highpass('Fst,Fp,Ast,Ap',Ws,Wp,Rs,Rp);
  33. f=design(d,'cheby2');
  34. info(f)
  35. fvtool(f)
  36. [Y,FS]=wavread('matlab.wav');
  37. t=0:1/fs:1/fs*(length(Y)-1);
  38. plot(t,Y)
  39. xlabel('Vrijeme [s]')
  40. ylabel('Amplituda')
  41. hold on
  42. izlaz=filter(f,Y);
  43. plot(t,izlaz,'r-')
  44. legend('Ulazni signal','Filtrirani signal')
  45.  
  46.  
  47. figure
  48. theta=0:pi/100:2*pi;
  49. rho=sin(theta*3);
  50. subplot(2,1,1),h=polar(theta,rho,'go');
  51. pause
  52. for i=1:60
  53.     zdir=[0 0 1];
  54.     center=[0 0 0];
  55.     pause(2/60)
  56.     rotate(h,zdir,6,center)
  57. end
  58. pause
  59. [x,y]=meshgrid([-2:0.1:2]);
  60. z=sin(x.^2+y.^2);
  61. subplot(2,1,2),h=surf(x,y,z)
  62. pause
  63. axis tight
  64. for i=1:100
  65.     zdir=[0 0 -1];
  66.     center=[0 0 0];
  67.     rotate(h,zdir,7.2,center)
  68.     pause(5/100)
  69. end
  70.  
  71.  
  72. s=imread('buket.jpg');
  73. I=im2double(s);
  74. subplot(3,2,1),imshow(I), title('Original');
  75.  
  76. H=fspecial('motion',30,60);
  77. Motion=imfilter(I,H,'replicate');
  78. subplot(3,2,2),imshow(Motion),title('Motion');
  79.  
  80. H=fspecial('sobel');
  81. Sobel=imfilter(I,H,'replicate');
  82. subplot(3,2,3),imshow(Sobel),title('Sobel');
  83.  
  84. H=fspecial('log',[30,100],0.2);
  85. Log=imfilter(I,H,'replicate');
  86. subplot(3,2,4),imshow(Log),title('Log');
  87.  
  88. H=fspecial('disk',20);
  89. Disk=imfilter(I,H,'replicate');
  90. subplot(3,2,5),imshow(Disk),title('Disk');
  91.  
  92. H=fspecial('unsharp');
  93. Unsharp=imfilter(I,H,'replicate');
  94. subplot(3,2,6),imshow(Unsharp),title('Unsharp');
  95.  
  96.  
  97. clear all
  98. close all
  99.  
  100. a=3;
  101. h=4;
  102. P=a^2 + 2*a*h;
  103. V=a^2*h./3;
  104.  
  105. fprintf('Povrsina je:');
  106. disp(P);
  107. fprintf('Zapremina je:');
  108. disp(V);
  109.  
  110. x = [0 3 3 0];
  111. y = [0 0 3 3];
  112. z = [0 0 0 0];
  113. patch(x,y,z,'y');
  114. grid on;
  115. axis([-2 5 -2 5]);
  116. xlabel('x-osa');
  117. ylabel('y-osa');
  118. zlabel('z-osa');
  119.  
  120. x = [0 3 1.5];
  121. y = [0 0 1.5];
  122. z = [0 0 4];
  123. patch(x,y,z,'r');
  124. grid on;
  125. axis([-2 5 -2 5]);
  126. xlabel('x-osa');
  127. ylabel('y-osa');
  128. zlabel('z-osa');
  129.  
  130. x = [0 0 1.5]
  131. y = [0 3 1.5];
  132. z = [0 0 4];
  133. patch(x,y,z,'g');
  134. grid on;
  135. axis([-2 5 -2 5]);
  136. xlabel('x-osa');
  137. ylabel('y-osa');
  138. zlabel('z-osa');
  139.  
  140. x = [0 3 1.5];
  141. y = [3 3 1.5];
  142. z = [0 0 4];
  143. patch(x,y,z,'b');
  144. grid on;
  145. axis([-2 5 -2 5]);
  146. xlabel('x-osa');
  147. ylabel('y-osa');
  148. zlabel('z-osa');
  149.  
  150. x = [3 3 1.5];
  151. y = [0 3 1.5];
  152. z = [0 0 4];
  153. patch(x,y,z,'m');
  154. grid on;
  155. axis([-2 5 -2 5]);
  156. xlabel('x-osa');
  157. ylabel('y-osa');
  158. zlabel('z-osa');
  159.  
  160.  
  161. clc;
  162. clear;
  163.  
  164. % Inicijalizacija varijabli
  165. rijeci = {}; % Lista za spremanje unesenih riječi
  166. samoglasnici = 'aeiou'; % Samoglasnici
  167. konacnaRijec = ''; % Posljednja riječ koja zadovoljava uvjet
  168. brojac = 0; % Brojač unesenih riječi
  169.  
  170. while true
  171.     % Unos riječi s tastature
  172.     rijec = input('Unesite riječ: ', 's');
  173.     rijeci{end + 1} = rijec;
  174.     brojac = brojac + 1;
  175.    
  176.     % Provjera da li riječ zadovoljava uvjet
  177.     if startsWith(rijec, 'i') && endsWith(rijec, 'd')
  178.         % Provjera da li riječ sadrži samo samoglasnike (osim prvog i posljednjeg slova)
  179.         sredina = rijec(2:end-1);
  180.         if all(ismember(sredina, samoglasnici))
  181.             konacnaRijec = upper(rijec);
  182.             rijeci{end} = konacnaRijec; % Zamjena originalne riječi sa riječi u velikim slovima
  183.             break;
  184.         end
  185.     end
  186. end
  187.  
  188. % Pretvaranje svih riječi u niz s velikim samoglasnicima, osim zadnje riječi
  189. for i = 1:length(rijeci) - 1
  190.     rijec = rijeci{i};
  191.     for j = 1:length(rijec)
  192.         if ismember(rijec(j), samoglasnici)
  193.             rijec(j) = upper(rijec(j));
  194.         end
  195.     end
  196.     rijeci{i} = rijec;
  197. end
  198.  
  199. % Ispis rezultata
  200. fprintf('Ukupan broj unesenih riječi: %d\n', brojac);
  201. fprintf('Sve unijete riječi sa velikim samoglasnicima osim zadnje:\n');
  202. disp(rijeci(1:end-1));
  203. fprintf('Zadnja riječ:\n%s\n', konacnaRijec);
  204.  
  205.  
  206. clear all
  207. clc
  208.  
  209. try
  210.     % Unos rečenice s tastature
  211.     recenica = input('Unesite rečenicu: ', 's');
  212.    
  213.     % Zamjena zareza i tačaka s praznim mjestima
  214.     recenica = regexprep(recenica, '[,\.]', '');
  215.    
  216.     % Razdvajanje riječi i uklanjanje praznih mjesta
  217.     rijeci = strsplit(recenica);
  218.     rijeci = rijeci(~cellfun('isempty', rijeci));
  219.    
  220.     if isempty(rijeci)
  221.         error('Rečenica ne sadrži valjane riječi.');
  222.     end
  223.    
  224.     % Pronalaženje najduže riječi
  225.     najduzaRijec = '';
  226.     for i = 1:length(rijeci)
  227.         if length(rijeci{i}) > length(najduzaRijec)
  228.             najduzaRijec = rijeci{i};
  229.         end
  230.     end
  231.    
  232.     % Okretanje najduže riječi
  233.     okrenutaRijec = flip(najduzaRijec);
  234.    
  235.     % Zamjena najduže riječi u rečenici s okrenutom riječju
  236.     for i = 1:length(rijeci)
  237.         if strcmp(rijeci{i}, najduzaRijec)
  238.             rijeci{i} = okrenutaRijec;
  239.         end
  240.     end
  241.    
  242.     % Ispis rezultata
  243.     novaRecenica = strjoin(rijeci, ' ');
  244.     fprintf('Originalna rečenica: %s\n', recenica);
  245.     fprintf('Najduža riječ: %s\n', najduzaRijec);
  246.     fprintf('Okrenuta riječ: %s\n', okrenutaRijec);
  247.     fprintf('Nova rečenica: %s\n', novaRecenica);
  248.    
  249. catch ME
  250.     % Obrada izuzetaka
  251.     fprintf('Došlo je do greške: %s\n', ME.message);
  252. end
  253.  
  254.  
  255. % Unos teksta sa tastature
  256. tekst = input('Unesite tekst: ', 's');
  257.  
  258. % Pronalazak svih pojavljivanja sloga 'sni'
  259. slog = 'sni';
  260. slogIndeksi = strfind(tekst, slog);
  261. brojSlogova = length(slogIndeksi);
  262.  
  263. % Pronalazak svih pojavljivanja praznih mjesta
  264. praznaMjesta = find(tekst == ' ');
  265. brojPraznihMjesta = length(praznaMjesta);
  266.  
  267. % Brojanje rečenica
  268. recenice = regexp(tekst, '[.!?]', 'split');
  269. brojRecenica = length(recenice) - 1;
  270.  
  271. % Brojanje upitnih, uzvičnih i izjavnih rečenica
  272. brojUpitnih = length(find(tekst == '?'));
  273. brojUzvicnih = length(find(tekst == '!'));
  274. brojIzjavnih = length(find(tekst == '.'));
  275.  
  276. % Brojanje riječi u tekstu
  277. rijeci = strsplit(tekst);
  278. brojRijeci = length(rijeci);
  279.  
  280. % Ispis rezultata
  281. fprintf('Broj pojavljivanja sloga ''sni'': %d\n', brojSlogova);
  282. fprintf('Indeksi pojavljivanja sloga ''sni'': ');
  283. disp(slogIndeksi);
  284.  
  285. fprintf('Broj praznih mjesta: %d\n', brojPraznihMjesta);
  286. fprintf('Indeksi praznih mjesta: ');
  287. disp(praznaMjesta);
  288.  
  289. fprintf('Broj rečenica: %d\n', brojRecenica);
  290. fprintf('Broj upitnih rečenica: %d\n', brojUpitnih);
  291. fprintf('Broj uzvičnih rečenica: %d\n', brojUzvicnih);
  292. fprintf('Broj izjavnih rečenica: %d\n', brojIzjavnih);
  293. fprintf('Broj riječi u tekstu: %d\n', brojRijeci);
  294.  
  295.  
  296. clc
  297. clear all
  298. close all
  299.  
  300. [zvuk,fs] = audioread('matlab.wav');
  301. ramp = 0:1/(length(zvuk)-1):1;
  302. linearno_pojacanje = zvuk.*ramp';
  303. inverzija = zvuk .* (1 - ramp');
  304. t = 0:1/fs:1/fs*(length(zvuk)-1);
  305. subplot(211)
  306. plot(t,zvuk)
  307. title('Ulazni zvucni signal');
  308. axis([0 2 -1 1])
  309. subplot(212)
  310. plot(t,linearno_pojacanje)
  311. hold on
  312. plot(t, inverzija, 'g', 'LineWidth', 2);
  313. plot(t, ramp, 'r', 'LineWidth', 2);
  314. title('Linearno pojacanje i inverzija signala');
  315. xlabel('Vrijeme (s)');
  316. ylabel('Amplituda');
  317. legend('Linearno pojacanje', 'Inverzija', 'Ramp', 'Location', 'best');
  318. axis([0 2 -1 1]);
  319.  
  320.  
  321.  
  322. function [ boja ] = komponenta( slika, RGB )
  323. boja=slika;
  324. vel_u_pikselima = size(slika);
  325. sirina=vel_u_pikselima(1);
  326. visina=vel_u_pikselima(2);
  327. if RGB == 'R'
  328. for i=1:1:sirina
  329. for j=1:1:visina
  330. boja(i,j,2)=0;
  331. boja(i,j,3)=0;
  332. end
  333. end
  334. end
  335. if RGB == 'G'
  336. for i=1:1:sirina
  337. for j=1:1:visina
  338. boja(i,j,1)=0;
  339. boja(i,j,3)=0;
  340. end
  341. end
  342. end
  343. if RGB == 'B'
  344. for i=1:1:sirina
  345. for j=1:1:visina
  346. boja(i,j,1)=0;
  347. boja(i,j,2)=0;
  348. end
  349. end
  350. end
  351. slika=imread('buket.jpg');
  352. crvena=komponenta(slika,'R');
  353. zelena=komponenta(slika,'G');
  354. plava=komponenta(slika,'B');
  355.  
  356. figure(1); image(crvena);
  357. figure(2); image(zelena);
  358. figure(3); image(plava);
  359.  
  360. imwrite(crvena,'Crvena.jpg');
  361. imwrite(zelena,'Zelena.jpg');
  362. imwrite(plava,'Plava.jpg');
  363.  
  364.  
  365. t=0:pi/50:2*pi;
  366. x=cos(t);
  367. y=sin(t);
  368. krug=patch(x,y,'y');
  369. axis([-2 2 -2 2]);
  370.  
  371. x1=[-0.225 0.225 0];
  372. y1=[1.2 1.2 1.5];
  373. trokut1=patch(x1,y1,'y');
  374.  
  375. x2=[-0.225 0.225 0];
  376. y2=[-1.2 -1.2 -1.5];
  377. trokut2=patch(x2,y2,'y');
  378.  
  379. x3=[1.2 1.2 1.5];
  380. y3=[0.225 -0.225 0];
  381. trokut3=patch(x3,y3,'y');
  382.  
  383. x4=[-1.2 -1.2 -1.5];
  384. y4=[0.225 -0.225 0];
  385. trokut4=patch(x4,y4,'y');
  386.  
  387. x5=[0.90 1 0.6];
  388. y5=[0.65 1.1 1];
  389. trokut5=patch(x5,y5,'y');
  390.  
  391. x6=[0.90 1 0.6];
  392. y6=[-0.65 -1.1 -1];
  393. trokut6=patch(x6,y6,'y');
  394.  
  395. x7=[-0.9 -1 -0.6];
  396. y7=[0.65 1.1 1];
  397. trokut7=patch(x7,y7,'y');
  398.  
  399. x8=[-0.9 -1 -0.6];
  400. y8=[-0.65 -1.1 -1];
  401. trokut8=patch(x8,y8,'y');
  402.  
  403. sunce=[krug trokut1 trokut2 trokut3 trokut4 trokut5 trokut6 trokut7 trokut8];
  404.  
  405. for i=1:60
  406.     rotate(sunce, [0 0 1], 30, [0 0 0]);
  407.    pause(2/60);
  408. end
  409.  
  410.  
  411. x1 = 0;
  412. y1 = -0.5:0.001:0.1;
  413. x2 = 4;
  414. y2 = -0.5:0.001:0;
  415. y3 = 0;
  416. x3 = 0:0.01:4;
  417.  
  418. plot(x1*ones(size(y1)), y1, x2*ones(size(y2)), y2, x3, y3*ones(size(x3)), 'LineWidth', 4)
  419. hold on
  420.  
  421. t = (0:1/720:1)' * 2 * pi;
  422. x = 0.1 + 0.1 * sin(t);
  423. y = 0.1 + 0.1 * cos(t);
  424. h = fill(x, y, 'b');
  425. axis([-0.5 4.5 -0.5 2])
  426.  
  427. xr = x;
  428. yr = y;
  429. a = 0; b = 0; c = 0;
  430.  
  431. % Kretanje lopte s lijeva na desno i obrnuto
  432. for i = 1:80
  433.     xr = xr + (3.8 / 80);  % Pomicanje po x osi za 3.8 u 80 koraka
  434.     a = a + (3.8 / 80);    % Pomicanje centra rotacije
  435.     pause(3 / 160)         % Pauza od 3/160 sekundi između koraka
  436.     set(h, 'xdata', xr, 'ydata', yr)
  437.     rotate(h, [0 0 1], 10, [a b 0])  % Rotacija oko z osi
  438. end
  439.  
  440. for i = 1:80
  441.     xr = xr - (3.8 / 80);  % Pomicanje u suprotnom smjeru za istu udaljenost
  442.     a = a - (3.8 / 80);    % Pomicanje centra rotacije
  443.     pause(3 / 160)         % Pauza između koraka
  444.     set(h, 'xdata', xr, 'ydata', yr)
  445.     rotate(h, [0 0 1], 10, [a b 0])  % Rotacija oko z osi
  446. end
  447.  
  448.  
  449. close all
  450. clc
  451. x1=[6 8 7 ]
  452. y1=[3 3 2]
  453. trougao=patch(x1,y1,'r')
  454. x11=x1
  455. y11=y1
  456. axis([3 8 -1 3])
  457. for i=1:30
  458.     x11=x11-0.1
  459.     y11=y11;
  460.     set(trougao,'x',x11,'y',y11)
  461.     pause(3/30)
  462. end
  463.  
  464. a=x11+1
  465. b=y11-0.5
  466. for i=1:30
  467.     x11=x11+0.1
  468.     y11=y11-0.1;
  469.   set(trougao,'x',x11,'y',y11)
  470.     pause(3/30)
  471.    
  472. end
  473.  
  474. for i=1:30
  475.          rotate(trougao,[0 0 1],6,[7,-0.5,0])
  476.          pause (0.1)
  477. end
  478.  
  479. x11=[6 8 7]
  480. y11=[-1 -1 0]
  481. for i=1:30
  482.     x11=x11-0.1
  483.     y11=y11;
  484.     set(trougao,'x',x11,'y',y11)
  485.     pause(2/30)
  486. end
  487. for i=1:30
  488.     x11=x11+0.1
  489.     y11=y11+0.1;
  490.     set(trougao,'x',x11,'y',y11)
  491.     pause(2/30)
  492. end
  493.  
  494. for i=1:30
  495.       rotate(trougao,[0 0 1],6,[7,2.5,0])
  496.       pause (1/30)
  497. end    
  498.  
  499.  
  500. clc
  501. clear all
  502. close all
  503. x=[0 10 10 0]
  504. y=[0 0 0.8 0.8]
  505. patch(x,y,'r')
  506. hold on
  507.  
  508. t=(1/12:1/6:1)'*2*pi
  509. x1=sin(t)+1
  510. y1=cos(t)+2
  511. h=fill(x1,y1,'y');
  512. axis([-2 12 -12 12])
  513. grid on
  514. x11=x1;
  515. y22=y1;
  516. cx=1;
  517.  
  518. for k=1:5
  519. for i=1:30
  520. zdir=[0 0 1];
  521. center=[cx 2 0]    
  522.  
  523.     set(h,'x',x11,'y',y22)
  524.     rotate(h,zdir,i*30,center)
  525.     cx=cx+0.27444;
  526.  
  527.     x11=x11+0.27444;
  528.     y22=y22;
  529.    
  530.     pause(0.025)
  531. end
  532.  
  533. for j=1:30
  534.     zdir=[0 0 1];
  535.      cx=cx;
  536.      center=[cx 2 0];
  537.  
  538.     set(h,'x',x11,'y',y22)
  539.     rotate(h,zdir,j*30,center)
  540.       x11=x11-0.27444;
  541.     y22=y22;
  542.     cx=cx-0.27444;
  543.     pause(0.025)
  544. end
  545. end
  546.  
  547.  
  548.  
  549.  
  550.