Thiết kế bộ lọc bằng cách phân phối các cực và số không trên các đường cong tham số


17

Một thứ tự Butterworth bộ lọc thông thấp của tần số cắt thể được thiết kế bằng cách phân phối cực thống nhất đối với với tham số trên s-máy bay tham số đường cong , đó là một hình bán nguyệt:ω c N 0 < α < 1 f ( α ) = ω c e i ( π / 2 + π α )NωcN0<α<1f(α)=ωcei(π/2+πα)

Bộ lọc Butterworth
Hình 1. Các cực của bộ lọc Butterworth bậc 6 (CC BY-SA 3.0 Fcorthay)

Điều đáng chú ý là đường cong tham số tương tự có thể được sử dụng cho bất kỳ mức độ lọc cho hàm truyền không chuẩn hóa:N

(1)H(s)=k=1N1sf(2k12N),

và bộ lọc kết quả luôn là bộ lọc Butterworth. Điều đó có nghĩa là, không có bộ lọc nào khác có cùng số cực và số không có số lượng dẫn xuất biến mất cao hơn của đáp ứng tần số cường độ ở tần số và . Tập hợp các bộ lọc Butterworth có cùng tần số cắt tạo thành một tập hợp con của các bộ lọc Butterworth có đường cong tham số là duy nhất. Tập hợp con là vô hạn vì không có giới hạn trên.ω=0ω=ωcf(α)N

Tổng quát hơn, không cực và số không đếm ở vô cực , trừ khi họ xuất phát từ các đường cong tham số, bất kỳ bộ lọc với cực và số không, với là một số nguyên và một phần không âm của số nguyên, có chức năng chuyển unnormalized hình thức:NNpNNzNNz/Np

(2)H(s)=k=1NNz(sfz(2k12NNz))k=1NNp(sfp(2k12NNp)),

trong đó và là các đường cong tham số có thể mô tả phân bố cực và số không trong giới hạn .fp(α)fz(α)N

  • Câu hỏi 1: Những loại bộ lọc nào khác ngoài Butterworth, được xác định bởi một số tiêu chí tối ưu, có các tập hợp con vô hạn được xác định bởi phân số và cặp đường cong tham số và trên mỗi biểu thức. 2, với các bộ lọc chỉ khác nhau bởi ? Nz/Npfp(α)fz(α)N αBộ lọc loại I Ch Quashev , có; với chúng, các cực nằm trên một nửa hình elip có góc tham số . Cả hai bộ lọc Chworthshev của Butterworth và loại I và loại II đều là những trường hợp đặc biệt của bộ lọc elip . Nói rõ hơn, bởi "tập con vô hạn" Tôi không có nghĩa là số lượng tập con vô hạn, mà là tập hợp con có kích thước vô hạn.α
  • Câu hỏi 2: Các bộ lọc elip không phải Butterworth-non-Ch Quashev có tập con vô hạn như vậy không?
  • Câu 3: Có phải mọi bộ lọc elip trong một tập hợp con vô hạn như vậy không?

Nếu tập hợp vô hạn của tất cả các bộ lọc hình elip là một tập hợp các tập hợp con vô hạn hoàn toàn loại trừ và triệt để lẫn nhau, mỗi bộ lọc được xác định bởi một đường cong tham số duy nhất để đặt các cực và một đường cong tham số duy nhất để đặt các số 0 và một phần không thể đếm được của số số không đến cực, sau đó tối ưu hóa số để có được các bộ lọc elip có thể được thực hiện bằng cách tối ưu hóa các đường cong tham số thay vì các bộ lọc cho bất kỳ thứ tự cụ thể nào. Các đường cong tối ưu có thể được sử dụng lại cho một số đơn đặt hàng bộ lọc, duy trì sự tối ưu. "Nếu" ở trên là lý do tại sao tôi đặt câu hỏi 2 và 3. Câu hỏi 1 là về việc mở rộng cách tiếp cận các tiêu chí tối ưu khác.

Chắc chắn các lô cực không của các bộ lọc elip trông giống như có một số đường cong cơ bản:

Bộ lọc elip
Hình 2. Độ lớn logarit của bộ lọc thông thấp elip trên mặt phẳng s. Điểm trắng là cực và điểm đen là số không.

Một dẫn là mỗi phương trình. 1, các giá trị nhất định của và do đó, các vị trí cực và 0 nhất định phải được chia sẻ giữa nhiều bộ lọc:α

độ alpha và độ lọc
Hình 5. Các giá trị thu được bởi tham số đường cong cho mức độ lọc khác nhau . Lưu ý cách thực hiện đối với một số đơn đặt hàng bộ lọc, ví dụ: hoặc vàN α = 0,5 α = 0,25 α = 0,75.αNα=0.5α=0.25α=0.75.

Đặc biệt, đối với bộ lọc có cực hoặc số không, tất cả chúng cũng xuất hiện trong các bộ lọc có giống nhau trong đó là bất kỳ số nguyên dương nào.3 n N nN3nNn


Thể hiện sự hài hước cực kỳ khô khan, theo yêu cầu của người dùng A_A, tôi đã xem cái lemniscate của Bernoulli như một đường cong tham số mặt phẳng s:

Sả của Bernoulli
Hình 4. Lemniscate của Bernoulli

Đường cong tham số sau đây cung cấp cho nửa bên trái của Bernemlli, với tham số và bắt đầu và kết thúc tại :s = 00<a<1s=0

f(α)=2sin(πα)cos2(πα)+1+i2sin(πα)cos(πα)cos2(πα)+1

Sử dụng đường cong tham số này cho các cực, chúng tôi muốn so sánh giữa khác nhau, các đáp ứng tần số cường độ thu được qua biểu thức. 1. Một cách là nhìn vào gốc của đáp ứng tần số cường độ. Nó cũng cho phép chúng ta xem lén mọi thứ trông như thế nào tại :N | H ( i ωNN N |H(iω)|1/NN

Rễ thứ n của đáp ứng tần số cường độ
Hình 3. Rễ thứ của đáp ứng tần số cường độ của bộ lọc -pole có các cực được phân bố trên lemniscate của Bernoulli đồng nhất với tham số của đường cong. Ở tần số cao hơn tần số hiển thị, các ô đều theo độ dốc -6 dB / oct (-20 dB / thập kỷ). Trong giới hạn có một sự gián đoạn trong đạo hàm của âm mưu tại khi lemniscate (hai lần) đi qua trục tưởng tượng mặt phẳng s tại điểm đó.NN w = 0 s = 0NNω=0s=0

Giới hạn của gốc thứ về độ lớn của hàm truyền (Phương trình 1) là được tính như sau:N NN

(3)limN|H(s)|1/N=01|1sf(α)|dα=e01log(|sf(α)|)dα,

trong đó đại diện cho một tích phân sản phẩm có thể được tính toán với logarit tự nhiên, tích hợp và hàm số mũ. Như thường lệ với tích hợp, không có biểu thức tượng trưng cho tích phân phải được đánh giá bằng số cho phần tử của Bernoulli. Nói chung, các đáp ứng tần số cường độ kết quả trông khá vô dụng đối với đường cong tham số "được chọn ngẫu nhiên" này.


Người dùng Matt L. đã đề cập đến các bộ lọc Lerner. Những gì tôi đã tìm thấy về họ, với sự giải thích nhẹ:

H(s)=k=1mBk(s+a)(s+a)2+bk2B1=1/2,Bm=(1)m+12Bi=(1)k+1 for k=2,,m1,

với các vị trí cực sao cho cho cả . Trông giống như các cực này, trong khi phân phối trên một dòng, không phải là các cực của bộ lọc hoàn chỉnh mà là các cực của các phần song song. Tôi chưa xác nhận các cực của hệ thống hoàn chỉnh là gì, hoặc liệu các bộ lọc Lerner có ý nghĩa hữu ích tối ưu hay không. Tham khảo: CM Rader, B. Gold, MIT Lincoln Laboratory Technical Note 1965-63, Kỹ thuật thiết kế bộ lọc kỹ thuật số , 23/12/1965.b m - b m - 1 = b 2 - b 1 = 1a+ibk3<k<m-1bmbm1=b2b1=12(bkbk1)3<k<m1


4
Tiếng Anh của tôi run rẩy sáng nay, vì vậy tôi không hiểu bạn đang nói gì, nhưng nếu đó là về nhiều hơn một cách tính toán bộ lọc hình elip, tôi khuyên bạn nên tìm cuốn sách từ Lutovac, trong hình elip của wikipedia ghi chú bộ lọc (cũng là Dimopoulos), nó khá mở mắt: bạn có thể có 7 cách để thiết kế bộ lọc hình elip. Nếu đây không phải là ý bạn, xin vui lòng bỏ qua bình luận của tôi.
một công dân có liên quan

2
Các bộ lọc Lerner có tất cả các cực của chúng trên một đường thẳng song song với trục ảo. Chúng có lợi thế là có đáp ứng pha tuyến tính xấp xỉ.
Matt L.

2
Bộ lọc hoàn chỉnh; nhưng nếu các cực của tất cả các phần song song nằm trên cùng một dòng thì bộ lọc hoàn chỉnh cũng sẽ có tất cả các cực của nó trên dòng đó. Bạn nói đúng về tài liệu tham khảo. Có lưu ý kỹ thuật của Rader và Gold mà tôi thường nhắc đến.
Matt L.

1
OK, tạp chí nào chúng ta sẽ làm? : D Có một nguyên tắc hướng dẫn trong việc này? Ví dụ, bạn đang tìm kiếm một tham số có thể tốt hơn eliptic ở một khía cạnh nào đó? (ví dụ: dải chuyển tiếp vs Ripple). Một gia đình khác có thể "thú vị" là * cycloids ... Nhưng, không có "nguyên tắc đặt hàng", chúng ta không thể gọi "tệ nhất, xấu, tốt, tốt nhất" bất kỳ ai trong số họ :)
A_A

2
Các chủ đề bình luận đã đi quá lâu. Tuy nhiên, chỉ cần ném vào một tham số vị trí cho các bộ lọc wavelet Daubechies ams.org/journals/proc/1996-124-12/S0002-9939-96-03557-5/ Lỗi|4y(1y)|=1
Laurent Duval

Câu trả lời:


6

Trong suốt câu trả lời tôi sẽ sử dụng các ký hiệu toán học , nghĩa là toán học tương đương với việc biểu thị đáp ứng cường độ của bộ lọc trong miền tần số. Đối với điều này, sẽ được sử dụng thay vì , để phản ánh tốt hơn câu hỏi của @ Olli về việc tìm đường cong tham số toán học cho các bộ lọc gần đúng. Vì đây không phải là thiết kế bộ lọc, tần số góc được chuẩn hóa thành thống nhất, do đó thay vì .j ω x ω / ω pxjωxω/ωp


Tôi không chắc đây có phải là câu trả lời mà bạn đang tìm kiếm hay không, nhưng bất kỳ bộ lọc nào cũng có thể được biểu diễn thông qua chức năng chuyển chung:

H2(x)=11+ϵp2R2(x)

trong đó và là hàm suy giảm đặc trưng. là độ suy giảm / gợn của băng thông tính theo dB, nhưng nó cũng có thể nằm trong dải dừng cho Cauer / Elliptic, Pascal nghịch đảo hoặc nghịch đảo (còn gọi là " Loại II"). Cái sau được thể hiện như sau: R(x)Apϵp=10Ap/101R(x)Ap

H2(x)=11+1ϵs2TN2(x)

Đối với Butterworth, như bạn đã thấy:

R(x)=xN

đối với nó hoặc đa thức / cho và / cho ), cho Elliptic nó:cos a c o s x 1 cosh a c o s h x > 1R(x)=TN(x)cosacosx1coshacoshx>1

R(x)=cd(NK1Kcd1(x,k),k1)

Trong cuốn sách từ Lutovac, có một số cách biểu diễn cực kỳ đơn giản thông qua các chức năng tương đương chính xác cho các bộ lọc Elliptic. Ví dụ, chức năng chuyển lệnh thứ 2 có thể được biểu diễn chính xác thông qua:

R(x)=(1k2+1)x21(1k21)x2+1

trong đó phụ thuộc duy nhất là của mô đun .k

Đây là các loại đã biết, đối với các loại ít được biết đến, ví dụ: Legendre, , trong đó là các đa thức Legendre, đối với các bộ lọc Pascal có phiên bản đa thức Pascal đã thay đổi và chuẩn hóa, đó là:P N ( x )R(x)=PN(x)PN(x)

(N+12x+N12N)

Danh sách cứ kéo dài. Một số được xấp xỉ khác nhau, ví dụ Gaussian là , được mở rộng với loạt MacLaurin, về điều tương tự đối với Bessel, được mở rộng từ biểu thức Laplace của nó theo các thuật ngữ mẫu số của nó là:exp ( - s )|H(x)|2=exp(x2)exp(s)

ai=(2N1)!2Nii!(Ni)!

Ngoài ra còn có nhiều cách kỳ lạ hơn để suy ra hàm truyền, chẳng hạn như Papoulis (Optimum L) và Halpern, cả hai đều sử dụng đa thức Legendre để tích hợp đáp ứng sao cho hàm truyền bị giảm đơn điệu với độ chọn lọc cao. Đối với Papoulis, đó là:

R(x2)=i=12x21(i=0kaiPi(x))2

Trong đó là và là một số thuật ngữ được lựa chọn khéo léo, tùy thuộc vào việc , hoặc , cả hai, đều lẻ / chẵn.( N - 1 ) / 2 một i N kk(N1)/2aiNk

Như đã lưu ý, tất cả những điều này không sử dụng miền tần số để biểu diễn, vì trong là toán học , thực, không phải là tưởng tượng . Việc giải quyết các gốc có thể được thực hiện bằng cách đơn giản là tìm các cực (và số 0) cho hàm truyền khi thay bằng ., Do đó tìm ra và chọn đa thức Hurwitz, hoặc bằng chỉ cần tìm gốc của biểu thức toán học trong (xem liên kết trong nhận xét thứ 2, bên dưới). Điều này sẽ mang lại các gốc xoay 90 độ, có nghĩa là tất cả những gì cần làm là chuyển đổi các phần thực và phần ảo giữa chúng và sau đó chọn phía bên tay phải.x j ω x j ω H ( s ) H ( - s ) xxxjωxjωH(s)H(s)x

Là câu trả lời này gần với những gì bạn đang tìm kiếm?


Tôi nghĩ, tại thời điểm này, điều quan trọng là phải nói rằng các bộ lọc không tồn tại bởi vì mọi người đang ném phi tiêu vào bản đồ để đánh dấu các cực, họ đã đến sau khi cân nhắc cẩn thận về mục tiêu mà họ có trong đầu.

Ví dụ, và với chất lượng tăng lên xấp xỉ, các bộ lọc Butterworth ra đời vì cần có một bộ lọc đơn giản để thiết kế, với sự suy giảm tăng đơn điệu. Linkwitz-Riley không có gì khác ngoài Butterworth trong cách ngụy trang (thông minh) sao cho tổng một đường thấp và đường cao với cùng tần số góc dẫn đến phản hồi phẳng, hữu ích cho các ứng dụng âm thanh.

Ch Quashev (I và II) được thiết kế để có độ suy giảm tốt hơn, với chi phí gợn sóng trong băng thông hoặc băng chặn. Legendre, ultraspherical, Pascal (và có thể cả những người khác) giảm thiểu gợn sóng, do đó cải thiện độ trễ của nhóm, với chi phí giảm nhẹ.

Papoulis và Halpern đã được phát triển như một sự pha trộn giữa gợn băng thông và suy giảm tăng đơn điệu, đồng thời cải thiện sự suy giảm xung quanh tần số góc, với chi phí giảm xuống trong băng thông.

Các bộ lọc Cauer / Elliptic sử dụng Ripple trong cả băng thông và băng tần dừng để giảm thiểu thứ tự cần thiết cho cùng, hoặc tốt hơn, suy giảm.

Tất cả những thứ này đều nằm trong miền tần số, mà hầu hết các bộ lọc đều có. Theo một cách khác, các bộ lọc Bessel xuất hiện do nhu cầu xấp xỉ độ trễ tương tự, do đó chúng hội tụ về phía khi thứ tự tăng lên, trong khi các bộ lọc Gaussian được tạo ra không quá mức, do đó chúng xấp xỉ với thứ tự tăng dần.exp ( - x 2 )exp(jω)exp(x2)

Tất nhiên, như ai đó đã đề xuất, bạn cũng có thể rắc cực và xem những gì phát ra, có thể định cấu hình chúng như một ngôi sao hoặc một số mẫu lược mật ong, chọn lemniscate yêu thích của bạn, nhưng đó không phải là cách để làm điều đó nếu bạn muốn có bộ lọc ra khỏi nó Chắc chắn, bạn có thể nhận được một phản hồi kỳ lạ thậm chí có thể được áp dụng ai biết, như một trường hợp duy nhất trong số một triệu, nhưng đó thực sự chỉ là một trường hợp cụ thể. Cách để đi trước tiên là áp đặt một mục tiêu thiết kế và xem làm thế nào mục tiêu đó có thể đạt được theo bộ lọc vật lý có thể thực hiện được. Ngay cả khi điều đó có nghĩa là đến với bộ lọc áp dụng ai biết được. :-)


Đưa ra câu trả lời gần đây từ @Olli, hãy xem xét trường hợp đơn giản của bộ lọc Butterworth, được thiết kế cho, nói 0.9@fp=1, 0.1@fs=5. Các tính toán là như thế này:

Ap=20log10(0.9)=0.91515 dBAs=20log10(0.1)=20 dBϵp=10Ap/101=0.48432ϵs=10As/101=9.94987F=fsfp=51=5N=logϵsϵplogF=1.878

N = 2N được tính là làm tròn lên, do đó . Điều này có nghĩa là, nếu bạn khớp phản hồi của bộ lọc với băng thông, bạn sẽ nhận được mức suy giảm cao hơn trong băng chặn @fs. Sử dụng công thức đầu tiên trở lên, suy hao @ fs là:N=2

H(fs)=11+0.48432252N=0.08231<0.1

Nếu bạn phải khớp băng tần dừng để có 0,1@fs, bạn phải áp dụng hiệu chỉnh tần số:

ωscale=(ϵsϵp)1/Nfpfs=9.949870.5=0.9065H(5ωscale)=0.1

Vì vậy, có thể thay đổi từ đến và bạn sẽ nhận được tất cả các khả năng vô hạn ở giữa hai thái cực. Bạn có làm được không Đúng. Nó có đáng không? Ngay cả khi bạn có thể tìm thấy một hoặc hai đối số, câu trả lời chung vẫn là không. Làm thế nào là tất cả những điều này có thể? Bởi vì đã có phản hồi ban đầu của bộ lọc Butterworth, do đó bạn đã biết trước rằng bạn có biểu thức phân tích cho bộ lọc có sự suy giảm tần số đơn điệu, dẫn đến việc tìm ra các cực từ mẫu số của hàm truyền, xảy ra nằm trên một vòng tròn với các góc bằng nhau. 1 0,9065ωscale10.9065


Đưa ra câu trả lời gần đây từ @Olli, có một vài điều cần đánh vần. Đầu tiên, tất cả điều này là về thiết kế bộ lọc, bất kể bạn nhìn nó như thế nào: từ quan điểm toán học hoặc từ quan điểm thực tế vật lý.

Nếu nó là toán học, thì có một phần thú vị về lý thuyết của nó, cụ thể là có được một thứ tự khác từ cùng một bộ lọc mà không cần thiết kế lại bộ lọc ban đầu.

Nhưng từ quan điểm thực tế vật lý, toàn bộ quá trình ngụ ý một số công việc bổ sung, không cần thiết, điều đó (nên) dẫn đến cùng một kết quả, và đó chính xác là phần tăng / giảm thứ tự của bộ lọc để có được một bộ lọc mới. Lập luận của tôi như sau.

Bất kỳ bộ lọc nào, ở lõi của nó, phục vụ để lọc các tần số không cần thiết, có thể là điện, hoặc cơ học hoặc các đại lượng vật lý khác. Người vợ của họ là để sửa đổi một phổ (hoặc trì hoãn nhóm, hoặc đáp ứng thời gian). Nếu có nhu cầu về một thiết bị như vậy, thì thiết bị đó không thể được thiết kế bằng cách ném vào một bộ lọc dưới bất kỳ hình thức nào, "chỉ cần đặt nó ở đó, nó sẽ lọc ra mọi thứ"; thiết kế của nó, thường xuyên nhất, khá liên quan. Nhưng tất cả quá trình này phải bắt đầu từ các yêu cầu. Đó là, trước tiên phải có một mục tiêu cụ thể, "hãy lọc mọi thứ trên " hoặc "chỉ để ánh sáng hồng ngoại đi qua", hoặc bất cứ điều gì tương tự, bắt đầu bằng cách xác định trước các tham số bộ lọc đó phải hoạt động.100 Hz

Ví dụ nhanh, nếu có nhu cầu lọc tần số dưới và trên , người ta sẽ không ném vào bất kỳ bộ lọc băng thông nào với các tần số góc đó, cũng phải xác định mức suy giảm , cho dù gợn trong băng thông, hoặc băng dừng, hoặc cả hai, đều cần hoặc được chấp nhận, cho dù pha đó là tuyến tính hay không, độ trễ của nhóm sẽ ảnh hưởng đến tất cả điều này như thế nào, v.v ... Vì vậy, trước hết, có các tham số cụ thể theo đó bộ lọc cần thiết kế. 3000  Hz300 Hz3000 Hz

Khi các tham số được chỉ định, bộ lọc sẽ được thiết kế như thế nào? Chúng ta hãy giả sử rằng cần có bộ lọc thông thấp hình elip thứ 12 và có khả năng tăng bộ lọc thứ tự thấp lên thứ tự cao (xem câu trả lời của @ Olli). Giả sử quá trình biến đổi bậc 4 thành bậc 12 là hoàn hảo, có một cách để xác định các tham số thiết kế cho bộ lọc bậc 4 theo cách mà sau khi chuyển đổi, lệnh thứ 12 kết quả sẽ kết thúc Đáp ứng những điều kiện đó. "Suy nghĩ trước", nếu bạn muốn.

Câu hỏi đặt ra là: bộ lọc thứ 4 sẽ được thiết kế như thế nào? Câu trả lời chỉ có thể thông qua các cách thiết kế đã biết. Và, nếu có các phương pháp khác, sắp tới hoặc chưa được phát minh, trước tiên, chúng phải được áp dụng để thiết kế bộ lọc thứ 4 đó. Chỉ sau đó, thứ 12 có thể được tính. Như được giả định từ đầu, ngay cả với một quá trình biến đổi hoàn hảo, điều đó chỉ có nghĩa là bộ lọc kết quả, thứ 12, mà toàn bộ thiết kế cố gắng hội tụ, cần hai bước thiết kế: một, cho thứ tự thứ 4 và thứ hai , đối với đơn hàng thứ 12, làm cho toàn bộ quá trình trở thành một thứ không cần thiết, vì bộ lọc thứ 12 có thể được thiết kế đơn giản, ở vị trí đầu tiên, với phương thức được sử dụng cho đơn hàng thứ 4.

Hãy đi xa hơn một chút và giả sử thêm một số. Các cực kết quả của bậc 12 sẽ nằm trên một hình elip và các số 0 trên trục ảo. Khoảng cách giữa chúng sẽ được xác định chính xác bởi các hàm elip nằm bên dưới chi phối các bộ lọc elip. Giả sử có một cách để xác định các đường cong đó, như @Olli hy vọng, theo cách có thể dễ dàng thiết kế bộ lọc ngay từ đầu, trong một lần chụp, chỉ bằng cách sử dụng các đường cong (tham số hoặc không) này vị trí cực được thực hiện. Càng xa càng tốt. Nhưng những đường cong đó trước tiên phải được tính toán và các tham số mà chúng làm sáng tỏ là những tham số chính xác được sử dụng cho thiết kế bộ lọc, chính là những đường cong sẽ tạo ra bộ lọc thông qua các phương thức khác, chưa biết hoặc chưa biết. Hơn nữa, các tính toán vẫn còn phải được thực hiện, và, rất có thể, các định nghĩa cơ bản cho các đường cong tham số đó sẽ phải là hình elip, bằng cách này hay cách khác hoặc không có bộ lọc hình elip nào được đưa ra khỏi nó [ghi chú # 1]. Điều đó có nghĩa là toàn bộ quá trình sẽ chỉ là một phương pháp thiết kế khác cho các bộ lọc hình elip, vì các cực của bộ lọc hình elip đã có biểu thức dạng đóng.

Đừng hiểu lầm tôi. Nếu một bộ lọc có thể được thiết kế theo một cách, thì cùng một cách nó có thể được thiết kế theo một bộ lọc khác. Đó chỉ là một trong những cách "chưa được biết đến". Bravo cho các nhà phát minh. Nhưng nếu phương pháp thiết kế này bao hàm các bước bổ sung để hội tụ đến cùng kết quả thì sẽ cần một phương pháp khác, thì có vẻ như đó không phải là một phương pháp khả thi. Và xin lưu ý: Tôi không sử dụng tên hoặc nhãn mô tả khi tôi nói về thiết kế bộ lọc, chỉ là tên chung, vì thực sự không quan trọng bạn sử dụng phương pháp nào miễn là kết quả đúng và phương pháp không phải là ' t đóng gói cho quá trình thiết kế.

[lưu ý số 1]: Chỉ đơn giản là đi theo một đường cong chung để đặt các cực là không đủ và tôi sẽ đưa ra hai ví dụ, liên quan đến các bộ lọc Butterworth, những người đặt các cực trên một vòng tròn với các góc cách đều nhau. Các bộ lọc loại I của Ch Quashev có các cực được đặt trên một hình elip, với các góc của Butterworth, nhưng được chiếu trên trục tưởng tượng cho đến khi chúng chặn hình elip. Sửa đổi khoảng cách giữa các cực sẽ dẫn đến một hành vi không cân bằng, khiến bộ lọc trở thành loại không phải là Ch Quashev. Tương tự, các cực của bộ lọc hình elip Q tối thiểu được đặt trên một vòng tròn bên dưới, nhưng điều đó không có nghĩa đó là Butterworth (ngay cả khi gợn là mức tối thiểu có thể có của bộ lọc elip), bởi vì nó có khoảng cách không bằng nhau giữa các góc . Đối với người cuối cùng, ở đây '

Hình elip Butterworth vs min-Q

Nhìn chung, bất chấp sự quan tâm thực sự mà câu hỏi mang lại, tôi sợ nó không có giá trị lý thuyết, tốt nhất là về mặt giáo dục, vì nó không phù hợp với chính phần đối phó với thiết kế bộ lọc. Tất nhiên, nếu nó phải được chứng minh là có giá trị thực tế, tôi rất vui khi được chứng minh là sai, vì điều đó có nghĩa là có một phương pháp thiết kế bộ lọc mới, có thể tốt hơn những phương pháp đã tồn tại.


@OlliNiemitalo Vâng, đó là phiên bản không bình phương. Làm những gì linh mục nói, không phải những gì anh ta làm. :-) Aplà sự suy giảm / gợn của băng thông, trong dB, nhưng nó cũng có thể dành cho dải dừng, trong trường hợp Cauer / Elliptic, Chwardsshev nghịch đảo hoặc Pascal nghịch đảo. Tôi thấy có những lỗi nhỏ khác, tôi sẽ chỉnh sửa chúng.
một công dân có liên quan

1
Olli, có những biểu thức dạng đóng đẹp cho cả Tchithershevs và Butterworth. nhưng không nhiều cho bộ lọc Elliptical / Cauer. nhận được một alg được xác định rõ cho điều đó (vị trí của cực và số không) là (chúng ta sẽ nói như thế nào?) một con chó cái đang giao hợp .
robert bristow-johnson

1
@ robertbristow-johnson Mặc dù có synonim khoa học chính xác, có ít nhất 3 cách để thể hiện các cực cho Cauer. Một là xấp xỉ (Antoniou?, Dimopoulos?, Không chắc chắn), mà theo tôi, nó được sử dụng rộng rãi nhất. Sau đó, có cách của Burrus theo chính xác các hàm elip, tức là các số 0 là (khác lẻ / chẵn), nhưng đó yêu cầu sử dụng các chức năng theta và whatnot, điều này rất "mượt" về mặt CPU. Sau đó, Lutovac, người, ngay cả khi anh ta không thể sử dụng các số nguyên tố, đơn giản hóa chúng rất nhiều, nhưng chúng sẽ lớn hơn khi đơn hàng tăng lên. ±j/(ksn(iK/N,k)),i=1,2,..
một công dân có liên quan

1
@ robertbristow-johnson Tôi cũng vậy, như đã đề cập ở phần cuối của bản chỉnh sửa gốc, và trong một trong những bình luận, nhưng có vẻ như nó đã được chỉnh sửa trên đường đi, tôi sẽ sửa nó. Đối với các hàm elip, Burrus và một hàm khác (quên tên, Paarman?) Sử dụng phiên bản , nhưng , đã thay đổi Jacobi sin, một thực tế được ghi nhận bởi Lutovac. Vì vậy, để tránh phải tính toán một tích phân elip hoàn chỉnh thêm, người ta có thể viết , không có sự khác biệt. Một cốt truyện đơn giản có thể hiển thị nó ( ). s n ( K + x ) = c d ( x ) c d ( ) k 1 = ϵ p / ϵ s , k = f p / f s , K 1 = K ( k 1 ) , K = K ( k )sn(K+sn1())sn(K+x)=cd(x)cd()k1=ϵp/ϵs,k=fp/fs,K1=K(k1),K=K(k)
một công dân có liên quan

1
@ robertbristow-johnson Bạn đã bỏ lỡ phần mà tôi nói rằng tất cả các biểu thức sử dụng là một biến, bởi vì chúng phản ánh hàm toán học mô tả phản ứng của bộ lọc, vì nó liên quan đến cách tiếp cận toán học của Olli's. Vẽ tất cả các hàm với trong bất kỳ phần mềm toán học nào sẽ giúp bạn có được độ lớn mà không cần đi vào miền tần số. Tôi đã rời khỏi bên ngoài để thay thế , tạo và chỉ chọn các cực / số tiêu chí Hurwitz, dành cho thiết kế bộ lọc. Bên cạnh đó, bạn cũng có thể có được các cực mà không cần điều đó (xem liên kết trong nhận xét # 2). x x = j ω H ( s ) H ( - s )xxx=jωH(s)H(s)
một công dân có liên quan

2

Trong khi trực giác tôi cảm thấy rằng tôi hiểu những gì được yêu cầu, tôi đấu tranh để thể hiện nó. Tôi không chắc chắn liệu điều này là do những hạn chế của riêng tôi hay nếu thực sự vấn đề là khó khăn hoặc không được đặt ra. Tôi có cảm giác rằng nó không được đặt ra. Vì vậy, đây là nỗ lực của tôi:

  1. Mục tiêu là xây dựng bộ lọc. Đó là, tính toán một tập hợp các hệ số của một số dạng hợp lý:

H(s)=B(s)A(s)=m=0MbmsmsN+n=0N1ansn

(Xin lưu ý, nó không phải ở trên mặt phẳng s, nó cũng có thể ở trên mặt phẳng z. Ngoài ra, các dạng đơn giản hơn của nó có thể được coi là (ví dụ: chỉ có cực). chạy với mặt phẳng s trong thời điểm này và chúng ta hãy tiếp tục đề cử).H(s)

  1. Các bộ lọc kỹ thuật số được đặc trưng bởi các đáp ứng tần số và pha của chúng, cả hai đều có thể được xác định hoàn toàn bởi các giá trị (hoặc, vị trí trên mặt phẳng s) của các hệ số . Các cuộc thảo luận cho đến nay dường như đang tập trung vào đáp ứng tần số, vì vậy hãy xem xét vấn đề đó vào lúc này.an,bm

  2. Cho một tập hợp một số và một số điểm trên mặt phẳng s, cách hình học để có được đáp ứng tần số tại điểm đó là tạo thành "vectơ không" (từ vị trí của các số 0, về phía điểm cụ thể) và "vectơ cực" (tương tự cho các cực), tính tổng độ lớn của chúng và tạo thành tỷ lệ như trong phương trình trên. σ + j ωan,bmσ+jω

  3. Để hỏi "Loại [...] loại bộ lọc được xác định bởi một số tiêu chí tối ưu có tập hợp con vô hạn được xác định bởi các đường cong tham số [...]" là hỏi "Cặp đường cong tham số có vị trí cũng dẫn đến đường cong phản ứng cường độ với các đặc điểm mong muốn cụ thể so vớiΘA(s,Θ),B(s,Θ)Θ Θ (ví dụ độ dốc, gợn, khác). Trong đó là (các) tham số của ... tham số.Θ

  4. Một lưu ý, tại thời điểm này: Một mặt, chúng tôi đang tìm kiếm thỏa mãn hai ràng buộc. Trước hết họ phải thỏa mãn các ràng buộc của tham số (dễ) và thứ hai là họ phải thỏa mãn các ràng buộc được chỉ định bởi đặc tính đáp ứng cường độ (khó).A(s),B(s)

  5. Tôi nghĩ rằng vấn đề, ở dạng hiện tại của nó, không được đặt ra vì không có cách phân tích nào để kết nối các ràng buộc đáp ứng tần số với các tham số , ngoại trừ việc đánh giá trực tiếp của nóA(s,Θ),B(s,Θ) . Nói cách khác, hiện tại không thể chỉ định một số ràng buộc trên đường cong đáp ứng tần số và thông qua đó, làm việc ngược lại và tìm các tham số thỏa mãn các ràng buộc này. Chúng ta có thể đi theo con đường khác, nhưng không thể lùi lại.

  6. Do đó, những gì (tôi nghĩ rằng) thực tế có thể được thực hiện, vào lúc này, là chấp nhận của một số hình thức cụ thể và sau đó, kiểm tra xem chúng đặt giá trị như thế nào cho các bộ lọc HOẶC , lặp đi lặp lại các hệ số của chúng xung quanh càng nhiều càng tốt cho phép tham số của chúng, để đạt được hiệu suất tốt nhất mà chúng có thể cung cấp trong một phạm vi cụ thể của . Tuy nhiênΘ Một ( s ) , B ( s )A(s,Θ),B(s,Θ)Θ, chúng ta có thể thấy rằng đã đưa ra các đặc điểm của elip (ví dụ), một sơ đồ lặp cho trước trên một tham số có thể chọn "bẻ cong" các hệ số càng gần càng tốt với một đặc tính vùng "elip". Đây là lý do tại sao trước đó, tôi đề cập rằng chúng ta có thể thấy rằng một tham số phức tạp có thể được chia thành "tổng số elip" hoặc "tổng các đường cong với các đặc điểm đã biết". Có lẽ cần phải có một ràng buộc thứ ba ở đây, đọc "Tránh xa các cấu hình đã biết của ", nói cách khác, xử phạt các giải pháp bắt đầu giống như dấu chấm lửng (nhưng vẫn trong sơ đồ lặp).A(s),B(s)

Cuối cùng, nếu đường dẫn này không quá sai cho đến nay thì chúng ta đang ở gần một cái gì đó như Thuật toán di truyền cho thiết kế bộ lọc hoặc một số kỹ thuật "bắn trong bóng tối" được thông báo khác theo đó các hệ số của bộ lọc đáp ứng các tiêu chí cụ thể có thể được lấy từ . Trên đây chỉ là một ví dụ, có nhiều ấn phẩm dọc theo những dòng này ngoài kia.

Hi vọng điêu nay co ich.


+1 Tôi thích chương trình của bạn. Đối với điểm số 4 của bạn và những người khác, mục tiêu tối ưu hóa có thể được nêu theo hoặc thường là giá trị tuyệt đối của nó . Sau đó, một lần nữa, điều đó có nghĩa là chúng ta đang dựa vào tính khả thi của phương pháp đang được đề cập. Vì vậy, cũng cần phải kiểm tra với một số bộ lọc hữu hạn . Ở điểm # 7, tôi không nghĩ rằng "việc đẩy lùi các elip" sẽ giúp ích vì nó sẽ cung cấp các bộ lọc gần elip tối ưu phụ. Thay vào đó, mục tiêu tối ưu hóa nên được thay đổi. NlimN(H(iω))1/N,N
Olli Niemitalo

1
Cảm ơn bạn. Tôi đồng ý rằng mục tiêu tối ưu hóa là rất quan trọng ở đây. "Lực đẩy của eliptics" nên được sử dụng thường xuyên hơn ... :)
A_A

2

Tôi không nghĩ điều đặc biệt đáng chú ý là các bộ lọc Butterworth, được định nghĩa là các bộ lọc toàn cực có độ phẳng tối đa tại (đối với nguyên mẫu LPF, có nghĩa là các dẫn xuất khả dĩ nhất của bằng 0 tại ), có các cực mặt phẳng s nằm cách đều nhau trên nửa vòng tròn bên trái bán kính .| H ( j ω ) | ω = 0 ω 0ω=0|H(jω)|ω=0ω0

từ "cực đại phẳng" và "không số không", bạn có thể rút ra

|H(jω)|2=11+(ωω0)2N

cho Butterworth theo thứ tựN

vì thế

|H(s)|2=11+(sjω0)2N

s=pn là một cực khi mẫu số bằng không.

1+(pnjω0)2N=0

hoặc là

(pnjω0)2N=1

pn2N=(jω0)2N

|pn|=ω0

2Narg{pn}=π+2Nπ2+2πn

arg{pn}=π2+πN(n12)

cho th-trật tự Tchebyshev (Loại 1, đó là tất cả-cực), nó là như thế này:N

|H(jω)|2=11+ϵ2TN2(ωωc)

trong đó

TN(x){cos(Narccos(x)),if |x|1cosh(Narccosh(x)),if x1(1)Ncosh(Narccosh(x)),if x1

là các đa thức Tchithershev thứ và thỏa mãn đệ quy:N

T0(x)=1T1(x)=xTn+1(x)=2xTn(x)Tn1(x)nZ1

và là tần số "cắt băng thông" và không bị nhầm lẫn với tần số -3 dB . (nhưng hai cái này có liên quan.)ωcω0

tham số gợn của băng thông làϵ=10dBripple101

mở rộng phân tích một lần nữa:

|H(s)|2=11+ϵ2TN2(sjωc)

và một lần nữa là một cực khi mẫu số bằng không.s=pn

1+ϵ2TN2(pnjωc)=0

hoặc là

TN(pnjωc)=±jϵ

(vì chúng ta có thể sử dụng biểu thức hoặc chocos(θ)=cosh(jθ)cos()cosh()TN()

cosh(Narccosh(pnjωc))=±jϵ

Narccosh(pnjωc)=arccosh(±jϵ)

kể từ khi và

y=cosh(x)=12(ex+ex)
x=arccosh(y)=log(y±y21)

sau đó

Nlog(pnjωc±(pnjωc)21)=log(±jϵ±(±jϵ)21)

Nlog((pn)+j(pn)jωc±((pn)+j(pn)jωc)21)=log(±j(1ϵ±1ϵ2+1))

Nlog(j(pn)+(pn)ωc±(j(pn)+(pn)ωc)21)=log(±j(1ϵ±1ϵ2+1))

oh thân yêu tôi có thể không nhận được điều này nổ ra trong 12 giờ

Tôi đã quyết định rằng tôi quá lười biếng để tìm hiểu về điều này. nếu bất cứ ai muốn chọn nó, hãy thoải mái. rất nhiều chuyển đổi giữa ký hiệu hình chữ nhật và cực của các giá trị phức tạp. Nhớ khi nào

w=± z 
sau đó và
|w|=+|z|
arg{w}=12arg{z}+arg{±1}=12arg{z}+π2(1±1)

và nhớ

log(z)=log|z|+jarg{z}+j2πnnZ

bạn có thể thêm bất kỳ số nguyên nào của (giả sử " ") vào bất kỳ (chọn bên phải , đó là cách bạn có thể nhận các cực khác nhau cho ) .2π2πnarg{}log()pn

nếu bạn thích thủ dâm toán học với các biến số phức tạp, hãy đánh gục mình.


+1 cho quan sát thú vị, nhưng vì điều này không giải quyết được các câu hỏi, tôi hy vọng sẽ có các ứng cử viên khác cho tiền thưởng.
Olli Niemitalo

Vì vậy, Olli, bạn có thể thấy việc tạo ra các cực cho Tchithershev 1 và các cực / số không cho Tchwardsshev 2 được thực hiện tương tự như thế nào?
robert bristow-johnson

Jabobi Elliptical là một con chó cái. Tôi không biết làm thế nào để đánh giá nó mà không cần tìm kiếm nó ở Antonio. và nó sẽ không phải là hình thức đóng cửa.
robert bristow-johnson

Có, các số không của Tchithershev 2 được phân bố đồng đều trên đường cong tham số cho điểm cắt . f(α)=j/cos(πα)1
Olli Niemitalo

và làm thế nào để bạn có được kết quả đó và vị trí của các cực cho Tchithershev 1 hoặc 2?
robert bristow-johnson

0

Hình elip thứ 12 đến hình elip bậc 4

(Tôi không đủ điều kiện nhận tiền thưởng.) Tôi đã cố gắng tạo ra một ví dụ cho câu hỏi 3 trong Octave nhưng thật ngạc nhiên khi tôi không thể. Nếu câu trả lời cho câu hỏi 3 là có, thì theo Hình 5. của câu hỏi, các cực và số 0 cụ thể phải được chia sẻ giữa bộ lọc elip của bậc 4 và bộ lọc elip của lệnh 12, ở đây hiển thị rõ ràng: Hình 1. Ba Lan và các số không có khả năng được chia sẻ giữa các bộ lọc elip có thứ tự , màu xanh lam và được đánh số theo thứ tự tăng dần tham số của một đường cong tham số .Chia sẻ cực và số không
N=12N=4αf(α)

Chúng ta hãy thiết kế một bộ lọc elip 12 thứ tự với một số tham số tùy ý: gợn dải thông 1 dB, gợn dải dừng -90 dB, tần số cắt 0,1234, mặt phẳng s thay vì mặt phẳng z:

pkg load signal;
[b12, a12] = ellip (12, 0.1, 90, 0.1234, "s");
ra12 = roots(a12);
rb12 = roots(b12);
freqs(b12, a12, [0:10000]/10000);

Đáp ứng tần số của bộ lọc thứ 12
Hình 2. Đáp ứng tần số cường độ của bộ lọc elip bậc 12 được thiết kế bằng cách sử dụng ellip .

scatter(vertcat(real(ra12), real(rb12)), vertcat(imag(ra12), imag(rb12)));

Ba Lan và số không, thứ tự lọc 12
Hình 3. Ba Lan (màu đỏ) và số không (màu xanh) của bộ lọc hình elip 12 được thiết kế bằng cách sử dụng ellip . Trục ngang: phần thực, trục dọc: phần ảo.

Chúng ta hãy xây dựng bộ lọc thứ tự 4 bằng cách sử dụng lại các cực và số 0 của bộ lọc thứ tự 12, theo Hình 1. Trong trường hợp cụ thể, sắp xếp các cực và số không theo phần ảo là đủ:

[~, ira12] = sort(imag(ra12));
[~, irb12] = sort(imag(rb12));
ra4 = [ra12(ira12)(2), ra12(ira12)(5), ra12(ira12)(8), ra12(ira12)(11)];
rb4 = [rb12(irb12)(2), rb12(irb12)(5), rb12(irb12)(8), rb12(irb12)(11)];
freqs(poly(rb4), poly(ra4), [0:10000]/10000);

Đáp ứng tần số của bộ lọc thứ tư
Hình 4. Đáp ứng tần số cường độ của bộ lọc bậc 4 có tất cả các cực và các số 0 giống hệt với các bộ lọc thứ tự thứ 12, trên mỗi hình 1. Phóng to đưa ra một đặc tính của bộ lọc: phương trình băng tần vượt qua 3,14 dB, - Cân bằng dải dừng 27,69 dB, tần số cắt 0,1234.

Theo hiểu biết của tôi, một dải vượt qua đẳng tích và một dải dừng đẳng tích có nhiều gợn sóng như số cực và số không cho phép là điều kiện đủ để nói rằng bộ lọc có dạng elip. Nhưng hãy thử nếu điều này được xác nhận bằng cách thiết kế bộ lọc elip bậc 4 bằng cách ellipmô tả đặc trưng thu được từ Hình 3 và bằng cách so sánh các cực và số không giữa hai bộ lọc thứ tự 4:

[b4el, a4el] = ellip (4, 3.14, 27.69, 0.1234, "s");
rb4el = roots(b4el);
ra4el = roots(a4el);
scatter(vertcat(real(ra4), real(rb4)), vertcat(imag(ra4), imag(rb4)));

Điều đó chống lại:

scatter(vertcat(real(ra4el), real(rb4el)), vertcat(imag(ra4el), imag(rb4el)), "blue", "x");

So sánh thứ tự cực thứ 4 / không so sánh
Hình 5. So sánh các vị trí cực (màu đỏ) và số không (màu xanh) giữa ellipbộ lọc thứ tự thứ 4 (chéo) và bộ lọc thứ 4 (vòng tròn) chia sẻ các vị trí cực và không nhất định với bộ lọc thứ tự 12. Trục ngang: phần thực, trục dọc: phần ảo.

Các cực và số không trùng nhau giữa hai bộ lọc đến ba vị trí thập phân, đó là độ chính xác của đặc tính của bộ lọc xuất phát từ bộ lọc thứ tự 12. Kết luận là ít nhất trong trường hợp cụ thể này, cả hai cực và các số 0 của bộ lọc elip bậc 4 và các bộ lọc elip thứ tự 12 đều có thể thu được, ít nhất là đến độ chính xác, bằng cách phân phối đồng đều chúng trên cùng một đường cong tham số . Các bộ lọc không phải là bộ lọc loại Butterworth hoặc Ch Quashev I hoặc II vì cả dải thông và dải dừng đều có gợn sóng.

Thứ tự elip thứ 4 đến thứ 12 elip

Ngược lại, các cực và số không của bộ lọc thứ 12 có thể được xấp xỉ từ một cặp hàm liên tục được trang bị cho các cực và số không của ellipbộ lọc thứ 4 không?

Nếu chúng ta nhân đôi bốn cực (Hình 5) và lật dấu hiệu của các phần thực của các bản sao, chúng ta sẽ có được một hình bầu dục sắp xếp. Khi chúng ta đi vòng quanh hình bầu dục, các vị trí cực mà chúng ta đi qua đưa ra một chuỗi rời rạc định kỳ. Nó là một ứng cử viên tốt cho phép nội suy giới hạn băng tần định kỳ bằng cách đệm số 0 biến đổi Fourier rời rạc của nó (DFT). Trong số cực kết quả , những cực có phần thực dương bị loại bỏ, giảm một nửa số cực xuống còn . Thay vì các số không, các đối ứng của chúng được nội suy, nhưng nếu không thì phép nội suy được thực hiện theo cách tương tự như với các cực. Chúng tôi bắt đầu với bộ lọc thứ tự thứ 4 được thiết kế giống như trước đó (gần giống với Hình 4):2412ellip

pkg load signal;
[b4el, a4el] = ellip (4, 3.14, 27.69, 0.1234, "s");
rb4el = roots(b4el);
ra4el = roots(a4el);
rb4eli = 1./rb4el;
[~, ira4el] = sort(imag(ra4el));
[~, irb4eli] = sort(imag(rb4eli));
ra4eld = vertcat(ra4el(ira4el), -ra4el(ira4el));
rb4elid = vertcat(rb4eli(irb4eli), -rb4eli(irb4eli));
ra12syn = -interpft(ra4eld, 24)(12:23);
rb12syn = -1./interpft(rb4elid, 24)(12:23);
freqs(poly(rb12syn), poly(ra12syn), [0:10000]/10000);

Đáp ứng tần số cường độ của bộ lọc nội suy bậc 4> 12
Hình 6. Đáp ứng tần số cường độ của bộ lọc thứ 12 với các cực và số không được lấy mẫu từ các đường cong khớp với các bộ lọc thứ 4.

Nó không đủ chính xác để mô phỏng phản hồi của Hình 2 là hữu ích. Dải dừng giá khá tốt nhưng dải thông bị nghiêng. Các tần số cạnh dải là gần đúng. Tuy nhiên, điều này cho thấy tiềm năng khi xem xét các đường cong tham số chỉ được mô tả bởi 4 bậc tự do mỗi đường.

Chúng ta hãy xem làm thế nào các cực và số không khớp với các bộ lọc được tạo ra :N=12 ellip

[b12, a12] = ellip (12, 0.1, 90, 0.1234, "s");
ra12 = roots(a12);
rb12 = roots(b12);
scatter(vertcat(real(ra12), real(rb12)), vertcat(imag(ra12), imag(rb12)), "blue", "x");
scatter(vertcat(real(ra12syn), real(rb12syn)), vertcat(imag(ra12syn), imag(rb12syn)));

So sánh cực và số không cho N = 12
Hình 7. So sánh các vị trí cực (màu đỏ) và số không (màu xanh) giữa ellipbộ lọc thứ tự 12 được thiết kế (chéo) và bộ lọc thứ tự 12 (vòng tròn) được lấy từ bộ lọc thứ 4. Trục ngang: phần thực, trục dọc: phần ảo.

Các cực được nội suy là khá ít, nhưng số không được kết hợp tương đối tốt. Một lớn hơn là điểm bắt đầu nên được điều tra.N

Thứ tự elip thứ 6 đến thứ 18 elip

Thực hiện tương tự như trên nhưng bắt đầu từ bậc 6 và nội suy đến bậc 18 cho thấy đáp ứng tần số cường độ có vẻ hoạt động tốt, nhưng vẫn gặp sự cố trong dải thông khi kiểm tra chặt chẽ:

[b6el, a6el] = ellip (6, 0.03, 30, 0.1234, "s");
rb6el = roots(b6el);
ra6el = roots(a6el);
rb6eli = 1./rb6el;
[~, ira6el] = sort(imag(ra6el));
[~, irb6eli] = sort(imag(rb6eli));
ra6eld = vertcat(ra6el(ira6el), -ra6el(ira6el));
rb6elid = vertcat(rb6eli(irb6eli), -rb6eli(irb6eli));
ra18syn = -interpft(ra6eld, 36)(18:35);
rb18syn = -1./interpft(rb6elid, 36)(18:35);
freqs(poly(rb18syn), poly(ra18syn), [0:10000]/10000);

Bộ lọc thứ 6 <code> ellip </ code>
Bộ lọc thứ 18 có nguồn gốc từ
Hình 8. Trên cùng) ellipBộ lọc thứ tự thứ 6 , Dưới cùng) Bộ lọc thứ 18 được lấy từ bộ lọc thứ 6. Phóng to, dải thông chỉ có hai cực đại và khoảng 1 dB của gợn. Dải dừng gần như cân bằng với biến thiên 2,5 dB.

Tôi đoán về sự cố ở dải thông qua là phép nội suy giới hạn băng tần không hoạt động đủ tốt với các cực (phần thực của các cực).

Đường cong chính xác cho các bộ lọc elip

Nó chỉ ra rằng các bộ lọc elip mà cung cấp các ví dụ tích cực cho câu hỏi 1 và 2. C. Sidney Burrus, Xử lý tín hiệu số và Thiết kế bộ lọc kỹ thuật số (Bản nháp). OpenStax CNX. Ngày 18 tháng 11 năm 2012 cung cấp cho các số không và các cực của hàm truyền của một bộ lọc hình elip đủ về mặt hình elip JacobiLưu ý rằng Burrus Eq. 3.136 có thể được viết lại cho các số không là: NNz=NNp=NNNz=NNp=N sn(t,k).sn(t,k)=sn(t,k),szi, i=1N

(1)szi=jksn(K+K(2i+1)/N,k),

Trong đó là một phần tư của cho thực và có thể được xem là một mức độ tự do trong việc tham số hóa bộ lọc. Nó kiểm soát độ rộng băng chuyển tiếp so với độ rộng băng tần. Nhận biết (xem Phương trình 2 của câu hỏi) trong đó là tham số của đường cong tham số:Ksn(t,k)t0k1(2i+1)/N=2αα

(2)fz(α)=jksn(K+2Kα,k),

Phương trình Burrus. 3.146 cung cấp cho các cực tứ phía trên bên trái bao gồm một cực thực cho lẻ . Nó có thể được viết lại cho tất cả các cực với bất kỳ nào dưới dạng:Nspi, i=1NN

(3)spi=cn(K+K(2i+1)/N,k)dn(K+K(2i+1)/N,k)sn(ν0,1k2)×cn(ν0,1k2)+jsn(K+K(2i+1)/N,k)dn(ν0,1k2)1dn2(K+K(2i+1)/N,k)sn2(ν0,1k2),

trong đó là một trong các hàm elip Jacobi. Một số nguồn có là đối số thứ hai cho tất cả các hàm này và gọi nó là mô đun. Chúng ta có và gọi nó là mô đun. Biến có thể được coi là một trong hai bậc tự do của các đường cong tham số chung đủ và một trong ba bậc tự do của một bộ lọc elip đủ chung. Tại , gợn băng thông sẽ là vô hạn và tại trong đódn(t,k)=1k2sn2(t,k)k2k0<ν0<K´(k,ν0)(k,ν0,N)ν0=0ν0=K´K´là khoảng thời gian một phần tư của các hàm elip Jacobi với mô đun , các cực sẽ bằng 0. Nói một cách đầy đủ, tôi có nghĩa là chỉ còn một mức độ tự do còn lại điều khiển tần số cạnh của dải thông và nó sẽ biểu hiện dưới dạng tỷ lệ đồng nhất của cả hai hàm đường cong tham số theo cùng một hệ số. Tập hợp con của các bộ lọc elip chia sẻ và một phần không thể thay đổi , được chuyển đổi thành một tập hợp con khác có kích thước vô hạn theo chiều khi thay đổi mức độ tự do tầm thường.1k2fp(α), fz(α),Nz/Pz=1N

Bằng cách thay thế tương tự như với các số không, đường cong tham số cho các cực có thể được viết là:

(4)fp(α)=cn(K+2Kα,k)dn(K+2Kα,k)sn(ν0,1k2)×cn(ν0,1k2)+jsn(K+2Kα,k)dn(ν0,1k2)1dn2(K+2Kα,k)sn2(ν0,1k2).

Hãy vẽ các hàm và các đường cong trong Octave, cho các giá trị của và ( trong mã) được sao chép từ Burrus Ví dụ 3.4:kν0v0

k = 0.769231; 
v0 = 0.6059485; #Maximum is ellipke(1-k^2)
K = 1024; #Resolution of plots
[snv0, cnv0, dnv0] = ellipj(v0, 1-k^2);
dnv0=sqrt(1-(1-k^2)*snv0.^2); # Fix for Octave bug #43344
[sn, cn, dn] = ellipj([0:4*K-1]*ellipke(k^2)/K, k^2);
dn=sqrt(1-k^2*sn.^2); # Fix for Octave bug #43344
a2K = [0:4*K-1];
a2KpK = mod(K + a2K - 1, 4*K)+1;
fza = i./(k*sn(a2KpK));
fpa = (cn(a2KpK).*dn(a2KpK)*snv0*cnv0 + i*sn(a2KpK)*dnv0)./(1-dn(a2KpK).^2*snv0.^2);
plot(a2K/K/2, real(fza), a2K/K/2, imag(fza), a2K/K/2, real(fpa), a2K/K/2, imag(fpa));
ylim([-2,2]);
a = [1/6, 3/6, 5/6];
ai = round(a*2*K)+1;
scatter(vertcat(a, a), vertcat(real(fza(ai)), imag(fza(ai)))); ylim([-2,2]); xlim([0, 2]);
scatter(vertcat(a, a), vertcat(real(fpa(ai)), imag(fpa(ai))), "red", "x"); ylim([-2,2]); xlim([0, 2]);

Phần mở rộng phân tích của các hàm đường cong tham số cho Burrus Ví dụ 3.4
Hình 9. và cho Burrus Ví dụ 3.4, được phân tích mở rộng đến giai đoạn . Ba cực (chữ thập đỏ) và ba số không (vòng tròn màu xanh, một vô hạn và không hiển thị) của ví dụ được lấy mẫu thống nhất đối với tại và từ các hàm này, trên mỗi biểu thức. 2 câu hỏi. Với tiện ích mở rộng, đối ứng củafz(α)fp(α)α=02αα=1/6, α=3/6,α=5/6,Im(fz(α))(không hiển thị) dao động rất nhẹ nhàng, giúp dễ dàng xấp xỉ bằng một chuỗi Fourier bị cắt cụt như trong các phần trước. Các chức năng mở rộng định kỳ khác cũng trơn tru, nhưng không dễ để ước chừng như vậy.

plot(real(fpa)([1:2*K+1]), imag(fpa)([1:2*K+1]), real(fza)([1:2*K+1]), imag(fza)([1:2*K+1]));
xlim([-2, 2]);
ylim([-2, 2]);
scatter(real(fza(ai)), imag(fza(ai))); ylim([-2,2]); xlim([-2, 2]);
scatter(real(fpa(ai)), imag(fpa(ai)), "red", "x"); ylim([-2,2]); xlim([-2, 2]);

Đường cong tham số cho Burrus Ví dụ 3.4
Hình 10. Các đường cong tham số cho Burrus Ví dụ 3.4. Trục ngang: phần thực, trục dọc: phần ảo. Khung nhìn này không hiển thị tốc độ của đường cong tham số, do đó ba cực (chữ thập đỏ) và ba số không (vòng tròn màu xanh, một vô hạn và không hiển thị) dường như không được phân bố đồng đều trên các đường cong, ngay cả khi chúng, với liên quan đến tham số của các đường cong tham số.α

Thiết kế bộ lọc elip theo công thức cực và không chính xác do Burrus đưa ra hoàn toàn tương đương với lấy mẫu từ chính xác và , vì vậy các phương pháp là tương đương và có sẵn. Câu hỏi 1 vẫn kết thúc mở. Có thể các loại bộ lọc khác có các tập hợp con vô hạn được xác định bởi và và . Trong các phương pháp xấp xỉ các đường cong tham số elip, những phương pháp không phụ thuộc vào dạng chức năng chính xác có thể được chuyển sang các loại bộ lọc khác, tôi nghĩ rất có thể là những phương pháp tổng quát hóa các bộ lọc elip, chẳng hạn như một số tập hợp con của bộ lọc đẳng tích chung. Đối với họ, các công thức chính xác cho cực và số không có thể là không xác định hoặc không thể tìm thấy.fp(α)fz(α)fp(α)fz(α)Nz/Np

Quay trở lại phương trình. 2, đối với lẻ , chúng ta có một trong các số 0 , sẽ gửi nó đến vô cùng bởi . Không có điều đó xảy ra với các cực (phương trình 4). Tôi đã cập nhật câu hỏi để có các số không như vậy (và cực, trong trường hợp) được bao gồm trong số (hoặc ). Tại , tất cả các số 0 chuyển sang vô cùng theo , có vẻ như sẽ cung cấp cho các bộ lọc loại I .Nα=0.5sn(2K,k)=0NNzNNpk=0fz(α)

Tôi nghĩ rằng câu hỏi 3 đã được giải quyết và câu trả lời là "có". Điều đó, dường như chúng ta có thể bao quát tất cả các trường hợp bộ lọc elip mà không bị xung đột với , với định nghĩa mới về các bộ lọc đó.NNz=NNp


Dù sao đi nữa, bạn không thể cho mình tiền thưởng. 500 điểm của bạn sẽ biến mất mãi mãi. đừng lãng phí chúng như tôi đã vô tình làm một lần tại trang EE.SE.
robert bristow-johnson

Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
jojek

1
Vâng, chúng vẫn là, đó là trường hợp đặc biệt cho các đơn đặt hàng lẻ, khi có thêm, cực đơn, cực thực, , cho chức năng chuyển. Đối với hàm hữu tỷ bắt đầu từ số không, chỉ có, bạn có: , trong đó . Đối với các đơn hàng lẻ, . Điều này sẽ làm cho bộ lọc có mức tăng không chuẩn hóa, do đó, nó phải được chia tỷ lệ theo . Các cực đến từ việc mở rộng và tìm gốc của mẫu số, sau đó chọn phía bên trái và tạo thành hàm truyền. re/(S+re)
R(x)= =ΠTôin/2x2-zeroTôi2Πjn/2x2-k/zeroj2
k= =fS/fpR(x)= =R(x)*xR(0)1+ε2R2(x)
một công dân có liên quan

Tôi không chắc nếu tôi nói điều này. Để thực hiện chức năng chuyển, thực sự không cần thiết phải theo cuốn sách bằng cách tạo , sau đó là cực bên trái, sau đó là chức năng chuyển hợp lý theo công thức của @ A_A. Về mặt toán học, và kết quả thực tế, là sau khi tìm ra các gốc từ (lưu ý: , không phải hoặc ), chỉ cần chọn các gốc có các giá trị dương và dương hoặc hình ảnh tiêu cực (không phải cả hai). Tức là cho , sẽ có 4 cặp / 8 cực; Sau khi chọn bạn có 2 cực khác nhau. Sau đó, chỉ cần: ...H(s)H(s)1+ϵ2R2(x)xjωsN=4
N(s)=iN/2|pi|2
một công dân có liên quan

(đối với các bộ lọc toàn cực), trong đó và , trong đó (đối với các bộ lọc cực không), trong khi mẫu số: và . Đây sẽ là nguyên mẫu lowpass. p= =σ+jω
N(S)= =ΠTôiN/2S2+|zTôi|2
z= =jμ
D(S)= =ΠjN/2S2+2*Re(pj)*S+|pj|2
H(S)= =N(S)D(S)
một công dân có liên quan

0

Dường như hầu hết những người tham gia cuộc thảo luận này không biết một loại bộ lọc có thể là giải pháp thực sự của họ! Cụ thể là các bộ lọc Paynter được phát triển bởi Henry M.Paynter, giáo sư tại MIT và là đối tác của Philbrick Reseach. Chúng là cách tiếp cận tốt nhất để "chạy" lọc trung bình và xử lý tín hiệu đầu vào không xác định, tốt hơn nhiều so với Bessel-Thomson. Tôi đã sử dụng chúng cho các ứng dụng sinh lý-y tế và sonar. Các lý thuyết của họ là trong các phiên bản tháng một-tháng bảy và tháng bảy-tháng mười của "Người theo chủ nghĩa sét" với tiêu đề chung: "Cách tiếp cận mới cho thiết kế Bộ lọc thông thấp chủ động" của Peter D. Hansen Bàn được đưa ra cho các cực của thứ 2 , Bộ lọc thứ tự thứ 4 và thứ 6. Tôi đã tính tương tự cho thứ tự 8.


Và có vẻ như bạn đã bỏ lỡ quan điểm của OP: để tìm ra Holy Graal của các công thức toán học có thể được sử dụng để tính toán bất kỳ loại bộ lọc nào (hoặc tương tự). :-)
một công dân có liên quan

0

Tôi sẽ thêm vào đây một số lưu ý có thể hữu ích nếu ai đó muốn tính giới hạn của gốc độ lớn của hàm truyền với nhiều cực và số 0 được phân bố trên các đường cong tham số tùy ý. Người ta có thể ước chừng rằng bằng cách sử dụng một lớn và bằng cách phân phối các cực và số không đều trên tham số của đường cong tham số. Thật không may, phép tính gần đúng luôn có sai số vô hạn trên thang dB tại các vị trí của các cực và số không của hàm truyền có thể thực hiện được. Theo nghĩa đó, một khối xây dựng tốt hơn là một đoạn đường có phân phối cực hoặc không đều dọc theo chiều dài của nó. Chỉ xem xét số không, được phân phối trên một đoạn thẳng có điểm bắt đầuNNNNNx0+y0Tôi và điểm cuốix1+y1Tôi:

limN|H(0)|1/N= =Π01|(x0+y0Tôi)(1-α)+(x1+y1Tôi)α|dα= =Π01((x0(1-α)+x1x)2+(y0(1-α)+y1α)2)dα= =e01đăng nhập((x0(1-α)+x1α)2+(y0(1-α)+y1α)2)dα= =e((x0y1-x1y0)atan2(x0y1-x1y0,x0x1+y0y1)(x0-x1)2+(y0-y1)2-1)×(x02+y02)(x1(x0-x1)+y0(y0-y1)+(x0-x1)22((x0-x1)2+(y0-y1)2))×(x12+y12)(x0(x1-x0)+y1(y1-y0)+(x1-x0)22((x1-x0)2+(y1-y0)2))

Một số trường hợp đặc biệt cần được xử lý riêng. Nếu và chúng tôi phải sử dụng giới hạn: x0= =0y0= =0

= =e-1x12+y12

Hoặc ngược lại nếu và : x1= =0y1= =0

= =e-1x02+y02

Hoặc nếu đoạn đường có độ dài bằng 0, và , chúng tôi chỉ có một số 0 thông thường: x0= =x1y0= =y1

= =x02+y02

Để thực hiện đánh giá tại các giá trị đối số khác nhau của hoặc , chỉ cần trừ giá trị đó khỏi điểm bắt đầu và điểm kết thúc dòng.H(z)H(S)

Điều này trông như thế nào trên mặt phẳng phức: Hình 1. Độ lớn của hàm truyền với một số không. Các bước 1 dB được chỉ định bằng màu ngọc lam và 10 dB bước màu vàng.Độ lớn của hàm truyền với một số không

Giới hạn N-> inf của gốc N có độ lớn của hàm truyền với N số 0 được phân bố đồng đều trên một đoạn thẳng
Hình 2. Giới hạn của thứ gốc rễ của tầm quan trọng của một hàm truyền với số không phân bố đều trên một đoạn thẳng. Có một nếp gấp ở đoạn đường, nhưng giá trị không bao giờ bằng 0 như với số 0 thông thường, có thể thực hiện được. Ở khoảng cách đủ, nó sẽ trông giống như một số không thông thường. Mã màu giống như trong Hình 1.NNN

nhập mô tả hình ảnh ở đây
Hình 3. Một xấp xỉ của Hình 2 sử dụng các số 0 rời rạc: gốc thứ 5 về độ lớn của đa thức với 5 số không được phân bố đồng đều trên đoạn thẳng. Tại vị trí của mỗi số 0, giá trị bằng 0, vì01/5= =0.

Quả sung. 1 và 2 đã được tạo bằng bản phác thảo Xử lý này , với mã nguồn:

float[] dragPoints;
int dragPoint;
float dragPointBackup0, dragPointBackup1;
boolean dragging, activated;
PFont fnt;
PImage bg;
float pi = 2*acos(0.0);
int appW, appH;
float originX, originY, scale;

int numDragPoints = 2;

void setup() {
  appW = 600;
  appH = 400;
  originX = appW/2;
  originY = appH/2;
  scale = appH*7/16;
  size(600, 400);
  bg = createImage(appW, appH, RGB);
  dragging = false;
  dragPoint = -666;
  dragPoints = new float[numDragPoints*2]; 
  dragPoints[0] = originX-appW*0.125;
  dragPoints[1] = originY+appH*0.125;
  dragPoints[2] = originX+appW*0.125;
  dragPoints[3] = originY-appH*0.125;
  fnt = createFont("Arial",16,true);
  ellipseMode(RADIUS);
  activated = false;
}

void findDragPoint() {
  int cutoff = 49;
  int oldDragPoint = dragPoint;
  float dragPointD = 666666666;
  dragPoint = -666;
  for (int t = 0; t < numDragPoints; t++) {
    float d2 = (mouseX-dragPoints[t*2])*(mouseX-dragPoints[t*2]) + (mouseY-dragPoints[t*2+1])*(mouseY-dragPoints[t*2+1]);
    if (d2 <= dragPointD) {
       dragPointD = d2;
       if (dragPointD < cutoff) {
         dragPoint = t;
       }
    }
  }
  if (dragPoint != oldDragPoint) {
    loop();
  }
}

void mouseMoved() {
  if (activated) {
    if (!dragging) {
      findDragPoint();
      loop();
    }
  }
}

void mouseClicked() {
  if (dragPoint < 0) {
    activated = !activated;
    if (activated) {
      findDragPoint();      
    }
  }
  loop();
}

void mousePressed() {  
  if (dragPoint >= 0) {
    dragging = true;
    dragPointBackup0 = dragPoints[dragPoint*2];
    dragPointBackup1 = dragPoints[dragPoint*2+1];
  } else {
    dragging = false; // Not needed?
  }
  loop();
}

void mouseDragged() {
  if (!activated) {
    dragPoint = -666;
    activated = true;
    findDragPoint();
  }
  if (dragging) {
    int x = mouseX;
    int y = mouseY;
    if (x < 5) {
      x = 5;
    } else if (x >= appW - 5) {
      x = appW - 6;
    }
    if (y < 5) {
      y = 5;
    } else if (y >= appH - 5) {
      y = appH - 6;
    }
    dragPoints[dragPoint*2] = x;
    dragPoints[dragPoint*2+1] = y;
    loop();
  }  
}

void mouseReleased() {
  if (activated && dragging) {
    dragging = false;
    loop();
  }
}

float sign(float value) {
  if (value > 0) {
    return 1.0;
  } else if (value < 0) {
    return -1.0;
  } else {
    return 0;
  }
}

void draw() {
  for(int y = 0; y < appH; y++) {
    for(int x = 0; x < appW; x++) {
      float x0 = (dragPoints[0]-x)/scale;
      float y0 = (dragPoints[1]-y)/scale;
      float x1 = (dragPoints[2]-x)/scale;
      float y1 = (dragPoints[3]-y)/scale;
      float gain;
      if (x0 == x1 && y0 == y1) {
        gain = sqrt(x0*x0 + y0*y0);
      } else if (x0 == 0 && y0 == 0) {
        gain = exp(-1)*sqrt(x1*x1 + y1*y1);
      } else if (x1 == 0 && y1 == 0) {
        gain = exp(-1)*sqrt(x0*x0 + y0*y0);
      } else {
        gain = exp((x0*y1 - x1*y0)*atan2(x0*y1 - x1*y0, x0*x1 + y0*y1)/(sq(x0 - x1) + sq(y0 - y1)) - 1)*pow(x0*x0 + y0*y0, (x1*(x0 - x1) + y0*(y0 - y1) + sq(x0 - x1))/(2*(sq(x0 - x1) + sq(y0 - y1))))*pow(x1*x1 + y1*y1, (x0*(x1 - x0) + y1*(y1 - y0) + sq(x1 - x0))/(2*(sq(x1 - x0) + sq(y1 - y0))));
      }
      int intensity10 = round(log(gain)/log(10)*0x200)&0xff;
      int intensity1 = round(log(gain)/log(10)*(0x200*10))&0xff;
      bg.pixels[y*appW + x] = color(intensity10, 0xff, intensity1);
    }
  }
  image(bg, 0, 0);
  noFill();
  stroke(0, 0, 255);
  strokeWeight(1);
  line(dragPoints[0], dragPoints[1], dragPoints[2], dragPoints[3]);  

  //ellipse(originX, originY, scale, scale);  
  if (!activated) {
    textFont(fnt,16);
    fill(0, 0, 0);
    text("Click to activate",10,20);
    for (int x = 0; x < appW; x++) {
      color c = color(110*x/appW+128, 110*x/appW+128, 110*x/appW+128);
      set(x, 0, c);  
    }
    for (int y = 0; y < appH; y++) {
      color c = color(110*y/appH+128, 110*y/appH+128, 110*y/appH+128);
      set(0, y, c);  
    }
  }

  for (int u = 0; u < numDragPoints; u++) {
    stroke(0, 0, 255);
    if (dragPoint == u) {
      if (dragging) {
        fill(0, 0, 255);
        strokeWeight(3);
        ellipse(dragPoints[u*2], dragPoints[u*2+1], 5, 5);
      } else {
        noFill();
        strokeWeight(3);
        ellipse(dragPoints[u*2], dragPoints[u*2+1], 6, 6);
      }
    } else {
      //noFill();
      //strokeWeight(1);
      //ellipse(dragPoints[u*2], dragPoints[u*2+1], 6, 6);
    }
  }
  noLoop();
}
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.