Assume you have light incident from air onto gold, at a free-space wavelength of 700 nm. Using the complex refractive index of gold (n+ik) n=0.27732,k = 2.9278

5 ビュー (過去 30 日間)
plot 𝑅𝑠 and 𝑅𝑝 as a function of the incident angle 𝜃1 from 0 to 90°.
% Constants
n_air = 1; % Refractive index of air
lambda_700nm = 700e-9; % Wavelength in meters
% Complex refractive index for gold at 700 nm
n_gold_700nm = 0.27732; % Real part of refractive index
k_gold_700nm = 2.9278; % Extinction coefficient
% Calculate the reflection coefficient as a function of the angle of incidence
theta1 = linspace(0, pi/2, 1000); % Incident angles from 0 to 90 degrees
theta2_700nm = asin(sin(theta1) * n_air / n_gold_700nm); % Snell's law, adjusted for complex n
% Reflection coefficient for s-polarization at 700 nm
rs_700nm = ((n_air * cos(theta1)) - (n_gold_700nm + 1i * k_gold_700nm) * cos(theta2_700nm)) ./ ...
((n_air * cos(theta1)) + (n_gold_700nm + 1i * k_gold_700nm) * cos(theta2_700nm));
Rs_700nm = abs(rs_700nm).^2;
% Plot Rs for gold at 700 nm
figure;
plot(rad2deg(theta1), Rs_700nm, 'DisplayName', 'Rs at 700 nm');
xlabel('Incident angle \theta_1 (degrees)');
ylabel('Reflection coefficient Rs');
title('Reflection Coefficient for Gold at 700 nm');
legend('show');
grid on;
I have typed this code but not getting the correct plot for it

回答 (1 件)

Milan Bansal
Milan Bansal 2024 年 3 月 28 日
Hi Omeir,
It is my understanding you are trying to calculate reflection coefficients and as a function of incident angle for light incident from air onto gold at a free-space wavelength of 700 nm but you are not able to get correct plots.
There are a few adjustments needed in the given code snippet to correctly calculate and plot both () and (). The calculation of the angle () using Snell's law directly is not straightforward due to the complex refractive index of gold. For materials with complex refractive indices, the transmission angle () also becomes complex, and Snell's law needs to be adjusted to account for this.
,
where are the real and imaginary parts of the complex refractive index of the second medium, respectively
Please refer to the code snippet below to correctly calculate .
% Constants
n_air = 1; % Refractive index of air
lambda_700nm = 700e-9; % Wavelength in meters
% Complex refractive index for gold at 700 nm
n_gold = 0.27732 + 2.9278i; % n + ik
% Calculate the reflection coefficient as a function of the angle of incidence
theta1 = linspace(0, pi/2, 1000); % Incident angles from 0 to 90 degrees in radians
% Reflection coefficients for s- and p-polarization
rs = zeros(1, length(theta1));
rp = zeros(1, length(theta1));
%% Calculating R_s and R_p
for i = 1:length(theta1)
%% Calculating theta_2 with adjusted snell's law
cos_theta2 = sqrt(1 - ((n_air/n_gold)^2) * sin(theta1(i))^2);
% s-polarization
rs(i) = abs(((n_air * cos(theta1(i))) - (n_gold * cos_theta2)) / ((n_air * cos(theta1(i))) + (n_gold * cos_theta2)))^2;
% p-polarization
rp(i) = abs(((n_gold * cos(theta1(i))) - (n_air * cos_theta2)) / ((n_gold * cos(theta1(i))) + (n_air * cos_theta2)))^2;
end
% Plot Rs and Rp for gold at 700 nm
figure;
plot(rad2deg(theta1), rs, 'DisplayName', 'Rs at 700 nm');
hold on;
plot(rad2deg(theta1), rp, 'DisplayName', 'Rp at 700 nm');
xlabel('Incident angle \theta_1 (degrees)');
ylabel('Reflection coefficient');
title('Reflection Coefficient for Gold at 700 nm');
legend('show');
grid on;
Hope this helps
  1 件のコメント
OMEIR HUSSAIN
OMEIR HUSSAIN 2024 年 3 月 28 日
I get it.But when i am trying to change the lambda to 400nm I am getting the same plot as 700 nm which diesnt make sense.

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by