 
        
        
    | 最近在搞FFT  我用的是自带DSP库中64点 的FFT  现在我遇到一个问题是:我在通过对采样数据进行完FFT后  来计算各次谐波幅值的时候发现计算的值就不对  总是乱跳 (前提是我用的是一个可以产生稳定谐波的源)不知道这是为什么。希望高手给予指点 计算幅值的程序如下: void powerMag(long nfill) { s32 lX,lY; u32 i; for (i=0; i < nfill; i++) { lX= (lBUFOUT16; /* sine_cosine --> cos */ lY= (lBUFOUT >> 16); /* sine_cosine --> sin */  { float X= NPT*((float)lX)/32768; float Y = NPT*((float)lY)/32768; float Mag = sqrt(X*X+ Y*Y)/nfill; // 先平方和,再开方 lBUFMAG[i1] = (u32)(Mag*65536); // } } } | 
 微信公众号
                微信公众号
             手机版
                手机版
             
		
	
	
	
RE:FFT 计算各次谐波的幅值
这个不还是lBUFOUT吗?
回复:FFT 计算各次谐波的幅值
lX= (lBUFOUT16; /* sine_cosine --> cos */
这个不还是lBUFOUT吗?
是的 我的理解是确宝高16位为空吧 这个求幅值的函数 是我在网上找的 大多数都是这样的 是因为这点的原因吗?
RE:FFT 计算各次谐波的幅值
RE:FFT 计算各次谐波的幅值
回复:FFT 计算各次谐波的幅值
其实也可以这样写,a&0x00FF。取的是低16位。这里最好还是仿真看一下,实际采集的数据和你发书据是不是相同。
好的 我试试看
回复:FFT 计算各次谐波的幅值
其实也可以这样写,a&0x00FF。取的是低16位。这里最好还是仿真看一下,实际采集的数据和你发书据是不是相同。
a&0x00FF。取的是低16位,你确定?????