FFT Scope
SinksFFT Scope 方块利用快速傅里叶变换(FFT)实时显示一个或多个信号的频域频谱。它属于接收端方块(Sink)——没有输出端口,也不会对系统的仿真计算产生任何反作用。
最多可将多条信号连线接入单个 Signal 输入端口。所有接入的信号都会被同步分析,并以不同颜色的叠加光谱曲线呈现。
典型用途:
- 识别振荡器或控制器输出的主导谐振频率
- 验证滤波器是否在目标频段内提供了足够的衰减
- 检测由非线性环节引入的谐波分量与频谱泄露
- 分析两个信号之间的相位差与频域相位特性
---
输入与输出
| Direction | ID | Label | 类型 | Status |
|---|---|---|---|---|
| → In | signal |
Signal | number | Required |
参数
| 参数 | Label | 类型 | 默认值 | 描述 |
|---|---|---|---|---|
title |
Title | text | Frequency Spectrum |
|
displayMode |
Display Mode | select | db |
|
analysisMode |
Analysis Mode | select | window |
|
fftSize |
FFT Window Size | select | 1024 |
Number of samples used per FFT computation. |
windowFunction |
Window Function | select | hann |
Reduces spectral leakage. |
maxFrequency |
Max Frequency (Hz, 0 = auto) | number | 0 |
Set to 0 to auto-scale based on the Nyquist frequency. |
peakHold |
Peak Hold | boolean | false |
Maintains the maximum value reached across all spectra. |
showLegend |
Show Legend | boolean | true |
|
showGrid |
Show Grid | boolean | true |
使用示例
饱和非线性环节的谐波失真分析
SignalGenerator (50 Hz) → Saturation → FFTScope
实时观察因正弦波削顶而产生的奇次谐波群(150 Hz, 250 Hz, ...)。
说明与最佳实践
- 增加 FFT 尺寸会提高频率分辨率,但需要累积更多的历史点数后频谱才会稳定成形。
- 若已采样本数不足
fftSize,信号前端会自动进行零填充(Zero-Padding)。 - 每次重新启动仿真时,Peak Hold 包络会自动清空重置。
- 奈奎斯特频率(
sampleRate / 2)构成了横轴所能呈现的最高物理频率。 - 在 Phase (°) 模式下:从 _t = 0_ 开始的单一频率 _f_ 纯正弦波在该频带处显示的相位为 −90°(DFT 经典约定)。余弦波显示为 0°。
相关模块
- uPlotDisplay:用于观察信号随时间演化波形的时域示波器。
- BodePlot:线性系统在频域下的传递特性分析。
- SignalGenerator:提供可调频率的基准正弦波及复合测试信号源。