About The History of Sinc Filters
A habit of mine which betrays my age, is to use the term 'Sinc Filter'. I think that according to terminology today, there is no such thing. But there does exist a continuous function called 'the Sinc Function'.
When I use the term 'Sinc Filter', I am referring to a convolution – a linear filter – the discreet coefficients of which are derived from the Sinc Function. But I think that a need exists to explain why such filters were ever used.
The Audio CDs that are by now outdated, were also the beginning of popular digital sound. And as such, CD players needed to have a Digital-to-Analog converter, a D/A converter. But even back when Audio CDs were first invented, listeners would not have been satisfied to listen to the rectangular wave-patterns that would come out of the D/A converter itself, directly at the 44.1 kHz sample-rate of the CD. Instead, those wave-patterns needed to be put through a low-pass filter, which also acted to smooth the rectangular wave-pattern.
But there was a problem endemic to these early Audio CDs. In order to minimize the number of bits that they would need to store, Electronic Engineers decided that Human Hearing stopped after 20 kHz, so that they chose their sampling rate to be just greater than twice that frequency. And indeed, when the sample-rate is 44.1 kHz, the Nyquist Frequency, the highest that can be recorded, is exactly equal to 22.05 kHz.
What this meant in practice, was that the low-pass filters used needed to have an extremely sharp cutoff-curve, effectively passing 20 kHz, but blocking anything higher than 22.05 kHz. With analog circuits, this was next to impossible to achieve, without also destroying the sound quality. And so here Electronics Experts first invented the concept of 'Oversampling'.
Simply put, Oversampling in the early days meant that each analog sample from an D/A converter would be repeated several times – such as 4 times – and then passed through a more complex filter, which was implemented at first on an Analog IC.
This analog IC had a CCD delay-line, and at each point in the delay-line it had the IC equivalent to 'a potentiometer setting', that 'stored' the corresponding coefficient of the linear filter to be implemented. The products of the delayed signal with these settings on the IC, were summed with an analog amplifier – on the same IC.
Because the Sinc Function defines a brick-wall, low-pass filter, if a 4x oversampling factor was used, then this linear filter would also have a cutoff-frequency at 1/4 the new, oversampled Nyquist Frequency.
What this accomplished, was to allow an analog filter to follow, which had 2 octaves of frequency-separation, within which to pass the lower frequency, but to block this oversampled, Nyquist Frequency.
Now, there is a key point to this which Electronics Experts were aware of, but which the googly-eyed buyers of CD players were often not. This type of filtering was needed more, before the Analog-to-Digital conversion took place, when CDs were mastered, than it needed to take place in the actual players that consumers bought.
The reason was a known phenomenon, by which If a signal is fed to a sample-and-hold circuit running at 44.1 kHz, and if the analog, input frequency exceeded the Nyquist Frequency, these excessive input frequencies get mirrored by the sample-and-hold circuit, so that where the input frequencies continued to increase, the frequencies in the digitized stream would be reflected back down – to somewhere below the Nyquist Frquency.
And what this meant was, that if there was any analog input at an supposedly-inaudible 28.05 kHz for example, it would wind up in the digital stream at a very audible 16.05 kHz. And then, having an oversampling CD player would no longer be able to separate that from any intended signal content actually at 16.05 kHz.
Therefore, in studios where CDs were mastered, it was necessary to have the sample-and-hold circuit also run at 4x or 8x the final sample-rate, so that this could be put through a homologous low-pass filter, only 1/4 or 1/8 the samples of which would actually be converted to digital, through the A/D converter, and then stored…
Now today, that sort of filter design has been replaced completely, through the availability of better chips, that do all the processing numerically and therefore digitally. Hence, if 4x oversampling is being used, the digital version of the signal and not its analog version, are being 'filtered', through specialized digital chips.
Back in the 1980s, the types of chips and the scale of integration required, were not yet available.
And so an approach which briefly became popular in the 1990s, was actually named 'M.A.S.H.' (Mathematical Sound Shaping). But even M.A.S.H. was inferior and needed to be replaced.
I think what happens today, is that another type of filter series derived from the Sinc Function gets used, that is known as a 'Half-Band Filter'. The tremendous advantage of a Sinc-Function Filter that assumes 2x oversampling instead of 4x, is not so much the fact that the Sinc Function is only being used twice per zero-crossing, instead of 4x, but also that half the coefficients are actually and predictably equal to zero, which means that their product with the delayed / buffered signal can systematically not be computed. This leads to a tremendous computing advantage.
And then, 'Dyadic Filter Series' can be constructed, which over-sample or down-sample by powers of (2), by connecting Half-Band Filters in a repeated sequence.
Now, an important realization to have would be that today, many low-budget sound cards do exist, which do not even have any sort of 'Sinc Filtering' before their A/D converter, but which only have analog filters. But HQ A/D circuits will still have this low-pass filtering in place, simply so that input signals can push the limit in frequencies, close to the Nyquist Frequency, without suffering at all from this phenomenon, by which frequencies that were higher, get reflected down.
Also, an anomaly gets created, when the exact Nyquist Frequency is submitted for A/D conversion. This latter fact explains why 48 kHz is an alternative, popular choice in sampling rates. Its Nyquist is simply further-removed from what is deemed the audible limit, while still not requiring very high-performing circuitry, relative to what using 44.1 kHz requires.
A possible type of complaint about Audio CDs and other, 44.1 kHz -sampled sound was, that although audible, the temporal resolution of 20 kHz components was poor, simply because they were too close to the Nyquist Frequency.
It would seem that we live in a world where opposite extremes in quality can exist. According to some thinking, it was actually a characteristic weakness of sound digital sound of the 1980s and 1990s, that their sinc filters had zero-crossings that always coincided with a regular number of samples, which was also a power of 2. In the case of 4x oversampling, every 4th sample corresponded to a zero-crossing.
This meant that the cutoff frequency was exactly at 1/4 the oversampled Nyquist Frequency, which corresponded to the Nyquist Frequency without oversampling.
A Sinc Filter typically passes its own cutoff-frequency at half amplitude, yet there exists thinking according to which that frequency itself should be avoided. And so a device might be desirable that has the same brick-wall characteristics of a Sinc Filter, yet a cutoff-frequency of 19.6kHz, even though the sample-rate is 44.1kHz.
I am not convinced, that the sample-positions corresponding to a certain power of 2, must always actually correspond to zero-crossings of the Sinc Function. Instead, the Sinc Function itself can be sampled at some odd frequency and the resulting coefficients used, especially if a higher factor of oversampling is being applied.
There is some risk to my mind, that such an experiment might come with a reduction in quality. But if this was undertaken, some other rational relationship between the number of Sinc-Filter coefficients and its zero-crossings should be maintained. I.e. I would insist that after a certain number of zero-crossings, at least one must correspond to an exact sample-number, relative to the center sample. )
I can have many hypotheses. But considering that filters are implemented digitally today, If I have a sound card which can achieve sample-rates of 48, 96 and 192 kHz, and If I can assume that the properties of whatever analog filters do not change much, then it would seem to make sense, that the same input sampling rate is used in these cases, but that where 48 kHz was down-sampled twice, 96 kHz is simply down-sampled once. This would also mean that the Nyquist Frequency for 96 kHz, which is 48, is already being suppressed considerably by the analog filters, and maybe 192 kHz final-sampling is a waste of time, since the analog filters have completely flattened its Nyquist Frequency already.
As I have explained, they were supposed to do for a sample-rate of 48 kHz.
I doubt the manufacturers of such a sound card would guarantee a flat frequency response up to 40 kHz, the way they do a flat frequency response up to 20 kHz, since the assumption would remain that Humans do not hear 40 kHz sound well.
OTOH, I could go on to hypothesize, that in order to achieve a very High-Quality (HQ) implementation of a sample-rate of 96 kHz, the A/D converter can simply over-sample the analog input at 384 kHz. But I have a sincere problem to imagine, that such an A/D converter would still be accurate to 24 bits. Which certain sound cards are stated to be.
I find it easier to imagine, that a sample-and-hold circuit working at 192 kHz, followed by an A/D converter working at 48 kHz, could still be 24 bits accurate.
Oh. And did I mention, this sound-card is completely powered by its USB port, meaning that the whole thing draws just less than 500 mA, even as it is supplying 48V phantom-power to my condenser mike. PC USB ports only supply 5V, while my mike is getting 48 VDC.
Those 48 VDC not only need to be stepped-up, but also filtered so well, that they do not contribute to the background noise severely, picked up with the microphone signal.
P.S. I should add, that If a hypothetical 20 kHz analog signal is correctly sampled at 44.1 kHz, a stream of sample values results, which resemble a 22.05 kHz wave, being modulated at an apparent frequency of 2.05 kHz x2 (zero-carrier, amplitude modulation).
This is normal, and the frequency-domain representation of that would put a second sideband to this zero-amplitude carrier, at 24.1 kHz. I.e., If we were to allow a 20 kHz and a 24.1 kHz wave 'to beat', Then we would obtain the same, fluctuating series of amplitudes, that simply sampling a 20 kHz wave at 44.1 kHz will produce.
If upon playback, this frequency component above the Nyquist Frequency is filtered out, a single, 20 kHz sine-wave will re-emerge, even though this does not appear to be a part of just making the waveform not-rectangular anymore.
This just exemplifies, that the Nyquist Frequency will also act as a mirror when sampling, producing virtual higher reflections in the digital stream, of lower analog frequencies.
The reconstructed 20 kHz wave will be correct in phase-position again. However, this effect has no comparison, if the original signal had exactly the Nyquist Frequency, hence the anomaly I mentioned above:
In that case, the sampled sequence has lost its phase-information, because it will always be in-phase with the clock of the sampling rate. And, if the original analog input had an exactly-unfortunate phase-position with respect to the sampling, the sampling function would not seem to pick up any amplitude at all, because sampling would always take place at the zero-crossing of the input. And, because the real phase-position of the input would also be undecipherable from the sample-stream, its original amplitude would also be unknown, because it would only remain clear that its original amplitude had to be greater than what ended up being sampled.
(Edit 07/28/2016 : ) I should add some more detail. The present posting assumes that there are two definitions of an Analog / Digital Converter:
A simpler component, which takes a single analog voltage as input, and which outputs a binary value in bits, and
A more complex circuit which assumes that the input voltages are changing within a range of frequencies, and which applies analog over-sampling where appropriate, before passing the result to (1), or which applies (1) to achieve digital over-sampling, and which then simplifies the outputs of (1) numerically.
It might be helpful to add, that simply to achieve (1) as a component of (2) is not easy.
Typically, there is a low limit, for any given input voltage, to how many digital bits can be derived from it in one step. To help Electronics Experts with that, there now exist specialized chips known as 'Fast A/D Converters'. They effectively use a 'matrix' of simple monolithic components, to perform 256 voltage-comparisons in parallel, If an 8-bit output is required of them, etc..
When such chips are required to work at 'high', video frequencies, they consume much more current, then when this process is applied to 'low', audio frequencies.
And, If the number of bits of precision is required to exceed 8 by far, such as 16 or to 24, then what such a function block will do, on the assumption that the input voltage is being held, is first perform a Fast A/D Conversion, let us say to obtain the first 8 bits as 'an accurately rounded-down' starting-point. Following bits are initialized to zeros. And for every additional bit of precision, they append a binary 'one' to the accumulated number and decode it via an internal D/A Converter, and perform an analog comparison of its output with the held input voltage. If the input is lower than the D/A output, this bit is reset to a 'zero'. Otherwise a single bit of 'one' is kept. Either way, the level of precision is next incremented.
This is an iteration meant to be repeated, once for each bit of precision to add, and is called 'successive approximation.' It means that in order to achieve (8 + n) bits of precision, effectively (n) successive approximations need to be performed, sequentially.
But then it becomes easy to see how difficult it would be, to achieve 24 bits of precision, and to do so at very high speeds.
At a certain time in History, it was not practical to achieve more than 6 bits, out of a Fast A/D Conversion. But since 8-bits-per-channel is commonplace in graphics and video today, where 8+8+8 gives 24 bits-per-pixel (Quantum-8), I would not be surprised if ICs have extended this somewhat.
One design consideration that can prevent both methods from being combined, is that the overall accuracy of the initial, quickly-found value must be as close, as the smallest difference that the D/A Converter is going to produce. If this cannot be satisfied, then pure successive approximation must be used. This might be satisfiable for 12-bit, but maybe not for 24-bit, and would also rely heavily on monolithic component-matching… ?
(Edit 07/29/2016 : ) The above premise also needs to be weighed, against how much of an overall speed improvement it can offer.
I.e., If 8 bits can be approximated in one step, but successive approximation can lead to 12 accurate bits, then this approach can finish in (1+4) clock-cycles instead of 12. Therefore speed could be doubled. But this would still require that the accuracy of the first approximation, is to within 1/16 of one of its steps.
OTOH, if 8 bits were to be approximated in one step (but to within 24-bit precision), and an additional 16 bits approximated, this would still mean, that 17 clock-cycles would be needed. And then there would be no dramatic disadvantage to performing 24 successive approximations instead, and only relying on the internal consistency of the D/A Converter.
Well, the method I have proposed here, of trying to combine a Fast A/D Conversion with Successive Approximation, can be made more reliable, at the cost of 1 clock-cycle.
When the accumulated, full-precision register has been initialized, before proceeding with the successive approximations, an additional comparison can be done, to determine whether the initial value, indeed still followed by zeroes, is also smaller than the input voltage, according to the same D/A Converter we are subsequently going to use. If not, that initial, prefixed number can be decremented once.
Now, the Fast A/D Conversion can be calibrated in such a way, as never to be too low (or high), by more than 3/4 its step. The following bits should correct that.
The result should still be accurate according to the consistency of the D/A Converter.
Posted on July 27, 2016 March 21, 2017 Author Dirk MittlerTags A/D Conversion, D/A Conversion, Dyadic Filter, Half-Band, MASH, Nyquist Frequency, Sinc Filter, Sinc Function, Successive Approximation
3 thoughts on "About The History of Sinc Filters"
Pingback: A Further Note on Half-Band Filters | Dirk Mittler's Blog
Pingback: Guessing at the Number of Coefficients Filters Might Need | Dirk Mittler's Blog
Previous Previous post: Testing of USB Sound Device Complete.
Next Next post: A Note on FLAC -Compressing 24-bit