XTOS / OPEN SOURCE REAL-TIME SYSTEMOPEN SOURCE · VERSION 0.9.0 · BUILD FROM SOURCE
libxtos-signalxtos_signal_fft_power

xtos_signal_fft_power

计算未归一化 DFT 的单边平方幅值功率,输出 bin 0 到 n/2。

本页目录

声明

c
#include <xtos/signal.h>

int xtos_signal_fft_power(const double *input,
                          size_t n,
                          double *power,
                          size_t power_count);

参数

参数类型说明
inputconst double *非 NULL 输入数组,至少 n 个 double;实现不会检查 NaN/Inf。
nsize_t非零的 2 的幂;决定 FFT 长度。
powerdouble *非 NULL 输出数组,至少 n/2+1 项,由调用方分配。
power_countsize_t输出容量,以 double 元素计,至少 n/2+1。

返回值

成功返回 0;失败返回 -1。power[0..n/2] 被写入,额外容量保持原样。

错误

errno条件
EINVAL指针为空、n 不是非零 2 的幂,或输出容量不足。
ENOMEM内部两个 n 元素临时数组分配失败。

注意事项

  • 实现内部 calloc 两个 n 长度数组并在返回前释放;调用方仍负责 power。
  • 功率为 Re(X)^2+Im(X)^2,不除以 n 或 n^2,不加窗、不去均值、不自动乘 2;未检查 NaN/Inf。

示例

源码

本文按 OpenXTOS 提交 dd313955ad57542bcd2af8827157d1bbd0cf5e83 的头文件和实现编写。