You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于频率与时间数组绘制FMCW雷达的锯齿线性调频波形?

生成GNU Radio兼容的锯齿波线性调频信号

之前用正弦波生成信号时,高频分量表现不够清晰,现在打算改用锯齿波。由于要在GNU Radio中制作自定义模块,无法使用scipy.signal.sawtooth或signal.chirp这类第三方库函数,只能基于基础库实现。

以下是我之前用于生成正弦线性调频信号的代码(仅在f0、f1为低频值时正常运行):

import numpy as np
import matplotlib.pyplot as plt
from math import pi

chirp_duration = 60e-6
f0 = 1e6 
f1 = 3e6 
no_samp = 1001
rcs = 0.0377

f_step = (f1-f0)/no_samp
rf_axis = np.linspace(f0, f1, int(f_step))
rt_axis = np.linspace(0, chirp_duration, int(f_step))

# rchirp = np.cos(2 * np.pi * rf_axis * rt_axis)

plt.figure(figsize=(12, 3))
plt.xlabel("Time")
plt.ylabel("Frequency")
plt.title('Received Chirp')
plt.plot(rt_axis, rf_axis)
plt.show()

锯齿波线性调频信号实现方案

要生成符合需求的锯齿波信号,核心是构造随时间线性增长的相位,再对2π取模得到周期性跳变的相位,最后通过余弦函数转换为时域信号。这种实现仅依赖NumPy,完全适配GNU Radio环境:

import numpy as np
import matplotlib.pyplot as plt
from math import pi

# 参数配置
chirp_duration = 60e-6  # 调频持续时间
f0 = 1e6                # 起始频率
f1 = 3e6                # 终止频率
no_samp = 1001          # 采样点数
rcs = 0.0377            # 雷达截面积(当前示例未使用)

# 生成均匀采样的时间轴
rt_axis = np.linspace(0, chirp_duration, no_samp)
# 计算扫频斜率:频率随时间的变化率
freq_slope = (f1 - f0) / chirp_duration

# 构造线性增长的相位,对2π取模实现锯齿波相位特性
# 相位公式:φ(t) = 2π*(f0*t + 0.5*slope*t²),取模后相位在[0,2π)周期跳变
total_phase = 2 * pi * (f0 * rt_axis + 0.5 * freq_slope * rt_axis**2)
sawtooth_phase = np.mod(total_phase, 2 * pi)

# 生成锯齿波线性调频信号
sawtooth_chirp = np.cos(sawtooth_phase)

# 绘制瞬时频率曲线(验证扫频线性度)
instant_freq = f0 + freq_slope * rt_axis
plt.figure(figsize=(12, 3))
plt.xlabel("时间 (s)")
plt.ylabel("频率 (Hz)")
plt.title("锯齿波线性调频信号瞬时频率")
plt.plot(rt_axis, instant_freq)
plt.show()

# 绘制时域波形
plt.figure(figsize=(12, 3))
plt.xlabel("时间 (s)")
plt.ylabel("幅度")
plt.title("锯齿波线性调频信号时域波形")
plt.plot(rt_axis, sawtooth_chirp)
plt.show()

关键说明

  1. 时间轴修正:原代码中通过f_step计算采样点数的逻辑存在错误((f1-f0)/no_samp数值过小,会导致采样点数异常),改为直接用no_samp生成均匀时间轴,保证采样点数准确。
  2. 相位取模:对线性增长的相位取2π模,模拟锯齿波的周期性相位跳变,让信号高频分量更突出,解决原正弦波的问题。
  3. 环境兼容性:全程仅使用NumPy和基础数学库,无第三方依赖,可直接移植到GNU Radio自定义模块中。

内容的提问来源于stack exchange,提问作者Raj Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 08:53:24