ห้องสมุดสำหรับการแปลงฟูริเยร์บนโครงตาข่ายรูปสามเหลี่ยม


11

ฉันกำลังมองหาการใช้งาน Fourier transform (DFT) แบบไม่ต่อเนื่องอย่างรวดเร็วพอสมควรบนโครงตาข่ายรูปสามเหลี่ยมสองมิติหรือหกเหลี่ยม

ฉันขอขอบคุณตัวชี้ไปยังการใช้งาน (โดยเฉพาะอย่างยิ่งคนที่ใช้งานได้ง่ายจาก Python หรือ Mathematica) และคำอธิบายถึงวิธีการลดปัญหานี้เป็น 1D DFT ซึ่งสร้างขึ้นในหลาย ๆ ระบบ


นี่เป็นโพสต์แรกของฉันที่นี่ฉันขอขอบคุณความช่วยเหลือในการติดแท็กคำถามอย่างเหมาะสม
Szabolcs

2
สิ่งที่คุณต้องการคือการแปลงฟูริเยร์ของผลึกศาสตร์ สำหรับการอ้างอิงมีนี้ , นี้ , นี้และนี้แต่ฉันมีปัญหาในขั้นตอนการค้นพบ FORTRAN หนึ่งที่สามารถดาวน์โหลดได้อย่างอิสระ คุณอาจจะต้องดำเนินการม้วนของคุณเอง ...
JM

1
+1 สำหรับคำถาม ฉันคิดว่าตอนนี้แท็กใช้ได้แล้ว หากมีคนคิดว่าควรติดแท็กคำถามที่แตกต่างกันพวกเขาจะแก้ไข (หากไม่สามารถทำได้พวกเขาจะถามคนที่สามารถทำได้)
เจฟฟ์ Oxberry

1
นี่คือนี่และนี่คือการอ้างอิงเพิ่มเติมอีกสองสามรายการที่อาจมีการใช้งาน
JM

1
@ Mark ฉันได้พบคู่ของการอ้างอิงเช่นกัน (ก่อนโพสต์) รวมถึงที่ได้รับจากเจฟฟ์ แต่ฉันไม่พบรหัสการทำงานใด ๆ ถึงกระนั้นฉันยังไม่พบคำว่า "crystallographic Fourier transform" นี่เป็นคำถามจากเพื่อนคนหนึ่งที่ขี้อายเล็กน้อยที่จะโพสต์ (แต่ฉันก็สนใจด้วย) ปัญหาเกี่ยวกับการอ้างอิงคือมันเป็นงานที่ต้องอ่านและหาสิ่งที่ถูกต้อง ในที่สุดฉันจะกลับมาและโพสต์เกี่ยวกับผลลัพธ์
Szabolcs

คำตอบ:


5

มีเอกสารหลายฉบับโดย Markus Püschelบนเว็บไซต์ของเขาที่นี่ที่กล่าวถึง Cooley-Tukey-like (ดังนั้นฉันเดาว่า "เร็ว") อัลกอริทึมสำหรับการแปลงรูปตาข่ายเช่น DFTs บนโครงตาข่ายรูปสามเหลี่ยมสองเหลี่ยมและหกเหลี่ยม ในกรณีที่เป็นรูปสามเหลี่ยมเขาเรียก DFT ว่าการแปลงรูปสามเหลี่ยมไม่ต่อเนื่อง (DTT) Markus มีรหัสที่เรียกว่าSPIRALที่สร้างรหัสสำหรับการแปลงโดยอัตโนมัติ แต่ปรากฏว่างาน DTT นี้ไม่ได้เป็นส่วนหนึ่งของ SPIRAL และไม่มีการติดตั้งใช้งานบนเว็บไซต์ของเขาที่ฉันสามารถหาได้ ฉันเริ่มคิดว่า @JM นั้นถูกต้องและคุณอาจต้องยกเลิกการติดตั้งของคุณเอง

สิ่งหนึ่งที่บันทึกย่อของนามธรรมคือสำหรับโครงสามเหลี่ยมสองมิติและหกเหลี่ยมการแปลงนั้นไม่สามารถแยกออกเป็นองค์ประกอบ 1-D ดังนั้นคุณจะไม่สามารถลดปัญหาดังกล่าวเป็นการแปลง 1-D สองรายการได้


ฉันสงสัยอยู่เสมอว่ามันแตกต่างจากการทำ FFT ธรรมดาไปตามทิศทางของโครงตาข่าย ข้อดีคือสิ่งนี้จะรักษาความสมมาตรหรือไม่? เหตุใดจึงสำคัญ
Victor Liu

ฉันสงสัยว่าเมื่อคุณสร้างเมทริกซ์ circulant (ก่อนหน้านี้ของคุณ) มันจะไม่มีคุณสมบัติที่ดีเหมือนเดิม . . ความเข้าใจของฉันเกี่ยวกับ FFT นั้นเป็นเพราะความสมมาตรและความเหมือนตนเองของเมทริกซ์การแปลงคุณสามารถใช้วิธีการแก้ปัญหาที่ชาญฉลาดจริงๆ
meawoppl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.