DISKRETNA FOURIERJEVA TRANSFORMACIJA

Σχετικά έγγραφα
Zaporedja. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 22. oktober Gregor Dolinar Matematika 1

Diferencialna enačba, v kateri nastopata neznana funkcija in njen odvod v prvi potenci

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 21. november Gregor Dolinar Matematika 1

Funkcijske vrste. Matematika 2. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 2. april Gregor Dolinar Matematika 2

matrike A = [a ij ] m,n αa 11 αa 12 αa 1n αa 21 αa 22 αa 2n αa m1 αa m2 αa mn se števanje po komponentah (matriki morata biti enakih dimenzij):

Odvod. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 5. december Gregor Dolinar Matematika 1

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 14. november Gregor Dolinar Matematika 1

Tretja vaja iz matematike 1

KODE ZA ODKRIVANJE IN ODPRAVLJANJE NAPAK

Podobnost matrik. Matematika II (FKKT Kemijsko inženirstvo) Diagonalizacija matrik

Odvod. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 10. december Gregor Dolinar Matematika 1

Zaporedja. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 15. oktober Gregor Dolinar Matematika 1

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 12. november Gregor Dolinar Matematika 1

V tem poglavju bomo vpeljali pojem determinante matrike, spoznali bomo njene lastnosti in nekaj metod za računanje determinant.

Splošno o interpolaciji

Iterativno reševanje sistemov linearnih enačb. Numerične metode, sistemi linearnih enačb. Numerične metode FE, 2. december 2013

Booleova algebra. Izjave in Booleove spremenljivke

SKUPNE PORAZDELITVE VEČ SLUČAJNIH SPREMENLJIVK

Matrike. Poglavje II. Matrika je pravokotna tabela realnih števil. Na primer: , , , 0 1

Reševanje sistema linearnih

Algebraične strukture

Linearne preslikave. Poglavje VII. 1 Definicija linearne preslikave in osnovne lastnosti

IZPIT IZ ANALIZE II Maribor,

INTEGRALI RACIONALNIH FUNKCIJ

Lastne vrednosti in lastni vektorji

UNIVERZA V MARIBORU FAKULTETA ZA KEMIJO IN KEMIJSKO TEHNOLOGIJO MATEMATIKA II

FAKULTETA ZA STROJNIŠTVO Matematika 4 Pisni izpit 22. junij Navodila

Analiza 2 Rešitve 14. sklopa nalog

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

Linearna algebra. Bojan Orel Fakulteta za računalništvo in informatiko

13. Jacobijeva metoda za računanje singularnega razcepa

Shefferjeva polinomska zaporedja

Kotne in krožne funkcije

1 Fibonaccijeva stevila

8. Posplošeni problem lastnih vrednosti

Numerično reševanje. diferencialnih enačb II

Osnove linearne algebre

Matematika I (VS) Univerza v Ljubljani, FE. Melita Hajdinjak 2013/14. Pregled elementarnih funkcij. Potenčna funkcija. Korenska funkcija.

*M * Osnovna in višja raven MATEMATIKA NAVODILA ZA OCENJEVANJE. Sobota, 4. junij 2011 SPOMLADANSKI IZPITNI ROK. Državni izpitni center

REˇSITVE. Naloga a. b. c. d Skupaj. FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost 2. kolokvij 23.

Poliedri Ines Pogačar 27. oktober 2009

Kontrolne karte uporabljamo za sprotno spremljanje kakovosti izdelka, ki ga izdelujemo v proizvodnem procesu.

Osnove matematične analize 2016/17

1. Definicijsko območje, zaloga vrednosti. 2. Naraščanje in padanje, ekstremi. 3. Ukrivljenost. 4. Trend na robu definicijskega območja

8. Diskretni LTI sistemi

Dodatna poglavja iz linearne algebre za 1. letnik finančne matematike na FMF. Primož Moravec

Matematika. Funkcije in enačbe

MATEMATIČNI IZRAZI V MAFIRA WIKIJU

Matematika 2. Diferencialne enačbe drugega reda

PONOVITEV SNOVI ZA 4. TEST

Kvadratne forme. Poglavje XI. 1 Definicija in osnovne lastnosti

1. Trikotniki hitrosti

Matematika 1. Gabrijel Tomšič Bojan Orel Neža Mramor Kosta

Uporabna matematika za naravoslovce

Problem lastnih vrednosti

Elementi spektralne teorije matrica

Univerza v Ljubljani Fakulteta za računalništvo in informatiko MATEMATIKA. Polona Oblak

D f, Z f. Lastnosti. Linearna funkcija. Definicija Linearna funkcija f : je definirana s predpisom f(x) = kx+n; k,

Spoznajmo sedaj definicijo in nekaj osnovnih primerov zaporedij števil.

Inverzni problem lastnih vrednosti evklidsko razdaljnih matrik

II. LIMITA IN ZVEZNOST FUNKCIJ

Kotni funkciji sinus in kosinus

Tema 1 Osnove navadnih diferencialnih enačb (NDE)

VEKTORJI. Operacije z vektorji

Gimnazija Krˇsko. vektorji - naloge

diferencialne enačbe - nadaljevanje

Matematika. BF Lesarstvo. Zapiski ob predavanjih v šolskem letu 2009/2010

Delovna točka in napajalna vezja bipolarnih tranzistorjev

1 Seštevanje vektorjev in množenje s skalarjem

Vektorski prostori s skalarnim produktom

Enačba, v kateri poleg neznane funkcije neodvisnih spremenljivk ter konstant nastopajo tudi njeni odvodi, se imenuje diferencialna enačba.

Navadne diferencialne enačbe

Integralni račun. Nedoločeni integral in integracijske metrode. 1. Izračunaj naslednje nedoločene integrale: (a) dx. (b) x 3 +3+x 2 dx, (c) (d)

MATEMATIKA II TEORIJA

Klasifikacija blizu Kelerovih mnogostrukosti. konstantne holomorfne sekcione krivine. Kelerove. mnogostrukosti. blizu Kelerove.

Množico vseh funkcijskih vrednosti, ki jih pri tem dobimo, imenujemo zaloga vrednosti funkcije f. Oznaka: Z f

AFINA IN PROJEKTIVNA GEOMETRIJA

Definicija 1. Naj bo f : D odp R funkcija. Funkcija F : D odp R je primitivna funkcija funkcije f, če je odvedljiva in če velja F = f.

Definicija. definiramo skalarni produkt. x i y i. in razdaljo. d(x, y) = x y = < x y, x y > = n (x i y i ) 2. i=1. i=1

Oznake in osnovne definicije

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA SANDRA BOLTA LASTNE VREDNOSTI GRAFA DIPLOMSKO DELO

Interpolacija in aproksimacija funkcij

MATEMATIKA 1 UNIVERZITETNI ŠTUDIJSKI PROGRAM BIOKEMIJA 1. LETNIK

Matematika vaja. Matematika FE, Ljubljana, Slovenija Fakulteta za Elektrotehniko 1000 Ljubljana, Tržaška 25, Slovenija

Kombinatorika. rekurzivnih enačb in rodovne funkcije. FMF Matematika Finančna matematika. Vladimir Batagelj. Ljubljana, april

Osnovne teoreme diferencijalnog računa

Domače naloge za 2. kolokvij iz ANALIZE 2b VEKTORSKA ANALIZA

p 1 ENTROPIJSKI ZAKON

18. listopada listopada / 13

ZBIRKA REŠENIH NALOG IZ MATEMATIKE I

Matematika 1. Gregor Dolinar. 2. januar Fakulteta za elektrotehniko Univerza v Ljubljani. Gregor Dolinar Matematika 1

ZBIRKA REŠENIH NALOG IZ MATEMATIKE II

Operacije s matricama

Matematika 1. Gabrijel Tomšič Bojan Orel Neža Mramor Kosta

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

11.5 Metoda karakteristik za hiperbolične PDE

Afina in projektivna geometrija

Dragi polinom, kje so tvoje ničle?

MATEMATIKA ZA BIOLOGE

Izpeljava Jensenove in Hölderjeve neenakosti ter neenakosti Minkowskega

Transcript:

29.03.2004

Definicija DFT Outline DFT je linearna transformacija nekega vektorskega prostora dimenzije n nad obsegom K, ki ga označujemo z V K, pri čemer ima slednji lastnost, da vsebuje nek poseben element, ki mu pravimo n-ti primitivni koren enote, označujemo pa ga z ω.

Definicija DFT Outline DFT je linearna transformacija nekega vektorskega prostora dimenzije n nad obsegom K, ki ga označujemo z V K, pri čemer ima slednji lastnost, da vsebuje nek poseben element, ki mu pravimo n-ti primitivni koren enote, označujemo pa ga z ω. Za ω velja in ω n = 1 (1) ω i 1, pri 0 < i < n (2)

Pomembna izpeljana lastnost konstante ω, I Iz lastnosti (1) in (2) lahko izpeljemo: n 1 i=0 ω pi = { n pri p = 0 in p = n 0 sicer. (3) Dejansko, pri p = 0 ali p = n so vsi členi enaki 1 [pri p = n na podlagi lastnosti (1)] in je torej vsota enaka n. Leva stran predstavlja n členov geometrijske vrste in je torej enaka ω pn 1 ω p 1 v primeru ω p 1. Na podlagi (1) in (2) to pomeni, da je vrednost 0 pri 0 < i < n.

Pomembna izpeljana lastnost konstante ω, II Iz lastnosti (3) lahko tudi izpeljemo (1) in (2) [kar pomeni, da je (3) enakovredna (1) in (2)]. Dejansko lahko zapišemo, ω pn 1 = (ω p 1) n 1 in ker je pri p = 1, 2,...,n 1 drugi člen na desni enak 0, velja ω pn 1 = 0, oziroma, če zamenjamo p = 1 dobimo lastnost (1). Sedaj pa, denimo, da lastnost (2) ne velja. V tem primeru bi veljalo ω q = 1 pri nekem 0 < q < n. Tedaj bi vsota n 1 i=0 ωqi bila enaka n, kar bi bilo v nasprotju z izhodiščnim privzetkom. Torej smo implikacijo (3)= (1),(2) dokazali. i=0 ω pi

Matrika DFT Outline Element a V K je n-terka elementov K: a = a 0, a 1,...,a n 1 Naj bo T poljubna linearna transformacija V K in a poljuben element V K. Učinek T na a predstavimo s produktom M T a t, pri čemer je M T n n matrika, ki pripada transformaciji T, a t pa je transponirana oblika vektorja a (torej, ker je a vrstični vektor, je a t stolpčni vektor). DFT ima matriko F n = (ω ij ) (4) kar pomeni, da je element v i-ti vrstici in j-tem stolpcu enak ω ij (0 i, j n 1)

Primeri Outline Primer obsega K, ki vsebuje ω: kompleksna števila. V tem primeru je ω = e i 2π n

Primeri Outline Primer obsega K, ki vsebuje ω: kompleksna števila. V tem primeru je ω = e i 2π n Naj bo K obseg kompleksnih števil. V tem primeru dobimo: F 2 = n = 2 n = 4 [ ] 1 1 1 1 1 1 F 1 1 4 = 1 i 1 i 1 1 1 1 1 i 1 i kjer je i = ω imaginarno število oziroma kvadratni koren -1

DFT ima inverz! Outline Neka linearna transformacija T ima inverz, če obstaja transformacija T 1 z lastnostjo T T 1 = id, kjer je id identiteta, torej transformacija, ki preslika vsak vektor nazaj samega vase: id(a) = a.

DFT ima inverz! Outline Neka linearna transformacija T ima inverz, če obstaja transformacija T 1 z lastnostjo T T 1 = id, kjer je id identiteta, torej transformacija, ki preslika vsak vektor nazaj samega vase: id(a) = a. Matrika transformacije id je enotska matrika I.

DFT ima inverz! Outline Neka linearna transformacija T ima inverz, če obstaja transformacija T 1 z lastnostjo T T 1 = id, kjer je id identiteta, torej transformacija, ki preslika vsak vektor nazaj samega vase: id(a) = a. Matrika transformacije id je enotska matrika I. Če je matrika neke linearne transformacije T M T in če ima M T inverz kot matrika: M 1 T, je M 1 T matrika inverzne transformacije T.

DFT ima inverz! Outline Neka linearna transformacija T ima inverz, če obstaja transformacija T 1 z lastnostjo T T 1 = id, kjer je id identiteta, torej transformacija, ki preslika vsak vektor nazaj samega vase: id(a) = a. Matrika transformacije id je enotska matrika I. Če je matrika neke linearne transformacije T M T in če ima M T inverz kot matrika: M 1 T, je M 1 T matrika inverzne transformacije T. Matrika inverzne transformacije DFT je Fn 1 = ( 1 n ω ij ). F Fn 1 = I sledi iz lastnosti (3)

Osnovne lastnosti polinomov ene spremenljivke p(x) = n 1 i=0 a i x i, a i K, 0 i n 1 Polinome lahko seštevamo in množimo: p(x) = n 1 i=0 a ix i q(x) = n 1 i=0 b ix i p(x) + q(x) = n 1 i=0 (a i + b i )x i p(x) q(x) = 2n 2 i=0 i j=0 a i jb j x i pri čemer v definiciji produkta vse koeficiente b j, j n, izenačimo z 0. Lahko takoj opazimo, da je za izračun vseh koeficientov polinomskega produkta na podlagi zgornje formule potrebno precej operacij: Θ(n 2 ).

Polinomi ene spremenljivke po modulu x n Včasih nas pri polinomih zanimajo le koeficienti pri potencah x, ki so manjše od n. V tem primeru imamo opravka s polinomi po modulu x n. Ni se težko prepričati, da koeficienti pri potencah x i, pri i n nimajo vpliva na vrednosti koeficientov pri potencah x i, pri i < n, ko gre za operacije seštevanja in množenja, zato je rezultat teh operacij enolično določen z vrednostmi koeficientov pri potencah x i, i < n.

Polinomi ene spremenljivke po modulu x n Včasih nas pri polinomih zanimajo le koeficienti pri potencah x, ki so manjše od n. V tem primeru imamo opravka s polinomi po modulu x n. Ni se težko prepričati, da koeficienti pri potencah x i, pri i n nimajo vpliva na vrednosti koeficientov pri potencah x i, pri i < n, ko gre za operacije seštevanja in množenja, zato je rezultat teh operacij enolično določen z vrednostmi koeficientov pri potencah x i, i < n. Iz tega sledi, da lahko polinom p(x) po modulu x n enolično predstavimo kot element vektorskega prostora dimenzije n nad K, torej z n-terko vrednosti a 0, a 1,...,a n 1

Koeficientna in vrednostna predstavitvi polonoma Predstavitev polinoma p(x) = n 1 i=0 a ix i v obliki n-terke a 0, a 1,...,a n 1 se imenuje koeficientna predstavitev polinoma p(x)

Koeficientna in vrednostna predstavitvi polonoma Predstavitev polinoma p(x) = n 1 i=0 a ix i v obliki n-terke a 0, a 1,...,a n 1 se imenuje koeficientna predstavitev polinoma p(x) Včasih pa je primerneje predstavljati polinome z n vrednostmi pri izbranih konstantah c 0, c 1,...,c n 1, torej v obliki p(c 0 ), p(c 1 ),...,p(c n 1 )

Koeficientna in vrednostna predstavitvi polonoma Predstavitev polinoma p(x) = n 1 i=0 a ix i v obliki n-terke a 0, a 1,...,a n 1 se imenuje koeficientna predstavitev polinoma p(x) Včasih pa je primerneje predstavljati polinome z n vrednostmi pri izbranih konstantah c 0, c 1,...,c n 1, torej v obliki p(c 0 ), p(c 1 ),...,p(c n 1 ) Prehod iz koeficientne predstavitve v vrednostno je možno opraviti na podlagi formule: p(c 0 ) p(c 1 ). p(c n 1 ) = 1 c 0 c 2 0... c n 1 0 1 c 1 c 2 1... c n 1 1. 1 c n 1 cn 1 2... c n 1 n 1 a 0 a 1. a n 1 (5)

Pomembna lastnost vrednostne predstavitve polinomov Naj bosta p(x) in q(x) polinoma, ki sta predstavljena z vrednostmi pri c 0, c 1,...,c n 1, torej v obliki p = p(c 0 ), p(c 1 ),...,p(c n 1 ) ; q = q(c 0 ), q(c 1 ),...,q(c n 1 ). Vrednostno predstavitev produkta p in q dobimo kot vektor s komponentami, ki so produkti istoležnih komponent p in q: p q = p(c 0 )q(c 0 ), p(c 1 )q(c 1 ),...,p(c n 1 )q(c n 1 ). (6)

Vrednostna predstavitev pri ω i, 0 i < n Če postavimo c i = ω i v (5) je matrika za pretvorbo iz koeficientne predstavitve v vrednostno enaka F n!

Vrednostna predstavitev pri ω i, 0 i < n Če postavimo c i = ω i v (5) je matrika za pretvorbo iz koeficientne predstavitve v vrednostno enaka F n! Torej če tolmačimo vektor a = a 0, a 1,...,a n 1 kot nabor koeficientov polinoma p(x) po modulu x n je F n a t nabor vrednosti polinoma pri vrednostih x = ω 0, ω 1,...,ω n 1.

Vrednostna predstavitev pri ω i, 0 i < n Če postavimo c i = ω i v (5) je matrika za pretvorbo iz koeficientne predstavitve v vrednostno enaka F n! Torej če tolmačimo vektor a = a 0, a 1,...,a n 1 kot nabor koeficientov polinoma p(x) po modulu x n je F n a t nabor vrednosti polinoma pri vrednostih x = ω 0, ω 1,...,ω n 1. Odslej bomo vseskozi uporabljali tako tolmačenje DFT.

Razcep problema DFT, I Pri polinomu p(x), ki je podan s svojimi koeficienti a, želimo izračunati p(ω 0 ), p(ω 1 ),...,p(ω n 1 ) t = F n a t. Odslej privzemamo, da je n = 2 k, k > 0 in razcepimo polinom na sode in lihe potence: n 2 1 i=0 n 2 1 p(x) = n 1 i=0 a ix i = a 2i x 2i +x a 2i+1 x 2i i=0 } {{ } } {{ } p 0 (x 2 ) p 1 (x 2 ). (7)

Razcep problema DFT, II Torej smo na podlagi (7) razcepili problem takole: p(x) = p 0 (x 2 ) + x p 1 (x 2 ). (8) p 0 in p 1 sta stopnje n 2 1 in ko računamo p(ωi ), 0 i n 1, računamo p 0 (x) in p 1 (x) pri vrednostih x = ω 2i, 0 i n 2 1. Ugotovimo lahko, da je ω 2 n 2 -ti primitivni koren enote, p 0 in p 1 sta stopnje n 2 1; torej smo razcepili prvotni problem na dva identična problema polovične velikost.

Poraba časa Outline Porabo časa opisanega algoritma ocenimo na podlagi znanega izreka o rešitvi rekurenčne relacije T(n) = { b n = 1 at( n c ) + nr sicer (9) V našem primeru imamo a = c = 2 in r = 1. Rešitev je odvisna od a c r, ki je v našem primeru 1. Takrat dobimo, T(n) = n logn

Izboljšava Outline Naj bo r = n 2. Porabo časa izboljšamo takole: najprej izračunamo p(ω i ), 0 i r 1 na podlagi (10). Nato upoštevamo ω 2(r+i) = ω 2i in ω r+i = ω i ter izračunamo p(ω r+i ), 0 i r 1 na podlagi p(x) = p 0 (x 2 ) x p 1 (x 2 ). (10) Na ta način smo število vrednosti x, pri katerih je potrebno računati vrednost p 0 in p 1 prepolovili.

Primer: računanje DFT neposredno n = 4 p(x) = 1 + 2x + 2x 2 + 1x 3 1 1 1 1 1 1 ω 1 ω 2 1 1 1 1 2 1 ω 1 ω 1 = 6 1 + ω 0 1 ω

Primer: računanje DFT rekurzivno n = 4 p(x) = 1 + 2x + 2x 2 + 1x 3 p(x) = p 0 (x 2 ) + xp 1 (x 2 ); p 0 (y) = 1 + 2y; p 1 (y) = 2 + y [ ] [ ] [ ] [ ] p0 (1) 1 1 1 3 = = p 0 ( 1) [ p1 (1) p 1 ( 1) ] = 1 1 [ 1 1 1 1 ] 2 [ 2 1 ] = [ 3 1 1 ] p(1) = p 0 (1) + 1 p 1 (1) = 6;p(ω) = p 0 ( 1) + ω p 1 ( 1) = 1 + ω p( 1) = p 0 (1) 1 p 1 (1) = 0;p( ω) = p 0 ( 1) ω p 1 ( 1) = 1 ω

Osnovne identitete Outline p(x) je polinom ene spremenljivke, stopnje n 1; c K je konstanta. p(c) = p(x) mod (x c) p(x) = q x c (x)(x c) + r x c (x) p(c) = q x c (c)(c c) + r x c (x) = r x c (x) r(x) je stopnje 0! p(x) mod s(x)=(p(x) mod s(x) t(x) }{{} )mods(x) r s(x)t(x) (x) p(x) = q(x) s(x)t(x) s(x) t(x) + r s(x)t(x) (x) p(x) mod s(x)=q(x) s(x)t(x) s(x) t(x) mod s(x) }{{} +r s(x)t(x)(x) mod s(x) enako 0, ker je deljenec mnogokratnik s(x) (11)

Drevesna urejenost deliteljev pri n = 4 x 4 1 x 2 1 x 2 + 1 x ω 0 = x 1 x ω 2 = x + 1 x ω 1 x ω 3 = x + ω

n = 8 Outline d 03 (x) d 02 (x) d 42 (x) d 01 (x) d 21 (x) d 41 (x) d 61 (x) d 00 (x)d 10 (x)d 20 (x)d 30 (x)d 40 (x)d 50 (x) d 60 (x)d 70 (x) d 03 (x) = x 8 ω 0 d 02 (x) = x 4 ω 0 d 42 (x) = x 4 ω 4 d 01 (x) = x 2 ω 0 d 21 (x) = x 2 ω 4 d 41 (x) = x 2 ω 2 d 61 (x) = x 2 ω 6 d 00 (x) = d 10 (x) = d 20 (x) = d 30 (x) = d 40 (x) = d 50 (x) = d 60 (x) = d 70 (x) = x ω 0 x ω 4 x ω 2 x ω 6 x ω 1 x ω 5 x ω 3 x ω 7

Odvisnost delitelja v višji vrstici od dveh deliteljev v nižji vrstici x 2h+1 ω l 2h+1 = (x 2h ω l 2h )(x 2h + ω l 2h ) = (x 2h ω l 2h )(x 2h ω l 2h + n 2). (12) h + 1 bitov {}}{ l 0...... 0 0 l 0... 0 1 l 0... 0 }{{} h bitov

Ostanki po deljenju Outline p(x) mod (x 2h ω s ) = (a j + ω s a j+2 h)x j (13) 2 h 1 j=0

Program s primerom (* n = 2 k *) BEGIN (* Naj bo r 0,k = n 1 j=0 a jx j *) FOR h := k 1 BY 1 TO 0 DO 1, 2, 2, 1; h = 2 i := 0 ; WHILE i < n DO 3, 3, 1, 1; h = 1 (* Naj bo r i,h+1 = 2 h+1 1 j=0 a j x j *) s:= rev k (i DIV 2 h ) ; 6, 0, 1 + ω, 1 ω; h = 0 r i,h := 2 h 1 j=0 (a j + ω s a j+2 h)x j ; r i+2 h,h := 2 h 1 j=0 (a j + ω s+n/2 a j+2 h)x j ; i := i + 2 (h+1) END END ; FOR i:=0 TO n-1 DO b revk (i) := r i,0 END END 6, 1 + ω, 0, 1 ω; rev!