The impetus and launching pad for the entire modern revisionist 'time domain optimized' digital filter movement was and remains the impulse response test, especially as applied to this movement's arch villain, the old fashioned sinc brickwall filter. The performance of this sinc brickwall filter, on the gold standard evaluative benchmark impulse response test, is abysmal. It has awful impulse response in this impulse response test, so obviously this test proves that the sinc brickwall filter must have awful time domain transient response performance, e.g. when used as the playback reconstruction filter. Moreover, the sinc brickwall filter commits 3 heinous sins that the impulse response test reveals. First, unlike the input test impulse, its impulse response output is extremely long in duration (indeed infinitely long), instead of extremely short like the input test signal. Second, its output has violent amplitude ringing, whereas the test input impulse has no ringing. Third, its output has abundant 'unnatural, non-causal pre-response', like a bell ringing before it is struck, indeed it has as much of this weird pre-response as it has natural post-response. The modern revisionist filter designs all seek to eliminate these specific 3 heinous sins as much as possible, in order to deliberately be as unlike that awful sinc brickwall filter's time domain performance as they can possibly be, as evaluated by that sacrosanct gold standard, the impulse response test. And the MQA filter design goes even farther than other modern revisionist filter designs, to get its impulse response even closer to the ideal, as evaluated by this impulse response test, and even father away from that dreaded sinc brickwall filter with its awful impulse response and 3 heinous sins. There's just one small problem. None of these users and disciples of the impulse response test have the slightest clue in comprehending how digital actually works - and therefore how they should be using the impulse response test and what they should be looking for in its results. Proof that they don't have a clue is simple: they are all rushing like lemmings, in precisely the opposite direction from what they mistakenly think they are doing. They are all rushing pell-mell to create new 'time domain optimized' filter designs that seem ever better because they produce ever better (and shorter) impulse response, but they actually produce ever worse time domain performance and time domain distortion, with MQA now leading the pack, literally dropping off the lemming's cliff. What about a counterexample that invalidates the impulse response test? Simple. The sinc brickwall filter itself. This filter actually provides perfect time domain performance in its reconstruction job, and indeed is the only filter design on the planet that does so. Yet it evinces awful impulse response on the gold standard evaluative benchmark impulse response test. In contrast, modern 'time domain optimized' revisionist filter designs, that evince excellent impulse response in the gold standard evaluative benchmark impulse response test, actually butcher the time domain reconstruction accuracy, of the original signal waveform, with MQA's nearly ideal impulse response actually producing the worst time domain distortion of all. Thus, we actually have two types of counterexamples here, both coming and going, showing that the impulse response test is invalid both in praise and in blame evaluations. With apologies to William Jennings Bryan, it's time to drop the old and invalid gold standard. QED. But, as Al Jolson said, you ain't seen nothin' yet. If these digital engineers actually had a clue about comprehending digital, they would see that the 3 heinous sins committed by the sinc brickwall filter in its 'impulse response' are actually 3 features that are each crucial to the sinc brickwall filter being able to perform its time domain reconstruction correctly. Sinc's heinous sin of the very long response duration is actually crucial for calculating and reconstructing the correct signal waveform curve-fitted path, especially in digital systems with high bit depth resolution, and also at high frequencies approaching the promised Nyquist limit. The heinous sin of symmetrical 'pre-response' is likewise required for accurate complex curve-fitting, and also for identifying the one and only correct signal waveform path that replicates the original signal waveform, which is the unique, singular phase linear transform path (there are an infinity of other possible candidate paths, which are all wrong reconstructions, but they can all be ruled out solely because they are all nonlinear phase [including 'minimum phase'] transforms). The heinous sin of violent ringing is likewise crucial for achieving correct boosted waveform amplitude in the time domain reconstruction of unlucky samplings, especially in the top ¾ of the passband (e.g. 5kHz-20kHz), where the sampling theorem's promise of sparse sampling inevitably produces many more very unlucky samplings. This violent ringing, precisely timed with zero crossings exactly at the sample interval boundaries, is also crucial for insuring that, during convolution, all the original signal's sacred data sampling dots are preserved intact, not blunderingly distorted as they are by virtually all modern 'time domain optimized' filter designs. In sum, the impulse response test, far from being a worldwide gold standard evaluative benchmark, is actually so far wrong (especially in its digital version) that it tells the very opposite of the truth, and going both ways, thereby pronouncing black to be white and white to be black, pronouncing the good to be bad and the bad to be good. Then, to compound its felony, it also finds specific features in the impulse response to be heinous sins, when in fact they are the very opposite, actually being not just good features but actually crucially required features. Again, this subject is so complex that we dedicate a whole installment of this serialized Digital Done Wrong article to analyzing the impulse response test. Below we'll briefly discuss just some highlights, to help with our review of MQA products. 1. The impulse response test (as universally employed) simply does not apply to this digital filter situation. It is not even appropriate, nor indeed is it even valid, for evaluating a digital filter. Why? Two chief reasons. Firstly, the digital convolution process here is actually a static operation, not a dynamic one that moves through the real time dimension. And secondly, the digital convolution process here is actually a passive information gathering operation, not an active operation that radiates impulse response energy to other points in real time. It is a static operation because the entire array of signal waveform amplitude numbers (from sample dots #1 through #202 in our example) is statically frozen, while the convolution calculation generates each one of its new dots (in turn) that will bridge the gap between input data sample dots #101 and #102 (in our example). And the array containing all the numbers of the filter's coefficient function is likewise statically frozen. When engineers are taught convolution, they are taught the analog version, so convolution is taught as a dynamic moving sweep process. But this dynamic moving through real time pertains only to analog, and arises only because analog has a fatally defective limitation in being inextricably bound to real time as a crutch (our full analysis of analog takes up another entire installment of this article). Digital does not have this analog limitation, so it does not require any real time considerations (and indeed, digital actually cannot even recognize nor handle any real time parameters). So the 'analog-think' engineers learned about analog convolution does not carry over to digital. The curve-fitting reconstruction of each new digital dot (in turn) is a static math calculation, so digital convolution actually consists of discrete static steps. Indeed, so also is analog convolution, if we view each real time 'instant' (within the DUT bandwidth) as a discrete math calculation point. Now, digital, unlike analog, can pull data sample dot information from the future, and put it into a static array. Correct curve-fitting reconstruction necessarily a priori requires building a bridge (and the correct bridge replicating the original signal waveform), to connect past sample dot #101 to future sample dot #102, and thus requires gathering data from future sample dot #102, i.e. getting a 'pre-response' from future sample dot #102, to tell us what the amplitude height of dot #102 is, and thus what direction our bridge should even start out in, as it departs from dot #101 into the future. Note that not only curve-fitting, but also even simple linear interpolation, requires us to see into the future to get dot #102's amplitude, and obtain a 'pre-response' backwards in the X axis dimension, from dot #102 in the future back to our starting position at dot #101, as we prepare to start our bridge toward dot #102 - and thus we are effectively employing the future to causally affect the past. This is true, and is mandated necessarily a priori, by the mathematics of simple linear interpolation, as well as complex curve-fitting, and remains true regardless of what label we happen to put on the X axis. The imperial might and correctness of mathematics stays the same, regardless of whether we happen to label the X axis as being liters of gasoline pumped, or as a time dimension label such as seconds of gasoline pumping. It's very disappointing that brilliant PhD digital engineers worldwide don't comprehend how this 'pre-response' is crucially necessary to perform even simple linear interpolation, and certainly complex curve-fitting reconstruction - proving yet again that they don't have a clue about comprehending how digital actually works. Indeed, they don't even have a clue about remembering the lessons all of learned when very young. At age 3 all of us learned, while connecting the dots to outline a bunny rabbit head's profile (even with linear interpolation straight line segments), that, when you got to the base of the ear, you had to look up, and visually gather 'pre-response' information from a future point that your pencil tip would later reach, to tell you how high the amplitude was of the sample dot at the top of the bunny's ear, so you could then calculate the linear interpolation path, to tell you what direction to start out your pencil tip, as you left the previous sample dot at the base of the bunny's ear. In fact, all of us already knew all of this as newborn infants, the very first time we reached out our hand to touch our mother's face. We first had to gather 'pre-response' information (transmitted back to us by light waves) from a future dot point in our hand's travels (our mother's face), to tell us where the end location of our future path target was situated. And then we could perform the linear interpolation calculation, so we could start our hand travelling along the correct path and bridge, from the 'present sample dot' of our own body to the future destination of our hand at the 'next sample dot', our mother's face. It's really very simple: a. even simple linear interpolation necessarily requires 'pre-response' from the next future dot; b. even simple curve fitting necessarily requires 'pre-response' from plural future dots; c. accurate curve-fitting to 24 bit resolution requires 'pre-response' from many, many future dots; d. accurate 24 bit curve fitting to promised Nyquist needs 'pre-response' from 17 million future dots. Digital has no problem handling alleged temporal improprieties such as 'unnatural, non-causal pre-response', because digital does not deal in real time at all, so it is not affected by real time causality at all, hence perforce not affected by some subsets of real time causality such as allegedly 'unnatural, temporally backwards' real time causality. Again, digital has all the information it needs, to calculate and reconstruct the correct path bridge between sample dots #101 and #102, pre-stored in a static memory array. And digital can access any and all of this static information (including pre-stored information gathered from the future) instantly, and randomly in any sequence (since the mathematical components of convolution, multiplication and addition, are both commutative). Since digital can, working in this static array, access both the past and future (as represented in this static array) with equal ease, and since sequence does not matter, it necessarily a priori follows that digital is not affected by any constraints or considerations related to real time, such as real time dynamics or real time causality or real time directional causality. Analog, in contrast, has a fatally defective limitation that it cannot even perform linear interpolation at all, let alone complex curve-fitting reconstruction, because it is inextricably tied to real time in its representation of signal waveforms. Thus, analog necessarily a priori must obey real time's constraints of causality, temporally unidirectional causality, inability to see into the future, and inability to make the future causally affect the past. Analog is fatally constrained to real absolute cardinal time. In contrast, digital is free to powerfully work with virtual relative ordinal represented time. So revisionist engineers commit a huge backwards blunder by forcing digital to imitate analog. Now let's analyze what it means when we say that convolution here is a passive information gathering operation, not an active radiating of impulse response energy to other points in real time. The traditional use for the impulse response test is to evaluate how a device, excited by an impulse test signal as input, actively radiates energy outward into the X axis dimension (usually the time dimension). But the way convolution works in the playback digital reconstruction filter is actually the complete opposite. Convolution's work is actually passive, not active, and instead of radiating energy outward it actually gathers information inward (from both near and far away). Thus, the impulse response test is not even the correct model of a test to employ. Moreover, the engineering considerations and concerns that would arise for an impulse response that actively radiates energy outward are rendered harmlessly irrelevant for a process that instead is precisely the opposite, passively gathering information inward. For example, it is indeed suspiciously 'unnatural, non-causal pre-response' for a DUT to actively radiate energy backwards in time. Indeed, it is physically impossible, and even further it is necessarily a priori impossible, since by definition an effect can never temporally precede its cause). Thus, it simply cannot be the case that we need to be concerned here about any digital filter design whose coefficient function is symmetrical, and thus whose apparent impulse response seems (if interpreted erroneously) to suggest that such a filter actively radiates energy backwards in causal time. It simply cannot be the case, thus the interpretation of 'impulse response' here in the reconstruction filter, as active energy radiation, must be wrong. Instead, it must be merely a passive information gathering operation, wherein there is no such thing as an 'unnatural, non-causal pre-response' that is an active energy radiator, or even operates in real time at all, to be worried about. There is simply nothing to be concerned about, if the filter's coefficient function, instead of being mis-interpreted as an impulse response signifying active radiation of energy, is instead correctly interpreted as merely passively gathering information, from both left and right (as it indeed is required to do, for all curve-fitting, indeed even for mere age 3 linear interpolation). There is nothing temporally suspicious (or 'unnaturally non-causal') to concern us, about a digital filter sending a scout ahead in a data stream already encoded on disc in the past, gathering some data (to store in the past) that pertains to the near 'future', pre-storing in the past that 'future' data in a static memory array. There is nothing 'non-causal' about the digital reconstruction filter then employing that data about the 'future' - data that was already recorded on disc in the past and scouted in the past and gathered in the past and pre-stored in a static memory array in the past - to then perform static curve-fitting using data pre-stored in memory, where the curve-fitting calculation, in order to be accurate, has to look far forward and far backward in the data. Clearly, this entire reconstruction process is completely causal and natural, and always working with data gathered in the past. For another example, the impulse response test tells us that the time domain transient response of a DUT is bad when its actively radiated response output to a brief test impulse input is long. But the impulse response test does not pass any relevant judgment whatsoever about whether the input to a passive data gathering process should have a long duration or a short duration field of view, over which it passively gathers sample data information as its input. Output vs. input. Active energy radiation vs. passive information gathering. You see the 'opposite' contrasts here?? Digital engineers confuse and conflate these two very opposite processes, again proving they don't have a clue about comprehending how digital actually works. A crucial point: the filter's coefficient function, embodying the filter's design, is a template guide for the passive gathering of information, and is not the filter's impulse response, which is the opposite, a template for active radiation of energy. Convolution's static math calculation, within the static data arrays, effectively superimposes this template at each of the input sample dots #1-202 (curve-fitting requires both left and right dot info), and calculates how much curve-fitting influence each of those 202 dot amplitudes should have, toward the correct curve-fitted amplitude of the new dot now being reconstructed. This might seem to look like active impulse response radiation from each of those 202 sample dots, but it is actually merely passive info gathering for a static calculation. A digital engineer who thinks carelessly might easily confuse and conflate the coefficient function with the functionally completely opposite impulse response, because he erroneously thinks they look the same, and he even erroneously thinks that the impulse response test, conducted on this filter's coefficient function, proves that the filter's design really does have bad impulse response as an active radiator of energy (impulse response that looks just as bad or good as the coefficient function itself). Moreover, he fails to comprehend (see next page) that this impulse response test is totally bogus, and merely photocopies the filter's coefficient function, and never activates the actual convolution process that is the core of filter operation, so it actually is utterly invalid as an evaluator of the filter's coefficient function as in any way representing what the filter's actual time domain transient performance would be - even as an active radiator of energy. In sum, here is no cause for concern that a symmetrical coefficient function, with 'pre-response' before the main peak, is in any way 'unnatural' or 'non-causal' for the reconstruction process. Firstly, the reconstruction process uses this coefficient function as a template to passively gather information, not to actively radiate energy. Secondly, this coefficient function is employed in a static array calculation, so there is no action in real time, and thus there cannot be any real time causality of any sort, 'unnatural' or otherwise. Thirdly, all the data in this static array, including sample dots from the 'future', have actually already been read in the past from the disc recording, and have already been pre-stored in the past in the static array, so any action utilizing these 'future' sample dots is actually working with the past, and thus honors temporally forward causality. Fourthly, any and every type of curve-fitting (indeed even simple linear interpolation) always requires the gathering of information from the 'future' sample dot or dots. Fifthly, if there were any real time active radiating of energy in this process, it could only be radiated forward in time, never unnaturally backward, so you should not be worrying about an action that can never take place, since it is physically impossible (indeed necessarily a priori impossible). |