fork download
  1. % Parameters for Silicon
  2. Eg = 1.12; % Bandgap energy in eV
  3. Nc = 2.86e19; % Effective density of states in conduction band (cm^-3)
  4. Nv = 2.66e19; % Effective density of states in valence band (cm^-3)
  5. k = 8.617e-5; % Boltzmann constant in eV/K
  6. T = 300; % Temperature in K
  7. ND = 1e15; % Donor concentration (cm^-3)
  8. NA = 0; % Acceptor concentration (cm^-3)
  9.  
  10. % Energy range for plotting (in eV)
  11. E = linspace(0, 1.5, 1000); % Energy range from 0 to 1.5 eV
  12.  
  13. %% A) Density of States
  14. DOS_c = Nc * (2 * (2 * pi * 9.11e-31 * 1.6e-19 / (hbar^2))^(3/2)) .* sqrt(E); % Conduction band
  15. DOS_v = Nv * (2 * (2 * pi * 9.11e-31 * 1.6e-19 / (hbar^2))^(3/2)) .* sqrt(E - Eg); % Valence band
  16.  
  17. figure;
  18. plot(E, DOS_c, 'b', 'DisplayName', 'Conduction Band Density of States');
  19. hold on;
  20. plot(E, DOS_v, 'r', 'DisplayName', 'Valence Band Density of States');
  21. xlabel('Energy (eV)');
  22. ylabel('Density of States (cm^{-3} eV^{-1})');
  23. title('Density of States in Silicon');
  24. legend;
  25. grid on;
  26. hold off;
  27.  
  28. %% B) Intrinsic Semiconductor
  29. % Fermi level calculation for intrinsic semiconductor
  30. Ei = Eg / 2; % Approximation for intrinsic semiconductor
  31. n_i = sqrt(Nc * Nv) * exp(-Eg / (2 * k * T)); % Intrinsic carrier concentration
  32.  
  33. % Fermi Distribution
  34. f = @(E, E_f) 1 ./ (1 + exp((E - E_f) / (k * T)));
  35.  
  36. figure;
  37. plot(E, f(E, Ei), 'g', 'DisplayName', 'Fermi Distribution');
  38. xlabel('Energy (eV)');
  39. ylabel('Fermi Distribution');
  40. title('Fermi Distribution in Intrinsic Semiconductor');
  41. legend;
  42. grid on;
  43.  
  44. % Carrier concentrations
  45. n = Nc * f(E, Ei); % Conduction electrons
  46. p = Nv * f(E, Ei - Eg); % Valence holes
  47.  
  48. figure;
  49. plot(E, n, 'b', 'DisplayName', 'Conduction Electrons');
  50. hold on;
  51. plot(E, p, 'r', 'DisplayName', 'Valence Holes');
  52. xlabel('Energy (eV)');
  53. ylabel('Carrier Concentration (cm^{-3})');
  54. title('Carrier Concentrations in Intrinsic Semiconductor');
  55. legend;
  56. grid on;
  57. hold off;
  58.  
  59. %% C) Extrinsic Semiconductor
  60. % Fermi level calculation for extrinsic semiconductor
  61. n_d = ND; % Donor concentration
  62. p_i = n_i; % Intrinsic carrier concentration
  63. n = n_d; % Assume n > p for n-type
  64. p = p_i^2 / n; % Using mass action law
  65. EF = Ei + k * T * log(n / Nc); % Calculate the Fermi level
  66.  
  67. % Fermi Distribution for extrinsic
  68. f_extrinsic = @(E, EF) 1 ./ (1 + exp((E - EF) / (k * T)));
  69.  
  70. figure;
  71. plot(E, f_extrinsic(E, EF), 'm', 'DisplayName', 'Fermi Distribution');
  72. xlabel('Energy (eV)');
  73. ylabel('Fermi Distribution');
  74. title('Fermi Distribution in Extrinsic Semiconductor');
  75. legend;
  76. grid on;
  77.  
  78. % Carrier concentrations in extrinsic
  79. n_ext = Nc * f_extrinsic(E, EF); % Conduction electrons
  80. p_ext = Nv * f_extrinsic(E, EF - Eg); % Valence holes
  81.  
  82. figure;
  83. plot(E, n_ext, 'b', 'DisplayName', 'Conduction Electrons (Extrinsic)');
  84. hold on;
  85. plot(E, p_ext, 'r', 'DisplayName', 'Valence Holes (Extrinsic)');
  86. xlabel('Energy (eV)');
  87. ylabel('Carrier Concentration (cm^{-3})');
  88. title('Carrier Concentrations in Extrinsic Semiconductor');
  89. legend;
  90. grid on;
  91. hold off;
  92.  
  93. %% D) Majority and Minority Carrier Concentrations
  94. doping_levels = linspace(1e13, 1e16, 100); % Doping levels from 1e13 to 1e16 cm^-3
  95. n_majority = zeros(size(doping_levels));
  96. p_minor = zeros(size(doping_levels));
  97.  
  98. for i = 1:length(doping_levels)
  99. ND = doping_levels(i);
  100. n_majority(i) = ND; % Majority carrier concentration for n-type
  101. p_minor(i) = p_i^2 / n_majority(i); % Minority carrier concentration
  102. end
  103.  
  104. figure;
  105. semilogy(doping_levels, n_majority, 'b', 'DisplayName', 'Majority Carriers (n)');
  106. hold on;
  107. semilogy(doping_levels, p_minor, 'r', 'DisplayName', 'Minority Carriers (p)');
  108. xlabel('Doping Concentration (cm^{-3})');
  109. ylabel('Carrier Concentration (cm^{-3})');
  110. title('Carrier Concentrations vs Doping in Semiconductor');
  111. legend;
  112. grid on;
  113. hold off;
  114.  
  115.  
Success #stdin #stdout #stderr 0.16s 48724KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
error: 'hbar' undefined near line 14 column 51
error: called from
    /home/Fusca9/prog.octave at line 14 column 7