Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %%%%%%%%%%%%%%%%%%%% widmo amplitudowe sygnału w zakresie 0 do fp %%%%%%%%%%%%%%%%%%%%
- clear; %czyszcenie pamieci programu
- %------------------------------------------
- %parametry osi czasu, generowanie osi czasu
- %------------------------------------------
- N=200; %200 próbek %200 jest,ale tam niżej 1024 bo tak woli algorytm
- fp=1000; %częstotliwośc próbkowania
- t=0 : 1/fp : (N-1)/fp;
- %--------------------
- %suma sinusów i szumu
- %--------------------
- x=6*sin(2*pi*250*t)+ 2*sin(2*pi*350*t)+ 0*randn(1,N);
- %ostatnie to szum biały z A=0, jak damy duzo (np. 10) to na dolnym wykresie to
- %zniknac moze drugi nizszy prazek
- subplot(211); %dzieli okno na macierz (2 wiersze, 1 kolumna, sygnał wyświetli się w 1 miejscu)
- plot(t,x);
- xlabel ('czas [s]');
- ylabel ('sygnal');
- %-----
- %widmo
- %-----
- Nf=1024; %widmo zespolone
- %Nf to dług. transformaty (1024 jest
- %dlatego, ponieważ dla algorytmu RADIX 2
- %musi być to potęgą liczby 2 (200<1024 zatem ok)
- v=fft (x,Nf); %widmo amplitudowe
- %Forurier Fast Transformate
- % x-sygnał,
- % Nf-dlugość transformaty Fouriera
- w=abs(v); %moduł transfromaty Fouriera
- %w=unwrap(angle(v)); %angle liczy kąt od tyłu a unwrap to
- % naprawia i podaje właściwy kąt
- %w=real(v); %zwraca cz. rzeczywistą l. zesp z transformaty
- %w=img(v); %zwraca cz. zespoloną l. zesp z transformaty
- f=linspace(0,fp*(Nf-1)/Nf,Nf); %generowanie osi częstotliwości
- %linspace(a,b,c)
- %generujemy sygnał od a do b (na osi Y) z c
- %liczb na osi X
- subplot(212); %dzieli okno na macierz (2 wiersze, 1 kolumna, sygnał wyświetli się
- w 2 miejscu)
- plot(f,w) % f to krok, w to wartosc f dla poszczególnego kroku
- ylabel('czestotliwosc [HZ]');
- xlabel('modul widma');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement