Facebook
From sejoboy, 11 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 238
  1. % Nacrtati četverostranu piramidu čija je dužina stranica osnove a= 3,
  2. % a visina piramide h=4? Izračunati površinu i zapreminu piramide.
  3. a=3;
  4. h=4;
  5. P=a^2 + 2*a*h;
  6. V=a^2*h./3;
  7. fprintf('Povrsina je:');
  8. disp(P);
  9. fprintf('Zapremina je:');
  10. disp(V);
  11. x = [0 3 3 0];
  12. y = [0 0 3 3];
  13. z = [0 0 0 0];
  14. patch(x,y,z,'y');
  15. grid on;
  16. axis([-2 5 -2 5]);
  17. xlabel('x-osa');
  18. ylabel('y-osa');
  19. zlabel('z-osa');
  20. x = [0 3 1.5];
  21. y = [0 0 1.5];
  22. z = [0 0 4];
  23. patch(x,y,z,'r');
  24. grid on;
  25. axis([-2 5 -2 5]);
  26. xlabel('x-osa');
  27. ylabel('y-osa');
  28. zlabel('z-osa');
  29. x = [0 0 1.5]
  30. y = [0 3 1.5];
  31. z = [0 0 4];
  32. patch(x,y,z,'g');
  33. grid on;
  34. axis([-2 5 -2 5]);
  35. xlabel('x-osa');
  36. ylabel('y-osa');
  37. zlabel('z-osa');
  38. x = [0 3 1.5];
  39. y = [3 3 1.5];
  40. z = [0 0 4];
  41. patch(x,y,z,'b');
  42. grid on;
  43. axis([-2 5 -2 5]);
  44. xlabel('x-osa');
  45. ylabel('y-osa');
  46. zlabel('z-osa');
  47. x = [3 3 1.5];
  48. y = [0 3 1.5];
  49. z = [0 0 4];
  50. patch(x,y,z,'m');
  51. grid on;
  52. axis([-2 5 -2 5]);
  53. xlabel('x-osa');
  54. ylabel('y-osa');
  55. zlabel('z-osa');
  56. % Zadatak 2. Učitati sliku sa računara u boji i zatim izvršiti filtriranje
  57. upotrebom filter:
  58. 'motion', 'sobel', 'log', 'disk', 'unsharp'.
  59. Originalnu sliku i filtrirane slike prikazati naredbom subplot.
  60. s=imread('buket.jpg');
  61. I=im2double(s);
  62. subplot(3,2,1),imshow(I), title('Original');
  63. H=fspecial('motion',30,60);
  64. Motion=imfilter(I,H,'replicate');
  65. subplot(3,2,2),imshow(Motion),title('Motion');
  66. H=fspecial('sobel');
  67. Sobel=imfilter(I,H,'replicate');
  68. subplot(3,2,3),imshow(Sobel),title('Sobel');
  69. H=fspecial('log',[30,100],0.2);
  70. Log=imfilter(I,H,'replicate');
  71. subplot(3,2,4),imshow(Log),title('Log');
  72. H=fspecial('disk',20);
  73. Disk=imfilter(I,H,'replicate');
  74. subplot(3,2,5),imshow(Disk),title('Disk');
  75. H=fspecial('unsharp');
  76. Unsharp=imfilter(I,H,'replicate');
  77. subplot(3,2,6),imshow(Unsharp),title('Unsharp');
  78. % Nacrtati graf funkcije f = sin(3theta) u polarnim koordinatama i izvršiti
  79. njegovu rotaciju za puni krug u vremenu od dvije sekunde.
  80. Takoder nacrtati plohu z = sin(x2 + y2) iizvršiti njegovu rotaciju za dva kruga u
  81. vremenu od 5 sekundi.
  82. figure
  83. theta=0:pi/100:2*pi;
  84. rho=sin(theta*3);
  85. subplot(2,1,1),h=polar(theta,rho,'go');
  86. pause
  87. for i=1:60
  88.  zdir=[0 0 1];
  89.  center=[0 0 0];
  90.  pause(2/60)
  91.  rotate(h,zdir,6,center)
  92. end
  93. pause
  94. [x,y]=meshgrid([-2:0.1:2]);
  95. z=sin(x.^2+y.^2);
  96. subplot(2,1,2),h=surf(x,y,z)
  97. pause
  98. axis tight
  99. for i=1:100
  100.  zdir=[0 0 -1];
  101.  center=[0 0 0];
  102.  rotate(h,zdir,7.2,center)
  103.  pause(5/100)
  104. end
  105. Spojiti zvučne signale upotrebom operatora konkatanacije toms.wav i tenor-sax.wav
  106. i prikazati ih upotrebom naredbe plot.
  107. [zvuk 1,fs]=wavread( 'toms.wav' );
  108. [zvuk2,fs]=wavread( 'tenorsax.wav');
  109. spojeni = [zvuk 1; zvuk2];
  110. t=0:1/fs:1/fs* (length(spojeni)-1);
  111. plot(t,spojeni)
  112. xlabel('Vrijeme[s]')
  113. ylabel('Amplituda')
  114. % Izvršiti miksanje zvučnog signala toms.wav sa sinusnim signalom.x=0.5sin(2pi t).
  115. Prikazati ulazne i izlazni zvučni signal.
  116. zvuk1= 'toms.way';
  117. [y, FS]= wavread(zvuk1);
  118. t=0:1/Fs:1/Fs* (length(y)-1);
  119. sinusnisignal = 0.5*sin(2*pi*t)';
  120. novisignal = y + sinusnisignal;
  121. subplot(3,1,1), plot(t,y, 'linewidth',2)
  122. title('Ulazni signal' );
  123. ylabel('Amplituda' )
  124. subplot(3,1,2), plot(t,sinusnisignal, 'r', 'linewidth',2)
  125. title('Sinusni signal' );
  126. ylabel('Amplituda')
  127. subplot(3,1,3), plot(t,novisignal, 'g', 'linewidth',2)
  128. title('Miksani signal' );
  129. xlabel('Vrijeme[s]')
  130. ylabel('Amplituda')
  131. Projektovati niskopropusni filter ako su zadani ulazni parametri:
  132. frekvencija uzrokovanja fs-44000 Hz, granica propusnog pojasa Wp-1000 Hz,
  133. granica nepropusnog pojasa Ws-1300 Hz,
  134. valovitost u propusnom pojasu Rp=1 dB i slabljenje u nepropusnom pojasu Rs-40 dB.
  135. fs=44000;
  136. Wp=[2*1000/fs];
  137. Ws=[2*1300/fs];
  138. Rp=1;
  139. Rs=40;
  140. d=fdesign.lowpass('Fst,Fp,Ast,Ap',Ws,Wp,Rs,Rp);
  141. f=design(d,'cheby2');
  142. info(f)
  143. fvtool(f)
  144. [Y,FS]=wavread('matlab.wav');
  145. t=0:1/fs:1/fs*(length(Y)-1);
  146. plot(t,Y)
  147. xlabel('Vrijeme [s]')
  148. ylabel('Amplituda')
  149. hold on
  150. izlaz=filter(f,Y);
  151. plot(t,izlaz,'r-')
  152. legend('Ulazni signal','Filtrirani signal')
  153. Učitati proizvoljni zvučni signal. Izvršiti linearno pojačavanje zvučnog signala,
  154. zatim napraviti inverziju signala.
  155. [zvuk,fs] = audioread('sound.mp3');
  156. ramp = 0:1/(length(zvuk)-1):1;
  157. linearno_pojacanje = zvuk.*ramp';
  158. inverzija = zvuk .* (1 - ramp');
  159. t = 0:1/fs:1/fs*(length(zvuk)-1);
  160. subplot(211)
  161. plot(t,zvuk)
  162. title('Ulazni zvucni signal');
  163. axis([0 2 -1 1])
  164. subplot(212)
  165. plot(t,linearno_pojacanje)
  166. hold on
  167. plot(t, inverzija, 'g', 'LineWidth', 2);
  168. plot(t, ramp, 'r', 'LineWidth', 2);
  169. title('Linearno pojacanje i inverzija signala');
  170. xlabel('Vrijeme (s)');
  171. ylabel('Amplituda');
  172. legend('Linearno pojacanje', 'Inverzija', 'Ramp', 'Location', 'best');
  173. axis([0 2 -1 1]);
  174. %izvrsiti animaciju kretanje tacke kroz putanju
  175. % generiranje objekta
  176. t = linspace(0,2*pi,100);
  177. x = 5*cos(t);
  178. y = 2*sin(t);
  179. z = t;
  180. % iscrtavanje
  181. figure
  182. clf
  183. for k = 1:length(t)
  184.  
  185.  t_k = t(k);
  186.  x_t = x(k);
  187.  y_t = y(k);
  188.  z_t = z(k);
  189.  
  190.  plot3(x_t,y_t,z_t,'go','Linewidth',3,'MarkerSize',15);
  191.  hold on
  192.  plot3(x,y,z,'b-','LineWidth',2);
  193.  grid on
  194.  xlabel('x-osa');
  195.  ylabel('y-osa');
  196.  zlabel('z-osa');
  197.  title(['Tacka je na putanji t=', num2str(t_k),' sekundi']);
  198.  view([30 35]);
  199.  movieVector(k) = getframe;
  200.  myWriter = VideoWriter('krivulja','MPEG-4');
  201.  myWriter.FrameRate = 20;
  202.  open(myWriter);
  203.  writeVideo(myWriter);
  204. end
  205. Unositi riječi upotrebom tastature sve dok se ne unese riječ koja počinje sa
  206. slovom 'i'a završava sa slovom 'd' te u sebi ima samo samoglasnike.Tu riječ treba
  207. pretvoriti u velika slova. Zatim sve unelene riječi napisati kao niz na način da
  208. svaki samoglasni bude ispisan velikim slovom osim zadnje riječi koja je već
  209. ispisana velikim slovima.Prebrojati unešene riječi.
  210. rijeci = {};
  211. samoglasnici = 'aeiou';
  212. konacnaRijec = '';
  213. brojac = 0;
  214. while true
  215.  rijec = input('Unesite riječ: ', 's');
  216.  rijeci{end + 1} = rijec;
  217.  brojac = brojac + 1;
  218.  
  219.  if startsWith(rijec, 'i') && endsWith(rijec, 'd')
  220.  sredina = rijec(2:end-1);
  221.  if all(ismember(sredina, samoglasnici))
  222.  konacnaRijec = upper(rijec);
  223.  rijeci{end} = konacnaRijec;
  224.  break;
  225.  end
  226.  end
  227. end
  228. for i = 1:length(rijeci) - 1
  229.  rijec = rijeci{i};
  230.  for j = 1:length(rijec)
  231.  if ismember(rijec(j), samoglasnici)
  232.  rijec(j) = upper(rijec(j));
  233.  end
  234.  end
  235.  rijeci{i} = rijec;
  236. end
  237. fprintf('Ukupan broj unesenih riječi: %d\n', brojac);
  238. fprintf('Sve unijete riječi sa velikim samoglasnicima osim zadnje:\n');
  239. disp(rijeci(1:end-1));
  240. fprintf('Zadnja riječ:\n%s\n', konacnaRijec);
  241. % a) Generisati i sabrati čiste tonove frekvencije 300 Hz i 700 Hz,
  242. % frekvencije uzrokovanja fs-4000 Hz.
  243. Generisani zvučni signal prikazati u vrmenskom i frekvencijskom domenu.
  244. b) Projektovati visokopropuni filter ako su zadani ulazni parametri: frekvencija
  245. uzrokovanja fs-44000 Hz, granica propusnog pojasa Wp-3000 Hz, granica nepropusnog
  246. pojasa Ws-2900 Hz, valovitost u propusnom pojasu Rp-1 Db i slabljenje u
  247. nepropusnom pojasu Rs 40 dB.
  248. Fs=4000;
  249. T=1/Fs;
  250. L=1000;
  251. t=(0:L-1)*T;
  252. y=0.7*sin(2*pi*300*t)+sin(2*pi*700*t);
  253. subplot(211)
  254. plot(t(1:200),y(1:200))
  255. title('Sinusni signal');
  256. xlabel('Vrijeme');
  257. ylabel('Amplituda');
  258. NFFT=2^nextpow2(L);
  259. Y=fft(y,NFFT)/L;
  260. f=Fs/2*linspace(0,1,NFFT/2+1);
  261. subplot(212)
  262. plot(f,2*abs(Y(1:NFFT/2+1)),'r')
  263. xlabel('Frekvencija');
  264. ylabel('Funkcija y');
  265. % b)
  266. clear all
  267. clc
  268. fs=44000;
  269. Wp=[2*3000/fs];
  270. Ws=[2*2900/fs];
  271. Rp=1;
  272. Rs=40;
  273. d=fdesign.highpass('Fst,Fp,Ast,Ap',Ws,Wp,Rs,Rp);
  274. f=design(d,'cheby2');
  275. info(f)
  276. fvtool(f)
  277. [Y,FS]=wavread('matlab.wav');
  278. t=0:1/fs:1/fs*(length(Y)-1);
  279. plot(t,Y)
  280. xlabel('Vrijeme [s]')
  281. ylabel('Amplituda')
  282. hold on
  283. izlaz=filter(f,Y);
  284. plot(t,izlaz,'r-')
  285. legend('Ulazni signal','Filtrirani signal')
  286. Učitati sliku sa računara u boji i zatim izvršiti filtriranje upotrebom filter:
  287. 'motion', 'sobel', 'log', 'disk', 'unsharp'.
  288. Originalnu sliku i filtrirane slike prikazati naredbom subplot.
  289. s=imread('buket.jpg');
  290. I=im2double(s);
  291. subplot(3,2,1),imshow(I), title('Original');
  292. H=fspecial('motion',30,60);
  293. Motion=imfilter(I,H,'replicate');
  294. subplot(3,2,2),imshow(Motion),title('Motion');
  295. H=fspecial('sobel');
  296. Sobel=imfilter(I,H,'replicate');
  297. subplot(3,2,3),imshow(Sobel),title('Sobel');
  298. H=fspecial('log',[30,100],0.2);
  299. Log=imfilter(I,H,'replicate');
  300. subplot(3,2,4),imshow(Log),title('Log');
  301. H=fspecial('disk',20);
  302. Disk=imfilter(I,H,'replicate');
  303. subplot(3,2,5),imshow(Disk),title('Disk');
  304. H=fspecial('unsharp');
  305. Unsharp=imfilter(I,H,'replicate');
  306. subplot(3,2,6),imshow(Unsharp),title('Unsharp');
  307. %jednacine sa uslvima
  308. syms x y(x)
  309. jed1 = (1 + x^2) * diff(y, x) == x * (2 * y + 1);
  310. jed2 = x* diff(y,x) - (y)/(x+1) == x;
  311. rj_jed1 = dsolve(jed1);
  312. uslov_2=y(0)==-1;
  313. rj_jed2 = dsolve(jed2);
  314. disp(rj_jed1)
  315. disp(rj_jed2)
  316. EMIROV ZAD 4
  317. ExclSentencesEditField- usklicne
  318. PeriodSentencesEditField – izjavne
  319. QuestionSentencesEditField - upitne
  320. VowelsEditField – samoglasici
  321. WordsEditField – rijeci
  322. NonVowelsEditField – suglasnici
  323. DeleteButton – delete buton
  324. InputTextArea– txt area
  325. SentencesEditField – recenica
  326. StartButton –
  327. Start buton:
  328.  % Get input text
  329.  text = app.InputTextArea.Value;
  330.  text = string(text);
  331.  % Count words
  332.  
  333.  words = strsplit(text);
  334.  numWords = length(words);
  335.  
  336.  % Count exclamation sentences
  337.  numExclSentences = numel(strfind(text, '!'));
  338.  numPeriodSentences = numel(strfind(text, '.'));
  339.  numQuestionSentences = numel(strfind(text, '?'));
  340.  numSentences = numExclSentences + numPeriodSentences +
  341. numQuestionSentences;
  342.  % Count vowels
  343.  vowels = 'AEIOUaeiou';
  344.  textlower = lower(text);
  345.  numa = numel(strfind(textlower, 'a'));
  346.  nume = numel(strfind(textlower, 'e'));
  347.  numi = numel(strfind(textlower, 'i'));
  348.  numo = numel(strfind(textlower, 'o'));
  349.  numu = numel(strfind(textlower, 'u'));
  350.  numVowels = numa+nume+numi+numo+numu;
  351. % Count non-vowels
  352.  numNonVowels = sum(isletter(text)) - numVowels; % Count all letters
  353. minus vowels
  354.  % Update fields
  355.  app.WordsEditField.Value = num2str(numWords);
  356.  app.SentencesEditField.Value = num2str(numSentences);
  357.  app.ExclSentencesEditField.Value = num2str(numExclSentences);
  358.  app.PeriodSentencesEditField.Value = num2str(numPeriodSentences);
  359.  app.QuestionSentencesEditField.Value = num2str(numQuestionSentences);
  360.  app.VowelsEditField.Value = num2str(numVowels);
  361.  app.NonVowelsEditField.Value = num2str(numNonVowels);
  362. Delete butnon:
  363.  app.InputTextArea.Value = '';
  364.  
  365.  % Clear the results fields
  366.  app.WordsEditField.Value = num2str(0);
  367.  app.SentencesEditField.Value = num2str(0);
  368.  app.ExclSentencesEditField.Value =num2str(0);
  369.  app.PeriodSentencesEditField.Value =num2str(0);
  370.  app.QuestionSentencesEditField.Value = num2str(0);
  371.  app.VowelsEditField.Value = num2str(0);
  372.  app.NonVowelsEditField.Value = num2str(0);
  373.  
  374. % Unijeti tekst sa tastature i provjeriti koliko u njemu ima slogova 'sni' i
  375. % na kojim indeksima se ponavlja. Pronaći koliko taj tekst sadrži praznih mjesta i
  376. % na kojim indeksima se nalaze. Provjeriti koliko u tekstu ima rečenica te
  377. % koliko ima upitnih, uzvičnih i izjavnih, i ispisati broj riječi u tekstu.
  378. tekst = input('Unesite tekst: ', 's');
  379. % Pronalazak svih pojavljivanja sloga 'sni'
  380. slog = 'sni';
  381. slogIndeksi = strfind(tekst, slog);
  382. brojSlogova = length(slogIndeksi);
  383. % Pronalazak svih pojavljivanja praznih mjesta
  384. praznaMjesta = find(tekst == ' ');
  385. brojPraznihMjesta = length(praznaMjesta);
  386. % Brojanje rečenica
  387. recenice = regexp(tekst, '[.!?]', 'split');
  388. brojRecenica = length(recenice) - 1;
  389. % Brojanje upitnih, uzvičnih i izjavnih rečenica
  390. brojUpitnih = length(find(tekst == '?'));
  391. brojUzvicnih = length(find(tekst == '!'));
  392. brojIzjavnih = length(find(tekst == '.'));
  393. % Brojanje riječi u tekstu
  394. rijeci = strsplit(tekst);
  395. brojRijeci = length(rijeci);
  396. % Ispis rezultata
  397. fprintf('Broj pojavljivanja sloga ''sni'': %d\n', brojSlogova);
  398. fprintf('Indeksi pojavljivanja sloga ''sni'': ');
  399. disp(slogIndeksi);
  400. fprintf('Broj praznih mjesta: %d\n', brojPraznihMjesta);
  401. fprintf('Indeksi praznih mjesta: ');
  402. disp(praznaMjesta);
  403. fprintf('Broj rečenica: %d\n', brojRecenica);
  404. fprintf('Broj upitnih rečenica: %d\n', brojUpitnih);
  405. fprintf('Broj uzvičnih rečenica: %d\n', brojUzvicnih);
  406. fprintf('Broj izjavnih rečenica: %d\n', brojIzjavnih);
  407. fprintf('Broj riječi u tekstu: %d\n', brojRijeci);
  408. t=0:pi/50:2*pi;
  409. x=cos(t);
  410. y=sin(t);
  411. krug=patch(x,y,'y');
  412. axis([-2 2 -2 2]);
  413. x1=[-0.225 0.225 0];
  414. y1=[1.2 1.2 1.5];
  415. trokut1=patch(x1,y1,'y');
  416. x2=[-0.225 0.225 0];
  417. y2=[-1.2 -1.2 -1.5];
  418. trokut2=patch(x2,y2,'y');
  419. x3=[1.2 1.2 1.5];
  420. y3=[0.225 -0.225 0];
  421. trokut3=patch(x3,y3,'y');
  422. x4=[-1.2 -1.2 -1.5];
  423. y4=[0.225 -0.225 0];
  424. trokut4=patch(x4,y4,'y');
  425. x5=[0.90 1 0.6];
  426. y5=[0.65 1.1 1];
  427. trokut5=patch(x5,y5,'y');
  428. x6=[0.90 1 0.6];
  429. y6=[-0.65 -1.1 -1];
  430. trokut6=patch(x6,y6,'y');
  431. x7=[-0.9 -1 -0.6];
  432. y7=[0.65 1.1 1];
  433. trokut7=patch(x7,y7,'y');
  434. x8=[-0.9 -1 -0.6];
  435. y8=[-0.65 -1.1 -1];
  436. trokut8=patch(x8,y8,'y');
  437. sunce=[krug trokut1 trokut2 trokut3 trokut4 trokut5 trokut6 trokut7 trokut8];
  438. for i=1:60
  439.  rotate(sunce, [0 0 1], 30, [0 0 0]);
  440.  pause(2/60);
  441. end
  442. x1 = 0;
  443. y1 = -0.5:0.001:0.1;
  444. x2 = 4;
  445. y2 = -0.5:0.001:0;
  446. y3 = 0;
  447. x3 = 0:0.01:4;
  448. plot(x1*ones(size(y1)), y1, x2*ones(size(y2)), y2, x3, y3*ones(size(x3)),
  449. 'LineWidth', 4)
  450. hold on
  451. t = (0:1/720:1)' * 2 * pi;
  452. x = 0.1 + 0.1 * sin(t);
  453. y = 0.1 + 0.1 * cos(t);
  454. h = fill(x, y, 'b');
  455. axis([-0.5 4.5 -0.5 2])
  456. xr = x;
  457. yr = y;
  458. a = 0; b = 0; c = 0;
  459. % Kretanje lopte s lijeva na desno i obrnuto
  460. for i = 1:80
  461.  xr = xr + (3.8 / 80); % Pomicanje po x osi za 3.8 u 80 koraka
  462.  a = a + (3.8 / 80); % Pomicanje centra rotacije
  463.  pause(3 / 160) % Pauza od 3/160 sekundi između koraka
  464.  set(h, 'xdata', xr, 'ydata', yr)
  465.  rotate(h, [0 0 1], 10, [a b 0]) % Rotacija oko z osi
  466. end
  467. for i = 1:80
  468.  xr = xr - (3.8 / 80); % Pomicanje u suprotnom smjeru za istu udaljenost
  469.  a = a - (3.8 / 80); % Pomicanje centra rotacije
  470.  pause(3 / 160) % Pauza između koraka
  471.  set(h, 'xdata', xr, 'ydata', yr)
  472.  rotate(h, [0 0 1], 10, [a b 0]) % Rotacija oko z osi
  473. end
  474. close all
  475. clc
  476. x1=[6 8 7 ]
  477. y1=[3 3 2]
  478. trougao=patch(x1,y1,'r')
  479. x11=x1
  480. y11=y1
  481. axis([3 8 -1 3])
  482. for i=1:30
  483.  x11=x11-0.1
  484.  y11=y11;
  485.  set(trougao,'x',x11,'y',y11)
  486.  pause(3/30)
  487. end
  488. a=x11+1
  489. b=y11-0.5
  490. for i=1:30
  491.  x11=x11+0.1
  492.  y11=y11-0.1;
  493.  set(trougao,'x',x11,'y',y11)
  494.  pause(3/30)
  495.  
  496. end
  497. for i=1:30
  498.  rotate(trougao,[0 0 1],6,[7,-0.5,0])
  499.  pause (0.1)
  500. end
  501. x11=[6 8 7]
  502. y11=[-1 -1 0]
  503. for i=1:30
  504.  x11=x11-0.1
  505.  y11=y11;
  506.  set(trougao,'x',x11,'y',y11)
  507.  pause(2/30)
  508. end
  509. for i=1:30
  510.  x11=x11+0.1
  511.  y11=y11+0.1;
  512.  set(trougao,'x',x11,'y',y11)
  513.  pause(2/30)
  514. end
  515. for i=1:30
  516.  rotate(trougao,[0 0 1],6,[7,2.5,0])
  517.  pause (1/30)
  518. end
  519. clc
  520. clear all
  521. close all
  522. x=[0 10 10 0]
  523. y=[0 0 0.8 0.8]
  524. patch(x,y,'r')
  525. hold on
  526. t=(1/12:1/6:1)'*2*pi
  527. x1=sin(t)+1
  528. y1=cos(t)+2
  529. h=fill(x1,y1,'y');
  530. axis([-2 12 -12 12])
  531. grid on
  532. x11=x1;
  533. y22=y1;
  534. cx=1;
  535. for k=1:5
  536. for i=1:30
  537. zdir=[0 0 1];
  538. center=[cx 2 0]
  539.  set(h,'x',x11,'y',y22)
  540.  rotate(h,zdir,i*30,center)
  541.  cx=cx+0.27444;
  542.  
  543.  x11=x11+0.27444;
  544.  y22=y22;
  545.  
  546.  pause(0.025)
  547. end
  548. for j=1:30
  549.  zdir=[0 0 1];
  550.  cx=cx;
  551.  center=[cx 2 0];
  552.  
  553.  set(h,'x',x11,'y',y22)
  554.  rotate(h,zdir,j*30,center)
  555.  x11=x11-0.27444;
  556.  y22=y22;
  557.  cx=cx-0.27444;
  558.  pause(0.025)
  559. end
  560. end
  561. % Generisati čisti ton frekvencije 100 Hz u trajanju od 1s sa frekvencijom
  562. uzrokovanja od
  563. % 3000 uzoraka po sekundi. Takoder, generisati šum trajanja 2s sa frekvencijom
  564. uzrokovanja
  565. % od 1000 Hz korištenjem naredbe rand. Nakon toga izvršiti spajanje ovih signala.
  566. % Signal koji se dobije spajanjem miksati sa sinusnim signalom x-0.5 sin(2 pi t).
  567. % Prikazati sve zvučne signale.
  568. % Step 1: Generate a clean tone of 100 Hz for 1 second at 3000 Hz sampling rate
  569. fs1 = 3000; % Sampling frequency for the tone
  570. t1 = 0:1/fs1:1-1/fs1; % Time vector for 1 second
  571. tone = sin(2*pi*100*t1); % Generate the 100 Hz tone
  572. % Step 2: Generate white noise for 2 seconds at 1000 Hz sampling rate
  573. fs2 = 1000; % Sampling frequency for the noise
  574. t2 = 0:1/fs2:2-1/fs2; % Time vector for 2 seconds
  575. noise = randn(size(t2)); % Generate white noise
  576. % Step 3: Combine the clean tone and the white noise
  577. % Ensure both signals are of the same length by padding the shorter one with zeros
  578. if length(tone) < length(noise)
  579.   t zeros(1, length(noise) - length(tone))];
  580. elseif length(noise) < length(tone)
  581.  noise = [noise zeros(1, length(tone) - length(noise))];
  582. end
  583. combined_signal = tone + noise;
  584. % Step 4: Mix the combined signal with a sinusoidal signal
  585. t_combined = 0:1/fs1:(length(combined_signal)-1)/fs1; % Time vector for combined
  586. signal
  587. sinusoid = 0.5 * sin(2 * pi * t_combined); % Generate the sinusoidal signal
  588. mixed_signal = combined_signal + sinusoid;
  589. % Step 5: Display all the sound signals
  590. subplot(4, 1, 1);
  591. plot(t1, tone);
  592. title('100 Hz Tone');
  593. subplot(4, 1, 2);
  594. plot(t2, noise);
  595. title('White Noise');
  596. subplot(4, 1, 3);
  597. plot(t_combined, combined_signal);
  598. title('Combined Signal');
  599. subplot(4, 1, 4);
  600. plot(t_combined, mixed_signal);
  601. title('Mixed Signal');
  602. % Play the sounds
  603. sound(tone, fs1);
  604. pause(1);
  605. sound(noise, fs2);
  606. pause(2);
  607. sound(combined_signal, fs1);
  608. pause(length(combined_signal)/fs1);
  609. sound(mixed_signal, fs1);