% 清除工作区、命令窗口,关闭所有图形窗口 clear; clc; close all; % 定义每个圆的采样点数,数值越大圆越平滑 n_points = 1000; % 生成从 0 到 2π 的角度序列,用于绘制圆 theta = linspace(0, 2 * pi, n_points); % 定义要绘制的归一化电阻值 r_values = [0, 0.2, 0.5, 1, 2, 5, 10]; % 定义要绘制的归一化电导值 g_values = [0, 0.2, 0.5, 1, 2, 5, 10]; % 定义要绘制的反射系数模值 gamma_values = [0, 0.2, 0.4, 0.6, 0.8, 1]; % 开启图形保持模式,允许在同一图形中绘制多个对象 hold on; % 绘制阻抗圆 for r = r_values % 计算不同电抗值对应的阻抗圆 for x = -10:0.1:10 % 计算归一化阻抗 z = r + 1j * x; % 计算反射系数 gamma = (z - 1) / (z + 1); % 提取反射系数的实部和虚部 real_gamma = real(gamma); imag_gamma = imag(gamma); % 绘制阻抗圆上的点 plot(real_gamma, imag_gamma, 'b.', 'MarkerSize', 1); end end % 绘制导纳圆 for g = g_values % 计算不同电纳值对应的导纳圆 for b = -10:0.1:10 % 计算归一化导纳 y = g + 1j * b; % 根据导纳和阻抗的倒数关系计算阻抗 z = 1 / y; % 计算反射系数 gamma = (z - 1) / (z + 1); % 提取反射系数的实部和虚部 real_gamma = real(gamma); imag_gamma = imag(gamma); % 绘制导纳圆上的点 plot(real_gamma, imag_gamma, 'r.', 'MarkerSize', 1); end end % 绘制等反射系数圆 for gamma = gamma_values % 计算等反射系数圆上各点的横坐标 x_gamma = gamma * cos(theta); % 计算等反射系数圆上各点的纵坐标 y_gamma = gamma * sin(theta); % 绘制等反射系数圆,颜色为黑色虚线,线宽为 0.5 plot(x_gamma, y_gamma, 'k--', 'LineWidth', 0.5); end % 绘制实轴,颜色为黑色,线宽为 1.5 plot([-1.2, 1.2], [0, 0], 'k', 'LineWidth', 1.5); % 绘制虚轴,颜色为黑色,线宽为 1.5 plot([0, 0], [-1.2, 1.2], 'k', 'LineWidth', 1.5); % 设置坐标轴比例相等,保证图形显示正常 axis equal; % 设置坐标轴的范围 axis([-1.2, 1.2, -1.2, 1.2]); % 显示网格线 grid on; % 设置图形的标题 title('史密斯圆图'); % 添加图例,说明不同颜色曲线代表的含义 legend('阻抗圆', '导纳圆', '等反射系数圆'); |
|
plot([real(gamma_load), real(gamma_new)], [imag(gamma_load), imag(gamma_new)], 'g-', 'LineWidth', 2);
|
|