How can I plot this function such as all values of |f(1/z)| be more clear and how can I plot the cosine of the phase of this function ?

1 次查看(过去 30 天)
When I plot this function (thanks for every help).
f(1/z) = (0.1000 -0.3000i)z^-1 + (0.2121-0.0008i)z^-2 + (-0.9000-0.0010i)z^-3
I want to study time evolution of this functions, but I have got from its figure that:
1-the |f(1/z)| seems to take zero every where exept at z=o when it goes to infiniy, even when I tried to change the values of z , I always get the same graph
My questions are:
1:How can I plot this figure such that all values of z in the plane appeare more clear to enable me to study its movement over time?
2- How can I plot the cos for the phase of f(1/z) to get more cleare plotting of the phase of this function?
p1=[(0.9000+0.0010i) (0.2121-0.0008i) (0.1000 -0.3000i)];
This is the figure of |f(1/z)| and the phase of f(1/z)
I used this link:
re_z = -6.005:.01:6.005;
im_z= -6.005:.01:6.005;
[re_z,im_z] = meshgrid(re_z,im_z);
z = re_z + 1i*im_z;
xlabel('x')
ylabel('y')
f_of_1_over_z_result = polyval(p1,1./z);
figure();
subplot(2,2,3)
surf(re_z,im_z,abs(f_of_1_over_z_result),'EdgeColor','none')
colorbar
title('|f(1/z)|')
xlabel('Z_R')
ylabel('Z_I')
subplot(2,2,4)
surf(re_z,im_z,angle(f_of_1_over_z_result),'EdgeColor','none')
colorbar
title('phase of f(1/z)')
xlabel('Z_R')
ylabel('Z_I')
grid on
I appriciate any help.

采纳的回答

Benjamin Kraus
Benjamin Kraus 2022-7-8
It looks like the nearly infinite value in your data is drowning out the remaining data. You can fix this by changing the z-limits and color limits, using the zlim and caxis commands.
For example:
% Prepare the data for plotting
p1=[(0.9000+0.0010i) (0.2121-0.0008i) (0.1000 -0.3000i)];
re_z = -6.005:.01:6.005;
im_z= -6.005:.01:6.005;
[re_z,im_z] = meshgrid(re_z,im_z);
z = re_z + 1i*im_z;
f_of_1_over_z_result = polyval(p1,1./z);
% Create first picture
nexttile
surf(re_z,im_z,abs(f_of_1_over_z_result),'EdgeColor','none')
colorbar
title('|f(1/z)|')
xlabel('Z_R')
ylabel('Z_I')
zlim([0 4]) % Adjust this value as needed
caxis([0 4]) % Adjust this value as needed
%%
nexttile
surf(re_z,im_z,angle(f_of_1_over_z_result),'EdgeColor','none')
colorbar
title('phase of f(1/z)')
xlabel('Z_R')
ylabel('Z_I')
grid on
  9 个评论
Benjamin Kraus
Benjamin Kraus 2022-8-15
To expand on @Torsten's answer: The doc page for polyval explains the input to polyval:
In the first case (without the 0) you have three elements in your vector, which defines a quadratic polynomial (n==2) and the polynomial becomes:
In the second case (with the 0) you have four elements in your vector, which defines a cubic polynomial (n==3) and the polynomial becomes:
Because equals 0, that reduces to
But, you can clearly see the first element of the vector is treated significantly differently with and without the zero.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Multirate Signal Processing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by