Numerical Methods Contents - SAM
Numerical Methods Contents - SAM
Numerical Methods Contents - SAM
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
7.4.1 Sine transform<br />
Another trigonometric basis transform in R n−1 , n ∈ N:<br />
Standard basis of R n−1 ⎧<br />
⎧⎛<br />
⎞⎛<br />
⎞ ⎛ ⎞⎛<br />
⎞⎫<br />
⎛<br />
1 0<br />
⎪⎨<br />
1<br />
0.<br />
0.<br />
· · ·<br />
0..<br />
⎪⎬ ⎪⎨<br />
⎜ ⎟⎜<br />
⎟ ⎜0<br />
⎟⎜.<br />
←−<br />
⎟ ⎜<br />
⎝.<br />
⎠⎝<br />
0.. ⎠ ⎝1⎠⎝0⎠<br />
⎝<br />
⎪⎩<br />
0 0 0 1<br />
⎪⎭ ⎪⎩<br />
sin( π n )<br />
sin( 2π n )<br />
.<br />
.<br />
sin( (n−1)π<br />
n )<br />
Basis transform matrix (sine basis → standard basis):<br />
“Sine basis”<br />
⎞⎛<br />
sin( 2π ⎞ ⎛ ⎞⎫<br />
n )<br />
sin( 4π n )<br />
sin( (n−1)π<br />
n<br />
.<br />
· · ·<br />
sin( 2(n−1)π<br />
n )<br />
⎪⎬<br />
⎟<br />
⎠⎜<br />
⎝ .<br />
⎟<br />
.<br />
⎠ ⎜<br />
sin( 2(n−1)π ⎝ . ⎟<br />
⎠<br />
n ) sin( (n−1)2 π ⎪⎭<br />
n<br />
S n := (sin(jkπ/n)) n−1<br />
j,k=1 ∈ Rn−1,n−1 .<br />
2n−1<br />
(7.2.8)<br />
∑<br />
(F 2n ỹ) k = ỹ j e −2π 2n kj<br />
j=1<br />
n−1 ∑<br />
= y j e −π n kj −<br />
2n−1 ∑<br />
j=1 j=n+1<br />
n−1 ∑<br />
= y j (e −π n kj − en πkj )<br />
y 2n−j e −π n kj<br />
j=1<br />
= −2i (S n y) k ,k = 1,...,n − 1 .<br />
Remark 7.4.1 (Sine transform via DFT of half length).<br />
Step ➀:<br />
transform of the coefficients<br />
Wrap-around implementation<br />
function c = sinetrans(y)<br />
n = length(y)+1;<br />
yt = [0,y,0,-y(end:-1:1)];<br />
ct = fft(yt);<br />
c = -ct(2:n)/(2*i);<br />
MATLAB-CODE sine transform<br />
ỹ j = sin(jπ/n)(y j + y n−j ) + 1 2 (y j − y n−j ) , j = 1, . ..,n − 1 , ỹ 0 = 0 .<br />
✬<br />
Lemma 7.4.1 (Properties of the sine matrix).<br />
√ 2 /nS n is real, symmetric and orthogonal (→ Def. 2.8.1)<br />
✫<br />
✩<br />
Ôº¼ º<br />
✪<br />
Ôº¼ º<br />
Sine transform:<br />
s k = n−1 ∑<br />
y j sin(πjk/n) , k = 1,...,n − 1 . (7.4.1)<br />
j=1<br />
DFT-based algorithm for the sine transform (ˆ= S n ×vector):<br />
⎧<br />
⎪⎨ y j , if j = 1, ...,n − 1 ,<br />
“wrap around”: ỹ ∈ R 2n : ỹ j = 0 , if j = 0, n , (ỹ “odd”)<br />
⎪⎩<br />
−y 2n−j , if j = n + 1, ...,2n − 1 .<br />
y j<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
−0.2<br />
−0.4<br />
−0.6<br />
−0.8<br />
−1<br />
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14<br />
j<br />
−→<br />
tyj<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
−0.2<br />
−0.4<br />
−0.6<br />
−0.8<br />
−1<br />
0 5 10 15 20 25 30<br />
j<br />
Ôº¼ º<br />
n−1<br />
Step ➁: real DFT (→ Sect. 7.2.3) of (ỹ 0 ,...,ỹ n−1 ) ∈ R n ∑<br />
: c k := ỹ j e −2πi n jk<br />
n−1 ∑<br />
n−1<br />
Hence Re{c k } = ỹ j cos(− 2πi<br />
n jk) = ∑<br />
(y j + y n−j ) sin( πj<br />
n ) cos(2πi n jk)<br />
j=0<br />
j=1<br />
n−1 ∑<br />
= 2y j sin( πj<br />
n−1<br />
n ) cos(2πi n jk) = ∑<br />
(<br />
y j sin( 2k + 1<br />
)<br />
− 1<br />
πj) − sin(2k<br />
n n πj) j=0<br />
j=0<br />
= s 2k+1 − s 2k−1 .<br />
n−1 ∑<br />
n−1<br />
Im{c k } = ỹ j sin(− 2πi<br />
n jk) = − ∑<br />
n−1<br />
1<br />
2 (y j − y n−j ) sin( 2πi<br />
n jk) = − ∑<br />
j=0<br />
j=1<br />
j=1<br />
= −s 2k .<br />
Step ➂: extraction of s k<br />
j=0<br />
y j sin( 2πi<br />
n jk)<br />
n−1<br />
s 2k+1 , k = 0, ..., n 2 − 1 ➤ from recursion s ∑<br />
2k+1 − s 2k−1 = Re{c k } , s 1 = y j sin(πj/n) ,<br />
s 2k , k = 1, ..., n 2 − 2 ➤ s 2k = − Im{c k } .<br />
MATLAB-Implementation (via a fft of length n/2):<br />
j=1<br />
Ôº¼ º