% 1. a) Fs=4000; T=1/Fs; L=1000; t=(0:L-1)*T; y=0.7*sin(2*pi*300*t)+sin(2*pi*700*t); subplot(211) plot(t(1:200),y(1:200)) title('Sinusni signal'); xlabel('Vrijeme'); ylabel('Amplituda'); NFFT=2^nextpow2(L); Y=fft(y,NFFT)/L; f=Fs/2*linspace(0,1,NFFT/2+1); subplot(212) plot(f,2*abs(Y(1:NFFT/2+1)),'r') xlabel('Frekvencija'); ylabel('Funkcija y'); %% b) clear all clc fs=44000; Wp=[2*3000/fs]; Ws=[2*2900/fs]; Rp=1; Rs=40; d=fdesign.highpass('Fst,Fp,Ast,Ap',Ws,Wp,Rs,Rp); f=design(d,'cheby2'); info(f) fvtool(f) [Y,FS]=wavread('matlab.wav'); t=0:1/fs:1/fs*(length(Y)-1); plot(t,Y) xlabel('Vrijeme [s]') ylabel('Amplituda') hold on izlaz=filter(f,Y); plot(t,izlaz,'r-') legend('Ulazni signal','Filtrirani signal') figure theta=0:pi/100:2*pi; rho=sin(theta*3); subplot(2,1,1),h=polar(theta,rho,'go'); pause for i=1:60 zdir=[0 0 1]; center=[0 0 0]; pause(2/60) rotate(h,zdir,6,center) end pause [x,y]=meshgrid([-2:0.1:2]); z=sin(x.^2+y.^2); subplot(2,1,2),h=surf(x,y,z) pause axis tight for i=1:100 zdir=[0 0 -1]; center=[0 0 0]; rotate(h,zdir,7.2,center) pause(5/100) end s=imread('buket.jpg'); I=im2double(s); subplot(3,2,1),imshow(I), title('Original'); H=fspecial('motion',30,60); Motion=imfilter(I,H,'replicate'); subplot(3,2,2),imshow(Motion),title('Motion'); H=fspecial('sobel'); Sobel=imfilter(I,H,'replicate'); subplot(3,2,3),imshow(Sobel),title('Sobel'); H=fspecial('log',[30,100],0.2); Log=imfilter(I,H,'replicate'); subplot(3,2,4),imshow(Log),title('Log'); H=fspecial('disk',20); Disk=imfilter(I,H,'replicate'); subplot(3,2,5),imshow(Disk),title('Disk'); H=fspecial('unsharp'); Unsharp=imfilter(I,H,'replicate'); subplot(3,2,6),imshow(Unsharp),title('Unsharp'); clear all close all a=3; h=4; P=a^2 + 2*a*h; V=a^2*h./3; fprintf('Povrsina je:'); disp(P); fprintf('Zapremina je:'); disp(V); x = [0 3 3 0]; y = [0 0 3 3]; z = [0 0 0 0]; patch(x,y,z,'y'); grid on; axis([-2 5 -2 5]); xlabel('x-osa'); ylabel('y-osa'); zlabel('z-osa'); x = [0 3 1.5]; y = [0 0 1.5]; z = [0 0 4]; patch(x,y,z,'r'); grid on; axis([-2 5 -2 5]); xlabel('x-osa'); ylabel('y-osa'); zlabel('z-osa'); x = [0 0 1.5] y = [0 3 1.5]; z = [0 0 4]; patch(x,y,z,'g'); grid on; axis([-2 5 -2 5]); xlabel('x-osa'); ylabel('y-osa'); zlabel('z-osa'); x = [0 3 1.5]; y = [3 3 1.5]; z = [0 0 4]; patch(x,y,z,'b'); grid on; axis([-2 5 -2 5]); xlabel('x-osa'); ylabel('y-osa'); zlabel('z-osa'); x = [3 3 1.5]; y = [0 3 1.5]; z = [0 0 4]; patch(x,y,z,'m'); grid on; axis([-2 5 -2 5]); xlabel('x-osa'); ylabel('y-osa'); zlabel('z-osa'); clc; clear; % Inicijalizacija varijabli rijeci = {}; % Lista za spremanje unesenih riječi samoglasnici = 'aeiou'; % Samoglasnici konacnaRijec = ''; % Posljednja riječ koja zadovoljava uvjet brojac = 0; % Brojač unesenih riječi while true % Unos riječi s tastature rijec = input('Unesite riječ: ', 's'); rijeci{end + 1} = rijec; brojac = brojac + 1; % Provjera da li riječ zadovoljava uvjet if startsWith(rijec, 'i') && endsWith(rijec, 'd') % Provjera da li riječ sadrži samo samoglasnike (osim prvog i posljednjeg slova) sredina = rijec(2:end-1); if all(ismember(sredina, samoglasnici)) konacnaRijec = upper(rijec); rijeci{end} = konacnaRijec; % Zamjena originalne riječi sa riječi u velikim slovima break; end end end % Pretvaranje svih riječi u niz s velikim samoglasnicima, osim zadnje riječi for i = 1:length(rijeci) - 1 rijec = rijeci{i}; for j = 1:length(rijec) if ismember(rijec(j), samoglasnici) rijec(j) = upper(rijec(j)); end end rijeci{i} = rijec; end % Ispis rezultata fprintf('Ukupan broj unesenih riječi: %d\n', brojac); fprintf('Sve unijete riječi sa velikim samoglasnicima osim zadnje:\n'); disp(rijeci(1:end-1)); fprintf('Zadnja riječ:\n%s\n', konacnaRijec); clear all clc try % Unos rečenice s tastature recenica = input('Unesite rečenicu: ', 's'); % Zamjena zareza i tačaka s praznim mjestima recenica = regexprep(recenica, '[,\.]', ''); % Razdvajanje riječi i uklanjanje praznih mjesta rijeci = strsplit(recenica); rijeci = rijeci(~cellfun('isempty', rijeci)); if isempty(rijeci) error('Rečenica ne sadrži valjane riječi.'); end % Pronalaženje najduže riječi najduzaRijec = ''; for i = 1:length(rijeci) if length(rijeci{i}) > length(najduzaRijec) najduzaRijec = rijeci{i}; end end % Okretanje najduže riječi okrenutaRijec = flip(najduzaRijec); % Zamjena najduže riječi u rečenici s okrenutom riječju for i = 1:length(rijeci) if strcmp(rijeci{i}, najduzaRijec) rijeci{i} = okrenutaRijec; end end % Ispis rezultata novaRecenica = strjoin(rijeci, ' '); fprintf('Originalna rečenica: %s\n', recenica); fprintf('Najduža riječ: %s\n', najduzaRijec); fprintf('Okrenuta riječ: %s\n', okrenutaRijec); fprintf('Nova rečenica: %s\n', novaRecenica); catch ME % Obrada izuzetaka fprintf('Došlo je do greške: %s\n', ME.message); end % Unos teksta sa tastature tekst = input('Unesite tekst: ', 's'); % Pronalazak svih pojavljivanja sloga 'sni' slog = 'sni'; slogIndeksi = strfind(tekst, slog); brojSlogova = length(slogIndeksi); % Pronalazak svih pojavljivanja praznih mjesta praznaMjesta = find(tekst == ' '); brojPraznihMjesta = length(praznaMjesta); % Brojanje rečenica recenice = regexp(tekst, '[.!?]', 'split'); brojRecenica = length(recenice) - 1; % Brojanje upitnih, uzvičnih i izjavnih rečenica brojUpitnih = length(find(tekst == '?')); brojUzvicnih = length(find(tekst == '!')); brojIzjavnih = length(find(tekst == '.')); % Brojanje riječi u tekstu rijeci = strsplit(tekst); brojRijeci = length(rijeci); % Ispis rezultata fprintf('Broj pojavljivanja sloga ''sni'': %d\n', brojSlogova); fprintf('Indeksi pojavljivanja sloga ''sni'': '); disp(slogIndeksi); fprintf('Broj praznih mjesta: %d\n', brojPraznihMjesta); fprintf('Indeksi praznih mjesta: '); disp(praznaMjesta); fprintf('Broj rečenica: %d\n', brojRecenica); fprintf('Broj upitnih rečenica: %d\n', brojUpitnih); fprintf('Broj uzvičnih rečenica: %d\n', brojUzvicnih); fprintf('Broj izjavnih rečenica: %d\n', brojIzjavnih); fprintf('Broj riječi u tekstu: %d\n', brojRijeci); clc clear all close all [zvuk,fs] = audioread('matlab.wav'); ramp = 0:1/(length(zvuk)-1):1; linearno_pojacanje = zvuk.*ramp'; inverzija = zvuk .* (1 - ramp'); t = 0:1/fs:1/fs*(length(zvuk)-1); subplot(211) plot(t,zvuk) title('Ulazni zvucni signal'); axis([0 2 -1 1]) subplot(212) plot(t,linearno_pojacanje) hold on plot(t, inverzija, 'g', 'LineWidth', 2); plot(t, ramp, 'r', 'LineWidth', 2); title('Linearno pojacanje i inverzija signala'); xlabel('Vrijeme (s)'); ylabel('Amplituda'); legend('Linearno pojacanje', 'Inverzija', 'Ramp', 'Location', 'best'); axis([0 2 -1 1]); function [ boja ] = komponenta( slika, RGB ) boja=slika; vel_u_pikselima = size(slika); sirina=vel_u_pikselima(1); visina=vel_u_pikselima(2); if RGB == 'R' for i=1:1:sirina for j=1:1:visina boja(i,j,2)=0; boja(i,j,3)=0; end end end if RGB == 'G' for i=1:1:sirina for j=1:1:visina boja(i,j,1)=0; boja(i,j,3)=0; end end end if RGB == 'B' for i=1:1:sirina for j=1:1:visina boja(i,j,1)=0; boja(i,j,2)=0; end end end slika=imread('buket.jpg'); crvena=komponenta(slika,'R'); zelena=komponenta(slika,'G'); plava=komponenta(slika,'B'); figure(1); image(crvena); figure(2); image(zelena); figure(3); image(plava); imwrite(crvena,'Crvena.jpg'); imwrite(zelena,'Zelena.jpg'); imwrite(plava,'Plava.jpg'); t=0:pi/50:2*pi; x=cos(t); y=sin(t); krug=patch(x,y,'y'); axis([-2 2 -2 2]); x1=[-0.225 0.225 0]; y1=[1.2 1.2 1.5]; trokut1=patch(x1,y1,'y'); x2=[-0.225 0.225 0]; y2=[-1.2 -1.2 -1.5]; trokut2=patch(x2,y2,'y'); x3=[1.2 1.2 1.5]; y3=[0.225 -0.225 0]; trokut3=patch(x3,y3,'y'); x4=[-1.2 -1.2 -1.5]; y4=[0.225 -0.225 0]; trokut4=patch(x4,y4,'y'); x5=[0.90 1 0.6]; y5=[0.65 1.1 1]; trokut5=patch(x5,y5,'y'); x6=[0.90 1 0.6]; y6=[-0.65 -1.1 -1]; trokut6=patch(x6,y6,'y'); x7=[-0.9 -1 -0.6]; y7=[0.65 1.1 1]; trokut7=patch(x7,y7,'y'); x8=[-0.9 -1 -0.6]; y8=[-0.65 -1.1 -1]; trokut8=patch(x8,y8,'y'); sunce=[krug trokut1 trokut2 trokut3 trokut4 trokut5 trokut6 trokut7 trokut8]; for i=1:60 rotate(sunce, [0 0 1], 30, [0 0 0]); pause(2/60); end x1 = 0; y1 = -0.5:0.001:0.1; x2 = 4; y2 = -0.5:0.001:0; y3 = 0; x3 = 0:0.01:4; plot(x1*ones(size(y1)), y1, x2*ones(size(y2)), y2, x3, y3*ones(size(x3)), 'LineWidth', 4) hold on t = (0:1/720:1)' * 2 * pi; x = 0.1 + 0.1 * sin(t); y = 0.1 + 0.1 * cos(t); h = fill(x, y, 'b'); axis([-0.5 4.5 -0.5 2]) xr = x; yr = y; a = 0; b = 0; c = 0; % Kretanje lopte s lijeva na desno i obrnuto for i = 1:80 xr = xr + (3.8 / 80); % Pomicanje po x osi za 3.8 u 80 koraka a = a + (3.8 / 80); % Pomicanje centra rotacije pause(3 / 160) % Pauza od 3/160 sekundi između koraka set(h, 'xdata', xr, 'ydata', yr) rotate(h, [0 0 1], 10, [a b 0]) % Rotacija oko z osi end for i = 1:80 xr = xr - (3.8 / 80); % Pomicanje u suprotnom smjeru za istu udaljenost a = a - (3.8 / 80); % Pomicanje centra rotacije pause(3 / 160) % Pauza između koraka set(h, 'xdata', xr, 'ydata', yr) rotate(h, [0 0 1], 10, [a b 0]) % Rotacija oko z osi end close all clc x1=[6 8 7 ] y1=[3 3 2] trougao=patch(x1,y1,'r') x11=x1 y11=y1 axis([3 8 -1 3]) for i=1:30 x11=x11-0.1 y11=y11; set(trougao,'x',x11,'y',y11) pause(3/30) end a=x11+1 b=y11-0.5 for i=1:30 x11=x11+0.1 y11=y11-0.1; set(trougao,'x',x11,'y',y11) pause(3/30) end for i=1:30 rotate(trougao,[0 0 1],6,[7,-0.5,0]) pause (0.1) end x11=[6 8 7] y11=[-1 -1 0] for i=1:30 x11=x11-0.1 y11=y11; set(trougao,'x',x11,'y',y11) pause(2/30) end for i=1:30 x11=x11+0.1 y11=y11+0.1; set(trougao,'x',x11,'y',y11) pause(2/30) end for i=1:30 rotate(trougao,[0 0 1],6,[7,2.5,0]) pause (1/30) end clc clear all close all x=[0 10 10 0] y=[0 0 0.8 0.8] patch(x,y,'r') hold on t=(1/12:1/6:1)'*2*pi x1=sin(t)+1 y1=cos(t)+2 h=fill(x1,y1,'y'); axis([-2 12 -12 12]) grid on x11=x1; y22=y1; cx=1; for k=1:5 for i=1:30 zdir=[0 0 1]; center=[cx 2 0] set(h,'x',x11,'y',y22) rotate(h,zdir,i*30,center) cx=cx+0.27444; x11=x11+0.27444; y22=y22; pause(0.025) end for j=1:30 zdir=[0 0 1]; cx=cx; center=[cx 2 0]; set(h,'x',x11,'y',y22) rotate(h,zdir,j*30,center) x11=x11-0.27444; y22=y22; cx=cx-0.27444; pause(0.025) end end