欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 大佬們求解關于STM32 FFT變換求相位的問題 [打印本頁]

作者: Spoiled.    時間: 2021-7-22 23:16
標題: 大佬們求解關于STM32 FFT變換求相位的問題
STM32,使用了FFT變換,我看到網上說輸出的數組,求虛部比實部的反正切就是信號的相位,但是得到的明顯不是啊

void GetPowerMag()
{        
    signed short lX,lY;
    float X,Y,Mag;
    unsigned short i;
    for(i=0; i<NPT/2; i++)
    {
        lX  = (OutBufArray[ i] << 16) >> 16;        //虛部
        lY  = (OutBufArray[ i] >> 16);                //實部
        chucun[ i] = InBufArray[ i];
        imag[ i] = lX;
        real[ i] = lY;
               
        //除以32768再乘65536是為了符合浮點數計算規律
        X = NPT * ((float)lX) / 32768;
        Y = NPT * ((float)lY) / 32768;
        Mag = sqrt(X * X + Y * Y) / NPT;
        if(i == 0)
            MagBufArray[ i] = (unsigned long)(Mag * 32768);
        else
            MagBufArray[ i] = (unsigned long)(Mag * 65536);
    }
}


具體求出來的反正切值用不用再進行轉換得到相位,還是說我的過程就是錯的?
作者: ZChaoM    時間: 2021-7-23 14:09
你先確定一下你預想的算法原理和這個程序是否一樣。單片機運算可能會對數據進行處理,以此來優化運算速度。
作者: glinfei    時間: 2021-7-23 16:29
虛部除以實部,再求反正切就是相位了,這跟用DFT還是FFT沒關系,你是不是只是弧度制問題啊?
作者: Spoiled.    時間: 2021-7-23 20:40
glinfei 發表于 2021-7-23 16:29
虛部除以實部,再求反正切就是相位了,這跟用DFT還是FFT沒關系,你是不是只是弧度制問題啊?

我換了不同相位的信號接入,但是得到的值大部分都是0.785和1.57,其余的有些零星的值,比如1.2...但是換算成弧度都跟相位不對等
作者: Spoiled.    時間: 2021-7-23 20:42
glinfei 發表于 2021-7-23 16:29
虛部除以實部,再求反正切就是相位了,這跟用DFT還是FFT沒關系,你是不是只是弧度制問題啊?

您好,您有沒有這方面的例程啊,我這個是只用了官方的DSP庫,加上我上面的那個函數,但是求不了多信號合成的頻率
作者: Spoiled.    時間: 2021-7-23 21:00
ZChaoM 發表于 2021-7-23 14:09
你先確定一下你預想的算法原理和這個程序是否一樣。單片機運算可能會對數據進行處理,以此來優化運算速度。

這個求頻率求幅值還是挺準的
作者: wfqxgw    時間: 2021-7-23 22:28
剛好現在也正在用STM32來用FFT.GetPowerMag()這個程序沒問題的. MagBufArray[ i] 就是各個頻率幅值.取前面NPT/2的數組顯示就行.
如果顯示數據有錯.那應該就是你ADC采集那里有問題.
另外.順便說一下我目前遇到的問題.就是FFT的頻率混疊問題.比較麻煩.如果有大神有好的解決方案.方便分享一下.除了硬件電路加濾波外.
作者: 快樂牌小刀片    時間: 2023-7-29 20:42
我也是這個問題,請問解決了嗎?




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1