เมื่อตัวกรองดิจิทัลถือกำเนิดขึ้นครั้งแรก ผู้คนมองว่ามันเป็นเพียงรูปแบบหนึ่งของตัวกรองแอนะล็อกแบบดั้งเดิม พวกเขาไม่ได้เห็นว่ามันเป็นสิ่งใหม่ที่แตกต่างออกไป นี่คือความผิดพลาดแบบเดียวกันที่ผู้คนในยุคแรกเริ่มของคอมพิวเตอร์ทำกันไม่รู้จบ ผมได้ยินคำพูดซ้ำแล้วซ้ำเล่า จนเบื่อที่จะได้ยินอีกแล้ว ว่าคอมพิวเตอร์ก็เป็นแค่เครื่องคิดเลขตั้งโต๊ะขนาดใหญ่ที่ทำงานเร็วเท่านั้น พวกเขาบอกว่า "อะไรก็ตามที่เครื่องจักรทำได้ มนุษย์ก็ทำได้" นี่เป็นการมองข้ามความเร็ว ความแม่นยำ ความน่าเชื่อถือ และต้นทุนที่ต่ำกว่าของเครื่องจักรเมื่อเทียบกับมนุษย์ไปอย่างสิ้นเชิง โดยทั่วไปแล้วการเปลี่ยนแปลงเพียงหนึ่ง order of magnitude (ปัจจัยคูณสิบ) ก็ก่อให้เกิดผลกระทบใหม่ในเชิงพื้นฐานได้ และคอมพิวเตอร์ก็เร็วกว่าการคำนวณด้วยมือหลายเท่าตัว คนที่อ้างว่าไม่มีความแตกต่างที่สำคัญนั้น ไม่เคยมีส่วนร่วมสำคัญใดๆ ต่อการพัฒนาคอมพิวเตอร์เลย ส่วนคนที่เคยมีส่วนร่วมสำคัญนั้นมองคอมพิวเตอร์เป็นสิ่งใหม่ ที่ควรศึกษาในคุณค่าของมันเอง ไม่ใช่แค่เครื่องคิดเลขตั้งโต๊ะแบบเดิมที่อาจจะถูกอัปเกรดนิดหน่อย

นี่เป็นความผิดพลาดทั่วไปที่เกิดขึ้นไม่รู้จบ ผู้คนมักอยากคิดเสมอว่าสิ่งใหม่ก็เหมือนกับอดีต—พวกเขาชอบความสะดวกสบายทั้งทางความคิดและทางกาย—และด้วยเหตุนี้พวกเขาจึงปิดกั้นตัวเองจากการมีส่วนร่วมสำคัญในสาขาใหม่ที่กำลังถูกสร้างขึ้นตรงหน้า ไม่ใช่ทุกสิ่งที่ถูกกล่าวว่าเป็นของใหม่จะใหม่จริงๆ และในบางกรณีก็ตัดสินได้ยากว่าสิ่งไหนใหม่หรือไม่ ถึงกระนั้นปฏิกิริยาที่พบบ่อยเกินไปอย่าง "มันไม่ใช่ของใหม่" นั้นโง่เขลา เมื่อมีอะไรสักอย่างถูกอ้างว่าเป็นของใหม่ อย่ารีบด่วนสรุปว่ามันเป็นแค่อดีตที่ถูกปรับปรุงขึ้นเล็กน้อย— มันอาจเป็นโอกาสอันดีสำหรับคุณที่จะทำสิ่งที่มีความหมาย แต่ในขณะเดียวกัน มันก็อาจไม่ใช่ของใหม่เลยก็ได้

ตัวกรองดิจิทัลยุคแรกสุดที่ผมเคยใช้ ในยุคแรกเริ่มของคอมพิวเตอร์ดั้งเดิม คือตัวกรองที่ปรับเรียบด้วยการหาค่าเฉลี่ยสามจุดก่อน แล้วตามด้วยห้าจุด เมื่อดูสูตรสำหรับการปรับเรียบ การปรับเรียบแบบสามจุดมี transfer function

ซึ่งวาดได้ง่าย การปรับเรียบแบบห้าจุดก็เหมือนกัน ยกเว้น 3/2 กลายเป็น 5/2 และวาดได้ง่ายเช่นกัน Figure 15.1 . ตัวกรองหนึ่งตามด้วยอีกตัวหนึ่งก็คือผลคูณของมัน (แต่ละตัวคูณ eigenfunction ของอินพุตด้วย transfer function ที่ความถี่นั้น) และคุณจะเห็นว่ามีศูนย์สามจุดในช่วงดังกล่าว และค่าที่ปลายจะเป็น 1/15 . เมื่อตรวจสอบจะพบว่าความถี่ครึ่งบนถูกกำจัดออกไปได้ค่อนดีด้วยโปรแกรมง่ายๆ นี้ ที่คำนวณผลรวมวิ่งของตัวเลขสามตัว ตามด้วยผลรวมวิ่งของห้าตัว—ตามปกติในทางปฏิบัติการคำนวณ ตัวหารจะถูกเก็บไว้จนถึงท้ายสุด ซึ่งจัดการด้วยการคูณเพียงครั้งเดียวด้วย 1/15 .

Figure 15.1—Transfer function สำหรับการปรับเรียบแบบสามจุดและห้าจุด

คุณอาจสงสัยว่า ในรายละเอียดทั้งหมด digital filter กำจัดความถี่ออกจากสตรีมของตัวเลขได้อย่างไร—และแม้แต่นักเรียนที่เคยเรียนวิชาเกี่ยวกับ digital filters ก็อาจไม่เข้าใจเลยว่าปาฏิหาริย์นี้เกิดขึ้นได้อย่างไร ดังนั้นผมขอเสนอว่า ก่อนจะไปต่อ เรามาออกแบบ digital filter ที่ง่ายมากสักตัว และแสดงให้คุณเห็นการทำงานภายในบนตัวเลขจริงกัน

ผมเสนอให้ออกแบบ filter ง่ายๆ ที่มีแค่สองสัมประสิทธิ์ ดังนั้นเราจะกำหนดเงื่อนไขบน transfer function ได้สองเงื่อนไขพอดี ในทางทฤษฎีเราใช้ angular frequency ω แต่ในทางปฏิบัติเราใช้ rotations f และความสัมพันธ์คือ

ให้เงื่อนไขแรกบน digital filter คือที่ f \= 1/6 transfer function จะต้องเป็น 1 พอดี (ความถี่นี้จะทะลุผ่าน filter โดยไม่ถูกเปลี่ยนแปลง) และเงื่อนไขที่สองคือที่ f \= 1/3 จะต้องเป็นศูนย์ (ความถี่นี้จะถูกหยุดอย่างสมบูรณ์) filter ง่ายๆ ของผมมีรูปแบบดังนี้ โดยมีสัมประสิทธิ์สองตัวคือ a และ b ,

เมื่อแทนค่าใน eigenfunction e 2 π ifn เราจะได้ transfer function และใช้ n \= 0 เพื่อความสะดวก

คำตอบคือ

และ smoothing filter ก็คือ

ในเชิงคำอธิบาย ผลลัพธ์ของ filter คือผลรวมของอินพุตสามค่าติดกันหารด้วยสอง และผลลัพธ์มีค่าตรงข้ามกับค่ากลางของอินพุต (มันคือการปรับเรียบแบบสามจุดที่กล่าวถึงก่อนหน้านี้ ยกเว้นค่าสัมประสิทธิ์ 1/2 )

ทีนี้มาสร้างข้อมูลตัวอย่างสำหรับอินพุตของ filter กัน ที่ความถี่ f \= 1/6 เราใช้ cosine ที่ความถี่นั้น โดยหาค่าของ cosine ที่จุดห่างเท่าๆ กัน n \= 0, 1, …, ในขณะที่คอลัมน์ที่สองของข้อมูลเราใช้ความถี่ที่สอง f \= 1/3 และสุดท้ายคอลัมน์ที่สามคือผลรวมของสองคอลัมน์อื่นๆ และเป็นสัญญาณที่ประกอบด้วยสองความถี่ในปริมาณเท่ากัน

n 1/6 1/3 Sum
0 1 1 2
1 1/2 –1/2 0
2 –1/2 –1/2 –1
3 –1 1 0
4 –1/2 –1/2 –1
5 1/2 –1/2 0
6 1 1 2
7 1/2 –1/2 0
8 –1/2 –1/2 –1

ลองรันข้อมูลผ่าน filter กัน เราคำนวณตามสูตรของ filter คือผลรวมของตัวเลขสามค่าติดกันในคอลัมน์ แล้วหารผลรวมด้วยสอง เมื่อทำกับคอลัมน์แรก คุณจะเห็นว่าทุกครั้งที่ filter ถูกเลื่อนลงมาหนึ่งบรรทัด มันจะสร้างฟังก์ชันอินพุตขึ้นมาใหม่ (ด้วยตัวคูณ 1 ) ลองใช้ filter กับคอลัมน์ที่สอง แล้วคุณจะพบว่าทุกผลลัพธ์เป็น 0 พอดี ซึ่งก็คือฟังก์ชันอินพุตคูณด้วย eigenvalue 0 ของมัน คอลัมน์ที่สาม ซึ่งเป็นผลรวมของสองคอลัมน์แรก ควรผ่านความถี่แรกและหยุดความถี่ที่สอง และคุณจะได้ผลลัพธ์ออกมาเป็นคอลัมน์แรกพอดี คุณลองใช้อินพุตความถี่ 0 และคุณควรได้ 3/2 สำหรับทุกค่า ถ้าคุณลอง f \= 1/4 คุณควรได้อินพุตคูณด้วย 1/2 (ค่าของ transfer function ที่ f \= 1/2 )

คุณเพิ่งได้เห็นการทำงานของ digital filter ตัวจริง filter จะแยกสัญญาณอินพุตออกเป็นความถี่ทั้งหมด คูณแต่ละความถี่ด้วย eigenvalue (transfer function) ที่สอดคล้องกัน แล้วรวมทุกพจน์เข้าด้วยกันเพื่อให้ได้ผลลัพธ์ สูตรเชิงเส้นง่ายๆ ของ filter ทำทั้งหมดนี้ได้!

เราจะกลับมาที่ปัญหาการออกแบบ filter สิ่งที่เรามักต้องการในอุดมคติคือ transfer function ที่มีการตัดอย่างฉับพลันระหว่างความถี่ที่มันปล่อยผ่านได้พอดี (ด้วย eigenvalues 1 ) และความถี่ที่มันหยุด (ด้วย eigenvalues 0 ) อย่างที่คุณทราบ อนุกรมฟูเรียร์สามารถแทนฟังก์ชันที่ไม่ต่อเนื่องเช่นนี้ได้ แต่มันต้องใช้พจน์จำนวนอนันต์ อย่างไรก็ตาม เรามีเพียงจำนวนจำกัดถ้าเราต้องการ filter ที่ใช้งานได้จริง 2 k + 1 พจน์ใน smoothing filter ให้สัมประสิทธิ์อิสระเพียง k + 1 ตัว ดังนั้นจึงมีเงื่อนไขตามอำเภอใจได้เพียง k + 1 เงื่อนไขที่ผลรวมของ cosine สามารถตอบสนองได้

ถ้าเราแค่กระจาย transfer function ที่ต้องการออกเป็นผลรวมของ cosine แล้วตัดทอนมัน เราจะได้การประมาณแบบ least-squares ของ transfer function แต่ที่จุดไม่ต่อเนื่อง การประมาณแบบ least-squares นั้นไม่ใช่สิ่งที่คุณอาจคิดไว้

เพื่อเข้าใจสิ่งที่เราจะเห็นที่จุดไม่ต่อเนื่อง เราต้องศึกษา Gibbs phenomenon ก่อนอื่นขอทบทวนทฤษฎีบท ถ้าอนุกรมของฟังก์ชันต่อเนื่องลู่เข้าแบบ uniform ในช่วงปิด แล้วฟังก์ชันลิมิตจะต่อเนื่อง แต่ฟังก์ชันลิมิตที่เราต้องการประมาณนั้นไม่ต่อเนื่อง เพราะมันมีการกระโดด (discontinuity) ระหว่างย่าน pass และ stop ของความถี่ ไม่ว่าเราจะใช้กี่พจน์ในอนุกรมก็ตาม เนื่องจากไม่มีการลู่เข้าแบบ uniform เราจึงคาดหวังได้ว่าจะเห็น overshoot ที่มีนัยสำคัญใกล้จุด singularity เมื่อเราเพิ่มพจน์มากขึ้น ขนาดของ overshoot จะ ไม่ เข้าใกล้ 0 .

อีกเรื่องหนึ่ง Michelson แห่งชื่อเสียง Michelson-Morley ได้สร้างเครื่องจักรแอนะล็อกเพื่อหาสัมประสิทธิ์ของอนุกรมฟูเรียร์ถึง 75 พจน์ เครื่องนี้ยังสามารถ เพราะความเป็นคู่ของฟังก์ชันและสัมประสิทธิ์ เปลี่ยนจากสัมประสิทธิ์กลับไปเป็นฟังก์ชันได้ เมื่อ Michelson ทำเช่นนี้ เขาสังเกตเห็น overshoot และถามนักคณิตศาสตร์ในพื้นที่ว่าทำไมจึงเกิดขึ้น พวกเขาทั้งหมดบอกว่าเป็นที่อุปกรณ์ของเขา—ทั้งที่เขาเป็นที่รู้จักในฐานะนักทดลองที่ระมัดระวังมาก มีเพียง Gibbs แห่งมหาวิทยาลัย Yale เท่านั้นที่รับฟังและตรวจสอบเรื่องนี้

วิธีตรงที่ง่ายที่สุดคือการกระจาย discontinuity มาตรฐาน เช่นฟังก์ชัน

เป็นอนุกรมฟูเรียร์ที่มีพจน์จำนวนจำกัด จัดเรียงใหม่ แล้วหาตำแหน่งของค่าสูงสุดแรก และสุดท้ายหาความสูงของฟังก์ชันที่ตำแหน่งนั้น เราจะพบ Figure 15.2 ว่ามี overshoot 0.08949 หรือ overshoot 8.949% ในลิมิตเมื่อจำนวนพจน์ในอนุกรมฟูเรียร์เข้าใกล้อนันต์ หลายคนมีโอกาสที่จะค้นพบ (ซึ่งอันที่จริงคือการค้นพบใหม่) ปรากฏการณ์กิ๊บส์ และกิ๊บส์คือคนที่ลงมือทำ นี่เป็นอีกตัวอย่างหนึ่งของสิ่งที่ผมย้ำเสมอว่า โอกาสมีอยู่รอบตัว แต่มีน้อยคนที่ไขว่คว้ามัน ดังที่ Pasteur กล่าวไว้ว่า "โชคเข้าข้างผู้ที่เตรียมพร้อม" ครั้งนี้คนที่เตรียมพร้อมที่จะรับฟังและช่วยเหลือนักวิทยาศาสตร์ชั้นนำในยามที่เขามีปัญหา ได้ชื่อเสียงไป

Figure 15.2—Partial sums S 1 , S 5 , S 9 สำหรับ rectangular pulse (บน) และเส้นตรง (ล่าง)

ผมบอกว่ามันถูกค้นพบใหม่ ใช่แล้ว ในยุค 1850s ตำราของ Cauchy (1) กล่าวว่าอนุกรมลู่เข้าของฟังก์ชันต่อเนื่องลู่เข้าสู่ฟังก์ชันต่อเนื่อง และ (2) แสดงการกระจายฟูเรียร์ของฟังก์ชันที่ไม่ต่อเนื่อง สองสิ่งนี้ขัดแย้งกันโดยสิ้นเชิง บางคนตรวจสอบเรื่องนี้และพบว่าพวกเขาต้องการ concept ของ uniform convergence ใช่แล้ว overshoot ของ Gibbs phenomenon เกิดขึ้นกับอนุกรมใดๆ ของฟังก์ชันต่อเนื่อง ไม่ใช่แค่อนุกรมฟูเรียร์ และเป็นที่รู้จักของบางคนแต่มันยังไม่แพร่หลายสู่การใช้ทั่วไป สำหรับเซตทั่วไปของ orthogonal functions ปริมาณของ overshoot ขึ้นอยู่กับว่าจุดไม่ต่อเนื่องเกิดขึ้นที่ตำแหน่งใดในช่วง ซึ่งต่างจากฟังก์ชันฟูเรียร์ที่ปริมาณของ overshoot ไม่ขึ้นกับตำแหน่งที่เกิดจุดไม่ต่อเนื่อง

เราต้องเตือนคุณถึงคุณสมบัติอีกอย่างของอนุกรมฟูเรียร์ ถ้าฟังก์ชันมีอยู่ (ในเชิงปฏิบัติ) สัมประสิทธิ์จะลดลงแบบ 1/ n . ถ้าฟังก์ชันต่อเนื่อง Figure 15.3 (ค่าปลายสุดสองข้างต้องเท่ากัน) และมีอนุพันธ์อยู่ สัมประสิทธิ์จะลดลงแบบ 1/ n 2 ; ถ้าอนุพันธ์อันดับหนึ่งต่อเนื่องและมีอนุพันธ์อันดับสองอยู่ สัมประสิทธิ์จะลดลงแบบ 1/ n 3 ; ถ้าอนุพันธ์อันดับสองต่อเนื่องและมีอนุพันธ์อันดับสามอยู่ ก็จะเป็น 1/ n 4 ไปเรื่อยๆ ดังนั้นอัตราการลู่เข้าสามารถสังเกตได้โดยตรงจากฟังก์ชันบนเส้นจำนวนจริง—ซึ่งไม่เป็นความจริงสำหรับ Taylor series ที่การลู่เข้าถูกควบคุมโดย singularities ที่อาจอยู่ในระนาบเชิงซ้อน

Figure 15.3—ฟังก์ชันต่อเนื่องที่มีค่าปลายสุดสองข้างเท่ากัน

ตอนนี้เรากลับมาที่การออกแบบ smoothing digital filter โดยใช้อนุกรมฟูเรียร์เพื่อหาพจน์นำ เราจะเห็นว่า least-squares fit มีปัญหาที่จุดไม่ต่อเนื่องใดๆ—มี overshoot ที่น่ารำคาญใน transfer function สำหรับพจน์จำนวนจำกัดใดๆ ไม่ว่าเราจะไปไกลแค่ไหน

เพื่อกำจัด overshoot นี้ เราจะพิจารณา Lanczos window หรือที่เรียกว่า "box car" หรือ "rectangular" window Lanczos ให้เหตุผลว่าถ้าเขาหาค่าเฉลี่ยของฟังก์ชันเอาต์พุตในช่วงที่มีความยาวเท่ากับคาบของความถี่สูงสุดที่มีอยู่ การหาค่าเฉลี่ยนี้จะลด ripples ลงได้อย่างมาก เพื่อดูรายละเอียดนี้ เราจะนำการกระจายอนุกรมฟูเรียร์ที่ถูกตัดทอนที่ N th harmonic และอินทิเกรตรอบจุด t ในช่วงสมมาตรที่มีความยาว 1/ N ของช่วงทั้งหมด ตั้งอินทิกรัลสำหรับการหาค่าเฉลี่ย

จากนั้นอินทิเกรตจะได้

เมื่อแทนค่าขอบเขตและใช้ตรีโกณมิติกับพีชคณิต จะได้

ดังนั้นเราจะได้สัมประสิทธิ์ดั้งเดิมคูณด้วยสิ่งที่เรียกว่า sigma factors

เมื่อตรวจสอบตัวเลขเหล่านี้ในรูปฟังก์ชันของ k (จำนวนพจน์ที่เราเก็บในอนุกรมฟูเรียร์ โดยที่ N คงที่) คุณจะพบว่าที่ k \= 0 sigma factor คือ 1 และ sigma factors จะลดลงจนกระทั่งที่ k \= N มันคือ 0 ดังนั้นมันจึงเป็นอีกตัวอย่างหนึ่งของ window ผลของ Lanczos window คือการลด overshoot ลงเหลือประมาณ 0.01189 (ประมาณ 7 เท่า) และลดค่าต่ำสุดแรกเหลือ 0.00473 (ประมาณ 10 เท่า) ซึ่งเป็นการลด Gibbs phenomenon ที่มีนัยสำคัญแต่ยังไม่สมบูรณ์

กลับมาที่การผจญภัยของผมในเรื่องนี้ ผมรู้อย่างที่คุณรู้ว่าที่จุดไม่ต่อเนื่อง การกระจายฟูเรียร์แบบตัดทอนจะใช้ค่ากึ่งกลางของลิมิตสองค่าจากแต่ละด้าน เมื่อคิดถึงกรณีจำกัดแบบ discrete ผมให้เหตุผลว่าแทนที่จะใช้ค่า 1 ทั้งหมดใน pass band และค่า 0 ใน stop band ผมควรใช้ค่า 1/2 ที่ค่าการเปลี่ยนผ่าน ดูซิว่า transfer function จะกลายเป็น

และตอนนี้มีตัวประกอบเพิ่ม (กลับไปใช้สัญกรณ์แบบ rotational)

และ N + 1 ในเทอม sine กลายเป็น N เช่นเดียวกับตัวส่วน N + 1 ที่กลายเป็น N . เห็นได้ชัดว่า transfer function นี้ดีกว่า Lanczos ในฐานะ low-pass filter เพราะมันเป็นศูนย์ที่ Nyquist frequency และลดทอนความถี่สูงทั้งหมดลงอีก ผมหาในหนังสือเกี่ยวกับอนุกรมตรีโกณมิติและพบในเล่มเดียวเท่านั้น คือผลงานสองเล่มของ Zygmund ซึ่งเรียกว่า modified series . การ "เตรียมพร้อม" เพิ่มเติมครั้งนี้อาจไม่ให้ผลตอบแทนที่ยิ่งใหญ่ แต่เมื่อพบมันด้วยตัวเองแล้ว ผมก็ให้เหตุผลตามธรรมชาติว่าถ้าใช้การปรับเปลี่ยนสัมประสิทธิ์ของอนุกรมฟูเรียร์เพิ่มขึ้นอีก (มากแค่ไหนและตรงไหนยังต้องค้นหา) ผมอาจทำได้ดีขึ้นอีก โดยสรุป ผมเห็นชัดเจนขึ้นว่า "windows" คืออะไร และค่อยๆ ถูกนำไปสู่การตรวจสอบความเป็นไปได้ของมันอย่างใกล้ชิดยิ่งขึ้น

อีกแนวทางที่สามที่สำคัญต่อ Gibbs phenomenon คือผ่านปัญหาของการรวมอนุกรมฟูเรียร์ ให้ g ( x ) เป็น (และเราใช้ตัวแปรกลาง x ด้วยเหตุผลที่ดี)

และอีกฟังก์ชันคือ

ผลรวมและผลต่างของ g ( x ) และ h ( x ) คืออนุกรมที่สอดคล้องกันซึ่งมีสัมประสิทธิ์เป็นผลรวมหรือผลต่างนั่นเอง

ผลคูณเป็นอีกเรื่องหนึ่ง แน่นอนว่าเราจะได้ผลรวมของ exponential อีกครั้ง และกำหนดให้ n = k + m เราจะได้สัมประสิทธิ์ดังที่แสดง:

สัมประสิทธิ์ของ e inx ซึ่งเป็นผลรวมของพจน์ต่างๆ เรียกว่า convolution ของอาร์เรย์สัมประสิทธิ์ดั้งเดิม

ในกรณีที่มีสัมประสิทธิ์ที่ไม่ใช่ศูนย์เพียงไม่กี่ตัวในอาร์เรย์สัมประสิทธิ์ c k เช่น สมมติว่าวางอย่างสมมาตรรอบ 0 เราจะได้สำหรับสัมประสิทธิ์

และนี่คือสิ่งที่เราจำได้ว่าเป็นนิยามดั้งเดิมของ digital filter! ดังนั้น filter คือ convolution ของอาร์เรย์หนึ่งกับอีกอาร์เรย์หนึ่ง ซึ่งก็คือการคูณของฟังก์ชันที่สอดคล้องกันนั่นเอง! การคูณด้านหนึ่งคือ convolution อีกด้านหนึ่งของสมการ

เป็นตัวอย่างการใช้ข้อสังเกตนี้ สมมติว่าอย่างที่เกิดขึ้นบ่อยครั้ง มีอาร์เรย์ข้อมูลที่อาจไม่จำกัด แต่เราสามารถบันทึกได้เพียงจำนวนจำกัด (เช่น การเปิดหรือปิดกล้องโทรทรรศน์ขณะดูดาว) ฟังก์ชัน u n นี้กำลังถูกมองผ่าน rectangular window ที่เป็น 0 ทั้งหมดนอกช่วง (2 N + 1) ตัว—ค่า 1 ที่เราสังเกต และค่า 0 ที่เราไม่ได้สังเกต เมื่อเราพยายามคำนวณการกระจายฟูเรียร์ของอาร์เรย์ดั้งเดิมจากข้อมูลที่สังเกตได้ เราต้องทำ convolution ของสัมประสิทธิ์ดั้งเดิมกับสัมประสิทธิ์ของ window array:

โดยทั่วไปเราต้องการ window ที่มีพื้นที่หนึ่งหน่วย ดังนั้นสุดท้ายเราต้องหารด้วย (2 N + 1) . อาร์เรย์นี้เป็นลำดับเรขาคณิตที่มีค่าเริ่มต้นเป็น e −iNx และอัตราส่วนคงที่เป็น e ix :

ที่ x \= 0 ค่านี้คือ 1 และนอกนั้นจะแกว่งอย่างรวดเร็วเนื่องจากฟังก์ชัน sine ในตัวเศษ และสลายตัวอย่างช้าๆ เนื่องจากการเพิ่มขึ้นของ sine ในตัวส่วน (ช่วงใน x อยู่ระหว่าง π ถึง π ) ดังนั้นเราจึงได้รูปแบบการเลี้ยวเบนแบบทั่วไปของทัศนศาสตร์

ในกรณีต่อเนื่อง ก่อนการสุ่มตัวอย่าง สถานการณ์ก็คล้ายกันมาก แต่ rectangular window ที่เรามองผ่านมี transform ในรูปแบบทั่วไป (ไม่สนใจรายละเอียดทั้งหมด)

และการทำ convolution ของฟังก์ชันขั้นบันได (step function) (ซึ่งเป็น discontinuity) กับมัน เมื่อตรวจสอบแล้ว ก็คือ Gibbs phenomenon นั่นเอง Figure 15.2 . ดังนั้นเราจึงเห็น overshoot ของ Gibbs phenomenon ในมุมมองอีกแบบหนึ่ง

การจัดรูปตรีโกณมิติที่ค่อนข้างยากจะยืนยันให้คุณเห็นโดยตรงว่า ไม่ว่าเราจะสุ่มตัวอย่างฟังก์ชันแล้วจำกัดช่วงการสังเกต หรือจำกัดช่วงแล้วค่อยสุ่มตัวอย่าง เราจะได้ผลลัพธ์เดียวกัน ทฤษฎีก็จะบอกคุณแบบเดียวกัน

การปรับเปลี่ยนง่ายๆ ของ discrete Lanczos window โดยเปลี่ยนแค่สัมประสิทธิ์ด้านนอกสองตัวจาก 1 เป็น 1/2 ทำให้ได้ window ที่ดีกว่ามาก Lanczos window ที่มี sigma factors ปรับเปลี่ยนสัมประสิทธิ์ทั้งหมด แต่รูปร่างของมันมีมุมที่ปลาย ซึ่งหมายความว่า เนื่องจากการเป็นคาบ ทำให้มี discontinuity สองแห่งในอนุพันธ์อันดับหนึ่งของรูปร่าง window—ดังนั้นการลู่เข้าจึงช้า ถ้าเราใช้หลักการโดยใช้น้ำหนักบนสัมประสิทธิ์ของอนุกรมฟูเรียร์ดิบในรูปแบบของ raised cosine

แล้วเราจะได้สิ่งที่คล้ายกับ Lanczos window แต่ตอนนี้จะมีความราบเรียบมากขึ้น จึงลู่เข้าเร็วกว่า

เมื่อเขียนในรูป exponential เราจะพบว่าน้ำหนักบน exponentials คือ

นี่คือ von Hann window—การปรับเรียบในโดเมนของข้อมูลด้วยน้ำหนักเหล่านี้เทียบเท่ากับการทำ windowing (คูณ) ในโดเมนความถี่ จริงๆ แล้ว ผมได้ rediscover von Hann window ในช่วงแรกเริ่มของงานของเราเกี่ยวกับ power spectra และต่อมา John Tukey พบว่า von Hann ใช้มันมานานแล้วก่อนหน้านั้นในบริบทของเศรษฐศาสตร์ การตรวจสอบว่ามันทำอะไรกับสัญญาณพบว่ามันลดลงอย่างรวดเร็ว แต่มี side lobes บางส่วนที่ทำให้ส่วนอื่นของสเปกตรัม "รั่วไหล" เข้ามาได้

บางครั้งเราต้องจัดการกับสเปกตรัมที่มีเส้นความแรงสูง และเมื่อมองที่อื่นในสเปกตรัมผ่าน von Hann window side lobes ของมันอาจปล่อยพลังงานเข้ามามาก Hamming window ถูกออกแบบมาเพื่อให้ side lobe สูงสุดมีค่าน้อยที่สุด ต้นทุนคือมีการรั่วไหลรวมมากกว่าในเชิง mean square แต่เส้นความแรงสูงเส้นเดียวถูกควบคุมไว้ได้ ถ้าคุณเรียก von Hann window ว่า "raised cosine" ที่มีน้ำหนัก

แล้ว Hamming window ก็คือ "raised cosine on a platform" ที่มีน้ำหนัก

( Figure 15.4 ) จริงๆ แล้วน้ำหนักขึ้นอยู่กับ N ซึ่งก็คือความยาวของข้อมูล แต่ขึ้นอยู่น้อยมากจนค่าคงที่เหล่านี้ถูกใช้เป็นประจำในทุกกรณี Hamming window มีออร่าที่ลึกลับและเป็นที่นิยมด้วยสัมประสิทธิ์ที่แปลกประหลาด แต่มันถูกออกแบบมาเพื่อทำงานเฉพาะอย่าง และ ไม่ใช่ ทางออกสากลสำหรับทุกปัญหา ส่วนใหญ่แล้ว von Hann window เป็นที่นิยมกว่า ในวรรณกรรมมี windows ต่างๆ มากถึง 100 แบบ แต่ละแบบมีข้อดีเฉพาะตัว และไม่มีแบบไหนที่มีข้อดีทั้งหมดที่คุณอาจต้องการ

Figure 15.4—ปัจจัยน้ำหนักสำหรับ Hamming และ von Hann windows

เพื่อให้คุณเป็นคนวงในอย่างแท้จริงในเรื่องนี้ ผมต้องเล่าเรื่องอีกเรื่องหนึ่งให้คุณฟัง ผมเคยหยอก John Tukey ว่าคุณจะโด่งดังก็ต่อเมื่อชื่อของคุณถูกเขียนด้วยตัวพิมพ์เล็ก เช่น watt, ampere, volt, fourier (บางครั้ง) และอื่นๆ เมื่อ Tukey เขียนงานเกี่ยวกับ power spectra ครั้งแรก เขาโทรหาผมจาก Princeton และถามว่าขอใช้ชื่อผมกับ Hamming window ได้ไหม หลังจากขัดขืนอยู่พักหนึ่ง ผมก็ตกลงตามคำขอของเขา หนังสือออกมาพร้อมชื่อ "hamming"! ผมอยู่นั่นแล้ว!

ในแง่หนึ่ง เพื่อนของคุณนั่นแหละที่ทำให้คุณโด่งดังด้วยการอ้างถึงและอ้างอิงคุณ และมันคุ้มค่า ผมขออ้างว่า ที่จะช่วยเหลือผู้อื่นในขณะที่พวกเขาพยายามทำงานของพวกเขา พวกเขาอาจให้เครดิตคุณสำหรับงานนั้นในภายหลัง ซึ่งดีกว่าการพยายามอ้างสิทธิ์ด้วยตัวเอง ความร่วมมือเป็นสิ่งจำเป็นในยุคของโปรเจกต์ที่ซับซ้อนนี้ ยุคของคนทำงานเดี่ยวกำลังจะตายไปอย่างรวดเร็ว การทำงานเป็นทีมมีความจำเป็นมากขึ้นเรื่อยๆ ดังนั้นการเรียนรู้ที่จะทำงานเป็นทีม อันที่จริงอาจจะถึงขั้นมองหาโอกาสที่คุณจะช่วยเหลือผู้อื่น เป็นความคิดที่ดี ไม่ว่ายังไง ความสนุกในการทำงานกับคนดีๆ ในปัญหาสำคัญ ก็มีความสุขมากกว่าชื่อเสียงที่ได้มา และการเลือกปัญหาที่สำคัญก็หมายความว่า โดยทั่วไปผู้บริหารจะยินดีจัดหาความช่วยเหลือทั้งหมดที่คุณต้องการ

ในหลายปีที่ผมทำงานด้านการคำนวณที่ Bell Telephone Laboratories ผมระวังอย่างมากที่จะไม่เขียนผลลัพธ์ที่เกี่ยวข้องกับฟิสิกส์ของสถานการณ์นั้นๆ เกรงว่าจะถูกมองว่าขโมยความคิดของคนอื่น แต่ผมให้พวกเขาเขียนผลลัพธ์ขึ้นมา และถ้าพวกเขาอยากให้ผมเป็นผู้เขียนร่วม ก็ดี! การทำงานเป็นทีมหมายถึงการพิจารณาอย่างรอบคอบถึงผู้อื่นและผลงานของพวกเขา และพวกเขาอาจมองผลงานของตัวเองในมุมที่แตกต่างจากที่คุณมอง!

OceanofPDF.com