2012-04-29 12 views
7

Tôi có những 6 hệ số cho đạt đỉnh EQ:Hệ số IIR để đạt đỉnh EQ, cách chuyển chúng sang vDSP_deq22?

b0 = 1 + (α ⋅ A) 
b1 = −2⋅ωC 
b2 = 1 - (α ⋅ A) 
a0 = 1 + (α/A) 
a1 = −2 ⋅ ωC 
a2 = 1 − (α/A) 

Với những biến trung gian:

ωc = 2 ⋅ π ⋅ fc/fs 
ωS = sin(ωc) 
ωC = cos(ωc) 
A = sqrt(10^(G/20)) 
α = ωS/(2Q) 

Các tài liệu của vDSP_deq22() nói rằng "5 đầu vào đơn chính xác, hệ số bộ lọc" nên được thông qua nhưng Tôi có 6 hệ số! Ngoài ra, theo thứ tự nào tôi chuyển chúng đến vDSP_deq22()?

Cập nhật (17/05): Tôi khuyên mọi người nên sử dụng lớp DSP mà tôi phát hành trên github: https://github.com/bartolsthoorn/NVDSP Nó có thể giúp bạn tiết kiệm một số công việc.

Trả lời

8

Một bộ lọc thứ 2-thứ tự có thể được biểu thị bằng phương trình chênh lệch sau (ab có thể được trao đổi tùy thuộc vào cách bạn đã xác định chúng):

a0.y[n] = b0.x[n] + b1.x[n-1] + b2.x[n-2] - a1.y[n-1] - a2.y[n-2] 

Bạn có thể chia thông qua bởi a0 để có được một biểu thức cho y[n], và sau đó bạn chỉ cần 5 hệ số.

Tài liệu tôi tìm thấy here chỉ định thứ tự (xem phương trình được đưa ra). Có vẻ như đơn đặt hàng là:

{ b0/a0, b1/a0, b2/a0, a1/a0, a2/a0 } 
+0

Cảm ơn bạn, giải thích thực sự rõ ràng! – bartolsthoorn

+0

Ehm, bạn có nghĩ rằng đó là '{b0/a0, b1/a0, b2/a0, a1/a0, a2/a0}' – bartolsthoorn

+2

@bartolsthoorn: Não của tôi có, nhưng ngón tay của tôi không ... –

Các vấn đề liên quan