Dear Sebastian and all, This is a Japanese to live in Japan. I have a question. Ogg's window functon is f(x)=sin(1/2*pi*sin^2((x+0.5)/n*pi)) for 0 <= x < n But I cannot understand why this window function satisfys the equation f^2(x)+f^2(x+n/2)=2 which is for MDCT's perfect signal reconstruction. reference: Analysis/Synthesis Filter Bank Design Based on Time Domain Aliasing Cancellation John P. Princen, Alan Bernard Bradley IEEE Transactions on Acoustics,Speech and Signal Processing vol.ASSP-34,No.5,October 1986 <p>If you know the reason why,please teach me. Regards, Kato ------------------------------------------------------------------------------------------->Vorbis Development List, November 2002 >[[vorbis-dev] MDCT-Window still wrong] >From: Sebastian Gesemann (sgeseman@uni-paderborn.de) >Date: Wed 13 Nov 2002 - 14:56:39 EST > >In vorbis-spec-intro.html, the MDCT-Window is still wrong. > >Should be sin(1/2*pi*sin^2((x+0.5)/n*pi)) >for 0 <= x < n > >bye, >Sebastian<p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
On Wed, 23 Jul 2003, hkato wrote:> I have a question. > Ogg's window functon is > > f(x)=sin(1/2*pi*sin^2((x+0.5)/n*pi)) for 0 <= x < n > > But I cannot understand why this window function satisfys > the equation > > f^2(x)+f^2(x+n/2)=2It satisfies f^2(x)+f^2(x+n/2) = 1 within x=n/h...n-1 as it should do for perfect reconstruction. Let me try to show you the trick: Let g(z) be a function for z=0..1 with the following properties: * 0 <= g(z) <= 1 * g(z) + g(1-z) = 1 (1) Then, the equation sin^2(pi/2*g(z)) + sin^2(pi/2*g(1-z)) = 1 (2) is true, because... sin^2(pi/2*g(z)) + sin^2(pi/2*g(1-z)) = 1 (use (1) here) <=> sin^2(pi/2*g(z)) + sin^2(pi/2*(1-g(z))) = 1 <=> sin^2(pi/2*g(z)) + sin^2(pi/2-pi/2*g(z)) = 1 <=> sin^2(pi/2*g(z)) + cos^2(-pi/2*g(z)) = 1 <=> sin^2(pi/2*g(z)) + cos^2(pi/2*g(z)) = 1 | set a:=pi/2*g(z) <=> sin^2(a) + cos^2(a) = 1 which is certainly true. The Vorbis-Window is given as f(x) := sin(1/2*pi*sin^2((x+0.5)*pi/n)) If you substitute z=2(x+0.5)/n, you get f(x(z)) = sin(1/2*pi*sin^2(z*pi/2)) With g(z):=sin^2(z*pi/2) you get f(x(z)) = sin(1/2*pi*g(z)) So... f^2(x) + f^2(n/2+x) = 1 <=> f^2(x) + f^2(n/2-x) = 1 (it's symmetric) <=> sin^2(pi/2*pi*g(z)) + sin^2(pi/2*pi*g(1-z)) = 1 which is true, if g(z)+g(1-z)=1. (I prooved above) Finally, we have to check that g(z)+g(1-z)=1 ... sin^2(z*pi/2) + sin^2((1-z)*pi/2) = 1 <=> sin^2(z*pi/2) + sin^2(pi/2-z*pi/2) = 1 <=> sin^2(z*pi/2) + cos^2(-z*pi/2) = 1 <=> sin^2(z*pi/2) + cos^2(z*pi/2) = 1 <=> sin^2(a) + cos^2(a) = 1 which is obviously true. <p>There might be easier ways to proove this. :-) Anyway... Every valid MDCT window function can be expressed as w(x) = sin(1/2 * pi * g(1- |1-2*(x+0.5)/n| ) ) for x=0..n-1 where g(z) satisfies g(z)+g(1-z)=1. Examples: g(z) := z => Sine-Window (used in MP3) g(z) := sin^2(z*pi) => Vorbis-Window g(z) := 0.5 - 0.541 * cos(z*pi) + 0.039 * cos(z*3*pi) + 0.002 * cos(z*5*pi) The last version of g(x) is an KBD-Window- Approximation. AAC uses windows like this. <p>HTH, Sebastian --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Sebastian, Thank you for fast reply. I will follow the equations at night.(now morning) By the way,I made a web page about MDCT. Although it is in Japanese,please check it if you are ok. http://www9.ocn.ne.jp/~hkato111/ bye, Kato <p>>On Wed, 23 Jul 2003, Sebastian Gesemann wrote:>> It satisfies f^2(x)+f^2(x+n/2) = 1 within x=n/h...n-1 >> as it should do for perfect reconstruction. >should be "x=n/2..n-1" > >> Examples: >> g(z) := z => Sine-Window (used in MP3) >> g(z) := sin^2(z*pi) => Vorbis-Window >should be "sin^2(t*pi/2)" > >bye, >Sebastian--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Sebastian,>Cool. Note: I looked it over for several times, but >there still might be some errors... >Anyway, the vorbis-MDCT with its window IS >perfect reconstructioning.I prooved the Vorbis window function satisfies MDCT window equation. And I made explaination to see the web page in English to use web translation. Vorbis window function http://www9.ocn.ne.jp/%7Ehkato111/math4/node1.html Web translation http://www9.ocn.ne.jp/~hkato111/ -> see English comment I hope the page is for your interesting and help. Thank you for your great help. Kato, <p><p><p><p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'vorbis-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Dear, I have a basic question why vorbis window function is different from MP3's, for vorbis's is more complex than MP3's. If does anyone know the reason,please teach me. P.S. I made MDCT calculatin Excel sheet (although only 32point). I hope it will be good to comfirm MDCT. Check http://www9.ocn.ne.jp/%7Ehkato111/math7/node1.html hkato
<20040704144224.3c07a8f6.hkato@beige.ocn.ne.jp> Message-ID: <20040717111623.46374b0d.hkato@beige.ocn.ne.jp> Dear, I have a basic question why vorbis window function is different from MP3's,which is more complex than MP3's. Because MDCT guarantees perfect reconstruction with any window function if the window functions satisfy the relations. h(x):MDCT window function f(x):Inverse MDCT window function f(x)=h(x) h(K-1-x)=h(x) f(r+K/2)^2+f(r)^2=2 If does anyone know the reason,please teach me. P.S. I made MDCT calculatin Excel sheet (although only 32point). I hope it will be good to confirm MDCT. Check http://www9.ocn.ne.jp/%7Ehkato111/math7/node1.html hkato
On Sat, Jul 17, 2004 at 11:16:23AM +0900, hkato wrote:> Dear, > > I have a basic question why vorbis window function is different > from MP3's,which is more complex than MP3's.The vorbis window has faster sidelobe energy rolloff. Monty