Error in Kramers-Kronig Relations

13 Ansichten (letzte 30 Tage)
Ilvar
Ilvar am 25 Apr. 2023
Bearbeitet: Walter Roberson am 25 Apr. 2023
I am trying to convert extinction coefficient to refractive index.
Unrecognized function or variable 'k_vec'.
Error in KramersKroigRelations (line 12)
n_vec = zeros(size(k_vec));
I tried to set up k_vec to indicate the refractive indices.
k_vec to refractive indices
clear
% read data from textinctionSpectrum.txt
data = readtable('extinctionSpectrum.txt');
wavelength = data{:,1}; % wavelength in nm
extinction = data{:,2}; % extinction coefficient
% w = 2*pi*3e17./wavelength;
% convert extinction coefficient to refractive index
n_vec = zeros(size(k_vec));
for i = 1:length(k_vec)
k = k_vec(i);
n_real = 1 + (2/pi)*integral(@(w_prime) w_prime.*k./(w_prime.^2 - w.^2), 0, Inf, 'PrincipalValue', true);
n_imag = (2/pi)*integral(@(w_prime) w.*k./(w_prime.*(w_prime.^2 - w.^2)), 0, Inf, 'PrincipalValue', true);
n_vec(i) = n_real + 1i*n_imag;
end
figure;
plot(w, real(n_real), 'b-', w, imag(n_imag), 'r-');
xlabel('Wavelength (nm)');
ylabel('Refractive index');
legend('Real part', 'Imaginary part');

Antworten (1)

the cyclist
the cyclist am 25 Apr. 2023
You haven't defined a variable named k_vec before this line of code
n_vec = zeros(size(k_vec));
so MATLAB errors out when it tries to get the size of it.

Kategorien

Mehr zu Error Functions finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by