From: Tim Wescott on 29 Jul 2010 11:53 On 07/29/2010 06:57 AM, Dirk Bruere at NeoPax wrote: > On 29 July, 14:55, Rune Allnor<all...(a)tele.ntnu.no> wrote: >> On 29 Jul, 15:50, Dirk Bruere at NeoPax<dirk.bru...(a)gmail.com> wrote: >> >>> If we have a 24 bit input signal at 48kHz is there any benefit to be >>> had processing it at 24/96? >> >> The data sampling parameters at the ADC decide what can be done >> with the data. There are no benefits to cranking up the processing >> speed unless you already have a processing chain specifically >> tuned to deal with 24bit / 96 kHz data. >> >> Rune > > So interpolating to 96kHz will not preserve any extra information > during subsequent arithmetic? That depends on the subsequent arithmetic. Up-sampling by some integer factor may well make the math easier during the design phase, and would make the math superficially simpler during run, although any speed advantages from 'simpler' math would, I think, be far outweighed by the faster sampling rate. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html
From: robert bristow-johnson on 29 Jul 2010 11:59 On Jul 29, 9:50 am, Dirk Bruere at NeoPax <dirk.bru...(a)gmail.com> wrote: > If we have a 24 bit input signal at 48kHz is there any benefit to be > had processing it at 24/96? what processing did you have in mind? only linear operations? anything non-linear? if you're planning on some emulation of vacuum tube pre-amps or amps (just to get that "warm sound"), 96 kHz might not be enough. r b-j
From: Vladimir Vassilevsky on 29 Jul 2010 13:05 robert bristow-johnson wrote: > if you're planning on some emulation of vacuum tube pre-amps or amps > (just to get that "warm sound"), 96 kHz might not be enough. You don't have to. 0. Approximate nonlinearity by polynomial. 1. Approximate signal by polynomial. 2. Apply nonlinearity and get a polynomial. 3. Compute Fourier from polynomial in closed form. 4. Drop would-be aliased components. 5. Compute inverse Fourier, also closed form. 6. Generate signal back. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
From: Tim Wescott on 29 Jul 2010 13:17 On 07/29/2010 10:05 AM, Vladimir Vassilevsky wrote: > > > robert bristow-johnson wrote: > > >> if you're planning on some emulation of vacuum tube pre-amps or amps >> (just to get that "warm sound"), 96 kHz might not be enough. > > You don't have to. > > 0. Approximate nonlinearity by polynomial. > 1. Approximate signal by polynomial. > 2. Apply nonlinearity and get a polynomial. > 3. Compute Fourier from polynomial in closed form. > 4. Drop would-be aliased components. > 5. Compute inverse Fourier, also closed form. > 6. Generate signal back. Yes, but will it sound like the tubes have been dipped in LN2? http://www.cryoset.com/catalog/product_reviews_info.php?products_id=32&reviews_id=6. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html
From: robert bristow-johnson on 29 Jul 2010 14:12
On Jul 29, 1:05 pm, Vladimir Vassilevsky <nos...(a)nowhere.com> wrote: > robert bristow-johnson wrote: > > if you're planning on some emulation of vacuum tube pre-amps or amps > > (just to get that "warm sound"), 96 kHz might not be enough. > > You don't have to. > > 0. Approximate nonlinearity by polynomial. > 1. Approximate signal by polynomial. this assumption is not necessary. we just need to view the signal as bandlimited to the original Nyquist before upsampling. > 2. Apply nonlinearity and get a polynomial. what you get is the signal with images (of some form) going up to N times the original bandlimit, where N is the polynomial order, and some of those images may be folded over, depending on the upsampling ratio. > 3. Compute Fourier from polynomial in closed form. why bother? filtering in the time domain is cheap enough and good enough. > 4. Drop would-be aliased components. and hope that none of them aliases made it back into your original baseband. if they do, you might be fucked. > 5. Compute inverse Fourier, also closed form. i never left the time domain. > 6. Generate signal back. Vlad, i've been here. the polynomial order depends on the nature of the nonlinearity in your processing. and the upsampling ratio, R, depends on the order of the polynomial. let's say, for shits and grins, that a 7th-order polynomial is sufficient to approximate some *static* tube curve that you want to emulate. it turns out that oversampling by 4 suffices because the images above the 4th (the 5th, 6th, and 7th), will, at worst, fold back to be a little higher than 3x, 2x, and 1x times the original bandlimit. since we're gonna filter out them sons-of-bitches out before we downsample, we don't care if they're aliased or not. with 2x oversampling, you can get away with a 3rd-order polynomial, no higher. so the necessary oversampling ratio is R > (N+1)/2 where N is the polynomial order. this, of course, means that we need *good* oversampling so that the spectrum above the original bandlimit remains virtually empty of energy content. anything higher *could* potentially fold back into the basebase and become an audible, nasty, inharmonic alias. r b-j |