我正在尝试编写一个代码来省略FFT的一个边带并将另一个边缘移到中心, 我知道采样率(2 GHz)和样本数是(10000)边带位于(-55,-355)和(55,355) 我想知道每条谱线的频率分辨率 这是我写的代码......
void compfft (double *source, double *destination, int length)
{
double *realPart = malloc(length*sizeof(double));
double *ImgPart = malloc(length*sizeof(double));
int index,i,j;
for (index= 0;index< length; index++)
{
realPart[index] = source[index]; //data to a local array
}
memset(ImgPart, 0, sizeof(ImgPart));
FFT(realPart, ImgPart, length); //Take fft
//shifting the destination array
for(i=0; i<(length/4) ; i++){
*destination[i]=* realPart[i+749];
}
//filling the destination array with source array values from 55 Hz to 355 Hz
for(j=99; j<(length/5); j++){
destination[j] = realPart[j+750];
}
free(realPart);
free(ImgPart);
}
但我的主管告诉我这是错的,我需要阅读更多关于基础知识的内容 我真的很困惑plz帮助..
答案 0 :(得分:0)
带宽和分辨率不仅取决于采样率,还取决于FFT窗口的长度和形状,以及测量或定义带宽和分辨率的方式,以及可能的信噪比。