Hi Mark,

::  A couple of comments/questions:
::  > 
::  > ::  Also, every transition from two different size windows is lossy.  The
::  > ::  MDCT is only lossless for overlapping windows of the same size. 
::  > ::
::  > Is this a problem of bad designed (asymmetric) window functions or a
::  > problem of the MDCT (different from DCT).
::  > 
::  
::  It is a problem with all lapped transforms (like the MDCT).  
::  You need at least a 50% overlap to get a lossless transform.  
::  In AAC, a 1024 frame followed by a 128 frame, the 128 frame
::  will use a window of size 256, so it only extends 64 samples into
::  the 1024 frame.
::
I've tested a (slow stupid)FT transform based system with randomly switching
window size and had only rounding errors. The signal is devided into
arbitrary blocks. Every FFT blocks uses two of these blocks uses two (often
different) cos² functions for cross fading. The blocks are cosine
transformed.

When I have time, I will test this again (I'm not so familar with the DCT,
I'm only familar with LTI, FT, zT, LT is also a little bit more difficult).



::  > 4. The prefilter has a extremly short size of 4 or 5 TAPs, which is
::  >    far below 128, 192, 576, or 1024.
::  > 
::  > 
::  If this is true, then the 1024 FFT should have plenty of frequency
::  resolution and the prefilter can be easily implimented via the FFT
::  coefficients.  So no need for a new filter?
::

1. FFT filters are strictly speaking no filters (they are not a LTI system),
   so they have some nasty properties, which are more or less audible. The
   audibility depends on the steepness of the filter.  So high passes should
   never be made by FFT filters. Never ever. 

   Filter flanks modulating the signal, a property LTI systems NEVER have. 
   May be also low pass filter are a bad idea. For high pass filters I'm
   absolutely sure. 

2. FFT filters approximating non recursive filter (often called FIR filters,
   which is not correct), but actually they are a mixture of a frequency
   dependent modulator and a filter. Non recursive filters are only a very
   special class of filters. All LTI filtering is done by:

            A                 B
   y(n) := Sum a(i) x(n-i) - Sum b(i) y(n-i) 
           i=0               i=1

   Every Filter can be characterized by the a(0...A) and b(1...B). For non
   recursive filters is B=0 and A>=0 (also called moving average filters),
   for absolute phase filters is A=0 and B>0 (also called auto regression
   filter). Filters with B>0 and A>0 are mixing both base vectors of filters
   and are also called auto regression moving average filters.

   You can divide ever (LTI) filter into two filters, a MA and a AR filter:

            A             
   v(n) := Sum a(i) x(n-i)
           i=0            

                   B
   y(n) := v(n) - Sum b(i) y(n-i) 
                  i=1

   Now you can set b(0):=1

            A             
   v(n) := Sum a(i) x(n-i)
           i=0            

            B
   v(n) := Sum b(i) y(n-i)
           i=0

  This gives (x,y,z complex, O is a big omega and omega/fs, j is sqrt(-1) )

               A
  v(w)/x(w) = Sum a(i) exp (jOi/fs)
              i=0

               B
  v(w)/y(w) = Sum b(i) exp (jOi/fs)
              i=0

  Substituting exp(jO/fs) = z gives

         A        i
  v/x = Sum a(i) z
        i=0

         B        i
  v/y = Sum b(i) z
        i=0

  and 

         A        i
        Sum a(i) z
        i=0
  y/x = -----------
         B        i
        Sum b(i) z
        i=0
   
  So you can see: MA = P_A(z), AR = 1/Q_B(z) and ARMA = P_A(z)/Q_B(z).

  Example: The easiest AR filter, a integrator (1st order) can only
           be programmed by a infinite long MA filter.


   Are polyphase filters LTI systems? FFT filters aren't.
   And they are comparable with the subset of MA filters.

-- 
Mit freundlichen Grüßen
Frank Klemm
 
eMail | [EMAIL PROTECTED]       home: [EMAIL PROTECTED]
phone | +49 (3641) 64-2721    home: +49 (3641) 390545
sMail | R.-Breitscheid-Str. 43, 07747 Jena, Germany

--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )

Reply via email to