引言
扫频信号(Chirp)可以理解成一把会'移动刻度'的频率尺。它不是盯着一个固定频点重复激励,而是在一段时间里按既定规律把频率扫过去。做 AD 芯片、前端链路或者滤波器测试时,这种信号比单点正弦波更顺手,能把一段频带里的问题一次看出来。
1. 什么是扫频信号

扫频信号(Sweep Signal),又称 Chirp 信号,特点很直接:频率会随着时间变化。上扫频是从低到高,下扫频则相反。
如果从听感上找类比,它有点像警报声、雷达声或者鸟鸣,音调一直在滑,不会停在某个音高上。
下面这段 MATLAB 代码生成了一个线性扫频信号,并画出时域和频域图。代码不长,关键是把'频率线性变化'这件事写对。
%% 扫频信号生成与分析脚本 % 功能:生成线性扫频信号,并绘制时域波形和频域频谱
cclc; clear; close all;
%% 1. 参数设置
fs = 2000; % 采样率 (Hz),设高一点以便观察频谱
T = 1.0; % 信号持续时间 (秒)
f_start = 10; % 起始频率 10Hz
f_end = 200; % 终止频率 200Hz
%% 2. 信号生成
t = 0 : 1/fs : T - 1/fs; % 时间轴
% 线性扫频信号公式:
% 瞬时频率 f(t) = f_start + k * t
% 相位 phi(t) = 2 * pi * 积分 (f(t)) = 2 * pi * (f_start * t + 0.5 * k * t^2)
k = (f_end - f_start) / T; % 频率变化率 (Hz/s)
phase = 2 * pi * (f_start * t + 0.5 * k * t.^2); %相位等于瞬时频率的积分
signal = sin(phase); % 生成正弦扫频信号
%% 3. 频域分析 (FFT)
N = length(signal); % 采样点数
f = (0 : N-1) * (fs / N); % 频率轴 (0 到 fs)
Y = fft(signal); % 快速傅里叶变换
P2 = abs(Y / N); % 双边频谱幅度
P1 = P2(1 : floor(N/2)+1); % 取单边频谱
P1(2:end-1) = 2 * P1(2:end-1); % 幅度修正
f_axis = f(1 : floor(N/2)+1); % 单边频率轴
%% 4. 绘图
figure('Color', 'w', 'Name', '扫频信号分析');
% --- 子图 1: 时域波形 ---
subplot(2, 1, 1);
plot(t, signal, 'b', 'LineWidth', 1);
title(['时域波形 (Time Domain): ', num2str(f_start), 'Hz \rightarrow ', num2str(f_end), 'Hz']);
xlabel('时间 (s)'); ylabel('幅度'); grid on; xlim([0, T]);
% 局部放大提示(可选)
text(0.1, 1.2, '\downarrow 低频疏松', 'Color', 'g', 'FontSize', 10);
text(0.8, 1.2, '\downarrow 高频密集', 'Color', 'r', 'FontSize', 10);
% --- 子图 2: 频域图 (FFT 频谱) ---
subplot(2, 1, 2);
plot(f_axis, P1, 'r', 'LineWidth', 1.5);
title('频域图 (Frequency Domain / FFT Spectrum)');
xlabel('频率 (Hz)'); ylabel('幅度 (|P1(f)|)'); grid on; xlim([0, f_end + 50]);
ylim([0, 1.2]);
% 添加标注:展示频谱的平坦特性
rectangle('Position', [f_start, 0, f_end-f_start, 1], 'EdgeColor', 'k', 'LineStyle', '--');
text((f_start+f_end)/2, 0.5, '有效频带能量分布', 'HorizontalAlignment', 'center');
% 调整布局
sgtitle('扫频信号特性分析');
这段脚本里,1 秒内频率从 10Hz 线性爬到 200Hz。中间时刻大约是 105Hz,结束时回到 200Hz。它表达的是'频率扫过一个区间',不是某个频点持续整段时间。
2. 扫描率和频率变化
扫描率就是频率变化的快慢: $$\text{Sweep Rate} = \frac{f_{end} - f_{start}}{T}$$
对这个例子来说,1 秒内从 10Hz 扫到 200Hz,平均每秒增加 190Hz。采样实现时,频率是按离散采样点更新的,但分析上可以直接按这个线性关系理解。
几个参数单独拎出来看更清楚:
- 起始时刻 $t=0s$ 时,频率是 $10Hz$
- 信号持续时间 $T=1.0s$
- 终止频率 $f_{end}=200Hz$











