Tag: kissfft

在dsPIC33上吻合FFT

我一直试图让KissFFT在dsPIC上工作,但是在尝试了各种不同的方法之后,输出并不是应该的。 我希望得到一些帮助,看看是否有任何我可能会忽略的配置,或者它是否只是我没有想到的东西? 我在MPLABX中使用dsPIC33EP256MC202和XC16编译器。 声明和内存分配。 int readings[3] = {0, 0, 0}; kiss_fft_scalar zero; memset(&zero,0,sizeof(zero)); int size = 128 * 2; float fin[256]; kiss_fft_cpx in[size]; kiss_fft_cpx out[size]; for (i = 0; i < size; i++) { in[i].r = zero; in[i].i = zero; out[i].r = zero; out[i].i = zero; } kiss_fft_cfg mycfg = kiss_fft_alloc(size*2 ,0 ,NULL,NULL); 从面包板上的accellerometer读取读数并填充浮子arrays(使用毕达哥拉斯将3轴合并为一个信号)。 输入XYZ值按比例缩小,平均值介于-2400和2400之间。 […]

KissFFT正向/反向输出噪声,为什么?

我试图在java应用程序中原生使用KissFFT,但输入信号的正向/反向不会按原样返回:信号幅度几乎不存在。 如果我删除比例因子(除以2N),结果就是谐波噪声。 谁能发现这个bug? 这是前转呼叫(从GDX复制,所以应该没问题!): JNIEXPORT void JNICALL Java_com_badlogic_gdx_audio_analysis_KissFFT_spectrum(JNIEnv* env, jclass clazz, jlong handle, jshortArray obj_samples, jfloatArray obj_spectrum) { short* samples = (short*)env->GetPrimitiveArrayCritical(obj_samples, 0); float* spectrum = (float*)env->GetPrimitiveArrayCritical(obj_spectrum, 0); KissFFT* fft = (KissFFT*)handle; kiss_fftr( fft->forwardConfig, (kiss_fft_scalar*)samples, fft->spectrum ); int len = fft->numSamples / 2 + 1; for( int i = 0; i spectrum[i].r) * fft->numSamples; float […]

在反转FFT时无法获得准确的数据

好吧,我想要实现的目标很简单。 对某些随机数据应用FFT,然后在输出上应用反向算法以获取输入。 我正在使用kissFFT库。 码: const int fft_siz = 512; const int inverse = 1; kiss_fft_cpx* in = (kiss_fft_cpx*)malloc(sizeof(kiss_fft_cpx) * fft_siz); kiss_fft_cpx* out = (kiss_fft_cpx*)malloc(sizeof(kiss_fft_cpx) * fft_siz); kiss_fft_cpx* rec = (kiss_fft_cpx*)malloc(sizeof(kiss_fft_cpx) * fft_siz); kiss_fft_cfg cfg = kiss_fft_alloc(fft_siz, !inverse, NULL, NULL); kiss_fft_cfg icfg = kiss_fft_alloc(fft_siz, inverse, NULL, NULL); srand((unsigned int)time(NULL)); for(int i = 0; i < fft_siz; […]