Re: Problem with Fourier
- To: mathgroup at smc.vnet.net
- Subject: [mg43972] Re: Problem with Fourier
- From: "Robert Nowak" <robert.nowak at ims.co.at>
- Date: Thu, 16 Oct 2003 04:16:04 -0400 (EDT)
- References: <bmj2bi$pq2$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
hello miro, try to analyze data4=Table[Sin[x], {x,0,2*PI,0.5}]; data5=Table[Sin[x], {x,0,4*PI,0.5}]; data6=Table[Sin[x], {x,0,6*Pi,0.5}]; for data4 you will get your maximum at positon 2 and n because the data represents a harmonic with the basic frequency for data5 you will get your maximum at positon 3 and n-1 because the data represents a harmonic with twice the basic frequency for data6 you will get your maximum at positon 4and n-2because the data represents a harmonic with tripple the basic frequency any dc component in the data would be at position 1. your data sets are not pure harmonic (because you truncate at a position not equal to m*2Pi) so you get some curved spectra. regards robert >"Miroslav Kobas" <miroslav.kobas at mat.ethz.ch> wrote in message news:bmj2bi$pq2$1 at smc.vnet.net... > Hello all > > It seems to me that Mathematica 5.0 calculates somehow strange the > discrete Fourier transform of a list of data, or i do not really > understand the maths behind it. > I would expect that the discrete Fourier transform of a finite object > shows maxima in Fourier space at the integer reciprocal indices. But > this does not seem to be the case in the following very simple examples. > The first Table (data1) shows maxima in Fourier space at points 1 and > 17, the second Table (data2) at points 3 and 20 and the third Table > (data3) at points 4 and 39. How is this possible, shouldn't the maxima > in Fourier space always be located at the first and last point. > According to this, the maxima in Fourier space can be shifted by > changing the resolution in direct space. > > thanks for hints > > miroslav kob > as > > data1= Table[Sin[x], {x,0,0.5*¥ð,0.1}]; > data2=Table[Sin[x], {x,0,10,0.5}]; > data3=Table[Sin[x], {x,0,20,0.5}]; > > ListPlot[Abs[Fourier[data1]], PlotStyle -> PointSize[0.02], > AxesOrigin -> {1, 0}, PlotRange -> All]; > ListPlot[Abs[Fourier[data2]], PlotStyle -> PointSize[0.02], > AxesOrigin -> {1, 0}, PlotRange -> All]; > ListPlot[Abs[Fourier[data3]], PlotStyle -> PointSize[0.02], > AxesOrigin -> {1, 0}, PlotRange -> All]; >