Ik zoek een 2d-fft routine in basic

Moderators: jkien, Xilvo

Berichten: 114

Ik zoek een 2d-fft routine in basic

LS,

ik doe met mijn radio-telescoop metingen aan ruisbronnen aan de hemel ( 35 MHz) . Het totaal van mijn metingen geven een x-y matrix van getallen.

ik moet op deze matrix een 2D-FFT (en evt een inverse 2D-FFT) loslaten om een kaart van de hemel te maken.

Als ik de theorie van 2D-FFT op het internet lees, snap ik er niets van.

Dus als iemand me een routine (geschreven in Basic) kan aanreiken zou ik dit probleem kunnen oplossen.

(Routines geschreven in C kan ik wel vinden, maar helaas.....)

een duidelijke uitleg hoe ik het zelf moet programmeren is ook voldoende.

Ik snap dat de input van de routine een IN(i,j) is en de output een UIT(i,j) is.

Wie kan me helpen?

Vast mijn dank

Wim Apon

Gebruikersavatar
Berichten: 24.578

Re: Ik zoek een 2d-fft routine in basic

Dit lijkt me weinig analyse maar vooral een praktisch/technisch probleem; ik verplaats je topic even.
"Malgré moi, l'infini me tourmente." (Alfred de Musset)

Berichten: 114

Re: Ik zoek een 2d-fft routine in basic

Na lang zoeken en lezen op het internet begrijp ik dat je eerst op elke horizontale rij getallen een FFT moet loslaten, en vervolgens

op elke vertikale kolom van de resultaten een FFT moet loslaten.

ik snap alleen niet wat de horizontale FFt moet afgeven: freq spectrum of fase, of zelfs gewoon beide REX(i) en IMX(i)

Ik kom zo niet verder...

Wie of wie?

Gebruikersavatar
Berichten: 5.609

Re: Ik zoek een 2d-fft routine in basic

Na lang zoeken en lezen op het internet begrijp ik dat je eerst op elke horizontale rij getallen een FFT moet loslaten, en vervolgens op elke vertikale kolom van de resultaten een FFT moet loslaten.
Dat lijkt me complete nonsens.

Het meest praktisch lijkt me dat je zelf het algrotime in c probeert te begrijpen en vervolgens omzet naar een algoritme in BASIC.
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-

Gebruikersavatar
Berichten: 5.609

Re: Ik zoek een 2d-fft routine in basic

ik snap alleen niet wat de horizontale FFt moet afgeven: freq spectrum of fase, of zelfs gewoon beide REX(i) en IMX(i)
Als resultaat krijg je ook een spatiale frequentieverdeling.

Dus van een 1D signaal krijg je 1 rij imaginaire getallen. Dit houdt feitelijk 2 rijen van reele getallen in: RE(i) en IM(i). Of als je wil 2 rijen van reele getallen: amplitude(i) en spectrum(i).

Als je een 2d fourier transformatie doet
Verborgen inhoud
(FFT is geen juiste benaming! Het is 2D-FT. Die FFT staat voor Fast Fourier Transformation, en werkt enkel in 1D).
dan kom je 1 matrix van imaginaire getallen uit, of als je wil, 2 matrixen van reele getallen. RE(i,j) en IM(i,j). Als je wil kun je die dan ook omzetten in een fase als spectrum, die echter ook nog steeds matrices zijn! dus Amplitude(i,j) en Fase(i,j)
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-

Berichten: 114

Re: Ik zoek een 2d-fft routine in basic

hoi 317070,

Dankjewel weer voor je antwoord.

Ik geloof dat ik niet helemaal duidelijk ben.....

Als de truuk gaat zoals ik het nu denk, is programmeren geen punt meer.

(trouwens omzetten vanuit c naar Basic heb ik al geprobeerd.....mislukt dus)

wat ik denk te gaan doen is:

ik pak eerst de eerste horizontale rij getallen. Daar doe ik een FFT op loslaten.. Hieruit komen dan 2 rijen getallen.

Daarna pak ik de tweede rij horizontale getallen...

Dan pak ik de derde.....

Ik doe dit dan tot en met de laatste rij horizontale getallen.

ik moet nu de horizontale rijen getallen vervangen door iets.... ik kan kiezen uit 5 mogelijkheden...

1. ik neem het re(i) array

2. ik neem het im(i) array

3. ik neem de amplitude ( dus berekend uit re(i) en im(i)

4. ik neem de fase (ook berekend uit re(i) en im(i)

5. ik zou zelfs elk getal kunnen vervangen door 2 getallen ( re(i) en im(i))

Nu ga ik om de beurt op alle vertikale kolommen met dus de nieuwe getallen een FFT loslaten.

Om nu het resultaat te krijgen, kan ik weer kiezen uit bovenstaande 5 mogelijkheden.

misschien is mogelijkheid 5 de beste, en doe ik op de vertikale kolommen, die dan uit 2 getallen bestaan een inverse FFT.....

er zijn te veel mogelijkheden om het even uit te proberen..

Dus vandaar mijn vraag...

(ik kom altijd wel met onmogelijke vragen he?)

Gebruikersavatar
Berichten: 5.609

Re: Ik zoek een 2d-fft routine in basic

Wimapon schreef:er zijn te veel mogelijkheden om het even uit te proberen..

Dus vandaar mijn vraag...
En wat wil je bereiken? Als je de 2D-FT wil doen zoals ik hem geleerd heb, en zoals hij ook op wikipedia beschreven staat, dan is je methode helaas 100% verkeerd en heb je hem nog niet begrepen, vrees ik. Om ieder component te berekenen zul je steeds de volledige matrix nodig hebben.

Als je iets anders wil bereiken, wat wil je dan precies bereiken? Kortom, waarvoor zou je die 2D-FT willen gebruiken? ;)
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-

Berichten: 114

Re: Ik zoek een 2d-fft routine in basic

hoi 317070

Wat ik wil bereiken is nogal ingewikkeld.....

Ik wil een kaart van de radiobronnen aan de hemel maken.

Ik doe volgens een regelmatig grid, elke dag een meting.

Het grid bestaat uit 16 bij 16 metingen. ( dus 256 dagen.........)

In dit grid krijgt elke node een waarde.

Als je nu een 2d-fft op dit grid loslaat zou je een kaartje (heel grof) van de hemel krijgen......

Ik snap niet precies hoe en waarom, maar ik zie op internet dat iemand het zo doet.

link: http://lea.hamradio.si/~s57uuu/astro/sidi1...aging/index.htm

Hij doet bijna hetzelfde alsik, alleen doet hij het op een veel hogere frequentie waardoor het allemaal wat sneller kan...en kijkt hij naar

hele sterke signalen van satelieten.

Hij doet om de paar seconden op elke node van het grid een meting...

als hij nu een 2d FFT op dit grid loslaat krijgt hij een nieuw grid..

als hij dit grid in grijstinten plot zie je een kaartje van de hemel..

Als hij deze meting (incl 2d fft ) op regelmatige tijd herhaalt en de resultaten plot zie je de gps satelieten met z'n allen voorbij komen.

Dit lijkt me het bewijs dat de methode werkt.

Dit doen is mijn uiteindelijke doel voor echte radiobronnen aan de hemel.

Ik moet wel bekennen, als het me lukt ben ik de eerste amateur in de wereld die een radiobronnen kaart van de hemel maakt op

de kortegolf.... je snapt dat ik nergens om raad kan vragen....ik moet het gewoon zelf uitzoeken.

Om een kort verhaal lang te maken; ik gebruik steeds 2 antennes die beiden hetzelfde signaal vanuit de hemel ontvangen.

Doordat de beide antennes op een zekere afstand van elkaar staan zal de fase van het ontvangen signaal verschillend zijn.

(Afhankelijk van de richting waarvan het vandaan komt)

Deze fase bepaal ik door een crosscorrelatie uit te voeren voor elke meting van 0,5 seconde bestaande uit 2 * 8 * 1024 getallen.

Elke minuut doe ik zo een meting... dus 1440 metingen per dag.

Doordat de aarde draait en mijn antennes op dezelfde plaats blijven staan zie je de fase steeds langzaam veranderen.

Deze info geeft aan waar de bron(nen) staan... niet ondubbelzinnig!

Elke dag zet ik de antennes op een andere plaats en afstand.... en doe dezelfde meting van een dag lang.

Voor elke dag verreken ik de tijd zodanig dat de hemel er op dat moment precies hetzelfde uitziet.

( de hemel ziet er elke dag ongeveer 4 minuten eerder weer precies hetzelfde uit)

Zo simuleer ik dus dat ik steeds op hetzelfde moment maar met een andere antenne afstand een meting doe.

Als ik nu al deze metingen met elkaar verreken, krijg ik een kaart van de hemel........

dit wordt dus het grid waarop ik een 2d fft moet loslaten .......

De profs van LOFAR doen het ook zo, alleen doen zij niet elke dag een meting met 2 antennes, maar

1 meting met 10 000 antennes op 1 moment en maken zo de kaart die ik ook wil maken.

Hun project kost 100 000 000 Euro en het mijne 1000 Euro...grin

je kunt wat meer info en vooral grafieken zien op mijn site: http://home.kpn.nl/apon001/huis.htm

kijk naar het menu-item: phasing interferometry.

(sorry, binnenkort komt er een ander url voor deze site..... kijk in dat geval op google en zoek op radioastronomisch en pa0slt)

ps als je nu nog niet horentorendol bent... ben je een wonder....

Wim

Berichten: 114

Re: Ik zoek een 2d-fft routine in basic

errata: zoek op google naar: waarnemingsstation pa0slt

Gebruikersavatar
Berichten: 5.609

Re: Ik zoek een 2d-fft routine in basic

Wimapon schreef:In dit grid krijgt elke node een waarde.

Als je nu een 2d-fft op dit grid loslaat zou je een kaartje (heel grof) van de hemel krijgen......

Ik snap niet precies hoe en waarom, maar ik zie op internet dat iemand het zo doet.

link: http://lea.hamradio.si/~s57uuu/astro/sidi1...aging/index.htm
Ik heb er eens naar gekeken, maar ik vind nergens de berekeningen die hij doet.

Ik zie dus niet goed in wat die 2D-FT daar doet ;)

Op zich slaat het op niets, omdat je de metingen in de ruimte doet, en via een 2d-FT zou je dus frequenties hebben, en zeker geen kaart van de hemel.

Maar een concreet voorbeeld van een 2d algoritme vind ik ook niet in een lagere taal. ;)
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-

Berichten: 114

Re: Ik zoek een 2d-fft routine in basic

hoi 317070

ik heb nog even opgezocht waar staat hoe je een 2d FFT moet doen.

link: http://www.xatlantis.ch/education/fft.html

Er staat het volgende stukje tekst in:

3.3 2D Transformation

Both classes (TSymetricFFT and TButterflyFFT) implement also the 2D FFT feature. The 2 dimensional transformation is mainly used for images. The procedure how to do that by your own is very simple. First you transform all rows of the 2D array. Then you transform all columns of the result again.

Hier haalde ik mijn kennis dus vandaan... Ik snap dus niet wat uit de eerste transformatie moet komen,,,, een frequentie, een fase , of gewoon de re(i) en im(i) array's.

ik ben al aan het programmeren met zomaar wat 2d-array's... maar ik ben er nog niet uit...

En, inderdaad hoe die kaart van de gps satelieten ontstaat, snap ik ook niet...

Ik zal hem een mailtje sturen en er naar vragen..

Ik ben bang dat hij een soort standaard software gebruikt, waarvan hij zelf ook niet weet hoe het werkt.....

Zoiets wordt me vanuit meerdere sterrenwachten aangeraden... maar ik wil het gewoon liever zelf

programmeren.. ( dan snap ik uiteindelijk beter wat ik aan het doen ben)

Het schijnt dat alle officiele sterrenwachten allemaal hetzelfde free-linux-programma gebruiken..ik heb het al

gedownload... maar dan moet ik ook nog eens overstappen op linux... en dat is meer iets voor de toekomst....

niet alles tegelijk..

(realiseer je dat ik erg dankbaar ben voor je voortdurende hulp!!!!)

Gebruikersavatar
Berichten: 5.609

Re: Ik zoek een 2d-fft routine in basic

Wimapon schreef:hoi 317070

ik heb nog even opgezocht waar staat hoe je een 2d FFT moet doen.

link: (realiseer je dat ik erg dankbaar ben voor je voortdurende hulp!!!!)
Geen probleem. Ik vind het enorm cool wat je probeert te doen ;) Trouwens, niet neerkijken op LOFAR. Wat die jongens voor elkaar krijgen is ongeloofelijk ;)

Als het ze lukt, is het een blueprint voor wat de grootste telescoop is die de mensheid de komende eeuwen gaat bouwen (groter dan de aarde gaat namelijk moeilijk)! En de uitdagingen die ze al overwonnen hebben zijn groter dan je op het eerste zicht zou denken. Om de data van de antennes bij het centrum te krijgen grenst al op de rand van het onmogelijke :)

Daarom dat ik ook zo geinteresseerd ben in uw project. Ik heb me al altijd afgevraagd wat de wiskunde erachter was, kan ik jou net zo goed helpen in het uitdokteren, niet?
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-

Berichten: 114

Re: Ik zoek een 2d-fft routine in basic

317070,

Geweldig, dan snijdt het mes aan 2 kanten...

Op het eerste deel van je reaktie kom ik nog terug.. ik moet er eerst nog eens heel diep over nadenken.....(grin)

Ik wil absoluut niet denigrerend over de jongens van lofar doen hoor...

Ik heb redelijke contakten met ze en ik heb een enorm respect voor wat ze aan het doen zijn.

Ze zijn al een keer hier naar mijn opstelling en apparatuur komen kijken.......

Ik kan niet goed inschatten wat ze van me denken....

Een van de mannen uit potsdam duitsland noemde me een "concurent" , maar dat was een grapje (denk ik).

Ik heb al op hun verzoek luchtfoto's van enkele antenne parken gemaakt. (met camera aan modelvliegtuigje)

de contakten met de techneuten lopen goed, maar met de astronomen wil het niet zo lukken.....

Ik wil me in elk geval niet opdringen, want ik ben tenslotte maar een lullig amateurtje...

Het is voor mij gewoon maar een combinatie van een aantal hobbies van me; electronica, radio, antennetechniek,

computer hardware, software en astronomie , en een van m'n grootste hobbies: dingen meten/zien/vinden die je niet kunt zien.

Berichten: 114

Re: Ik zoek een 2d-fft routine in basic

Hoi 317070,

Long time no see.

Eigenwijs als ik ben heb ik mijn berekeningsmethode toch doorgezet.

Het leuke is dat in nu resultaat heb!

Mijn manier van 2d-FFT geeft een mooie kaart van de hemel.

In Quick basic wilde het niet lukken.

Nu ben ik over gegaan op een moderne basic compiler ( Pure Basic) en heb ik

het 2d-fft programma 1 op 1 overgezet naar pure basic en nu gaat het goed.

Ik snap natuurlijk niet waarom het werkt, maar het werkt.

Ik heb het proefondervindelijk aan kunnen tonen door een ruis-zendertje op grote afstand van mijn telescoop

neer te zetten, te meten en dan een kaartje te maken.

De kaart die eruit kwam klopte precies.

Trouwens, als ik in het echt meet, zie ik de sterkste radio-sterren ook precies op de

plek waar ze horen......

Ik heb het allemaal op mijn site beschreven :

http://home.kpn.nl/apon001/huis.htm item now working on en phasing interferometry results.

Ofwel,,, ik snap er niets van, maar het werkt.....

Iets voor jouw om uit te zoeken waarom het werkt???

Groetjes

Wim

Gebruikersavatar
Berichten: 5.609

Re: Ik zoek een 2d-fft routine in basic

Wimapon schreef:Ik snap natuurlijk niet waarom het werkt, maar het werkt.

Ik heb het proefondervindelijk aan kunnen tonen door een ruis-zendertje op grote afstand van mijn telescoop

neer te zetten, te meten en dan een kaartje te maken.

De kaart die eruit kwam klopte precies.

Iets voor jouw om uit te zoeken waarom het werkt???
Ik vroeg me al af of je er nog mee doorging ;)

Ik vind de resultaten eerlijk gezegd nogal vreemd. ;)

Mijn vraagjes:

1) de pixels linksboven, in de rode cirkels, waarom zijn die daar? Die zie ik op nog andere afbeeldingen ook terugkomen...

2) in het roze, waarom is die map zo symmetrisch? Dat lijkt me vreemd. Wat is trouwens de grootheid op de horizontale en vertical as?

3) de bruine vraagteken, wat stelt die figuur voor?

4) Waarom is de resolutie zo ongelofelijk klein? Ik zou denken dat je met 4Gb aan data superscherpe afbeeldingen zou moeten kunnen maken, ook al zullen die nogal ruizig zijn.

5) zou je zo een dataset kunnen doorspelen aan mij ;) ? Ik zou ook eens willen kijken wat je uit die data kunt halen.

Afbeelding
What it all comes down to, is that I haven't got it all figured out just yet

And I've got one hand in my pocket and the other one is giving the peace sign

-Alanis Morisette-

Reageer