Áp dụng trọng số A


11

Tôi muốn tính toán độ to của tín hiệu đã cho và tôi đã bắt gặp chủ đề này . Tôi hơi bối rối về khía cạnh A-weighting của nó. Tôi không thể đăng hình ảnh, nhưng tôi nghĩ rằng trang web này có công thức tôi cần. (Chờ = 10log ...)

Điều tôi không hiểu là làm thế nào để thực sự sử dụng nó trong chương trình của mình. Nếu flà viết tắt của tần số, thì có lẽ tôi có thể mã hóa cứng các giá trị vì chúng sẽ không đổi. Nếu đó là trường hợp, làm thế nào để tôi áp dụng Wacho các giá trị mẫu của tôi và tôi sử dụng những giá trị nào? Tôi có tính toán phổ công suất để nhận WINDOW_SIZE/2các giá trị và nhân từng giá trị trong dải tần số với Wagiá trị được tính toán trước có liên quan hay đó là cách làm sai? Cảm ơn bạn trước.

Câu trả lời:


8

Có, bạn có thể mã hóa các giá trị, thực hiện FFT tín hiệu của mình và nhân với các giá trị được mã hóa cứng, sau đó lấy biên độ trong miền tần số từ định lý Parseval ( ví dụ ).

Bạn cũng có thể triển khai bộ lọc kỹ thuật số và thực hiện nó trong miền thời gian. Đây là mã Matlabbản dịch của tôi sang Python .

Lưu ý rằng biến đổi song tuyến làm cho bộ lọc kỹ thuật số khởi động nhanh hơn bộ lọc tương tự, đưa ra các lỗi đo ở tốc độ mẫu phổ biến. Một sửa chữa đơn giản là lấy mẫu dữ liệu trước, vì vậy sự khác biệt được giảm thiểu. Các phương pháp thiết kế bộ lọc khác tại đây: http://dsp.stackexchange.com/q/36077/29


Cảm ơn, tôi hiểu nó tốt hơn một chút. Trong ví dụ Parseval của bạn, rms_flat có phải là phương trình RMS không (SQRT(x1^2 + x2^2...xn^2/n))và sự khác biệt giữa rms_flat của tín hiệu và rms_flat của FFT là gì?
Thử mã hóa

@ExpAns: Vâng, rms_flat()chỉ là sqrt(mean(absolute(a)**2)). Cái /nở bên ngoài. Giá trị RMS của tín hiệu và FFT là như nhau ngoại trừ hệ số tỷ lệ.
endolith
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.