xtos_ signal_ fft_ power
计算未归一化 DFT 的单边平方幅值功率,输出 bin 0 到 n/2。
本页目录
声明
#include <xtos/signal.h>
int xtos_signal_fft_power(const double *input,
size_t n,
double *power,
size_t power_count);参数
| 参数 | 类型 | 说明 |
|---|---|---|
| input | const double * | 非 NULL 输入数组,至少 n 个 double;实现不会检查 NaN/Inf。 |
| n | size_t | 非零的 2 的幂;决定 FFT 长度。 |
| power | double * | 非 NULL 输出数组,至少 n/2+1 项,由调用方分配。 |
| power_count | size_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 的头文件和实现编写。