Transformata Fouriera - home.agh.edu.plhome.agh.edu.pl/~morchel/files/mownit2/zajecia11.pdf ·...

3
Transformata Fouriera Marcin Orchel 1 Zadania 1.1 Zadania na 3.0 Napisać skrypt w R. W skrypcie Dla sumy funkcji trygonometrycznych wykonać analizę częstotliwościową. Dodać szum do danych i powtórzyć eksperyment. Dokonać analizy częstotliwościowej na wybranym rzeczywistym szeregu czasowym z sezonowością. przetestować fft i operację odwrotną narysować wykres częstotliwości i amplitudy przetestować różne wartości fazy za pomocą atan2 dokonać transformacji dwuwymiarowej i trójwymiarowej obliczyć wspólczynnik Fouriera wybranej funkcji Dodać komentarz do skryptu opisujący krótko na czym polegają użyte metody oraz wnioski z badań. Wskazówki: http://www.wolframalpha.com/input/?i=sin+(x),+x+over+(0,1) jak wyplotować fazę https://www.gaussianwaves.com/2015/11/interpreting- fft-results-obtaining-magnitude-and-phase-information/ Wskazówki do R: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/fft.html https://stat.ethz.ch/R-manual/R-devel/library/stats/html/filter.html https://www.rdocumentation.org/packages/dtt/topics/dst 1

Transcript of Transformata Fouriera - home.agh.edu.plhome.agh.edu.pl/~morchel/files/mownit2/zajecia11.pdf ·...

Page 1: Transformata Fouriera - home.agh.edu.plhome.agh.edu.pl/~morchel/files/mownit2/zajecia11.pdf · Transformata Fouriera Marcin Orchel 1 Zadania 1.1 Zadania na 3.0 NapisaćskryptwR.Wskrypcie

Transformata Fouriera

Marcin Orchel

1 Zadania

1.1 Zadania na 3.0

Napisać skrypt w R. W skrypcie

• Dla sumy funkcji trygonometrycznych wykonać analizę częstotliwościową.

• Dodać szum do danych i powtórzyć eksperyment.

• Dokonać analizy częstotliwościowej na wybranym rzeczywistym szeregu czasowymz sezonowością.

• przetestować fft i operację odwrotną

• narysować wykres częstotliwości i amplitudy

• przetestować różne wartości fazy za pomocą atan2

• dokonać transformacji dwuwymiarowej i trójwymiarowej

• obliczyć współczynnik Fouriera wybranej funkcji

• Dodać komentarz do skryptu opisujący krótko na czym polegają użyte metodyoraz wnioski z badań.

Wskazówki:

• http://www.wolframalpha.com/input/?i=sin+(x),+x+over+(0,1)

• jak wyplotować fazę https://www.gaussianwaves.com/2015/11/interpreting-fft-results-obtaining-magnitude-and-phase-information/

Wskazówki do R:

• https://stat.ethz.ch/R-manual/R-devel/library/stats/html/fft.html

• https://stat.ethz.ch/R-manual/R-devel/library/stats/html/filter.html

• https://www.rdocumentation.org/packages/dtt/topics/dst

1

Page 2: Transformata Fouriera - home.agh.edu.plhome.agh.edu.pl/~morchel/files/mownit2/zajecia11.pdf · Transformata Fouriera Marcin Orchel 1 Zadania 1.1 Zadania na 3.0 NapisaćskryptwR.Wskrypcie

• https://www.rdocumentation.org/packages/fftwtools/topics/fftw

• alternatywnie do fft można użyć polecenia https://stat.ethz.ch/R-manual/R-devel/library/stats/html/spectrum.html

• atan2, https://stat.ethz.ch/R-manual/R-devel/library/base/html/Trig.html

• Re, Im, Mod, https://stat.ethz.ch/R-manual/R-devel/library/base/html/complex.html

• http://www.di.fc.ul.pt/~jpn/r/fourier/fourier.html

Wskazówki do Matlaba:

• można dokonać analizy za pomocą sptool

• http://www.mathworks.com/help/matlab/ref/fft.html

Przykłady w R

• plot.frequency.spectrum <- function(X.k, xlimits=c(0,length(X.k))){

plot.data <- cbind(0:(length(X.k)-1), Mod(X.k)/length(X.k))plot.data[2:length(X.k),2] <- 2*plot.data[2:length(X.k),2]plot(plot.data, t="h", lwd=2, main="",

xlab="Frequency (Hz)", ylab="Strength",xlim=xlimits, ylim=c(0,max(Mod(plot.data[,2]))))

}acq.freq <- 100time <- 6ts <- seq(0,time-1/acq.freq,1/acq.freq)f.0 <- 1/timedc.component <- 1component.freqs <- c(3,7,10)component.delay <- c(0,0,0)component.strength <- c(1.5,.5,.75)f <- function(t,w) { dc.component +

sum( component.strength * sin(component.freqs*w*t +component.delay))

}w <- 2*pi*f.0trajectory <- sapply(ts, function(t) f(t,w))head(trajectory,n=30)X.k <- fft(trajectory)plot.frequency.spectrum(X.k, xlimits=c(0,20))

• wyplotowanie przesunięcia

2

Page 3: Transformata Fouriera - home.agh.edu.plhome.agh.edu.pl/~morchel/files/mownit2/zajecia11.pdf · Transformata Fouriera Marcin Orchel 1 Zadania 1.1 Zadania na 3.0 NapisaćskryptwR.Wskrypcie

X2<-X.kX2[abs(X.k) < 0.01] <- 0phase=atan2(Im(X2),Re(X2))plot(phase)

1.2 Zadania na 4.0

• Dokonać porównania dwóch sygnałów w Matlabie.

Wskazówki:

• http://www.mathworks.com/help/signal/examples/measuring-signal-similarities.html?prodcode=SG&language=en

1.3 Zadania na 5.0

• Dokonać analizy częstotliwościowej wybranego sygnału rzeczywistego w Matlabie.

3