Spoke target

10 π // N

sen = 
        Table[If[Sin[32 ArcTan[(y/(x + (10^(-14))))]] < 0, 0, 
            1], {x, -1, 1, 0.005}, {y, -1, 1, 
            0.005}];
circulo = 
        Table[If[(Sqrt[(x^2) + (y^2)]) ≤ 0.7, 1, 0], {x, -1, 1, 
            0.005}, {y, -1, 1, 0.005}];
spoketarget = circulo sen;

Dimensions[spoketarget]

ListDensityPlot[spoketarget, Mesh -> False, 
        PlotLabel -> {"spoke target"}];

Fijarse que este objeto es de mayor tamaño que la SnellE, esto es debido a que este objeto tiene mayores frecuencias que la E y para poder observarlo, tenemos que hacerlo mayor (tambien podriamos haber dejado el mismo tamaño y disminuir la frecuencia del objeto)

PSFs

Recuperamos datos

Get["C:\Documents and Settings\iesgar\\Mis \
documentos\aberraciones\datos\\tgaussian\\tabampcir.m"];
Get["C:\Documents and Settings\iesgar\\Mis \
documentos\aberraciones\datos\\tgaussian\\tabampgausq.m"];
Get["C:\Documents and Settings\iesgar\\Mis \
documentos\aberraciones\datos\\tgaussian\\tabampgausr.m"];
Get["C:\Documents and Settings\iesgar\\Mis \
documentos\aberraciones\datos\\tgaussian\\beta3tabampsupgausr.m"];

ffuncir = 
        ListInterpolation[
          tabampcir, {{0, 22}, {0, 5}, {0, 5}}];
ffungausq = 
        ListInterpolation[
          tabampgausq, {{0, 22}, {0, 5}, {0, 
              5}}];
ffungausr = 
        ListInterpolation[
          tabampgausr, {{0, 22}, {0, 5}, {0, 
              5}}];
β3ffunsupgausr = 
        ListInterpolation[
          beta3tabampsupgausr, {{0, 22}, {0, 5}, {0, 5}}];

ffuncir3[x_, y_, w20_, w40_] := 
      ffuncir[(Sqrt[(x^2) + (y^2)]), w20, w40]
ffungausq3[x_, y_, w20_, w40_] := 
      ffungausq[(Sqrt[(x^2) + (y^2)]), w20, w40]
ffungausr3[x_, y_, w20_, w40_] := 
      ffungausr[(Sqrt[(x^2) + (y^2)]), w20, w40]
β3ffunsupgausr3[x_, y_, w20_, 
        w40_] := β3ffunsupgausr[(Sqrt[(x^2) + (y^2)]), w20, 
        w40]

W20=W40=0

PSFffuncir0 = 
        Table[ffuncir3[x, y, 0, 0], {x, -15, 15, 0.5}, {y, -15, 15, 
            0.5}];
PSFffungausq0 = 
        Table[ffungausq3[x, y, 0, 0], {x, -15, 15, 0.5}, {y, -15, 15, 
            0.5}];
PSFffungausr0 = 
        Table[ffungausr3[x, y, 0, 0], {x, -15, 15, 0.5}, {y, -15, 15, 
            0.5}];
PSFβ3ffunsupgausr0 = 
        Table[β3ffunsupgausr3[x, y, 0, 0], {x, -15, 15, 
            0.5}, {y, -15, 15, 0.5}];

ListDensityPlot[Abs[PSFffuncir0]^2, Mesh -> False, 
        PlotRange -> All];
ListDensityPlot[Abs[PSFffungausq0]^2, Mesh -> False, 
        PlotRange -> All];
ListDensityPlot[Abs[PSFffungausr0]^2, Mesh -> False, 
        PlotRange -> All];
ListDensityPlot[Abs[PSFβ3ffunsupgausr0]^2, Mesh -> False, 
        PlotRange -> All];

W40=1; w20=1 para circ, gausq; w20= 0.7 para gausr; w20=0.5 para β3gausr

PSFffuncir1 = 
        Table[ffuncir3[x, y, 1, 1], {x, -15, 15, 0.5}, {y, -15, 15, 
            0.5}];
PSFffungausq1 = 
        Table[ffungausq3[x, y, 1, 1], {x, -15, 15, 0.5}, {y, -15, 15, 
            0.5}];
PSFffungausr1 = 
        Table[ffungausr3[x, y, 0.7161817586296564`, 1], {x, -15, 15, 
            0.5}, {y, -15, 15, 0.5}];
PSFβ3ffunsupgausr1 = 
        Table[β3ffunsupgausr3[x, y, 0.49999999627939196`, 
            1], {x, -15, 15, 0.5}, {y, -15, 15, 0.5}];

ListDensityPlot[Abs[PSFffuncir1]^2, Mesh -> False, 
        PlotRange -> All];
ListDensityPlot[Abs[PSFffungausq1]^2, Mesh -> False, 
        PlotRange -> All];
ListDensityPlot[Abs[PSFffungausr1]^2, Mesh -> False, 
        PlotRange -> All];
ListDensityPlot[Abs[PSFβ3ffunsupgausr1]^2, Mesh -> False, 
        PlotRange -> All];

W40=2; w20=2 para circ, gausq; w20= 1.02 para gausr; w20=0.94 para β3gausr

PSFffuncir2 = 
        Table[ffuncir3[x, y, 2, 2], {x, -15, 15, 0.5}, {y, -15, 15, 
            0.5}];
PSFffungausq2 = 
        Table[ffungausq3[x, y, 2, 2], {x, -15, 15, 0.5}, {y, -15, 15, 
            0.5}];
PSFffungausr2 = 
        Table[ffungausr3[x, y, 1.0218218921864937`, 2], {x, -15, 15, 
            0.5}, {y, -15, 15, 0.5}];
PSFβ3ffunsupgausr2 = 
        Table[β3ffunsupgausr3[x, y, 0.9372622395711057`, 
            2], {x, -15, 15, 0.5}, {y, -15, 15, 0.5}];

ListDensityPlot[Abs[PSFffuncir2]^2, Mesh -> False, 
        PlotRange -> All];
ListDensityPlot[Abs[PSFffungausq2]^2, Mesh -> False, 
        PlotRange -> All];
ListDensityPlot[Abs[PSFffungausr2]^2, Mesh -> False, 
        PlotRange -> All];
ListDensityPlot[Abs[PSFβ3ffunsupgausr2]^2, Mesh -> False, 
        PlotRange -> All];

W40=3; w20=3 para circ, gausq; w20= 1.5 para gausr; w20=1.25 para β3gausr

PSFffuncir3 = 
        Table[ffuncir3[x, y, 3, 3], {x, -15, 15, 0.5}, {y, -15, 15, 
            0.5}];
PSFffungausq3 = 
        Table[ffungausq3[x, y, 3, 3], {x, -15, 15, 0.5}, {y, -15, 15, 
            0.5}];
PSFffungausr3 = 
        Table[ffungausr3[x, y, 1.4999999997745195`, 3], {x, -15, 15, 
            0.5}, {y, -15, 15, 0.5}];
PSFβ3ffunsupgausr3 = 
        Table[β3ffunsupgausr3[x, y, 1.2499999995151527`, 
            3], {x, -15, 15, 0.5}, {y, -15, 15, 0.5}];

ListDensityPlot[Abs[PSFffuncir3]^2, Mesh -> False, 
        PlotRange -> All];
ListDensityPlot[Abs[PSFffungausq3]^2, Mesh -> False, 
        PlotRange -> All];
ListDensityPlot[Abs[PSFffungausr3]^2, Mesh -> False, 
        PlotRange -> All];
ListDensityPlot[Abs[PSFβ3ffunsupgausr3]^2, Mesh -> False, 
        PlotRange -> All];

Convoluciones

W20=W40=0

spokcir0 = 
        ListConvolve[Abs[PSFffuncir0]^2, 
          spoketarget, {-1, 1}];
spokgauq0 = 
        ListConvolve[Abs[PSFffungausq0]^2, 
          spoketarget, {-1, 1}];
spokgaur0 = 
        ListConvolve[Abs[PSFffungausr0]^2, 
          spoketarget, {-1, 1}];
spokβ3gaur0 = 
        ListConvolve[Abs[PSFβ3ffunsupgausr0]^2, 
          spoketarget, {-1, 1}];

ListDensityPlot[(spokcir0/Max)[spokcir0], Mesh -> False, 
        PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=0),circ"}];
ListDensityPlot[(spokgauq0/Max)[spokgauq0], Mesh -> False, 
        PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=0),gaus q"}];
ListDensityPlot[(spokgaur0/Max)[spokgaur0], Mesh -> False, 
        PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=0),gaus r"}];
ListDensityPlot[spokβ3(gaur0/Max)[spokβ3gaur0], 
        Mesh -> False, PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=0),supgaus r"}];

W40=1; w20=1 para circ, gausq; w20= 0.7 para gausr; w20=0.5 para β3gausr

spokcir1 = 
        ListConvolve[Abs[PSFffuncir1]^2, 
          spoketarget, {-1, 1}];
spokgauq1 = 
        ListConvolve[Abs[PSFffungausq1]^2, 
          spoketarget, {-1, 1}];
spokgaur1 = 
        ListConvolve[Abs[PSFffungausr1]^2, 
          spoketarget, {-1, 1}];
spokβ3gaur1 = 
        ListConvolve[Abs[PSFβ3ffunsupgausr1]^2, 
          spoketarget, {-1, 1}];

ListDensityPlot[(spokcir1/Max)[spokcir1], Mesh -> False, 
        PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=1),circ"}];
ListDensityPlot[(spokgauq1/Max)[spokgauq1], Mesh -> False, 
        PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=1),gaus q"}];
ListDensityPlot[(spokgaur1/Max)[spokgaur1], Mesh -> False, 
        PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=1),gaus r"}];
ListDensityPlot[spokβ3(gaur1/Max)[spokβ3gaur1], 
        Mesh -> False, PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=1),supgaus r"}];

W40=2; w20=2 para circ, gausq; w20= 1.02 para gausr; w20=0.94 para β3gausr

spokcir2 = 
        ListConvolve[Abs[PSFffuncir2]^2, 
          spoketarget, {-1, 1}];
spokgauq2 = 
        ListConvolve[Abs[PSFffungausq2]^2, 
          spoketarget, {-1, 1}];
spokgaur2 = 
        ListConvolve[Abs[PSFffungausr2]^2, 
          spoketarget, {-1, 1}];
spokβ3gaur2 = 
        ListConvolve[Abs[PSFβ3ffunsupgausr2]^2, 
          spoketarget, {-1, 1}];

ListDensityPlot[(spokcir2/Max)[spokcir2], Mesh -> False, 
        PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=2),circ"}];
ListDensityPlot[(spokgauq2/Max)[spokgauq2], Mesh -> False, 
        PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=2),gaus q"}];
ListDensityPlot[(spokgaur2/Max)[spokgaur2], Mesh -> False, 
        PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=2),gaus r"}];
ListDensityPlot[spokβ3(gaur2/Max)[spokβ3gaur2], 
        Mesh -> False, PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=2),supgaus r"}];

W40=3; w20=3 para circ, gausq; w20= 1.5 para gausr; w20=1.25 para β3gausr

spokcir3 = 
        ListConvolve[Abs[PSFffuncir3]^2, 
          spoketarget, {-1, 1}];
spokgauq3 = 
        ListConvolve[Abs[PSFffungausq3]^2, 
          spoketarget, {-1, 1}];
spokgaur3 = 
        ListConvolve[Abs[PSFffungausr3]^2, 
          spoketarget, {-1, 1}];
spokβ3gaur3 = 
        ListConvolve[Abs[PSFβ3ffunsupgausr3]^2, 
          spoketarget, {-1, 1}];

ListDensityPlot[(spokcir3/Max)[spokcir3], Mesh -> False, 
        PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=3),circ"}];
ListDensityPlot[(spokgauq3/Max)[spokgauq3], Mesh -> False, 
        PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=3),gaus q"}];
ListDensityPlot[(spokgaur3/Max)[spokgaur3], Mesh -> False, 
        PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=3),gaus r"}];
ListDensityPlot[spokβ3(gaur3/Max)[spokβ3gaur3], 
        Mesh -> False, PlotRange -> {0, 1.1}, 
        PlotLabel -> {"(w40=3),supgaus r"}];