返回信息流就是这样一个传感器输出的信号的波形,需要测它的基波的频率,用FFT算法,不知道哪位大牛曾经做过,能给小弟一点指导,不胜感激[em1]
这是一条镜像帖。来源:北邮人论坛 / circuit / #10643同步于 2009/6/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖
请教用DSP做过FFT相关实验的前辈
un163tom
2009/6/24镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
【 在 CassiopeiaII 的大作中提到: 】
: 没用dsp做过~~只用单片机做过~~
: 官方应该都会有fft相关的应用笔记吧~可以上官网查一下~~
那请问一下你用的什么单片机做的,速度能跟上吗?
我今天下午只是用示波器看了看传感器输出的波形,具体的编程还没开始,就像这个求它的基波频率用FFT能算出来吗?我大概看了下那个DSP程序,最后它是用一个数组来存的运算结果,应该是幅度值,但这跟基波频率怎么扯上关系呢?
main()
{
int i;
InitForFFT();
MakeWave();
for ( i=0;i<SAMPLENUMBER;i++ )
{
fWaveR[i]=INPUT[i];
fWaveI[i]=0.0f;
w[i]=0.0f;
}
FFT(fWaveR,fWaveI);
for ( i=0;i<SAMPLENUMBER;i++ )
{
DATA[i]=w[i];
}
while ( 1 );
}
【 在 un163tom 的大作中提到: 】
: 就是这样一个传感器输出的信号的波形,需要测它的基波的频率,用FFT算法,不知道哪位大牛曾经做过,能给小弟一点指导,不胜感激[em1]
波形是这样的
我用的是8051f120~~100mips~看得就是官方给的fft函数。
用fft是可以求出基频的,具体的可以上网查一下或者看看数字信号处理的书。
我这里给你简单说一下吧~
举例说明:
首先,fft函数出来的应该是个复数,每一个点分时部虚部两部分。
假设采用1024点fft,采样频率是fs,那么第一个点对应0频率点第512点对应的就是fs/2的频率点。然后从头开始找模值最大的那个点,其所对应的频率值应该就是你要的基波频率了。
ps:数字信号处理其实我也忘得差不多了~~不知道有没有说错~~建议还是看看书吧~~
ps:这门课还是很重要的。后悔当初没学好。
【 在 un163tom 的大作中提到: 】
: 那请问一下你用的什么单片机做的,速度能跟上吗?
: 我今天下午只是用示波器看了看传感器输出的波形,具体的编程还没开始,就像这个求它的基波频率用FFT能算出来吗?我大概看了下那个DSP程序,最后它是用一个数组来存的运算结果,应该是幅度值,但这跟基波频率怎么扯上关系呢?
: main()
: ...................
【 在 CassiopeiaII 的大作中提到: 】
: 我用的是8051f120~~100mips~看得就是官方给的fft函数。
: 用fft是可以求出基频的,具体的可以上网查一下或者看看数字信号处理的书。
: 我这里给你简单说一下吧~
: ...................
恩,非常谢谢,给我说的已经很详细了,我以后做的时候有什么问题,还到这里来向你请教,[em18]
PS:我是外校的