WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Matlab rechnet fft2 falsch..?

 

popwimiberlin
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 12.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.07.2013, 15:21     Titel: Matlab rechnet fft2 falsch..?
  Antworten mit Zitat      
Hallo,
Ich denke dass mein Matlab die 2dimensionale FFT falsch berechnet.
Mir ist schon klar, dass das eine ganz schöne Mutmaßung ist, aber wie komme ich darauf? und zwar gilt laut Matlab-Hilfe:
Zitat:
fft2(X) can be simply computed as
fft(fft(X).').'


und das kann man ja problemlos ausprobieren. Bei mir gilt das aber nur für Matrizen bis 64x64, ab 128x128 unterscheiden sich die Ergebnisse, nicht riesig, aber sie tun es und interessanterweise nur in der einen Hälfte der Matrix.

Code:
a1=rand(2^6);
all(all(fft2(a1)==(fft(fft(a1).').'))) %-> true
a2=rand(2^7);
all(all(fft2(a2)==(fft(fft(a2).').'))) %-> false


Mein Matlab ist 2009b. Könnte das mal jemand mit einer 2013er Version probieren, vielleicht bis 1024x1024 oder so?

Danke!
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 12.07.2013, 15:44     Titel:
  Antworten mit Zitat      
Beim mir - R2013a, Win64 - kommt bei dem Beispielcode beidesmal 1 raus.

Wenn die Unterschiede nicht riesig sind - wir gross sind sie denn? Einfach ein paar Vielfache von EPS?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
popwimiberlin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 12.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.07.2013, 15:55     Titel:
  Antworten mit Zitat      
ok, habe es nochmal auf R2011a versuchen können, gleicher Fehler aber erst bei größeren matrizen:

Code:

a1=rand(2^6);
f11=fft2(a1);
f12=(fft(fft(a1).').');
all(all(f11==f12)) %-> true, alles schick
a2=rand(2^10);
f21=fft2(a2);
f22=(fft(fft(a2).').');
all(all(f21==f22)) %-> false, und zwar wie groß etwa?
max(abs(f21(:)-f22(:))) %-> ca. 3e-13

und auch hier nur in der einen Hälfte, siehe Anhang als Ergebnis von:
Code:

edit: R2009b war 32bit, R2011a war 64 bit

fft2.png
 Beschreibung:
imagesc(abs(f21-f22))

Download
 Dateiname:  fft2.png
 Dateigröße:  145.43 KB
 Heruntergeladen:  1403 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.07.2013, 09:09     Titel:
  Antworten mit Zitat      
Mit dem letzten Code bekomme ich:

Code:

ans =
     1
ans =
     0
ans =
   3.5951e-13
 


Also auch Unterschiede, aber winzig klein. Geht es jetzt um Erklärung der Effekte oder entstehehen dadurch irgenwelche Probleme?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
nolimits
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 21.08.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.07.2013, 15:44     Titel:
  Antworten mit Zitat      
stichwort annäherung?
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 22.07.2013, 23:17     Titel:
  Antworten mit Zitat      
Hallo nolimits,

Ich verstehe das Stichwort nicht. Kannst Du das näher erklären?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
nolimits
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 21.08.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.07.2013, 01:43     Titel:
  Antworten mit Zitat      
naja, es wird halt in der numerik alles angenähert. pi = 3.14 und so... vbllt liegt der fehler in einer näherung bei matlab? 10-^13 is wirklich klein btw ...
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 24.07.2013, 14:27     Titel:
  Antworten mit Zitat      
Meine Frage war als höflichere Version von "Wen schert's?" zu verstehen ohne zu arrogant zu sein... Ich kenne kein damit verbundenes, "richtiges" Problem, würde es aber natürlich ernst nehmen.

Es gibt halt eine Vielzahl numerischer Effekte die zu so kleinen Abweichungen führen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 26.07.2013, 17:50     Titel:
  Antworten mit Zitat      
Hallo Andreas,
Zitat:
Es gibt halt eine Vielzahl numerischer Effekte die zu so kleinen Abweichungen führen.

Ich würde es sogar so sage: Wenn es keine Abweichungen durch die begrenzte Genauigkeit gibt, ist es keine "Numerik" sondern "richtige Mathematik".

Möglicherweise haben meine ehemaligen Professoren für Numerik und für Angewandte Methdematik da leicht abweichende Ansichten :-)

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.