> On Wed, 6 Dec 2023 at 10: 43, robert bristow-johnson <rbj@ audioimagination. com> wrote: > > > > .. . Let's say that word width isn't a problem (low normalized frequency not a problem) .. . > > > > Perhaps I'm
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
 
ZjQcmQRYFpfptBannerEnd

> On Wed, 6 Dec 2023 at 10:43, robert bristow-johnson <[email protected]> wrote:
> > 
> >  ... Let's say that word width isn't a problem (low normalized frequency not a problem) ...
> > 
> > Perhaps I'm wrong but it seems clear to me that any discrete-time model of an analog process (linear or not, time-invariant or not) will get better with higher sample rate. So however good your filter is at 48kHz the model (if it's a good model) will be better at 96kHz.

> On 12/05/2023 11:47 PM EST Andrew Simper <[email protected]> wrote:
> 
> 
> Apart from when the algorithm has numerical issues, for example an f32 direct form 1 biquad does get a much better near 20khz frequency and phase response when running at 192khz, but watch out of you try and do some low frequency rumble removal or dc blocking with this algorithm in high pass mode with low cutoff eg 20hz.
> 

This is directly related to "word width".  I *know* that you can have coefficient problems with low-frequency (relative to Fs) poles and zeros.  Even with floating point, if the frequency spec is proportional to the difference between the coefficient value and 1, significant bits just fall offa the edge.  Floating point doesn't help at all.  So you have to modify the form and use a different form.  Or you can modify the form so that the coefficient is 1-p instead of p, the pole.

> For example these are the plots of a df1 f32 in high pass mode running at 44.1khz, filtering a 20khz sine wave (the noise is similar no matter frequency of the sine input):
> https://urldefense.proofpoint.com/v2/url?u=https-3A__cytomic.com_files_forums_df1-2Df32-2Dhighpass-2D5hz.png&d=DwIFaQ&c=009klHSCxuh5AI1vNQzSO0KGjl4nbi2Q0M1QLJX9BeE&r=TRvFbpof3kTa2q5hdjI2hccynPix7hNL2n0I6DmlDy0&m=qx67Q0m4SqOb67nB31ipbvbP5TYEJD5wdFGJAlRFjwAGKirkIRFIcuQf6jWdE5h2&s=v4PtnAqf7RTv7YsqOUCF7aI1UUSVCOzh3_94SHrFspQ&e=
> https://urldefense.proofpoint.com/v2/url?u=https-3A__cytomic.com_files_forums_df1-2Df32-2Dhighpass-2D30hz.png&d=DwIFaQ&c=009klHSCxuh5AI1vNQzSO0KGjl4nbi2Q0M1QLJX9BeE&r=TRvFbpof3kTa2q5hdjI2hccynPix7hNL2n0I6DmlDy0&m=qx67Q0m4SqOb67nB31ipbvbP5TYEJD5wdFGJAlRFjwAGKirkIRFIcuQf6jWdE5h2&s=Nxh3ThkfnNSTsUrC7A2Z2o9nM5Qj2Wj2GKxaWGDyUx8&e=
> 
> 5hz is equivalent to 20hz at 176khz, and this produces low frequency rumble at around -36dBFS, from a filter that is meant to remove low frequency rumble!

... which is reduced with wider word width.  I know that poles really close to z=1 are a numerical problem.  Quantization error on the signal, without noise shaping is flat, but it also gets filtered with the poles (but not the zeros) in DF1.  I was trying to set word width or numerical issues aside in advance.  Its just that the closer the sampling period, T, gets to the differential, dt, the more like continuous time the model gets.

--

r b-j . _ . _ . _ . _ [email protected]

"Imagination is more important than knowledge."

.
.
.

Reply via email to