Ćwiczenie 5 Analiza DFT i FFT sygnałów. Właściwości DFT i FFT.
Transkrypt
Ćwiczenie 5 Analiza DFT i FFT sygnałów. Właściwości DFT i FFT.
Ćwiczenie 5 Analiza DFT i FFT sygnałów. Właściwości DFT i FFT. Wstęp Zapoznać się funkcjami fft, abs, angle, fftshift , chirp, sinc, rectpuls, tripuls sum, sound, wavread, wavwrite 1. Dla zadanych parametrów przeprowadzić analizę DFT lub FFT sygnałów: a) x(t) = 0.4sin(2πf1t + φ1) + 0.8cos(2πf2t + φ2) + 0.5cos(2πf3t + φ3) , (dla t>0), f1 = 1kHz, f2 = 2.2kHz, f3 = 3.3kHz , fs = 10kHz, N=100 b) liniowo modulowany sygnał chirp o czasie trwania 5s. - b.1) fmin= 1 fmax = 3kHz . Liczbę próbek N obliczyć na podstawie długości sygnału. - b.2) Ustawić fmax na 6kHz i odsłuchać sygnał. Zmieniać częstotliwość (zwiększać i zmniejszać) i porównać z widmem amplitudowym z pkt. b.1 . Jakie zjawisko ilustruje ten przykład? do generowania wykorzystać funkcję chirp() , odsłuchać sygnał poleceniem sound() pamiętając o wpisaniu odpowiednich parametrów (cz. próbkowania) , c) sygnał sinc (Sa) o czasie trwania 5s, wykorzystać funkcję sinc() 𝑥(𝑡) = 𝑠𝑖𝑛(2 ∙ 𝑓𝑜 ∙ 𝑡) 2 ∙ 𝑓0 ∙ 𝑡 przyjąć f0 = 2kHz c.1) aperiodyczny sygnał prostokątny – zmieniać czas trwania sygnału – jak zmienia się widmo amplitudowe? c2) aperiodyczny sygnał trójkątny – zmieniać czas trwania sygnału – jak zmienia się widmo amplitudowe? Jaką właściwość (właściwośći) transformaty Fouriera ilustruje ten przykład? d) sygnał modulowany amplitudowo: 𝑠𝑖𝑛(2 ∙ 𝑓𝑜 ∙ 𝑡) 𝑥(𝑡) = ∙ sin(2𝜋𝑓𝑚𝑜𝑑 𝑡) 2 ∙ 𝑓0 ∙ 𝑡 przyjąć fmod 100Hz, 500Hz, 1000Hz, Jaką właściwość transformaty Fouriera ilustruje ten przykład? e) sygnał prostokątny o częstotliwości podstawowej 1kHz aproksymowany szeregiem Fouriera i ten sam sygnał wygenerowany funkcją sawtooth(). Czy zmienia się widmo amplitudowe tego sygnału w zależności od częstotliwości próbkowania (poniżej częstotliwości Nyquista)? Jeśli tak to w jaki sposób i dlaczego? Jaką podstawową właściwość wykazują wszystkie widma amplitudowe sygnałów o prążkach od 0 – (N-1) 2. Zmieniać wartość fs i N obserwować widmo amplitudowe i fazowe zadanych w pkt 1 sygnałów. Co się stanie jeśli niespełnione zostanie kryterium Nyquista? Zmieniać tak wartości f1, f2 i f3 sygnału a) aby zaobserwować przeciek DFT. Jak go minimalizować? Zapoznać się i wykorzystać funkcję wybranych okien. Wykaz podstawowych funkcji okien uzyskać można po wpisaniu w wiersz poleceń komendy help window - poddać analizie FFT okresowy sygnał prostokątny o współczynniku wypełnienia 10%. Jak zmieni się widmo amplitudowe gdy podana częstotliwość nie będzie całkowitą wielokrotnością (fs/N) ? Jak funkcja okna wpływa na widmo amplitudowe tego sygnału? 3. Zmieniając parametry sygnału c) (fo) zaobserwować własnościowości widma amplitudowego i fazowego idealnego sygnału dolnopasmowego dyskretnego. 4. Zmieniając parametry sygnału d) fo i fmod zaobserwować własnościowości widma amplitudowego i fazowego idealnego sygnału dolnopasmowego zmodulowanego amplitudowo. 5. *** NIEOBOWIĄZKOWE 5.1 Za pomocą polecenia wavread() wczytać plik sound1.wav - wykreślić widmo amplitudowe tego sygnału. - napisać funkcję , zmieniającą częstotliwość próbkowania tego sygnału. - wyświetlić widmo amplitudowe sygnału spróbkowanego z niższą częstotliwością. Jak zmieniło się widmo amplitudowe i jakie są wrażenia akustycznie po zmniejszeniu częstotliwości próbkowania? 5.2 Powtórzyć kroki z pkt. 5.2 dla pliku sound2.wav - jakie zjawisko zaobserwowano ? ---------m – plik do przykładu 1.a clc clear fs = 10000; %probkowanie sygnalu!!!!!!!!!!!! dt = 1/fs; %dt f1 = 1000; a1 = pi/2; %czestotliwosc i faza f2 = 2200; a2 = pi/2; f3 = 3300; a3 = pi/2; N n t x = = = = 100; %liczba próbek wejsciowych!!!!!!!!!!! 0:N-1; 0:dt:(dt*(N-1)); sin(2*pi*f1*t+a1)+ 0.7*sin(2*pi*f2*t+a2)+0.4*sin(2*pi*f3*t+a3); subplot(3,1,1),plot(t,x),grid on, title('Sygnal'); Y=0; for k=0: N-1 , Y= x.*exp(-j*2*pi*n*k/N ) ; % w tym miejscu obliczana jest suma dla n=0, n=1, n = %N-1 ... X(k+1)= round (sum(Y) * 10000 ) / 10000 ; % w tym miejscu obliczana jest wartosc k%tego prazka dft (sumowanie po wszystkich k ) end k=0:N-1; w = k * fs / N; subplot(3,1,2), stem(w(1:N/2),abs(X(1:N/2))), grid on, title('Widmo Ampl'); subplot(3,1,3), stem(w(1:N/2),angle(X(1:N/2))), grid on,title('Widmo Faz');