วงรีลำดับที่ 12 ถึงวงรีลำดับที่ 4
(ฉันไม่มีสิทธิ์รับรางวัล) ฉันพยายามสร้างตัวอย่างคำถามที่ 3 ในระดับแปดเสียง แต่รู้สึกประหลาดใจอย่างน่ายินดีที่ไม่สามารถทำได้ หากคำตอบสำหรับคำถามที่ 3 คือใช่ดังนั้นตามรูปที่ 5 ของคำถามควรแบ่งขั้วเฉพาะและตัวคั่นระหว่างตัวกรองรูปไข่ของคำสั่งที่ 4 และตัวกรองรูปไข่ของคำสั่งที่ 12 แสดงที่นี่อย่างชัดเจน:
รูปที่ 1 และศูนย์อาจใช้ร่วมกันระหว่างตัวกรองรูปไข่ของการสั่งซื้อ
ยังไม่มีข้อความ= 12 และ ยังไม่มีข้อความ= 4, เป็นสีน้ำเงินและหมายเลขตามลำดับพารามิเตอร์จากน้อยไปหามาก α ของเส้นโค้งพารามิเตอร์ ฉ( α ).
ลองออกแบบตัวกรองรูปไข่ 12 อันด้วยพารามิเตอร์ที่กำหนดเอง: 1 dB pass band ripple, -90 dB stop band ripple, cutoff frequency 0.1234, s-plane มากกว่า z-plane:
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);
รูปที่ 2 การตอบสนองความถี่ขนาดของการสั่งซื้อ 12 ellip
ตัวกรองการออกแบบโดยใช้รูปไข่
scatter(vertcat(real(ra12), real(rb12)), vertcat(imag(ra12), imag(rb12)));
รูปที่ 3 เสา (สีแดง) และศูนย์ (สีฟ้า) ของการสั่งซื้อ 12 ellip
ตัวกรองการออกแบบโดยใช้รูปไข่ แกนแนวนอน: ส่วนจริง, แกนแนวตั้ง: ส่วนจินตภาพ
มาสร้างตัวกรองลำดับที่ 4 โดยการใช้เสาและศูนย์ที่เลือกใหม่ของตัวกรองลำดับ 12 ตามรูปที่ 1 ในกรณีเฉพาะการสั่งซื้อเสาและศูนย์โดยส่วนจินตภาพก็เพียงพอแล้ว:
[~, 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);
รูปที่ 4. การตอบสนองความถี่ขนาดของตัวกรองลำดับที่ 4 ที่มีเสาและศูนย์ทั้งหมดเหมือนกับตัวกรองลำดับที่ 12 บางรูปต่อ 1 รูปที่ 1. การซูมเข้าจะแสดงลักษณะของตัวกรอง: 3.14 dB pass band equiripple - 27.69 dB stop band equiripple, cutoff frequency 0.1234
มันเป็นความเข้าใจของฉันที่วงผ่าน equiripple และวงหยุด equiripple ที่มี ripples ให้มากที่สุดเท่าที่จำนวนของเสาและศูนย์อนุญาตให้มีเงื่อนไขเพียงพอที่จะบอกว่าตัวกรองนั้นเป็นรูปไข่ แต่ให้ลองถ้าสิ่งนี้ได้รับการยืนยันโดยการออกแบบตัวกรองรูปไข่ลำดับที่ 4 โดยellip
มีลักษณะที่ได้จากรูปที่ 3 และโดยการเปรียบเทียบเสาและศูนย์ระหว่างตัวกรองลำดับที่ 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)));
กับ:
scatter(vertcat(real(ra4el), real(rb4el)), vertcat(imag(ra4el), imag(rb4el)), "blue", "x");
รูปที่ 5. การเปรียบเทียบตำแหน่งขั้ว (สีแดง) และศูนย์ (สีน้ำเงิน) ระหว่าง ellip
ตัวกรองลำดับที่ 4 ที่ออกแบบ (กากบาท) และตัวกรองลำดับที่ 4 (วงกลม) ที่แชร์ตำแหน่งขั้วและศูนย์ที่แน่นอนด้วยตัวกรองลำดับที่ 12 แกนแนวนอน: ส่วนจริง, แกนแนวตั้ง: ส่วนจินตภาพ
ขั้วและศูนย์ตรงระหว่างตัวกรองสองตัวกับทศนิยมสามตำแหน่งซึ่งเป็นความแม่นยำของการจำแนกลักษณะของตัวกรองที่ได้มาจากตัวกรองลำดับที่ 12 บทสรุปคืออย่างน้อยที่สุดในกรณีนี้ทั้งเสาและศูนย์ของตัวกรองรูปไข่ตัวที่ 4 และตัวลำดับ 12 ตัวกรองจะได้รับอย่างน้อยก็แม่นยำ . ตัวกรองไม่ใช่ตัวกรองประเภท Butterworth หรือ Chebyshev I หรือ II เนื่องจากทั้งแถบความถี่และแถบหยุดมีระลอกคลื่น
รูปไข่ลำดับที่ 4 ถึงรูปไข่ลำดับที่ 12
ในทางกลับกันเสาและค่าศูนย์ของตัวกรองลำดับที่ 12 สามารถประมาณจากฟังก์ชันต่อเนื่องคู่ที่พอดีกับเสาและค่าศูนย์ของellip
ตัวกรองลำดับที่ 4 ได้หรือไม่
หากเราทำซ้ำสี่เสา (รูปที่ 5) และพลิกสัญลักษณ์ของชิ้นส่วนจริงของรายการที่ซ้ำกันเราจะได้รูปวงรีแปลก ๆ ในขณะที่เราไปรอบ ๆ วงรีวงเวียนที่ตั้งเสาที่เราผ่านให้ลำดับที่ไม่ต่อเนื่องเป็นระยะ มันเป็นตัวเลือกที่ดีสำหรับการแก้ไขวง จำกัด เป็นระยะโดยการขยายศูนย์แบบไม่ต่อเนื่องของการแปลงฟูริเยร์ (DFT) ของผลที่เกิดขึ้น24 หมุนขั้วที่มีส่วนที่เป็นบวกของจริงทิ้งไปลดจำนวนของเสาให้เหลือครึ่ง 12. แทนที่จะเป็นศูนย์ส่วนกลับของพวกมันจะถูกสอดแทรก แต่ไม่เช่นนั้นการแก้ไขก็ทำแบบเดียวกับขั้ว เราเริ่มต้นด้วยellip
ตัวกรองลำดับที่ 4 ที่ได้รับการออกแบบเหมือนกันก่อนหน้านี้ (โดยประมาณเหมือนกับรูปที่ 4):
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);
รูปที่ 6. การตอบสนองความถี่ขนาดของตัวกรองลำดับที่ 12 โดยมีขั้วและค่าศูนย์สุ่มตัวอย่างจากส่วนโค้งที่จับคู่กับตัวกรองลำดับที่ 4
มันไม่แม่นยำพอที่จะจำลองการตอบสนองของมะเดื่อ 2 ให้เป็นประโยชน์ วงหยุดนั้นค่อนข้างดี แต่วงดนตรีผ่านนั้นถูกเอียง ความถี่ขอบของแถบนั้นถูกต้องโดยประมาณ ถึงกระนั้นนี่ก็แสดงให้เห็นถึงความเป็นไปได้เมื่อพิจารณาจากเส้นโค้งพาราเมทริกนั้นถูกอธิบายโดยอิสรภาพเพียง 4 องศาเท่านั้น
ลองมาดูกันว่าเสาและศูนย์ตรงกับของ ยังไม่มีข้อความ= 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)));
รูปที่ 7 การเปรียบเทียบตำแหน่งขั้ว (สีแดง) และศูนย์ (สีน้ำเงิน) ระหว่าง ellip
ตัวกรองลำดับที่ 12 ที่ออกแบบ (กากบาท) และตัวกรองลำดับที่ 12 (วงกลม) ที่ได้มาจากตัวกรองลำดับที่ 4 แกนแนวนอน: ส่วนจริง, แกนแนวตั้ง: ส่วนจินตภาพ
เสาสอดแทรกนั้นค่อนข้างออกไปเล็กน้อย แต่เลขศูนย์จะจับคู่ได้ดี มีขนาดใหญ่ขึ้นยังไม่มีข้อความ ควรตรวจสอบจุดเริ่มต้น
รูปไข่ลำดับที่ 6 ถึงรูปไข่ลำดับที่ 18
ทำเช่นเดียวกันกับข้างต้น แต่เริ่มต้นที่ลำดับที่ 6 และลำดับที่ 18 ถึงลำดับที่ 18 แสดงการตอบสนองความถี่ที่ดูเหมือนจะดี แต่ยังคงมีปัญหาในแถบความถี่เมื่อตรวจสอบอย่างใกล้ชิด:
[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);
รูปที่ 8 ด้านบน) ลำดับที่ 6 - ellip
ตัวกรองแบบสร้างส่วนล่าง) ตัวกรองลำดับที่ 18 ที่ได้มาจากตัวกรองลำดับที่ 6 เมื่อซูมเข้าวงดนตรีพาสจะมีเพียงสองแมกม่าสูงสุดและประมาณ 1 เดซิเบลของระลอกคลื่น แถบหยุดหยุดเกือบเท่ากับ Equiripple ที่มีการเปลี่ยนแปลง 2.5 เดซิเบล
ฉันเดาเกี่ยวกับปัญหาที่วงผ่านคือการแก้ไขแบบ จำกัด วงนั้นทำงานได้ไม่ดีพอกับเสา (ส่วนที่แท้จริงของ)
ส่วนโค้งที่แน่นอนสำหรับฟิลเตอร์รูปไข่
ปรากฎว่าตัวกรองรูปไข่ที่ ยังไม่มีข้อความยังไม่มีข้อความZ= Nยังไม่มีข้อความพี= Nให้ตัวอย่างเชิงบวกกับคำถามที่ 1 และ 2 C. Sidney Burrus การประมวลผลสัญญาณดิจิตอลและการออกแบบตัวกรองดิจิตอล (แบบร่าง) OpenStax CNX 18 พ.ย. 2555ให้ค่าศูนย์และขั้วของฟังก์ชันถ่ายโอนของค่าทั่วไปที่เพียงพอยังไม่มีข้อความยังไม่มีข้อความZ= Nยังไม่มีข้อความพี= Nelliptic filter ในแง่ของJacobi elliptic sine SN( เสื้อ, k ) สังเกตว่า SN( t , k ) = - sn( - T , k ) ,Burrus Eq 3.136 สามารถเขียนใหม่เป็นศูนย์ได้sZผม, i = 1 … N เช่น:
sZผม= jk sn(เค+ K( 2 i + 1 ) / N, k ),(1)
ที่ไหน K คือหนึ่งในสี่ของ SN( t , k ) จริง เสื้อและ 0 ≤ k ≤ 1สามารถถูกมองว่าเป็นระดับอิสระในการกำหนดพารามิเตอร์ของตัวกรอง มันควบคุมความกว้างของวงการเปลี่ยนแปลงเมื่อเทียบกับความกว้างของวงผ่าน ตระหนักถึง( 2 i + 1 ) / N= 2 α (ดูสมการที่ 2 ของคำถาม) โดยที่ α เป็นพารามิเตอร์ของเส้นโค้งพารามิเตอร์:
ฉZ( α ) = jk sn(เค+ 2 Kα , k ),(2)
Burrus Eq 3.146 ให้เสาบนระนาบด้านซ้ายบนรวมถึงขั้วที่แท้จริงสำหรับคี่ยังไม่มีข้อความ. มันสามารถเขียนใหม่สำหรับเสาทั้งหมดsหน้าฉัน, i = 1 … N กับใด ๆ ยังไม่มีข้อความ เช่น:
sหน้าฉัน= cn(เค+ K( 2 i + 1 ) / N, k ) dn(เค+ K( 2 i + 1 ) / N, k ) sn( ν0, 1 - k2-----√)× cn( ν0, 1 - k2-----√) +jsn(เค+ K( 2 i + 1 ) / N, k ) dn( ν0, 1 - k2-----√)1 - dn2(เค+ K( 2 i + 1 ) / N, k ) sn2( ν0, 1 - k2-----√),(3)
ที่ไหน DN( t , k ) = 1 - k2SN2( t , k )------------√เป็นหนึ่งในฟังก์ชันรูปไข่ของ Jacobi บางแหล่งมีk2เป็นอาร์กิวเมนต์ที่สองสำหรับฟังก์ชั่นเหล่านี้ทั้งหมดและเรียกมันว่าโมดูลัส เรามีkและเรียกมันว่าโมดูลัส ตัวแปร0 < ν0< เค' สามารถคิดได้ว่าเป็นหนึ่งในสององศาอิสระ ( k , ν0) ของเส้นโค้งพารามิเตอร์ทั่วไปที่เพียงพอและหนึ่งในสามองศาอิสระ ( k , ν0, N)ของฟิลเตอร์ทรงรีทั่วไปที่เพียงพอ ที่ν0= 0 ระลอกคลื่นความถี่ผ่านจะไม่สิ้นสุดและเมื่อ ν0= K' ที่ไหน K' คืองวดไตรมาสของฟังก์ชันไข่ของ Jacobi กับโมดูลัส 1 - k2-----√เสาจะเท่ากับศูนย์ โดยทั่วไปเพียงพอแล้วฉันหมายความว่ามีเพียงระดับที่เหลืออยู่เพียงอย่างเดียวในการควบคุมความถี่ของความถี่ของแถบความถี่และซึ่งจะแสดงให้เห็นว่าเป็นสัดส่วนที่เท่ากันของฟังก์ชันกราฟพาราเมตริกทั้งสองด้วยปัจจัยเดียวกัน เซ็ตย่อยของตัวกรองรูปไข่ที่ใช้ร่วมกันฉพี( α ) , ฉZ( α ) , และส่วนที่ลดลงไม่ได้ ยังไม่มีข้อความZ/ pZ= 1จะถูกเปลี่ยนเป็นชุดย่อยอีกขนาดไม่ จำกัด ในมิติ ยังไม่มีข้อความ เมื่อมีการเปลี่ยนแปลงระดับความอิสระ
โดยการทดแทนเช่นเดียวกับศูนย์, เส้นโค้งพารามิเตอร์สำหรับเสาสามารถเขียนเป็น:
ฉพี( α ) = cn(เค+ 2 Kα , k ) dn(เค+ 2 Kα , k ) sn( ν0, 1 - k2-----√)× cn( ν0, 1 - k2-----√) +jsn(เค+ 2 Kα , k ) dn( ν0, 1 - k2-----√)1 - dn2(เค+ 2 Kα , k ) sn2( ν0, 1 - k2-----√).(4)
ลองพล็อตฟังก์ชั่นและส่วนโค้งในอ็อกเทฟเพื่อหาค่าของ k และ ν0( v0
ในรหัส) คัดลอกมาจาก Burrus ตัวอย่าง 3.4:
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]);
รูปที่ 9 ฉZ( α ) และ ฉพี( α ) สำหรับ Burrus ตัวอย่าง 3.4 ซึ่งขยายระยะเวลาการวิเคราะห์ α = 0 … 2. เสาสามอัน (กากบาทสีแดง) และศูนย์ทั้งสาม (วงกลมสีน้ำเงินหนึ่งอนันต์และไม่แสดง) ของตัวอย่างถูกสุ่มตัวอย่างอย่างสม่ำเสมอด้วยความเคารพα ที่ α = 1 / 6 , α = 3 / 6 , และ α = 5 / 6 ,จากฟังก์ชั่นเหล่านี้ต่อ Eq 2 ของคำถาม ด้วยส่วนขยายซึ่งกันและกันของอิ่ม(ฉZ( α ) )(ไม่แสดง) แกว่งไปมาเบา ๆ มากทำให้ง่ายต่อการประมาณโดยอนุกรมฟูริเยร์ที่ถูกตัดทอนเช่นเดียวกับในส่วนก่อนหน้า ฟังก์ชั่นเสริมอื่น ๆ เป็นระยะนั้นก็ราบรื่น แต่ก็ไม่ง่ายที่จะประมาณเช่นนั้น
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]);
รูปที่ 10 เส้นโค้งพารามิเตอร์สำหรับตัวอย่าง Burrus 3.4 แกนนอน: ส่วนจริง, แกนตั้ง: ส่วนจินตภาพ มุมมองนี้ไม่ได้แสดงความเร็วของเส้นโค้งพารามิเตอร์ดังนั้นทั้งสามเสา (กากบาทสีแดง) และสามศูนย์ (วงกลมสีน้ำเงินหนึ่งอนันต์และไม่แสดง) ไม่ปรากฏว่ามีการกระจายอย่างสม่ำเสมอบนเส้นโค้งแม้ในขณะที่มี เกี่ยวกับพารามิเตอร์α ของเส้นโค้งพารามิเตอร์
การออกแบบตัวกรองรูปไข่โดยเสาที่แน่นอนและสูตรศูนย์ที่กำหนดโดย Burrus นั้นเทียบเท่ากับการสุ่มตัวอย่างจากที่แน่นอนทั้งหมด ฉพี( α ) และ ฉZ( α )ดังนั้นวิธีการที่เทียบเท่าและพร้อมใช้งาน คำถามที่ 1 ยังคงเป็นแบบเปิด อาจเป็นไปได้ว่าตัวกรองประเภทอื่นมีเซตย่อยที่ไม่สิ้นสุดที่กำหนดโดยฉพี( α ) และ ฉZ( α ) และ ยังไม่มีข้อความZ/ Nพี. จากวิธีการประมาณเส้นโค้งรูปทรงพาราเมทริกผู้ที่ไม่ได้ขึ้นอยู่กับรูปแบบการทำงานที่แน่นอนสามารถถ่ายโอนไปยังตัวกรองประเภทอื่นได้ สำหรับพวกเขาสูตรที่แน่นอนสำหรับเสาและศูนย์อาจไม่รู้จักหรือว่ายาก
กลับไปที่ Eq 2 สำหรับคี่ยังไม่มีข้อความเรามีหนึ่งในศูนย์ α = 0.5ซึ่งส่งไปที่อนันต์โดย SN( 2K, k ) = 0. ไม่มีสิ่งใดเกิดขึ้นกับเสา (อสม. 4) ฉันได้อัปเดตคำถามเพื่อให้มีศูนย์ (และเสาในกรณี) ดังกล่าวรวมอยู่ในการนับยังไม่มีข้อความยังไม่มีข้อความZ (หรือ ยังไม่มีข้อความยังไม่มีข้อความพี) ที่k = 0ศูนย์ทั้งหมดไปที่อนันต์ตาม ฉZ( α )ซึ่งดูเหมือนจะให้ตัวกรอง Chebyshev ประเภท I
ฉันคิดว่าคำถาม 3 เพิ่งได้รับการแก้ไขและคำตอบคือ "ใช่" ตามที่ปรากฏว่าเราสามารถครอบคลุมทุกกรณีของตัวกรองรูปไข่โดยไม่ขัดแย้งกับยังไม่มีข้อความยังไม่มีข้อความZ= Nยังไม่มีข้อความพีด้วยนิยามใหม่ของสิ่งเหล่านั้น