Dźwięk - Transformata Fouriera
Zadanie 1 (1 punkt)
- Narysuj funkcję $f$ równą 1 w przedziale [0,pi] i -1 w przedziale [pi,2pi].
- Narysuj rozwinięcie tej funkcji w szereg Fouriera (sin).
-
t <- seq(0, 2*pi, 0.001) len <- length(t) data1 <- t; for(i in (1:len)){ if( t[i] < pi ){ data1[i] = 1 }else{ data1[i] = -1 } } ts.plot(data1,type='l', lwd=1, col="red",xlab="Czas w sekundach") f1 = sin(t) f2 = (1/3)*sin(3*t) f3 = (1/5)*sin(5*t) f4 = (1/7)*sin(7*t) f = f1+f2+f3+f4 ts.plot(data1,ts(f1),ts(f2),ts(f3),ts(f4),ts(f),type='l', lwd=1, col=1:6,xlab="Czas w sekundach")
- jeśli przyjmiemy że funkcjami bazowymi są w tym przypadku funkcje sinus o wzrastającej częstotliwości (funkcje harmoniczne), to można uznać że dokonaliśmy przejścia z dziedziny czasu na dziedzinę częstotliwości
Zadanie 2 (1 punkt)
-
Wygeneruj i narysuj sygnał o:
- amplitudzie jeden (A = 1)
- zerowym przesunięcie w fazie (phi = 0)
- częstotliwości 3 Hz
-
Wygeneruj i narysuj sygnał o:
- amplitudzie jeden (A = 1)
- zerowym przesunięcie w fazie (phi = 0)
- częstotliwości 5 Hz
- Wygeneruj i narysuj sygnał będący sumą powyższych.
Zadanie 3 (1 punkt)
-
Wygeneruj sygnał o:
- amplitudzie jeden (A = 1)
- zerowym przesunięcie w fazie (phi = 0)
- częstotliwości 25 Hz
-
Wygeneruj sygnał o:
- amplitudzie jeden (A = 1)
- zerowym przesunięcie w fazie (phi = 0)
- częstotliwości 40 Hz
- Wygeneruj sygnał będący sumą powyższych.
-
Dokonaj FFT (przy rysowaniu weź moduł gdyż dane mogą być zespolone).
Modułu z tablicy liczb zespolonych y można obliczyć
sqrt(as.matrix(y)* Conj(y));
Narysuj wykres (w dziedzinie częstotliwości).
Odczytaj jakie częstotliwości posiada sygnał.fft( ... , inverse = FALSE)
-
Dokonaj IFFT.
fft(.., inverse = TRUE)
Narysuj wykres (w dziedzinie czasu).
Sprawdź jak sygnał został zmodyfikowany.
Zadanie 4 (1 punkt)
-
Wygeneruj sygnał o:
- amplitudzie zerowej (A = 1)
- zerowym przesunięcie w fazie (phi = 0)
- częstotliwości 25 Hz
-
Wygeneruj sygnał o:
- amplitudzie zerowej (A = 1)
- zerowym przesunięcie w fazie (phi = 0)
- częstotliwości 40 Hz
- Wygeneruj sygnał będący sumą powyższych.
- Dodaj szum typu Gaussa.
-
Dokonaj FFT (przy rysowaniu weź moduł gdyż dane mogą być zespolone).
Narysuj wykres (w dziedzinie częstotliwości).
Odczytaj jakie częstotliwości posiada sygnał. - Porównaj wykres transformaty Fouriera (z szumem Gaussa) z tym z poprzedniego zadania.
- Prostym progowaniem usuń szum - wartości po niżej jakiejś progu.
-
Dokonaj IFFT na danych po progowaniu.
Narysuj wykres (w dziedzinie czasu).
Sprawdź jak sygnał został zmodyfikowany.
Zadanie 5 (2 punkt)
- Zaimportuj dane: data.txt
-
Oryginalnie dane pochodziły z sygnału o trzech częstotliwościach.
Znajdź je !!! -
Dane oczywiście są zaszumione.
Odzyskaj oryginalne dane!!!