Clear Filters
Clear Filters

how to plot the phase shift

28 views (last 30 days)
학준
학준 on 3 Apr 2024
Answered: Sandeep Mishra on 16 Aug 2024 at 9:26
i want this graph but this code didn't work properly after rp is 1
clear;
clc;
tetai = 0:0.01:89.99;
n1 = 1.5;
n2 = 1;
tetac = asind(n2/n1);
tetat = asind(n1*sind(0:0.01:tetac)/n2);
L = length(tetat);
L2 = length(tetai);
tetat(L+1:1:L2) = 90;
rp = (n2*cosd(tetai) - n1*cosd(tetat))./(n1*cosd(tetat) + n2*cosd(tetai));
% treating amplitude coefficients as complex
rp_complex = rp + 1i*0;
phase_rp_deg = angle(rp_complex) * (180/pi); % Calculating phase of rp in degrees
plot(tetai, phase_rp_deg); % Plotting phase of rp as a function of incident angle
ylim([0 180]); % Setting y-axis limit to -180 to 180 to represent phase in degrees
xlabel('Incident Angle (degrees)');
ylabel('Phase of rp (degrees)');
title('Phase of rp vs Incident Angle');
  2 Comments
Anton Kogios
Anton Kogios on 3 Apr 2024
I have no idea about this topic, but something from your code is that you are trying to get the angel of a complex number you made. But you made it have 0 imaginary component, so the angle will just be 0.
Voss
Voss on 3 Apr 2024
... or 180 degrees, for negative real numbers.

Sign in to comment.

Answers (1)

Sandeep Mishra
Sandeep Mishra on 16 Aug 2024 at 9:26
Hi 학준,
While reproducing the provided code snippet in MATLAB R2024a, I noticed the following observations:
  • The variablerpconsists of all real values.
  • The variablerp_complexis simply the sum ofrpand 0, making "rp_complex" also a real number.
  • The "phase_rp_deg" variable utilizes the MATLAB function "angle" which returns the phase angle for each element in the complex arrayrp_complex.
Based on the above observations, it is evident that the variable "rp_complex" is always a real number. Consequently, "phase_rp_deg" will yield a result of 0 for each complex number of rp_complex.
Additionally, to plot the complex angle graph, you can utilize the following example code:
% Adding complex variable (2i) to real value rp
rp_complex = rp + 1i*2
Refer to the following documentation for more details on the “angle” function.
  1. https://www.mathworks.com/help/releases/R2024a/matlab/ref/angle.html
I hope it helps.

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!