什么是扫频信号?
定义: 扫频信号(Sweep Signal),又称为 Chirp 信号(线性调频信号)。它的核心特征是频率随时间有规律地变化。
听觉类比: 它的音调不是固定的,而是像警报声、雷达声或鸟鸣声一样,从低音平滑过渡到高音(上扫频),或者反之(下扫频)。
示例代码:
%% 扫频信号生成与分析脚本 % 功能:生成线性扫频信号,并绘制时域波形和频域频谱 clc; 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]); % X 轴范围显示到终止频率稍微多一点的地方 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('扫频信号特性分析');
代码解释: 在这段 MATLAB 代码示例中,参数设定如下:
- 采样率
fs= 2000 Hz - 持续时间
T= 1.0 秒 - 起始频率
f_start= 10 Hz - 终止频率
f_end= 200 Hz
该信号在 1 秒钟的时间内,完成了一次从低频到高频的'滑行'。中间时刻 (t = 0.5s) 频率匀速增加到 105Hz。结束时刻 (t = 1.0s) 频率达到最终的 200Hz。
扫描率 (Sweep Rate) 计算
扫描率代表了频率随时间变化的'速度': $$\text{Sweep Rate} = \frac{f_{end} - f_{start}}{T}$$ 这意味着在这一秒钟里,每一毫秒,波形的频率都会增加。具体的时间变换还和代码里的时间精度有关系,也就是 1/fs,频率以这个时间精度来变化。
- 起始时刻 ($t=0s$): 波形的振荡频率为 $10Hz$(每秒振动 10 次)。
- 信号持续时间 ($T$): 1.0 秒
- 终止频率 ($f_{end}$): $200Hz$
- 起始频率 ($f_{start}$): $10Hz$










