Changeset 3615 in Sophya for trunk/SophyaLib/NTools/perandom.cc
- Timestamp:
- May 1, 2009, 1:34:31 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/NTools/perandom.cc
r3608 r3615 1 1 #include "sopnamsp.h" 2 2 #include "machdefs.h" 3 #include <iostream> 3 4 #include "pexceptions.h" 5 #include "srandgen.h" 4 6 #include "perandom.h" 5 #include "pemath.h"6 #include <iostream>7 7 8 8 … … 290 290 } 291 291 292 293 294 /////////////////////////////////////////////////////////////////295 /*296 **** Remarques sur complex< r_8 > ComplexGaussRan(double sig) ****297 298 --- variables gaussiennes x,y independantes299 x gaussien: pdf f(x) = 1/(sqrt(2Pi) Sx) exp(-(x-Mx)^2/(2 Sx^2))300 y gaussien: pdf f(y) = 1/(sqrt(2Pi) Sy) exp(-(y-My)^2/(2 Sy^2))301 x,y independants --> pdf f(x,y) = f(x) f(y)302 On a:303 <x> = Integrate[x*f(x)] = Mx304 <x^2> = Integrate[x^2*f(x)] = Mx^2 + Sx^2305 306 --- On cherche la pdf g(r,t) du module et de la phase307 x = r cos(t) , y = r sin(t)308 r=sqrt(x^2+y^2 , t=atan2(y,x)309 (r,t) --> (x,y): le Jacobien = r310 311 g(r,t) = r f(x,y) = r f(x) f(y)312 = r/(2Pi Sx Sy) exp(-(x-Mx)^2/(2 Sx^2)) exp(-(y-My)^2/(2 Sy^2))313 314 - Le cas general est complique315 (cf D.Pelat cours DEA "bruits et signaux" section 4.5)316 317 - Cas ou "Mx = My = 0" et "Sx = Sy = S"318 c'est la pdf du module et de la phase d'un nombre complexe319 dont les parties reelles et imaginaires sont independantes320 et sont distribuees selon des gaussiennes de variance S^2321 g(r,t) = r/(2Pi S^2) exp(-r^2/(2 S^2))322 La distribution de "r" est donc:323 g(r) = Integrate[g(r,t),{t,0,2Pi}]324 = r/S^2 exp(-r^2/(2 S^2))325 La distribution de "t" est donc:326 g(t) = Integrate[g(r,t),{r,0,Infinity}]327 = 1 / 2Pi (distribution uniforme sur [0,2Pi[)328 Les variables aleatoires r,t sont independantes:329 g(r,t) = g(r) g(t)330 On a:331 <r> = Integrate[r*g(r)] = sqrt(PI/2)*S332 <r^2> = Integrate[r^2*g(r)] = 2*S^2333 <r^3> = Integrate[r^3*g(r)] = 3*sqrt(PI/2)*S^3334 <r^4> = Integrate[r^4*g(r)] = 8*S^4335 336 - Attention:337 La variable complexe "c = x+iy = r*exp(i*t)" ainsi definie verifie:338 <|c|^2> = <c c*> = <x^2+y^2> = <r^2> = 2 S^2339 Si on veut generer une variable complexe gaussienne telle que340 <c c*> = s^2 alors il faut prendre S = s/sqrt(2) comme argument341 342 */
Note:
See TracChangeset
for help on using the changeset viewer.