Advertisement
Guest User

Untitled

a guest
Sep 16th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.40 KB | None | 0 0
  1. clc
  2. clear all
  3. close all
  4.  
  5. N = 33;
  6. fm = 16000;
  7. T = 1.0;
  8. T1 = 0.003;
  9. A1 = 6;
  10. A2 = 3;
  11. f1 = 806;
  12. f2 = 282;
  13. th1 = pi/8;
  14. th2 = 3*pi/2;
  15. fd = 4000;
  16. M = 35;
  17. b = 4;
  18. n0 = 5;
  19.  
  20.  
  21. % 1 uzduotis
  22. xasis = 0:N-1;
  23. vimpuls = zeros(1,N);
  24. for i = 1:N
  25. if(xasis(i)- n0) == 0
  26. vimpuls(i) = 1;
  27. end
  28. end
  29. figure(1)
  30. stem(xasis, vimpuls,'.'); title('vienetinis impulsas');
  31. box off
  32. set(gca,'FontSize',12)
  33.  
  34. % 2 uzduotis
  35. z = 1/fm; % laiko ašies žingsnis
  36. N = T/z; % modeliuojamo signalo reiksmiu skaicius
  37. N1 = T1/z; % vaizduojamu reiksmiu skaicius
  38. t = (0:N-1)*z;
  39. y = A1*sin(2*pi*f1*t+th1);
  40. figure(2)
  41. plot(t(1:N1), y(1:N1)); title('Sinusas'); box off
  42. set(gca,'FontSize',12)
  43.  
  44. % 3 uzduotis
  45. N = 33;
  46. zings = zeros(1,N);
  47. for i = 1:N
  48. if(xasis(i) - n0) >= 0
  49. zings(i) = 1;
  50. end
  51. end
  52. figure(3)
  53. stairs(xasis, zings); title('zingsnio signalas'); box off
  54. set(gca,'FontSize', 12)
  55.  
  56. % 4 uzduotis
  57. disp('sinuso signalo vidurkis = ')
  58. vidurkis = mean(y)
  59. disp('sinuso signalo standartinis nuokrypis =')
  60. nuokrypis = std(y)
  61. disp('vidurkis nuo nulio skiriasi = ')
  62. a = 0 - vidurkis
  63. disp('standartinis nuokrypis nuo 0,7071*A1 skiriasi = ')
  64. nuokrypis - 0.7071*A1
  65.  
  66. % 5 uzduotis
  67. [h,v] = hist(y,M);
  68. figure(4)
  69. bar(v,h); box off;
  70. set(gca,'FontSize',12)
  71.  
  72. % 6 uzduotis
  73. clc
  74. disp('reiksmiu kiekis paskaiciuotas is histogramos = ')
  75. Nsig = sum(h) % signalo reiksmiu kiekis
  76. disp('vidurkis paskaiciuotas is histogramos = ')
  77. Vid = sum((h.*v))/Nsig % vidurkis paskaiciuotas is histogramos
  78. disp('standartinis nuokrypis pask. is histogramos = ')
  79. hist_nuokr = sqrt(sum(((v - Vid).^2).*h)/Nsig)
  80.  
  81. % 7 uzduotis
  82.  
  83. clc
  84. N = T/z; % signalo reiksmiu kiekis
  85. pastovus = rand(1,N); % atsitiktinio signalo reiksmes
  86. disp('atsitiktinio signalo reiksmiu vidurkis = ')
  87. mean(pastovus)
  88. disp('atsitiktinio signalo reiksmiu standartinis nuokrypis = ')
  89. std(pastovus)
  90. disp('atsitiktinio signalo reiksmiu vidurkio skirtumas nuo 0,5 ')
  91. 0.5 - mean(pastovus)
  92. t = (0:N-1)*z;
  93. figure(5)
  94. plot(t, pastovus); box off;
  95. axis tight; set(gca,'FontSize',12)
  96.  
  97. % 8 uzduotis
  98.  
  99. clear h v;
  100. [h,v] = hist(pastovus,M);
  101. figure(6)
  102. bar(v,h); box off;
  103. set(gca,'FontSize',12)
  104.  
  105. % 9 uzduotis
  106.  
  107. clc
  108. N = T/z; % signalo reiksmiu kiekis
  109. normalus = randn(1,N); % atsitiktinio signalo reiksmes
  110. disp('atsitiktinio signalo reiksmiu vidurkis = ')
  111. mean(normalus)
  112. disp('atsitiktinio signalo reiksmiu standartinis nuokrypis = ')
  113. std(normalus)
  114. disp('atsitiktinio signalo reiksmiu vidurkio skirtumas nuo 0 ')
  115. 0 - mean(normalus)
  116. disp('atsitiktinio signalo reiksmiu kitimo intervalas')
  117. Vpp = abs(max(normalus) - min(normalus))
  118. disp('Vpp yra tarp 6 ir 8')
  119. t = (0:N-1)*z;
  120. figure(7)
  121. plot(t, normalus); box off;
  122. axis tight; set(gca,'FontSize',12)
  123.  
  124. % 10 uzduotis
  125.  
  126. clear h v;
  127. [h,v] = hist(normalus,M);
  128. figure(8)
  129. bar(v,h); box off;
  130. set(gca,'FontSize',12)
  131.  
  132. % 11 uzduotis
  133.  
  134. z = 1/fm; % laiko ašies žingsnis
  135. N = T/z; % modeliuojamo signalo reiksmiu skaicius
  136. N1 = T1/z; % vaizduojamu reiksmiu skaicius
  137. t = (0:N-1)*z;
  138. y = A1*sin(2*pi*f1*t+th1) + A2*sin(2*pi*f2*t+th2);
  139. figure(9)
  140. plot(t(1:N1), y(1:N1)); title('Sinusas'); box off
  141. set(gca,'FontSize',12); axis tight;
  142.  
  143. % 12 uzduotis
  144.  
  145. dz = 1/fd; % laiko ašies žingsnis
  146. Nd = T/dz; % reiksmiu skaicius diskrecioje laiko asyje
  147. td = (0:Nd-1)*dz; % diskrecios laiko asies reiksmes
  148. yd = A1*sin(2*pi*f1*td+th1) + A2*sin(2*pi*f2*td+th2); % diskretus signalas
  149. Nd1 = T1/dz; % vaizduojamu diskreciu reiksmiu skaicius
  150. figure(10)
  151. stem(td(1:Nd1), yd(1:Nd1),'.'); title('Diskretus signalas'); box off
  152.  
  153. % 13 uzduotis
  154.  
  155. L = 2^b; % kvantavimo lygiu skaicius
  156. lk = 2*(A1 + A2)/L; % kavantavimo intervalo plotis
  157. paklaida = lk/2; % maksimali kvantavimo paklaida
  158. k = abs(fix(yd/lk)); % kvantavimo intervalo numeris
  159. for i= 1:Nd
  160. if abs(yd(i) - k(i)*lk) < paklaida % randame skaitmeninio signalo reiksme
  161. Ys(i) = (yd(i)/abs(yd(i))) * (k(i)*lk);
  162. else
  163. Ys(i) = (yd(i)/abs(yd(i)))*(k(i)+1)*lk;
  164. end
  165. end
  166. figure(11)
  167. stem(td(1:Nd1), yd(1:Nd1),'o'); title('Skaitmeninis signalas');
  168. box off; hold on; stem(td(1:Nd1), Ys(1:Nd1),'*r');hold off;
  169.  
  170. % 14 uzduotis
  171.  
  172. Tsak = 1/fd; % perioidas kuriuo SAK keicia skaitmenini
  173. % signala i analogini
  174. Nm = Tsak/z; % tolydzios laiko asies reiksmiu skaicius
  175. % telpantis i Tsak
  176. for i = 0:Nd-1
  177. SAK(i*Nm+1:(i+1)*Nm) = Ys(i+1);
  178. end
  179. figure(12)
  180. stairs(t(1:N1), SAK(1:N1)); title('SAK isvesties signalas'); box off
  181. set(gca,'FontSize',12); axis tight;
  182.  
  183. % 15 uzduotis
  184.  
  185. [b1,a1] = cheby2(8, 60, 0.125 );
  186. nfft = 1000; % Reiksmiu kiekis dazniu asyje
  187. [h1,f,s] = freqz(b1,a1,nfft,fm);
  188. s.plot = 'mag'; % Piesiama tik magnitude
  189. s.xunits = 'khz'; % Dazniu asis Hz
  190. s.yunits = 'squared'; % Magnitude staciakampese koordinatese
  191. figure(13)
  192. freqzplot(h1,f,s); % Filtro daznine ch-ka
  193. box off
  194.  
  195. % 16 uzduotis
  196.  
  197. SKA_filt = filter(b1,a1,SAK);
  198. figure(14);
  199. plot(t(1:N1), SKA_filt(1:N1)); title('SAK isvesties signalas'); box off
  200. set(gca,'FontSize',12); axis tight;
  201.  
  202. % 17 uzduotis
  203.  
  204. df = 1/T; % dazniu asies zingsnis
  205. Nf = fix(fm/df); % reiksmiu skaicius spektre
  206. fasis = (0:Nf)*df; % dazniu asies reiksmes
  207. Ysp = abs(fft(y,Nf)); % skaiciuojame spektra
  208. Nvaizd = fix(Nf/2)+1; % vaizduojamu reiksmiu kiekis
  209. figure(15)
  210. stem(fasis(1:Nvaizd),Ysp(1:Nvaizd),'.'); box off
  211. set(gca,'FontSize',12); axis tight;
  212.  
  213. % 18 uzduotis
  214. df = 1/T; % dazniu asies zingsnis
  215. Nf = fix(fd/df); % reiksmiu skaicius spektre
  216. fasis = (0:Nf-1)*df; % dazniu asies reiksmes
  217. YDsp = abs(fft(yd,Nf)); % skaiciuojame spektra
  218. figure(16)
  219. stem(fasis,YDsp,'.'); box off
  220. set(gca,'FontSize',12); axis tight
  221.  
  222. % 19 uzduotis
  223.  
  224. df = 1/T; % dazniu asies zingsnis
  225. Nf = fix(fd/df); % reiksmiu skaicius spektre
  226. fasis = (0:Nf-1)*df; % dazniu asies reiksmes
  227. Yssp = abs(fft(Ys,Nf)); % skaiciuojame spektra
  228. figure(17)
  229. stem(fasis,Yssp,'.'); box off
  230. set(gca,'FontSize',12); axis tight
  231.  
  232. % 20 uzduotis
  233.  
  234. df = 1/T; % dazniu asies zingsnis
  235. Nf = fix(fm/df); % reiksmiu skaicius spektre
  236. fasis = (0:Nf)*df; % dazniu asies reiksmes
  237. SAKsp = abs(fft(SAK,Nf)); % skaiciuojame spektra
  238. Nvaizd = fix(Nf/2)+1; % vaizduojamu reiksmiu kiekis
  239. figure(18)
  240. stem(fasis(1:Nvaizd),SAKsp(1:Nvaizd),'.'); box off
  241. set(gca,'FontSize',12); axis tight;
  242.  
  243. % 21 uzduotis
  244.  
  245. df = 1/T; % dazniu asies zingsnis
  246. Nf = fix(fm/df); % reiksmiu skaicius spektre
  247. fasis = (0:Nf)*df; % dazniu asies reiksmes
  248. SKA_filtsp = abs(fft(SKA_filt,Nf)); % skaiciuojame spektra
  249. Nvaizd = fix(Nf/2)+1; % vaizduojamu reiksmiu kiekis
  250. figure(19)
  251. stem(fasis(1:Nvaizd),SKA_filtsp(1:Nvaizd),'.'); box off
  252. set(gca,'FontSize',12); axis tight;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement