Advertisement
albert828

widmo amplitudowe, fazowe

Nov 23rd, 2017
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.37 KB | None | 0 0
  1. % skrypt wyznacza widmo amplitudowe i fazowe
  2. % sygnalu bedacego suma dwoch sinusoid
  3. clear;
  4. f1=39.5;    % czestotliwosc pierwszej sinosoidy
  5. A1=1;       % amplituda pierwszej sinusoidy
  6. phi1=0.4;   % faza pierwszej sinusoidy
  7.  
  8. f2=40% czestotliwosc drugiej sinosoidy
  9. A2=2;       % amplituda drugiej sinusoidy
  10. phi2=0;     % faza drugiej sinusoidy
  11.  
  12. N=200;      % dlugosc sygnalu
  13. fp=200;     % czestotliwosc probkowania
  14. Nf=N;     % d�ugo�� transformacji Fouriera
  15. % -------------------------------------------------------------------
  16. %       W tych warunkach odleg�o�� pomi�dzy pr��kami widma wynosi 1Hz
  17. % -------------------------------------------------------------------
  18.  
  19. % generuj os czasu
  20. t=0:1/fp:(N-1)/fp;
  21.  
  22. % generuj sygnal
  23. x=A1*sin(2*pi*f1*t+phi1)+A2*sin(2*pi*f2*t+phi2);
  24. subplot (311);
  25. plot (t,x);
  26. xlabel ('czas[s]');
  27. ylabel ('sygnal');
  28.  
  29. % wyznacz widmo
  30. widmo=fft(x, Nf) / Nf;
  31. N21 = Nf/2 + 1;
  32. f = linspace (0, fp/2, N21);
  33.  
  34. % wykres czesci rzeczywistej i urojonej
  35. xr = real (widmo);
  36. subplot (312);
  37. hold off;
  38. plot (f, xr(1:N21), 'g');
  39. hold on;
  40. xi = imag (widmo);
  41. plot (f, xi(1:N21), 'r');
  42. hold off;
  43. xlabel ('czestotl.[Hz]');
  44. ylabel ('re(X) & im(X)');
  45.  
  46. % wykres modulu i fazy widma
  47. widmo_amp=abs(widmo);
  48. widmo_faz=angle(widmo);
  49. subplot(313);
  50. plot (f, widmo_amp(1:N21), 'k');
  51. xlabel ('czestotl.[Hz]');
  52. ylabel ('|X|');
  53.  
  54. set (gcf,'Position',[50 50 800 700]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement