Advertisement
rootuss

Gdu

Nov 13th, 2019
514
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.02 KB | None | 0 0
  1.  
  2. N=4000;
  3. fp=1000;
  4. t=0:1/fp:(N-1)/fp;
  5.  
  6. %sygnał - sinusoida o zmiennej częstotliwości
  7. x=chirp(t, 100, 4.0, 400);
  8. subplot(3,2,1);
  9. plot(t,x);
  10. xlabel('czas[s]');
  11. ylabel('sygnal');
  12.  
  13. %moduł widma
  14. Nf=2^12;
  15. N21=Nf/2+1;
  16. v=fft(x,Nf);
  17. wx=abs(v);
  18. f=linspace(0,fp/2,N21);
  19. subplot(3,2,2);
  20. plot(f,wx(1:N21));
  21. xlabel('czestotliwosc[Hz]');
  22. ylabel('modul widma');
  23.  
  24. %odpowiedź impulsowa
  25. M=201;
  26. h=fir1(M-1,0.5);
  27. th=0:1/fp:(M-1)/fp;
  28. subplot(3,2,3);
  29. plot(th,h);
  30. xlabel('czas[s]');
  31. ylabel('odp. impulsowa');
  32.  
  33. %moduł transmitancji
  34. v=fft(h,Nf);
  35. wh=abs(v);
  36. subplot(3,2,4);
  37. plot(f,wh(1:N21));
  38. xlabel('czestotliwosc[Hz]');
  39. ylabel('modul transmitancji');
  40.  
  41. %sygnał po filtracji
  42. y=filter(h,1,x);
  43. subplot(3,2,5);
  44. plot(t,y);
  45. xlabel('czas[s]');
  46. ylabel('sygnal po filtracji');
  47.  
  48. %widmo amplitudy po filtracji
  49. v=fft(y,Nf);
  50. wy=abs(v);
  51. subplot(3,2,6);
  52. plot(f,wy(1:N21));
  53. xlabel('czestotliwosc[Hz]');
  54. ylabel('widmo aplitudy po filtracji');
  55.  
  56.  
  57.  
  58. %część 2:
  59.  
  60. %[x,fpx]=wavread('/home/c/mbi04czap.wav');
  61. [x,fpx]=audioread('/mbi04czap.wav');
  62. Nx=length(x);
  63. tx=0:1/fpx:(Nx-1)/fpx;
  64. subplot(2,2,1);
  65. plot(tx,x);
  66. xlabel('czas[s]');
  67. ylabel('sygnal');
  68.  
  69. Nfx=2^15;
  70. N21x=Nfx/2+1;
  71. v=fft(x,Nfx);
  72. wx=abs(v);
  73. fx=linspace(0,fpx/2,N21x);
  74. subplot(2,2,2);
  75. plot(fx,wx(1:N21x));
  76. xlabel('czestotliwosc[Hz]');
  77. ylabel('modul widma');
  78.  
  79. dr=8;
  80. y=decimate(x,dr);
  81. Ny=length(y);
  82. fpy=fpx/dr;
  83. ty=0:1/fpy:(Ny-1)/fpy;
  84. subplot(2,2,3);
  85. plot(ty,y);
  86. xlabel('czas[s]')
  87. ylabel('sygnal po decymacji');
  88.  
  89. Nfy=2^13;
  90. N21y=Nfy/2+1;
  91. v=fft(y,Nfy);
  92. wy=abs(v);
  93. fy=linspace(0,fpy/2,N21y);
  94. subplot(2,2,4);
  95. plot(fy,wy(1:N21y));
  96. xlabel('czestotliwosc[Hz]');
  97. ylabel('modul widma sygnalu po decymacji');
  98.  
  99.  
  100.  
  101. %część 3:
  102.  
  103. %sinusoida
  104. N=4000;
  105. fp=10000;
  106. t=0:1/fp:(N-1)/fp;
  107. x=sin(2*pi*740*t);
  108. subplot(331);
  109. plot(t,x);
  110. xlabel('czas[s]');
  111. ylabel('sinus');
  112.  
  113. %histogram x
  114. subplot(332);
  115. nbins=51;
  116. hist(x,nbins);
  117. xlabel('wartosc probki');
  118. ylabel('liczba probek w przedziale');
  119.  
  120. % autokorelacja x
  121. subplot(333);
  122. kmax=1000;
  123. rx=xcorr(x,x,kmax); %(sygnał, sygnał, "jak daleko w przeszłość i przyszłość mamy patrzeć żeby szukać korelacji")
  124. tr=-kmax/fp:1/fp:kmax/fp;
  125. plot(tr,rx);
  126. xlabel('przesuniecie [s]');
  127. ylabel('autokorelacja');
  128.  
  129. %szum o rozkładzie równomiernym
  130. subplot(334);
  131. y=rand(1,N);
  132. plot(t,y);
  133. xlabel('czas[s]');
  134. ylabel('szum rownomierny');
  135.  
  136. %histogram y
  137. subplot(335);
  138. nbins=51;
  139. hist(y,nbins);
  140. xlabel('wartosc probki');
  141. ylabel('liczba probek w przedziale');
  142.  
  143. %autokorelacja y
  144. y=y-mean(y); % e
  145. subplot(336);
  146. ry=xcorr(y,y,kmax);
  147. plot(tr,ry);
  148. xlabel('przesuniecie [s]');
  149. ylabel('autokorelacja');
  150.  
  151. %szum o rozkładzie normalnym, szum Gaussowski
  152. subplot(337);
  153. z=randn(1,N);
  154. plot(t,z);
  155. xlabel('wartosc probki');
  156. ylabel('liczba probek w przedziale');
  157.  
  158. %histogram z
  159. subplot(338);
  160. nbins=51;
  161. hist(z,nbins);
  162. xlabel('wartosc probki');
  163. ylabel('liczba probek w przedziale');
  164.  
  165. %autokorelacja z
  166. subplot(339);
  167. rz=xcorr(z,z,kmax);
  168. plot(tr,rz);
  169. xlabel('wartosc probki');
  170. ylabel('liczba probek w przedziale');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement