마이크 입력에서 FFT를 계산하고 있습니다. 저주파는 항상 고주파수보다 더 많은 전력 (더 높은 dB)을 갖는 것으로 보입니다.
- 데이터를 24576 바이트 (4096 * 6)의 프레임으로 자릅니다.
- 해밍 적용 창 :
input[i] *= (0.54d - 0.46d*(double) Math.Cos((2d*Math.PI*i)/fs));
- FFTW를 통해 실행하십시오
Process1D()
. - 복소수에서 변환 :
output[i] = 10.0 * Math.Log10((fout[i * 2] * fout[i * 2]) + (fout[i * 2 + 1] * fout[i * 2 + 1]));
- 4096 바이트의 완전한 FFT를 얻으려면 6 개의 값을 평균화하십시오.
- 예쁜 그림을 그립니다 (색상은 팔레트에 매핑 됨).
FFT 노이즈를 낮추기 위해 평균화 (5 페이지)가 수행됩니다.
이미지가 소리와 마이크가 모두 꺼져있는 상태에서 알 수 있으므로 더 낮은 주파수에서 더 많은 에너지 (및 더 많은 노이즈)가 있습니다. 이는 마이크 / 서브 문제 이상을 나타냅니다.
내 질문 :
1. 이것이 예상됩니까? 왜?
2. 이것을 고치는 표준 방법은 무엇입니까? 거의 일부 Math.Tan () 마술이 속한 곳에서 마술을 들어 올릴 수 있습니다.
저의 목표는 기본적으로 낮은 주파수에서 승리하지 않고도 상위 5 개의 주파수를 식별 할 수 있도록하는 것입니다.