Reply by robert bristow-johnson August 16, 20062006-08-16
Gery wrote:
> I found some information about first order noise shaping at > http://www.earlevel.com/Digital%20Audio/Biquads.html. Is it someting like > that you meant?
yes. the "Direct form I with first-order noise shaping" graphic is precisely what you want to do and you can do it quite cheaply with the 56K, but don't use that shift-left scaling bit. that mode will just get in your way.
> Or I can e-mail you.
recommended. r b-j
Reply by Gery August 16, 20062006-08-16
I found some information about first order noise shaping at
http://www.earlevel.com/Digital%20Audio/Biquads.html. Is it someting like
that you ment?

Or I can e-mail you.

"robert bristow-johnson" <rbj@audioimagination.com> skrev i meddelandet
news:1155740503.116377.222500@74g2000cwt.googlegroups.com...
> > Gery wrote: > > > 0.99999988079071 = 1 - 2^-23, from which I inferred a 24-bit word
length,
> > > from which I inferred a 56K. It's a weak chain of reasoning, I'll > > > admit -- but are there any other 24-bit DSP chips out there? > > > > Yes, it's a 56303 > > > > I found out yesterday (reading old assembler examples) that the DSP has
a
> > "scale up - shift data one bit to the left"-option that can be used when
the
> > coefficients are bigger than +/- 1. > > so that gives you a inherent coefficient range of -2.000000 to > +1.9999999 > > that mode bit in the SR is just not worth it. if you're using the 56K > to do filtering, you'll want to use noise-shaping in the truncation of > the 48 bit result to 24 bit and then that mode just gets in the way. > i've posted short snippets of how to do this in the past (been nearly 5 > years since i've done 56K). i can dig it up if i have to. > > > So now I dont have to scale down my coefficients. > > you can never avoid that. you are *always* scaling your coefs by some > factor if you're using a fixed-point processor. > > > From the file IIR7.ASM: > > > > "Since 1 bit scaling is used, all coefficients are the > > actual value for the filter divided by two." > > and that is scaling your coefficients. > > > Thank you all for your help, it was interesting. Learning all the time. > > send me a legit email, i'll show you how to do this. > > r b-j >
Reply by robert bristow-johnson August 16, 20062006-08-16
Gery wrote:
> > 0.99999988079071 = 1 - 2^-23, from which I inferred a 24-bit word length, > > from which I inferred a 56K. It's a weak chain of reasoning, I'll > > admit -- but are there any other 24-bit DSP chips out there? > > Yes, it's a 56303 > > I found out yesterday (reading old assembler examples) that the DSP has a > "scale up - shift data one bit to the left"-option that can be used when the > coefficients are bigger than +/- 1.
so that gives you a inherent coefficient range of -2.000000 to +1.9999999 that mode bit in the SR is just not worth it. if you're using the 56K to do filtering, you'll want to use noise-shaping in the truncation of the 48 bit result to 24 bit and then that mode just gets in the way. i've posted short snippets of how to do this in the past (been nearly 5 years since i've done 56K). i can dig it up if i have to.
> So now I dont have to scale down my coefficients.
you can never avoid that. you are *always* scaling your coefs by some factor if you're using a fixed-point processor.
> From the file IIR7.ASM: > > "Since 1 bit scaling is used, all coefficients are the > actual value for the filter divided by two."
and that is scaling your coefficients.
> Thank you all for your help, it was interesting. Learning all the time.
send me a legit email, i'll show you how to do this. r b-j
Reply by Gery August 16, 20062006-08-16
> 0.99999988079071 = 1 - 2^-23, from which I inferred a 24-bit word length, > from which I inferred a 56K. It's a weak chain of reasoning, I'll > admit -- but are there any other 24-bit DSP chips out there?
Yes, it's a 56303 I found out yesterday (reading old assembler examples) that the DSP has a "scale up - shift data one bit to the left"-option that can be used when the coefficients are bigger than +/- 1. So now I dont have to scale down my coefficients. From the file IIR7.ASM: "Since 1 bit scaling is used, all coefficients are the actual value for the filter divided by two." Thank you all for your help, it was interesting. Learning all the time.
Reply by robert bristow-johnson August 15, 20062006-08-15
Randy Yates wrote:
> "robert bristow-johnson" <rbj@audioimagination.com> writes: > > > now, so much audio processing is done native that it really doesn't > > matter. > > Native? You mean, on a PC platform?
or Mac. or some UNIX platform. (are there still SGI computers still in use?) this is just to differentiate it from being processed by some rack-mounted box (like a Harmonizer) or some accelerator card. i think that all DirectX and probably all VST plugins are almost all PC and, for Mac, it's "Audio Units" or proprietary (like Pro Tools AudioSuite or Real-time AudioSuite). there's probably some new native DSP wrapping out that is vying for standardhood, but i dunno what it might be. there are too many of these dumb "standards" emerging with no salient reason for them to exist. but that is how some folks, like Waves, makes their money by offering a line of effects that have versions that work on any particular platform. r b-j
Reply by Randy Yates August 15, 20062006-08-15
"robert bristow-johnson" <rbj@audioimagination.com> writes:

> now, so much audio processing is done native that it really doesn't > matter.
Native? You mean, on a PC platform? -- % Randy Yates % "Remember the good old 1980's, when %% Fuquay-Varina, NC % things were so uncomplicated?" %%% 919-577-9882 % 'Ticket To The Moon' %%%% <yates@ieee.org> % *Time*, Electric Light Orchestra http://home.earthlink.net/~yatescr
Reply by robert bristow-johnson August 15, 20062006-08-15
Tim Wescott wrote:
> robert bristow-johnson wrote: > > > Tim Wescott wrote: > > > >>Gery wrote: > >> > >> > >>>How can I scale the coefficients of an second order section IIR filter so > >>>they are within -1 to +0.99999988079071 ? > >>> > >>> > >>> > >>>When I calculate a filter in MATLAB fdatool I get some coefficients that are > >>> > 1. > >>> > >> > >>Folks still use the 56xxx? Cool! > > > > > > digidesign Pro Tools TDM still uses DSP563xx. audio folks have been > > speculating for years how long it would be until they switch to SHArC > > or something else. > > > > but i didn't infer from the OP it was 56K. > > > 0.99999988079071 = 1 - 2^-23, from which I inferred a 24-bit word > length, from which I inferred a 56K. It's a weak chain of reasoning, > I'll admit -- but are there any other 24-bit DSP chips out there?
not common. there are some cores, and (i didn't know this before) there are even 56K clone cores: http://www.chipestimate.com/ip.php?id=5812 (ya gotta register, big headache). but there are others like http://www.clarkspur.com/sum2480a.htm . one thing that i still lament is that Motorola had the audio DSP chip market locked and they dropped the ball. they needed to do something to response to ADI especially when the ADSP-21065L came out. now, so much audio processing is done native that it really doesn't matter. r b-j
Reply by Jerry Avins August 15, 20062006-08-15
Vladimir Vassilevsky wrote:

   ...

> In the 2nd order IIR denominator, b1 is usually at the order of 2. The > easiest thing to do if you have to use the fractional math is to repeat > the MAC operation with b1 twice. This ensures b1 is less then +/- 1.
Vladimir's native language probably isn't English. I don't fault him, but rather the native anglophones his sentence was modeled on. The MAC operation is _done_ twice; that means it is repeated _once_. Vladimir has gotten a high (but silent) mark from me in the past for writing "there is an alternative" rather than the all-too-common "there is another alternative" when "there is another way" is meant. I salute him now. May he join the ranks of Joseph Conrad and Vladimir Nabokov in the ESL Hall Of Fame. :-) Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
Reply by Tim Wescott August 15, 20062006-08-15
robert bristow-johnson wrote:

> Tim Wescott wrote: > >>Gery wrote: >> >> >>>How can I scale the coefficients of an second order section IIR filter so >>>they are within -1 to +0.99999988079071 ? >>> >>> >>> >>>When I calculate a filter in MATLAB fdatool I get some coefficients that are >>> > 1. >>> >>> >> >>Folks still use the 56xxx? Cool! > > > digidesign Pro Tools TDM still uses DSP563xx. audio folks have been > speculating for years how long it would be until they switch to SHArC > or something else. > > but i didn't infer from the OP it was 56K. >
0.99999988079071 = 1 - 2^-23, from which I inferred a 24-bit word length, from which I inferred a 56K. It's a weak chain of reasoning, I'll admit -- but are there any other 24-bit DSP chips out there? -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Posting from Google? See http://cfaj.freeshell.org/google/ "Applied Control Theory for Embedded Systems" came out in April. See details at http://www.wescottdesign.com/actfes/actfes.html
Reply by Randy Yates August 15, 20062006-08-15
Tim Wescott <tim@seemywebsite.com> writes:

> Randy Yates wrote: > >> "Gery" <gery@ddd.com> writes: >> >>> How can I scale the coefficients of an second order section IIR >>> filter so they are within -1 to +0.99999988079071 ? >>> >>> >>> >>> When I calculate a filter in MATLAB fdatool I get some coefficients >>> that are > 1. >> Ideally, you can't, because the "1" in the denominator of a SOS, >> expressed as >> H(z)= (b2*z^2 + b1*z + b0) / (1 + a1*z + a0), >> must always be 1. If you're asking how to represent the b's and a's >> in fixed-point >> form, then that's a different questtion. > > I think you mean (1*z^2 + a1*z + a0).
Yes, that is what I meant. Thank you for the correction, Tim. -- % Randy Yates % "The dreamer, the unwoken fool - %% Fuquay-Varina, NC % in dreams, no pain will kiss the brow..." %%% 919-577-9882 % %%%% <yates@ieee.org> % 'Eldorado Overture', *Eldorado*, ELO http://home.earthlink.net/~yatescr