rootuss

furier1

Oct 28th, 2019
207
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. %-----------widmo amplitudowe sygnału w zakresie 0 do fp-----------
  2.  
  3. clear; %czyszcenie pamieci programu
  4.  
  5. %------------------------------------------
  6. %parametry osi czasu, generowanie osi czasu
  7. %------------------------------------------
  8. N=200; %200 próbek %200 jest,ale tam niżej 1024 bo tak woli algorytm
  9. fp=1000; %częstotliwośc próbkowania
  10. t=0  :  1/fp : (N-1)/fp;
  11.  
  12. %--------------------
  13. %suma sinusów i szumu
  14. %--------------------
  15. x=6*sin(2*pi*250*t)+ 2*sin(2*pi*350*t)+ 0*randn(1,N);
  16.                     %ostatnie to szum biały z A=0, jak damy duzo (np. 10) to na dolnym wykresie to
  17.                     %zniknac moze drugi nizszy prazek
  18.  
  19. subplot(211);       %dzieli okno na macierz (2 wiersze, 1 kolumna, sygnał wyświetli się w 1 miejscu)
  20. plot(t,x);  
  21. xlabel ('czas [s]');
  22. ylabel ('sygnal');
  23.  
  24. %-----
  25. %widmo
  26. %-----
  27. Nf=1024;                        %widmo zespolone
  28.                                 %Nf to dług. transformaty (1024 jest
  29.                                 %dlatego, ponieważ dla algorytmu RADIX 2
  30.                                 %musi być to potęgą liczby 2 (200<1024 zatem ok)
  31.                                  
  32. v=fft (x,Nf);                   %widmo amplitudowe
  33.                                 %Forurier Fast Transformate
  34.                                 % x-sygnał,
  35.                                 % Nf-dlugość transformaty Fouriera
  36.  
  37. w=abs(v);                       %moduł transfromaty Fouriera
  38. %w=unwrap(angle(v));            %angle liczy kąt od tyłu a unwrap to
  39.                                 % naprawia i podaje właściwy kąt
  40. %w=real(v);                      %zwraca cz. rzeczywistą l. zesp z transformaty
  41. %w=img(v);                       %zwraca cz. zespoloną l. zesp z transformaty
  42.                                
  43. f=linspace(0,fp*(Nf-1)/Nf,Nf);  %generowanie osi częstotliwości
  44.                                    %linspace(a,b,c)
  45.                                 %generujemy sygnał od a do b (na osi Y) z c
  46.                                 %liczb na osi X
  47.  
  48. subplot(212);                   %dzieli okno na macierz (2 wiersze, 1 kolumna, sygnał wyświetli się w 2 miejscu)
  49.  
  50. plot(f,w)
  51. xlabel('czestotliwosc [HZ]');
  52. xlabel('modul widma');
RAW Paste Data