I am currently self studying structure of semi-conductors and I would like to make a graph in Matlab of the number of carriers as a function of temperature and doping. Let's say that I am testing Silicon (Si).
In silicon, the number of carriers (electrons and holes) can be calculated using the following equations:
For intrinsic silicon: $$n_{I}=A⋅T^{3/2}⋅e^{−E_{g}/(2kT)}$$
where
$$n_{I}$$
is the intrinsic carrier concentration,
\$A\$ is a constant, \$T\$ is the temperature in Kelvin,
\$E_{g}\$ is the energy band gap of silicon and \$k\$ is Boltzmann's constant.
For doped silicon (n-type or p-type):
$$n =N_{c}⋅e^{−E_{c}/(kT)}$$
$$p=N_{v}⋅e^{−E_{v}/(kT)}$$
where \$n\$ is the electron concentration, \$p\$ is the hole concentration, \$N_{c}\$ and \$N_{v}\$ are the effective density of states in the conduction and valence bands respectively, \$E_{c}\$ and \$E_{v}\$ are the energies of the conduction and valence bands respectively.
Therefore I plug in the numbers but I see nothing.Why? Is there a problem to my understanding or in coding the problem ? For doping what I must change in x axis ?
% Constants
k = 1.38e-23; % Boltzmann's constant (J/K)
Eg = 1.12; % Energy band gap of silicon (eV)
A = 2.5e19; % Constant for intrinsic carrier concentration calculation
Nc = 2.8e19; % Effective density of states in conduction band (cm^-3)
Nv = 1.04e19; % Effective density of states in valence band (cm^-3)
% Temperature range
T = linspace(100, 1000, 100); % Temperature range from 100 K to 1000 K
% Doping concentration
Nd = 1e16; % Doping concentration (cm^-3)
% Intrinsic carrier concentration
ni = A * T.^(3/2) .* exp(-Eg./(2*k*T));
% Electron concentration for n-type doping
n = Nc * exp(-(Eg./(2*k*T))) .* (Nd./(Nc.*exp(-(Eg./(2*k*T)))) + 1).^0.5;
% Hole concentration for n-type doping
p = (ni.^2)./n;
% Plot
figure;
semilogy(T, n, 'r', T, p, 'b');
xlabel('Temperature (K)');
ylabel('Carrier Concentration (cm^{-3})');
legend('Electron Concentration', 'Hole Concentration');
title('Carrier Concentration vs. Temperature for Silicon (n-type doping)');
grid on;
For the second graph where the doping levels will come into play, ideally my graph I want to look like this one :