ปัญหาที่ถูกวางในคำถามดูเหมือนจะไม่มีวิธีแก้ปัญหาแบบปิด ดังที่ได้กล่าวไว้ในคำถามและแสดงในคำตอบอื่น ๆ ผลสามารถพัฒนาเป็นชุดซึ่งสามารถทำได้โดยเครื่องมือทางคณิตศาสตร์สัญลักษณ์ใด ๆ เช่น Mathematica อย่างไรก็ตามคำศัพท์มีความซับซ้อนและน่าเกลียดและไม่ชัดเจนว่าการประมาณนั้นดีเพียงใดเมื่อเรารวมคำถึงลำดับที่สาม เนื่องจากเราไม่สามารถรับสูตรที่แน่นอนได้อาจเป็นการดีกว่าที่จะคำนวณวิธีแก้ปัญหาเชิงตัวเลขซึ่งแตกต่างจากการประมาณจะให้ผลลัพธ์ที่แน่นอน (เกือบ)
อย่างไรก็ตามนี่ไม่ใช่สิ่งที่คำตอบของฉันเกี่ยวกับ ฉันแนะนำเส้นทางที่แตกต่างซึ่งให้ทางออกที่แน่นอนโดยการเปลี่ยนการกำหนดปัญหา หลังจากคิดไปก็ปรากฎว่ามันเป็นสเปคของความถี่กลางและสเปคของแบนด์วิดท์เป็นอัตราส่วน (หรือเท่ากันในหน่วยแปดเสียง) ซึ่งเป็นสาเหตุให้การคำนวณทางคณิตศาสตร์ มีสองวิธีจากภาวะที่กลืนไม่เข้าคายไม่ออก:ω0
- ระบุแบนด์วิดท์ของตัวกรองแบบไม่ต่อเนื่องเวลาเป็นความแตกต่างของความถี่โดยที่และเป็นขอบล่างและบนของตัวกรองแบบไม่ต่อเนื่องตามลำดับΔω=ω2−ω1ω1ω2
- กำหนดอัตราส่วนและแทนที่จะยามาหนึ่งในสองขอบความถี่หรือ\ω2/ω1ω0ω1ω2
ในทั้งสองกรณีสามารถใช้วิธีการวิเคราะห์อย่างง่ายได้ เนื่องจากเป็นที่พึงประสงค์ที่จะกำหนดแบนด์วิดท์ของตัวกรองแบบไม่ต่อเนื่องเป็นอัตราส่วน (หรือเท่ากันในหน่วยอ็อกเทฟ) ฉันจะอธิบายวิธีที่สอง
มากำหนดความถี่ขอบและของตัวกรองแบบต่อเนื่องโดยΩ1Ω2
|H(jΩ1)|2=|H(jΩ2)|2=12(1)
ด้วยโดยที่เป็นฟังก์ชั่นการถ่ายโอนของตัวกรองสัญญาณผ่านแถบลำดับที่สอง:Ω2>Ω1H(s)
H(s)=ΔΩss2+ΔΩs+Ω20(2)
กับและ\โปรดทราบว่าและสำหรับ\ΔΩ=Ω2−Ω1Ω20=Ω1Ω2H(jΩ0)=1|H(jΩ)|<1Ω≠Ω0
เราใช้ bilinear แปลง map ความถี่ขอบและของตัวกรองที่ไม่ต่อเนื่องเวลาไปที่ขอบความถี่และของตัวกรองอย่างต่อเนื่องเวลา โดยไม่สูญเสียของทั่วไปเราสามารถเลือก 1 สำหรับจุดประสงค์ของเราการแปลงแบบไบนิแนร์จะใช้แบบฟอร์มω1ω2Ω1Ω2Ω1=1
s=1tan(ω12)z−1z+1(3)
สอดคล้องกับความสัมพันธ์ต่อไปนี้ระหว่างความถี่ต่อเนื่องและเวลาไม่ต่อเนื่อง:
Ω=tan(ω2)tan(ω12)(4)
จากเราได้รับโดยการตั้งค่า\ด้วยและคำนวณจากเราได้รับฟังก์ชั่นการถ่ายโอนของตัวกรองต้นแบบอนาล็อกจาก(2)เมื่อใช้การแปลงแบบบิลิแนร์เราจะได้รับฟังก์ชั่นการถ่ายโอนของตัวกรองผ่านแถบเวลาแบบไม่ต่อเนื่อง:(4)Ω2ω=ω2Ω1=1Ω2(4)(2)(3)
Hd(z)=g⋅z2−1z2+az+b(5)
กับ
gabc=ΔΩc1+ΔΩc+Ω20c2=2(Ω20c2−1)1+ΔΩc+Ω20c2=1−ΔΩc+Ω20c21+ΔΩc+Ω20c2=tan(ω12)(6)
สรุป:
แบนด์วิดท์ของตัวกรองเวลาไม่ต่อเนื่องสามารถระบุได้ในอ็อกเทฟ (หรือโดยทั่วไปเป็นอัตราส่วน) และพารามิเตอร์ของตัวกรองต้นแบบแบบแอนะล็อกสามารถคำนวณได้อย่างแม่นยำเช่นว่าแบนด์วิดท์ที่ระบุนั้นสามารถทำได้ แทนที่จะศูนย์ความถี่เราระบุวงขอบและ\ความถี่กลางที่กำหนดโดยเป็นผลลัพธ์ของการออกแบบω0ω1ω2|Hd(ejω0)|=1
ขั้นตอนที่จำเป็นมีดังนี้:
- ระบุอัตราส่วนที่ต้องการของขอบวงและหนึ่งในขอบวง (ซึ่งแน่นอนเทียบเท่ากับเพียงแค่ระบุและ )ω2/ω1ω1ω2
- เลือกและกำหนดจาก(4)Computeและของตัวกรองต้นแบบอนาล็อก(2)Ω1=1Ω2(4)ΔΩ=Ω2−Ω1Ω20=Ω1Ω2(2)
- ประเมินคงที่ที่จะได้รับการถ่ายโอนฟังก์ชั่นที่ไม่ต่อเนื่องเวลา(5)(6)(5)
โปรดทราบว่าด้วยวิธีการทั่วไปที่มีการระบุและขอบวงจริงและเป็นผลลัพธ์ของกระบวนการออกแบบ ในการแก้ปัญหาที่เสนอนั้นสามารถระบุขอบวงและเป็นผลลัพธ์ของกระบวนการออกแบบ ข้อดีของวิธีการหลังคือแบนด์วิดท์สามารถระบุได้ในอ็อกเทฟและวิธีการแก้ปัญหาที่แน่นอนคือตัวกรองที่เกิดขึ้นมีแบนด์วิดท์ที่ระบุในเลอะเลือนω0Δω=ω2−ω1ω1ω2ω0
ตัวอย่าง:
Let 's ระบุแบนด์วิดธ์ของคู่หนึ่งและเราเลือกวงขอบล่าง\นี้จะช่วยให้วงขอบบน\ขอบวงดนตรีของตัวกรองต้นแบบอนาล็อกและ (กับ ) \นี้จะช่วยให้และ\ด้วยเราได้ฟังก์ชั่นการถ่ายโอนข้อมูลแบบไม่ต่อเนื่องω1=0.2πω2=2ω1=0.4πΩ1=1(4)ω=ω2Ω2=2.2361ΔΩ=Ω2−Ω1=1.2361Ω20=Ω1Ω2=2.2361(6)(5)
Hd(z)=0.24524⋅z2−1z2−0.93294z+0.50953
ซึ่งบรรลุแบนด์วิดท์ของ 1 คู่และขอบวงที่ระบุดังแสดงในรูปด้านล่าง:
วิธีแก้ปัญหาเชิงตัวเลขของปัญหาดั้งเดิม:
จากความคิดเห็นที่ฉันเข้าใจว่ามันเป็นสิ่งสำคัญที่จะสามารถระบุความถี่กลางซึ่งเป็นที่พึงพอใจ ดังที่ได้กล่าวไปแล้วก่อนหน้านี้เป็นไปไม่ได้ที่จะได้รับโซลูชั่นแบบปิดที่แน่นอนและการพัฒนาอนุกรมก่อให้เกิดนิพจน์ที่ไม่แน่นอนω0|Hd(ejω0)|=1
เพื่อความชัดเจนฉันขอสรุปทางเลือกที่เป็นไปได้ด้วยข้อดีและข้อเสีย:
- ระบุแบนด์วิดท์ที่ต้องการเป็นส่วนต่าง ความถี่และระบุ ; ในกรณีนี้วิธีแก้ปัญหาแบบปิดง่ายเป็นไปได้Δω=ω2−ω1ω0
- ระบุขอบวงและ (หรือเท่ากันแบนด์วิดธ์ในเลอะเลือนและเป็นหนึ่งในขอบวง); สิ่งนี้นำไปสู่วิธีแก้ปัญหาแบบปิดแบบง่ายดังที่อธิบายไว้ข้างต้น แต่ความถี่กลางเป็นผลลัพธ์ของการออกแบบและไม่สามารถระบุได้ω1ω2ω0
- ระบุแบนด์วิดท์ที่ต้องการในอ็อกเทฟและความถี่กลาง (ตามที่ถามในคำถาม); ไม่มีวิธีการแก้ปัญหาแบบปิดที่เป็นไปได้และไม่มี (ในขณะนี้) ประมาณง่าย ๆ ด้วยเหตุนี้ฉันคิดว่ามันเป็นที่พึงปรารถนาที่จะมีวิธีที่ง่ายและมีประสิทธิภาพสำหรับการได้รับการแก้ปัญหาเชิงตัวเลข นี่คือสิ่งที่อธิบายไว้ด้านล่างω0
เมื่อมีการระบุเราจะใช้รูปแบบของการแปลง bilinear กับค่าคงที่การทำให้เป็นมาตรฐานที่แตกต่างจากที่ใช้ในและ :ω0(3)(4)
Ω=tan(ω2)tan(ω02)(7)
เรากำหนด 1 แสดงอัตราส่วนที่ระบุของขอบวงของตัวกรองแบบไม่ต่อเนื่องเป็นΩ0=1
r=ω2ω1(8)
ด้วยเราได้รับจากและc=tan(ω0/2)(7)(8)
r=arctan(cΩ2)arctan(cΩ1)(9)
ด้วย ,สามารถเขียนใหม่ในแบบฟอร์มต่อไปนี้:Ω1Ω2=Ω20=1(9)
f(Ω1)=rarctan(cΩ1)−arctan(cΩ1)=0(10)
สำหรับค่าที่กำหนดของสมการนี้สามารถแก้ไขได้สำหรับด้วยการวนซ้ำนิวตันสองสามครั้ง สำหรับสิ่งนี้เราต้องการอนุพันธ์ของ :rΩ1f(Ω1)
f′(Ω1)=c(r1+c2Ω21+1c2+Ω21)(11)
ด้วยเรารู้ว่าจะต้องอยู่ในช่วงเวลา(0,1)แม้ว่ามันจะเป็นไปได้ที่จะเกิดขึ้นกับการแก้ปัญหาการเริ่มต้นอย่างชาญฉลาดก็จะเปิดออกว่าเดาเริ่มต้นผลงานที่ดีสำหรับรายละเอียดมากที่สุดและจะส่งผลในการแก้ปัญหาที่ถูกต้องมากหลังจากนั้นเพียงซ้ำของวิธีการของนิวตัน:Ω0=1Ω1(0,1)Ω(0)1=0.14
Ω(n+1)1=Ω(n)1−f(Ω(n)1)f′(Ω(n)1)(12)
ด้วยได้รับโดยมีการวนซ้ำสองครั้งจากเราสามารถกำหนดและและเราใช้และเพื่อคำนวณค่าสัมประสิทธิ์ของ ตัวกรองเวลาไม่ต่อเนื่อง โปรดทราบว่าคงจะได้รับในขณะนี้โดย2)Ω1(12)Ω2=1/Ω1ΔΩ=Ω2−Ω1(5)(6)cc=tan(ω0/2)
ตัวอย่างที่ 1:
ลองระบุและแบนด์วิดท์อ็อกเทฟ สอดคล้องกับอัตราส่วนนี้rด้วยการคาดเดาเริ่มต้นของ , การวนซ้ำครั้งของวิธีการของนิวตันทำให้เกิดการแก้ปัญหาซึ่งสามารถคำนวณค่าสัมประสิทธิ์ของเวลาไม่ต่อเนื่องตามที่อธิบายไว้ข้างต้น รูปด้านล่างแสดงผลลัพธ์:ω0=0.6π0.5r=ω2/ω1=20.5=2–√=1.4142Ω1=0.14Ω1=0.71
ตัวกรองถูกคำนวณด้วยสคริปต์ Matlab / Octave นี้:
ข้อกำหนด%
bw = 0.5; % แบนด์วิดท์ที่ต้องการในอ็อกเทฟ
w0 = .6 * pi; ความถี่เรโซแนนท์
r = 2 ^ (bw); อัตราส่วนของขอบแถบ
W1 = .1; % การคาดเดาเริ่มต้น (ทำงานได้กับรายละเอียดส่วนใหญ่)
นิด = 4; การทำซ้ำ # นิวตัน
c = ผิวสีแทน (w0 / 2);
นิวตัน
สำหรับ i = 1: Nit,
f = r * atan (c * W1) - atan (c / W1);
fp = c * (r / (1 + c ^ 2 * W1 ^ 2) + 1 / (c ^ 2 + W1 ^ 2));
W1 = W1 - f / fp
ปลาย
W1 = abs (W1);
ถ้า (W1> = 1) ข้อผิดพลาด ('ไม่สามารถรวมกันได้ลดค่าของการเดาเริ่มต้น'); ปลาย
W2 = 1 / W1;
dW = W2 - W1;
% ตัวกรองไม่ต่อเนื่องเวลา
สเกล = 1 + dW * c + W1 * W2 * c ^ 2;
b = (dW * c / scale) * [1,0, -1];
a = [1, 2 * (W1 * W2 * c ^ 2-1) / สเกล, (1-dW * c + W1 * W2 * c ^ 2) / สเกล];
ตัวอย่างที่ 2:
ฉันเพิ่มอีกตัวอย่างหนึ่งเพื่อแสดงให้เห็นว่าวิธีนี้ยังสามารถจัดการกับข้อกำหนดที่การประมาณส่วนใหญ่จะให้ผลลัพธ์ที่ไม่ใช่ความรู้สึก กรณีนี้มักเกิดขึ้นเมื่อแบนด์วิดท์ที่ต้องการและความถี่เรโซแนนท์มีขนาดใหญ่ ลองออกแบบตัวกรองด้วยและอ็อกเทฟ การวนซ้ำสี่ครั้งของวิธีของนิวตันด้วยการคาดเดาเริ่มต้นผลลัพธ์ในค่าสุดท้ายของกล่าวคือในแบนด์วิดธ์ของต้นแบบต้นแบบของอ็อกเทฟ ตัวกรองเวลาไม่ต่อเนื่องที่สอดคล้องกันมีค่าสัมประสิทธิ์ดังต่อไปนี้และการตอบสนองความถี่จะแสดงในพล็อตด้านล่าง:ω0=0.95πbw=4Ω(0)1=0.1Ω1=0.00775log2(Ω2/Ω1)=log2(1/Ω21)≈14
b = 0.90986 * [1,0, -1];
a = [1.00000 0.17806 -0.81972];
ผลครึ่งแถบพลังงานที่ได้คือและซึ่งแน่นอนว่าเป็นอ็อกเทฟอย่างแน่นอน(เช่นค่าที่ )ω1=0.062476πω2=0.999612π416