Refractive index profile calculation
33 views (last 30 days)
Show older comments
Hello all,
I'm tryng to calculate a Refractive index profile from an article (Ref 1):
But my code does not reproduce smothly as it was suppose to do. Goes to 1.48 (last value as the curve above) but as a square:
The thing is that as you can see in my code below I have N layers (this means N values of refrective index) and when I change the values below 1000 I get some weird shapes. The right curve (first curve attached in this text) has 1000 of values, I mean they (arthurs of that curve) used N = 1000 because converge to a continuos curve. I think I'm very near to the response but I don't know what could be wrong.
If I change N = 10, for example, look the shape:
I mean is not continuos, of course, because it is no the right value that the artours used to had that curve but with N = 1000 it is like a square. And I'm using all the equations to calculate right. Check this:
- From Ref 1 they said:
2. And the figure that I'm studying to reproduce is (From Ref. 1):
As you can see in my code I calculate theta correct and also Lf up to Lf maximum (this case is 10um (as you can see in the article curve and in my code)).
I really appreciate any help !!
NOTE: THE ARTICLE HAS OPEN ACESS FROM OSA WEBSITE. IT IS NOT RESTRICTED SO ANYONE CAN SEE.
References
- Qian Wang, Yingyan Huang, Ter-Hoe Loh, Doris Keh Ting Ng, and Seng-Tiong Ho, "Thin-film stack based integrated GRIN coupler with aberration-free focusing and super-high NA for efficient fiber-to-nanophotonic-chip coupling," Opt. Express 18, 4574-4589 (2010).
6 Comments
Accepted Answer
David Goodmanson
on 19 May 2020
Hi Tay,
The following code addresses (1) in the text. For Lf = 1, D = 1 and 1000 layers the resulting plot reproduces the one in the text pretty well.
When D > Lf you can get some funky results with the refractive index being less than 1.
Lf = 1;
D = 1;
N = 1000;
h = D/N;
Lfh = Lf/h;
n1 = 3.5; % refractive index of layer 1
nvec = n1; % vector of refractive indices
for k = 1:N
ni = fzero(@(ni) fun(ni,nvec,Lfh),[.1, nvec(end)-1e-10]); % have to be careful with upper limit
nvec = [nvec ni];
end
plot(nvec)
grid on
function y = fun(ni,nvec,Lfh)
y = sum(1./sqrt(nvec.^2/ni^2-1)) - Lfh;
end
5 Comments
David Goodmanson
on 24 Nov 2021
Edited: David Goodmanson
on 24 Nov 2021
Hello Tay,
Deleting a question that has been answered is not considered accceptable. One reason is that the site is a source of information and solutions, and deleting a question takes away potentially useful information. A more personal reason is that having put in time on the answer, I would not like to see it go away. In this case the question concerns verifying a process involving Snell's law from a freely available 11 year old paper, so I do not yet understand what harm there might be. One idea is, if you wanted to rephrase the question in some manner, I would certainly be amenable to modifying the answer accordingly, and then deleting the comments that have to do with this situation. Any thoughts?
More Answers (0)
See Also
Categories
Find more on Time Series Objects in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!