Đăng lần đầu tiên, cảm ơn cộng đồng tuyệt vời!AudioKit FFT chuyển đổi sang dB?
Tôi đang sử dụng AudioKit
và cố thêm bộ lọc tần số vào đầu vào micrô và vì vậy tôi đang cố gắng hiểu các giá trị sắp ra khỏi AudioKit AKFFTTap.
Hiện nay tôi đang cố gắng để chỉ in đệm FFT chuyển đổi thành dB giá trị
for i in 0..<self.bufferSize {
let db = 20 * log10((self.fft?.fftData[Int(i)])!)
print(db)
}
tôi đã mong đợi giá trị khác nhau, trong phạm vi khoảng -128 đến 0, nhưng tôi nhận được giá trị kỳ lạ của gần -200dB và khi tôi thổi vào micrô để cố định, nó chỉ đạt khoảng -60. Tôi không tiếp cận điều này một cách chính xác? Tôi đã giả định rằng các giá trị được đầu ra từ động cơ EZAudioFFT sẽ là giá trị biên độ đơn giản và phép tính chuyển đổi dB bình thường sẽ hoạt động. Ai có ý tưởng gì không?
Cảm ơn trước vì đã thảo luận về vấn đề này!
Tôi đã thử ý tưởng của bạn về tổng hợp các giá trị tuyệt đối trong 'self.fft? .fftData' và tôi chắc chắn nhận được kết quả hợp lý hơn, tuy nhiên, kết quả vẫn quá nhạy cảm. Để kiểm tra điều này, tôi đang thêm một giá trị bù đắp để có được số đọc phù hợp với đồng hồ SPL chuyên dụng mà tôi có ở đây tại bàn làm việc của mình. Và nếu tôi nói, còi, thổi, hoặc tạo ra tiếng ồn hồng và so sánh kết quả, ứng dụng của tôi nhảy 40dB + trong khi đồng hồ SPL chỉ tăng 7-10 dB. Tôi đã so sánh với một số ứng dụng iOS để xem chỉ số dB và chúng dường như có kết quả tương tự với đồng hồ SPL. Bất kỳ ý tưởng tại sao điều này sẽ nhạy cảm hơn nhiều? –
bạn đang sử dụng bao nhiêu mẫu cho một phép tính? bộ đệm đầy đủ? Tôi đã sử dụng tiêu chuẩn Tap, tôi không có kinh nghiệm với AKFFTTap vì vậy có lẽ tôi đang thiếu một cái gì đó –