Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. % skrypt wyznacza widmo amplitudowe i fazowe
  2. % sygnalu bedacego suma dwoch sinusoid
  3. clear;
  4. f1=11; % 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=200; % 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. stem (f, xr(1:N21), 'g');
  39. hold on;
  40. xi = imag (widmo);
  41. stem (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(615);
  50. stem (f, widmo_amp(1:N21), 'k');
  51. ylabel ('|X|');
  52. subplot(616);
  53. stem (f, widmo_faz(1:N21), 'b');
  54. xlabel ('czestotl.[Hz]');
  55. ylabel ('arg(X)');
  56.  
  57. set (gcf,'Position',[50 50 800 700]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement