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

Python使用scipy.signal.chirp生成正弦扫频信号异常求助

正弦扫频信号生成异常问题

我使用Python的scipy.signal.chirp生成正弦扫频信号,但结果不符合预期,调整多种频率参数后仍存在异常。代码如下:

from scipy.signal import chirp
import numpy as np 
import matplotlib.pyplot as plt 

t = np.linspace(0, 320e-9, 1601); 
x = chirp(t, 2.5e9, 320e-9, 4.5e9, method='linear', phi=-90)

生成的信号波形异常,效果如下:
异常的正弦扫频信号波形


问题原因

核心问题是采样率不足导致混叠。根据奈奎斯特采样定理,采样率必须至少是信号最高频率的2倍才能避免混叠。你的扫频最高频率是4.5GHz,因此采样率至少需要9GHz,但当前代码的采样率仅为:
(1601-1)/320e-9 = 5e9 Hz(5GHz),远低于要求的9GHz,所以波形出现严重畸变。

解决办法

提升采样率至满足奈奎斯特准则,修改后的代码示例:

from scipy.signal import chirp
import numpy as np 
import matplotlib.pyplot as plt 

# 设置采样率为9GHz(满足2*4.5GHz的要求)
Fs = 9e9
t_duration = 320e-9
# 生成时间序列,确保采样点覆盖整个时长
t = np.linspace(0, t_duration, int(Fs * t_duration) + 1)
# 生成线性扫频信号
x = chirp(t, 2.5e9, t_duration, 4.5e9, method='linear', phi=-90)

# 绘图验证
plt.plot(t*1e9, x)
plt.xlabel('时间(ns)')
plt.ylabel('幅度')
plt.title('正常线性正弦扫频信号')
plt.show()

也可以用np.arange生成时间序列,避免浮点精度误差:

t = np.arange(0, t_duration + 1/Fs, 1/Fs)

这样生成的信号就不会出现混叠导致的异常波形。


内容的提问来源于stack exchange,提问作者Reza Afra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 16:20:06