This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR6889:使用"DSPLib.h"库来测量 FFT

Guru**** 2378650 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1131475/msp430fr6889-use-of-dsplib-h-library-to-measure-fft

器件型号:MSP430FR6889

您好!

我在一个项目中使用 MSP430和 BMI160。 我正在使用 BMI160加速计来测量振动。 想法是使用 DSPLib 的 FFT 函数来确定振动事件中的主要频率。 根据我当前对 FFT 分析的理解、我意识到我需要的样本数应为2^n 个数据点、我还需要采样频率。 当我使用此函数时:

msp_status msp_fft_fixed_q15	(	const msp_fft_q15_params * 	params,
int16_t * 	src 
)	

我传递"params"和"src"参数(源):

参数:指向实数 FFT 参数结构的指针。  
src:指向要对其执行 FFT 的实数组的指针。

我认为这是参数结构(源:dsplib_transform.h):

typedef struct msp_fft_q15_params {
    //! \details
    //! Length of the source data, must be a power of two.
    uint16_t length;
    //! \details
    //! Perform bit-reversal of the input before transformation. This step is
    //! mandatory, this parameter only exists for applications that might handle
    //! bit reversal when storing the data samples to memory. If not this needs
    //! to be set to true.
    bool bitReverse;
    //! \details
    //! Pointer to the twiddle coefficient table with size greater than or equal
    //! to the source length. When using LEA this can be a NULL pointer.
    const _q15 *twiddleTable;
} msp_fft_q15_params;

当我发送"SCR"参数时、我将发送实际数据点及其振幅。 例如、如果我从加速计的 z 轴获取1024个样本、我将在该数组中存储1024个连续样本的振幅。

但我不确定如何将样本的采样频率传递到 FFT 函数。 如果有人能解释 FFT 函数如何进行 FFT 分析、我将不胜感激。

谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    FFT 函数与频率无关。 这仅在您解释数据时使用。 例如、在1Hz 时获取的1024点 FFT 是在1MHz 时计算为1024点。 唯一的区别是、对于第一种情况、采样单元为1Hz/1024、而另一种为1MHz/1024。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回答。 例如、如果我想以1Hz 的频率采集1024个样本、我是否应该在读取每个数据后添加1秒的延迟? 这样、样本库将为1Hz/1024。  

    也许我不是完全理解这个过程。 我看过几个例子,但在任何地方,它们都使用一个等式,它是两个正弦波的组合,它们只是采集样本。 是否可以使用"MSP_FFT_FIXED_Q15 ()"函数共享一个代码示例、其中正在接收来自传感器的数据并将 FFT 应用于传感器?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、您回答正确。 首先要设置的是采样率、其他一切都遵循该速率。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我相信 TI 没有任何示例可以完全按照您所描述的方式工作。 但是、您应该能够轻松地获取 FFT 示例并使用 来自传感器的数据。

    此致、

    Evan