Re: Digital bit perfect ouptut with ALSA

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sergei Steshenko wrote:
> On Sun, 21 Dec 2008 03:34:50 +0000
> Jamie Lokier <jamie@xxxxxxxxxxxxx> wrote:
> 
> 
> > Even 2x upsampling introduces distortion.
> 
> No, it doesn't.
> 
> It can be implemeted as a pure linear transform with constant coefficients,
> thus it would be a simple FIR LPF.

It depends what you are calling distortion.  An upsampling FIR has
energy in the alias band between input-Nyquist and output-Nyquist,
because of the finite number of taps.  To avoid those you need a sinc
filter, which takes infinite taps; you can only approximate it.  Since
you can't perfectly filter the alias band with analogue filtering
after the DAC, and you can't filter it digitally due to finite taps,
that is audio energy you don't want.  Thus the FIR output has a form
of distortion from the desired continuous waveform, which has no
energy in the alias band.

(There is also quantisation error distortion - you can't implement the
linear transform perfectly - but let's not go there.)

Non-integer ratio upsampling is not a simple linear function, as you
rightly say (it's a polyphase FIR LPF), and _can_ introduce more
undesired energy all over the place, depending on the number of taps
and filter design.

But the point is that the increased output sample rate allows
potentially better LPFs both in the polyphase FIR and in the analogue
domain after the DAC, compared with the fixed 2x rate, which more than
compensate at reducing alias band energy.

-- Jamie

------------------------------------------------------------------------------
_______________________________________________
Alsa-user mailing list
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user

[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux