กลับไปหน้าบทความ

อ่าน 2 นาที

ไม่มีชื่อบทความ

ในคณิตศาสตร์เชิงคำนวณ การแปลงวอลช์-ฮาดามาร์ดแบบเร็วที่ เรียงลำดับตามฮาดามาร์ด ( FWHT h ) เป็น อัลกอริทึม ที่มีประสิทธิภาพ ในการคำนวณ การแปลงวอลช์-ฮาดามาร์ด (WHT) การใช้งาน WHT...

การแปลงแบบเร็วของวอลช์-ฮาดามาร์ด

การแปลงวอลช์-ฮาดามาร์ดแบบเร็วที่ใช้กับเวกเตอร์ที่มีความยาว 8
ตัวอย่างเวกเตอร์อินพุต (1, 0, 1, 0, 0, 1, 1, 0)

ในคณิตศาสตร์เชิงคำนวณการแปลงวอลช์-ฮาดามาร์ดแบบเร็วที่ เรียงลำดับตามฮาดามาร์ด ( FWHT ) เป็นอัลกอริทึม ที่มีประสิทธิภาพ ในการคำนวณการแปลงวอลช์-ฮาดามาร์ด (WHT) การใช้งาน WHT แบบง่ายๆ ที่มีลำดับn=2{\displaystyle n=2^{m}}จะมี ความซับซ้อน ในการคำนวณO(n2{\displaystyle n^{2}}) . FWHT ต้องการเพียงnบันทึกn{\displaystyle n\log n}การบวกหรือการลบ

FWHT เป็นอัลกอริทึมแบบแบ่งและพิชิต (divide-and-conquer)ที่แบ่ง WHT ขนาด ออกเป็นส่วนย่อยๆ แบบเรียกซ้ำn{\displaystyle n}แบ่งเป็น WHT ขนาดเล็ก 2 อันn/2{\displaystyle n/2}[ 1 ] การใช้งานนี้เป็นไปตามคำ จำกัดความ แบบเรียกซ้ำของ2×2{\displaystyle 2^{m}\times 2^{m}}เมทริกซ์ฮาดามาร์ดชม{\displaystyle H_{m}}:

ชม=12(ชม1ชม1ชม1ชม1).{\displaystyle H_{m}={\frac {1}{\sqrt {2}}}{\begin{pmatrix}H_{m-1}&H_{m-1}\\H_{m-1}&-H_{m-1}\end{pmatrix}}.}

เดอะ1/2{\displaystyle 1/{\sqrt {2}}}ปัจจัยการปรับค่ามาตรฐานสำหรับแต่ละขั้นตอนอาจถูกจัดกลุ่มเข้าด้วยกัน หรืออาจถูกละเว้นไปเลยก็ได้

การ แปลงวอลช์-ฮาดามาร์ดแบบเร็ว (FWHT ) ที่เรียงลำดับตามลำดับ หรือที่รู้จักกันในชื่อการแปลงวอลช์-ลำดับแบบเร็ว ได้มาจากการคำนวณ FWHT ดังที่กล่าวมาข้างต้น แล้วจัดเรียงผลลัพธ์ใหม่

การนำการแปลง Walsh–Hadamard ไปใช้แบบง่ายๆ รวดเร็ว และไม่ใช้การเรียกซ้ำนั้น ได้มาจากการแยกส่วนเมทริกซ์การแปลง Hadamard ดังนี้ชม=เอ{\displaystyle H_{m}=A^{m}}โดยที่Aคือรากที่m ของชม{\displaystyle H_{m}}[ 2 ]

ตัวอย่างโค้ด Python

import math def fwht ( a ) -> None : """การแปลง Walsh–Hadamard แบบเร็วในตัวของอาร์เรย์ a.""" assert math . log2 ( len ( a )) . is_integer (), "ความยาวของ a เป็นกำลังของ 2" h = 1 while h < len ( a ): # ทำการแปลง FWHT for i in range ( 0 , len ( a ), h * 2 ): for j in range ( i , i + h ): x = a [ j ] y = a [ j + h ] a [ j ] = x + y a [ j + h ] = x - y # ปรับให้เป็นมาตรฐานและเพิ่มค่าa /= math . sqrt ( 2 ) h *= 2

ดูเพิ่มเติม

  • Charles Constantine Gumas กล่าวว่าการแปลง Hadamard ที่รวดเร็วซึ่งมีอายุเกือบศตวรรษพิสูจน์แล้วว่ามีประโยชน์ในการสื่อสารดิจิทัล

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไม่มีชื่อบทความ

ในคณิตศาสตร์เชิงคำนวณ การแปลงวอลช์-ฮาดามาร์ดแบบเร็วที่ เรียงลำดับตามฮาดามาร์ด ( FWHT h ) เป็น อัลกอริทึม ที่มีประสิทธิภาพ ในการคำนวณ การแปลงวอลช์-ฮาดามาร์ด (WHT) การใช้งาน WHT...

ตัวอย่างโค้ด Python

None:\n \"\"\"In-place Fast Walsh–Hadamard Transform of array a.\"\"\"\n assert math.log2(len(a)).is_integer(), \"length of a is a power of 2\"\n h = 1\n while h import math def fwht ( a ) -> None : """การแปลง Walsh–Hadamard แบบเร็วในตัวของอาร์เรย์ a.

ดูเพิ่มเติม

การแปลงฟูริเยร์แบบเร็ว การแปลงเวฟเล็ตแบบเร็ว

ลิงก์ภายนอก

Charles Constantine Gumas กล่าวว่าการแปลง Hadamard ที่รวดเร็วซึ่งมีอายุเกือบศตวรรษพิสูจน์แล้วว่ามีประโยชน์ในการสื่อสารดิจิทัล