MATLAB 用于计算并绘制线性调频(LFM)脉冲串信号的模糊函数图像。可以生成清晰的模糊函数图像。
MATLAB 代码
function lfm_ambg(taup, b, up_down)
% 参数说明:
% taup: 脉冲宽度 (s)
% b: 信号带宽 (Hz)
% up_down: 调频方向,1 表示上扫频,-1 表示下扫频
eps = 0.000001; % 避免除零操作的小量
mu = up_down * b / 2 / taup; % 调频率
delt = 2.2 * taup / 250; % 时间延迟步长
delf = 2 * b / 250; % 多普勒频率步长
% 初始化模糊函数矩阵
x = zeros(250, 250);
% 计算模糊函数
i = 0;
for tau = -1.1 * taup : delt : 1.1 * taup
i = i + 1;
j = 0;
for fd = -b : delf : b
j = j + 1;
val1 = 1 - abs(tau) / taup;
val2 = pi * taup * (1 - abs(tau) / taup);
val3 = (fd + mu * tau);
val = val2 * val3;
x(j, i) = abs(val1 * (sin(val + eps) / (val + eps)))^2;
end
end
% 绘制模糊函数图像
taux = -1.1 * taup : delt : 1.1 * taup;
fdy = -b : delf : b;
% 三维模糊函数图像
figure;
mesh(taux, fdy, x);
xlabel('Delay (seconds)');
ylabel('Doppler (Hz)');
zlabel('Ambiguity Function');
title('LFM Signal Ambiguity Function - 3D View');
% 模糊函数等高线图
figure;
contour(taux, fdy, x, 50);
xlabel('Delay (seconds)');
ylabel('Doppler (Hz)');
title('LFM Signal Ambiguity Function - Contour Plot');
end
% 调用函数示例
clear; close all;
taup = 1e-6; % 脉冲宽度 1 微秒
b = 1e6; % 带宽 1 MHz
up_down = 1; % 上扫频
lfm_ambg(taup, b, up_down);
参数设置:
taup
:脉冲宽度,单位为秒。b
:信号带宽,单位为赫兹。up_down
:调频方向,1
表示上扫频,-1
表示下扫频。
模糊函数计算:
- 通过双层循环计算不同时间延迟和多普勒频率下的模糊函数值。
图像绘制:
- 使用
mesh
函数绘制三维模糊函数图像。 - 使用
contour
函数绘制模糊函数的等高线图。
- 使用
运行结果
运行上述代码后,将生成以下图像:
- 三维模糊函数图像:展示模糊函数在时间延迟和多普勒频率上的分布。
- 模糊函数等高线图:通过等高线直观展示模糊函数的分布情况。
通过调整参数(如脉冲宽度、带宽和调频方向),可以进一步分析不同条件下的模糊函数特性。
参考代码 LFM脉冲串信号的模糊函数 youwenfan.com/contentalb/97606.html, 绘图程序, 可以画出模糊函数图像