Tôi đang tính FFT từ đầu vào micrô. Tôi nhận thấy rằng tần số thấp hơn dường như luôn có nhiều công suất (dB cao hơn) so với tần số cao hơn.
- Tôi cắt dữ liệu thành các khung là 24576 byte (4096 * 6).
- Áp dụng cửa sổ Hamming:
input[i] *= (0.54d - 0.46d*(double) Math.Cos((2d*Math.PI*i)/fs));
- Chạy nó thông qua FFTW
Process1D()
. - Chuyển đổi từ số phức:
output[i] = 10.0 * Math.Log10((fout[i * 2] * fout[i * 2]) + (fout[i * 2 + 1] * fout[i * 2 + 1]));
- Trung bình ra 6 giá trị để có được FFT hoàn chỉnh 4096 byte.
- Vẽ hình ảnh đẹp (màu sắc được ánh xạ vào bảng màu).
Tính trung bình (pt. 5) được thực hiện để giảm nhiễu FFT.
Vì hình ảnh hiển thị cả với âm thanh và tắt mic, nên có nhiều năng lượng hơn (và nhiều nhiễu hơn) ở các tần số thấp hơn. Điều này cho thấy nó không chỉ là vấn đề mic / phụ.
Câu hỏi của tôi:
1. Điều này có được mong đợi không? Tại sao?
2. Bất kỳ cách tiêu chuẩn để sửa lỗi này? Hầu như trông giống như một số phép thuật Math.Tan () có thể nâng nó lên nơi nó thuộc về.
Mục tiêu của tôi là có thể xác định 5 tần số hàng đầu mà không có tần số thấp hơn chiến thắng theo mặc định.