I plot these two functions by Matlab but the phase of the both of them look likes strange and I think the plot of the phase is wrong in both of them

4 ビュー (過去 30 日間)
I plot these two functions by Matlab but the phase of the both of them look likes strange and I think the plot of the phase is wrong in both of them can you help me to correct these figures
the first function is f(z) = (0.10 + 0.3i) + (0.4243 + 0.0017i)*z + (0.9 − 0.001i)*z^2 and its plot is
the phase of this function look likes rwrong because for example at Z_R equales zero Z_I increace sharply and I do not know the correct value of Z_I ?
The second function is
f(z) = (0.10 − 0.3i)*z^(−1) + (0.2121 − 0.0008i)*z^(−2) + (0.9 + 0.001i)*z(−3).
and its figure is
Also here the phase of the function looks like wrong because for examble at Z_R equales zero Z_I increace sharply and I do not know the correct value of Z_I ?
I appreciate any help
  2 件のコメント
Torsten
Torsten 2022 年 5 月 27 日
You forgot to include your code.
Jeffrey Clark
Jeffrey Clark 2022 年 5 月 27 日
Phase discontinuity indicates you probably have to unwrap the phase; see Shift phase angles - MATLAB unwrap (mathworks.com). This is commonly done when looking at the phase following FFT.

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

回答 (1 件)

SAI SRUJAN
SAI SRUJAN 2024 年 1 月 31 日
Hi Aisha,
I understand that you are facing an issue while plotting the phase of a complex function.
When plotting the phase of a complex function, it's important to ensure that the phase is continuous over the region of interest. MATLAB's 'angle' function returns values between '-pi' and 'pi', resulting in discontinuities when the phase crosses these boundaries.
The 'unwrap' function in MATLAB is used to correct the phase angles to produce smoother phase plots. This function is particularly useful when you want to visualize the phase as a continuous function over a range of input values.
Please refer to the following example to proceed further,
[X, Y] = meshgrid(linspace(-1, 1, 100), linspace(-1, 1, 100));
Z = X + 1i*Y;
fz = (0.10 + 0.3i) + (0.4243 + 0.0017i)*Z + (0.9 - 0.001i)*Z.^2;
phase_fz = unwrap(angle(fz), [], 2);
figure;
surf(X, Y, phase_fz, 'EdgeColor', 'none');
colorbar;
By unwrapping the phase, the plot should show a smooth transition of phase angles, without the artificial jumps caused by the branch cuts of the 'angle' function. Please refer to the following documentation for a better understanding of the 'unwrap' MATLAB function.
I hope this helps!

カテゴリ

Help Center および File ExchangeExploration and Visualization についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by