Fourier-muunnos

Ymmärrän Fourier-muunnoksen perusperiaatteen, ja muistaakseni joskus tällaisia jatkuvia muunnoksia laskenutkin. Voisiko joku selventää minulle, että kuinka tämän funktion ( http://docs.scipy.org/doc/numpy/reference/generated/numpy.fft.fft.html ) palautetta tulisi käyttää kun haluan konstruktoida alkuperäisen funktion?

>>> np.fft.fft(np.exp(2j * np.pi * np.arange(8) / 8))
array([ -3.44505240e-16 1.14383329e-17j,
8.00000000e 00 -5.71092652e-15j,
2.33482938e-16 1.22460635e-16j,
1.64863782e-15 1.77635684e-15j,
9.95839695e-17 2.33482938e-16j,
0.00000000e 00 1.66837030e-15j,
1.14383329e-17 1.22460635e-16j,
-1.64863782e-15 1.77635684e-15j])

Eli jos haluaisin määrittää vaikkapa funktion (π-x)^2 0
3455
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

Pistät jonon takaisin fft-ohjelmaan ja pyöräytät uudestaan takaperin.
Tai sitten ihan käsipelillä lasket nuo kosini- ja sinitermit.

Äänestä

Näemmä tällä suomi24-palstalla on joku merkistöongelma, koska keskustelut katkeavat hallitsemattomasti jonkinlaisesta erikoismerkistä. Alkuperäinen viestini jatkui vielä että jos haluaisin esimerkkinä määrittää funktion (pi-x)**2, kun 0 < x < 2*pi Fourier-sarjan, niin kuinka tuo tulisi tehdä. Kun lasketut kertoimet sijoitetaan Fourier-kehitelmään, saadaan S(x) = pi**2/3 sigma 4/k**2*cos(kx) josta riittävästi termejä ottamalla saadaan piirtämällä alkuperäisen näköinen kuvaaja, eli homma siis pelaa. Jos nyt sitten käytän tuota edellä mainittua diskreettiä algoritmiä, eli

>>> x = np.linspace(0,2*pi,10)
>>> np.fft.fft((pi-x)**2)
array([ 4.021e 01 0.000e 00j, 2.308e 01 7.500e 00j,
4.617e 00 3.354e 00j, 1.286e 00 1.771e 00j,
2.573e-01 7.918e-01j, 6.883e-15 6.661e-15j,
2.573e-01 -7.918e-01j, 1.286e 00 -1.771e 00j,
4.617e 00 -3.354e 00j, 2.308e 01 -7.500e 00j])

saan kyllä kertoimia, mutta tässä vaiheessa loppuu tietämys että kuinka ja millä kaikilla tavoilla voin näitä kertoimia käyttää. Kuten jo tulikin vastaus, näitä ja sini- ja kosinitermejä yhdistämällä pitäisi päästä approksimaatioon lähtötilanteesta mutta kaipaisin nyt hieman rautalankaisempaa vastausta koska aihealue on minulle melko vieras.

Se mitä minä nyt yritän oikeasti tehdä, on määrittää aaltoyhtälön ominaismuotojen kertoimia. Alkutila tulisi kehittää Fourier-sarjaksi ja kantafunktioina käyttää ominaismuotoja. Olen ilmeisesti aivan oikeilla jäljillä mutta koska Fourier-muunnokset eivät ole ennen tulleet vastaan niin olen rehellisesti sanottuna melko pihalla aiheesta.

Äänestä

Käyttämääsi FFT-ohjelmaa en tunne, mutta minulla on omatekemä, joka laskee muunnoksen ja käänteismuunnoksen. Itse asiassa FFT:llä on semmoinen ominaisuus, että sama ohjelma pienellä säädöllä laskee molemmat muunnokset samallla algoritmillä. FFT:llä voi veivata edestakaisin aika- ja taajuusavaruuden välillä. Tietysti laskentatarkkuuden rajoissa.

Ei FFT-ohjelman teko kauan kestä, jos ei mitään hienouksia halua.Varmaankin löytyy valmiita listauksia, joista voi ottaa mallia.

Suosittelen jotain matikan oppikirjaa. Täällä on hiukan hankalaa lähteä paneutumaan FFT-ohjelmien yksityiskohtiin.

Äänestä

Kommentoi aloitusta


Fyrieer kirjoitti:

Ymmärrän Fourier-muunnoksen perusperiaatteen, ja muistaakseni joskus tällaisia jatkuvia muunnoksia laskenutkin. Voisiko joku selventää minulle, että kuinka tämän funktion ( http://docs.scipy.org/doc/numpy/reference/generated/numpy.fft.fft.html ) palautetta tulisi käyttää kun haluan konstruktoida alkuperäisen funktion?

>>> np.fft.fft(np.exp(2j * np.pi * np.arange(8) / 8))
array([ -3.44505240e-16 1.14383329e-17j,
8.00000000e 00 -5.71092652e-15j,
2.33482938e-16 1.22460635e-16j,
1.64863782e-15 1.77635684e-15j,
9.95839695e-17 2.33482938e-16j,
0.00000000e 00 1.66837030e-15j,
1.14383329e-17 1.22460635e-16j,
-1.64863782e-15 1.77635684e-15j])

Eli jos haluaisin määrittää vaikkapa funktion (π-x)^2 0

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu