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

FFT charakteristische Funktion zu Dichte

 

tino1988
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 17.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2014, 13:02     Titel: FFT charakteristische Funktion zu Dichte
  Antworten mit Zitat      
Servus!

Habe folgendes Problem: Möchte gerne beliebige charakteristische Funktionen in eine Dichte mit dem fft() Befehl umwandeln. Leider funktioniert es noch nicht so ganz. Der Plot ist entlang der Y-Achse verschoben:

Code:

N=2^15;

eta=0.4;
lambda=pi/(N/2 *eta);  %--> lambda*eta = 2pi/N

j=0:N-1;
k=0:N-1;


x=-0.5*N*lambda+lambda*k;

mu=0;sigma=1;

charF= @(t)1/(2*pi).*exp(1i.*mu.*t - sigma.^2*t.^2/2);
   
FFT_Input=  exp(0.5*1i*N*lambda*eta.*j).*charF(eta.*j).*eta;

A= real(fft(FFT_Input));

plot(x,real(A))
 


Die Fläche unter dem Graphen ergibt eins, das würde schon mal passen. Will ich mir aber die Wahrscheinlichkeit bestimmter Werte ausgeben lassen, also bspw. \Phi (2) ergibt sich laut NV Tabelle ein Wert von 0.9773. In meiner "Normalverteilung" kommen da je nach Rasterung komplett andere Werte raus.

Kann mir jemand helfen?
Private Nachricht senden Benutzer-Profile anzeigen


tino1988
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 17.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2014, 13:19     Titel:
  Antworten mit Zitat      
Vielleicht noch kurz zur Herleitung. Die richtet sich im Wesentlichen an das Vorgehen von Carr/Madan:


<br />
f(x) = \frac{1}{\pi} \int_0^\infty e^{-ixs}\psi(s) \text{d}s
<br />

Sei s=\eta (j-1):


<br />
f(x) = \frac{1}{\pi} \sum_{j=1}^N e^{-ix\eta (j-1)}\psi(s_j) \eta
<br />

Sei  x_k= -\frac{1}{2}N\lambda + \lambda(k-1) = -b + \lambda (k-1):


<br />
f(x_k) = \frac{1}{\pi} \sum_{j=1}^N e^{-i\lambda\eta(k-1) (j-1)}\cdot e^{ibs_j}\psi(s_j) \eta
<br />

Wähle \lambda, \eta so, dass gilt: \lambda\eta = \frac{2\pi}{N}:


<br />
f(x_k) = \sum_{j=1}^N e^{-i\frac{2\pi}{N}(k-1) (j-1)}\cdot e^{ibs_j}\psi(s_j) \eta
<br />
,

mit b=\frac{N\lambda}{2} und s=\eta (j-1)

Dadurch ist die charakteristische Funktion in einer Form, die in den
Code:
Befehl übergeben werden kann. Genauer gesagt wird (wie in meinem Code Beispiel)


<br />
 e^{ibs_j}\psi(s_j) \eta
<br />

übergeben.
Private Nachricht senden Benutzer-Profile anzeigen
 
tino1988
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 17.06.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2014, 16:40     Titel:
  Antworten mit Zitat      
Falls es jemanden interessiert: Habe inzwischen rausgefunden, dass es mit einer Bias-Correction zu tun hat.

Wilmott Forum

Essentiell ist daher die Implementierung eines zusätzlichen Vektors bspw der Form

Code:
w = [0.5 ones(1,N-2) 0.5];


der dann mit dem FFT Input multipliziert werden muss.

Man muss dann nur gehörig aufpassen welche Rasterung man wählt und welches eta.

VG

Edit:
Weil ich gerade nochmal den Code und die Herleitung gesehen habe, da ist wohl ein Fehler mit pi drin. Hier der Code mit dem's nun funktioniert:


Code:

N=2^20;

eta=0.4;
lambda=pi/(N/2 *eta);   %--> lambda*eta = 2pi/N

j=0:N-1;
k=0:N-1;

mu=0;
sigma=1;

x=-0.5*N*lambda+lambda*k; %--> -b+lambda(k-1)


charF= @(t)1/(pi).*exp(1i.*mu.*t - sigma.^2*t.^2/2);

w = [0.5 ones(1,N-2) 0.5];

   
FFT_Input=  exp(0.5*1i*N*lambda*eta.*j).*...
            charF(eta.*j).*eta.*w;

A= real(fft(FFT_Input));

plot(x,real(A))
 
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 - 2025 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.