나는 보수계 응용 프로그램에서 일하고 있는데 Arduino 101에서 arduinoFFT (kosme) 라이브러리를 사용하는 가속도계 데이터에서 실시간 fft를 실행하고 있습니다.fft 출력에서 주파수를 알아내는 방법은 무엇입니까?
샘플링 주파수가 100Hz라고 가정 해 봅시다. 나는 걷거나 뛰는 주파수와 약 1-4Hz에서 일치하는 신체의 아래쪽 움직임에 관심이있다. 내가 사용하고있는 라이브러리를 포함하여 많은 라이브러리가 연산 크기 함수를 갖고있는 것처럼 보입니다. 이것은 효과적으로 진폭의 수를 사용하는 bin의 수를 절반으로 줄 것입니다 (64 개의 샘플을 입력하면 32 개의 진폭을 보입니다).
제 질문은 이러한 진폭이 어떤 주파수에 해당합니까? 내가 진정으로이 경우 이유를 이해하고 그것에 대해 완전히 바보되는하고 경우에 저를 용서하십시오하지 않는
for (int i=0; i<(noofbins>>1); i++) {
freq[i]=((i*samplingfreq)/(noofbins>>1));
}
다음과 같이 라이브러리가 제공하는 예제 코드에서 는 주파수가 계산됩니다. 게다가 이것은 실제로 0에서 100Hz (내가 사용하는 샘플링 주파수)의 주파수를 제공합니다. 샘플링 빈도를 낮추지 않고 관심 주파수에 대해 fft를 미세 조정하는 방법이 있습니까 (이 경우 끔찍한 생각 일 수 있습니다).
[FFT에서 각 값의 주파수는 어떻게 구할 수 있습니까?] (http://stackoverflow.com/questions/4364823/how-do-i-obtain-the-frequencies-of-each- -f-fft) –
각 FFT bin의 해상도는'Fs/N = 100/64 = 1.5625 Hz'이므로 빈 인덱스 3은'3 * 1.5625 = 4.6875 Hz'의 빈도에 해당합니다 자세한 내용은 [링크 된 중복 답변] (http://stackoverflow.com/a/4371627/253056)을 참조하십시오. –