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.

[参考译文] CCS/TMS320F2.8335万:如何从FFT结果中读取频谱的频率范围。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/633830/ccs-tms320f28335-how-to-read-the-frequency-scale-of-spectrum-from-fft-result

部件号:TMS320F2.8335万

工具/软件:Code Composer Studio

您好,

我使用的是5.3 Studio(CCS).0.0.009万
我找到 了一个来自controlSUITE的名为“具有ADC输入(实时)的F2833x Real FFT”的示例项目
以下是此项目的示例文件:「C:\ti\controlSUITE\libs\DSP\FPU\V120\Examples_ccsv4\2833x_RFFT_ADC_RT

我的问题是,如何阅读TI示例项目中的“FFT结果”。

我的意思是,当FFT操作完成时,我可以获得输入信号的振幅和相位频谱。
我成功地获得了光谱,但我不知道如何读取它。 程序说明中有关FFT的信息太少。

FFT项目默认设置的采样率信息为48kHz,FFT_SIZE为512。
那么,FFT的信息和频谱之间的关系是什么?

在FFT计算之后,我可以得到每个振幅和相位256个结果,这些结果代表的频率是什么?  
例如,振幅频谱有256个值,x代表256个结果。  
当x为0表示DC的平均值,当x为1表示"某频率"的值时,..... ,当x为255时,表示“某些频率”。
我有255个不同的量级代表不同的频率。 这是我想要的振幅频谱,但我不知道 频率标度。

当x为1时,频率平均值为5Hz? 当x为2时,频率平均值为10Hz? ....,当x是255时,频率平均值是1275Hz? 我不知道。

那么,有没有办法计算出“某种频率”的频率呢?


感谢您的帮助!

顺祝商祺,陈燕莉

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


    该库记录良好,频率点取决于采样频率和FFT长度。

    例如,如果您在50kHz处采样信号,然后执行512点FFT,则您将获得256个频率分箱。

    它们平均分配为25KHz,即第一个值对应于零频率,其次对应于25kHz/256,然后对应于25KHz /256*2,依此类推。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Manish,

    谢谢! 这真的帮了我很多!

    您能给我另一个帮助吗? 我对更改采样频率和FFT长度有一些疑问。

    我想使用傅里叶分析来查找60Hz和75Hz的振幅和相位,频率标度为5 Hz。
    项目默认设置采样率为48kHz,不能使用512点FFT长度,24kHz/256甚至不是整数。
    因此,如果我可以在2.048万Hz采样信号,然后执行4096点FFT,就可以了。

    更改采样频率部分:
    程序描述说"信号由ePWM模块采样,采样频率在Lab.h中定义"。
    我发现采样频率定义为
    "定义ADC_SAMPLE_Period 3124 // 3124 =(3125-1)= 48 KHz采样频率,带150 MHz SYSCLKOUT"。
    看起来采样频率只能设置为150m的系数,
    平均150m除以采样频率是否必须为整数?
    我是否可以这样设置:“7323.21875 =(SYSCLKOUT)= 2.048万Hz sampling w/ 150 7324.21875 ”?
    此设置是否有任何问题?(编译后未显示任何错误)

    更改FFT长度部分:
    程序描述说:"此程序显示如何计算具有12位实时ADC输入的真实FFT和..."。
    那么,这意味着FFT长度最多可以达到4096个点(12位),对吗?
    在我将FFT_REAL_STEN等 从9更改为12 (此程序也在Lab.h中定义)后,
    出现错误“ERROR: Errors encountered during linking;“2833x_RFFT_ADC_RT.out not built”。
    这有什么问题吗?


    感谢您的帮助!

    顺祝商祺,陈燕莉