--- James Richard Tyrer wrote: So, I was working on this since there are other ways to do this. I was working on linear interpolation since this can be easily done with a FPGA using the Bresenham Line-Drawing Algorithm. Even some overlap with the graphics project. ---
I am a little confused about this -- how are we going to linear interpolate 1 bit? Is this method that you are proposing just filtering between bits of the PWM? The idea is to smoothly transition to different pulse lengths in the oversampling instead of switching all of a sudden half an input sample in? That should be quite straightforward to implement in an FPGA. --- One slight problem. Despite the fact that this paper was presented at the AES convention, it is bunk. See his diagrams on page 3. Notice that there are 4 samples for each 2 cycles of the of the triangle wave for the pulse width modulator. So what happens is that the first pulse area is an average of the first 2 samples and the second pulse area is an average of the second two samples. So, at 1/2 the sample rate, there is distortion, but this doesn't matter since it is beyond 1/2 the frequency of the PWM. ARGH! --- Doesn't _any_ digital (PWM) system introduce distortion of the analog signal? --- The PWM output from the digital samples doesn't have to match the PWM output that would have resulted from analog input. The Nyquist sampling theory addresses that. The nice thing is that with audio we all have a built in brick wall filter -- we can't hear stuff above 20KHz so it doesn't matter. --- Ok, that works. Stick a LPF in just to be safe ;-) --- So, this idea is useless. Yet it is true that your 192Ks/s audio is going to be played on a class D amp with 44.1KHz | 48KHz PWM. So, we do have the question of how much of this information is needed and how to transform it into a PWM signal. Remember that you have a 3,221,225,472,000Hz bit rate. Yes, that is over 3 TERA Hz. --- So this 3Tz comes from the quantization to 24 bits, and the fact that you can just oversample the PWM to that frequency and reproduce every bit perfectly? --- I don't think that you are going to be able to directly translate this into a PWM signal. :-D A digital Bessel filter would probably be appropriate so that you would simply loose much of the information over 48KHz. You can't use an analog shelf to correct the response at 20KHz to 0dB so you need another pole and zero in the digital filter). The problem comes with the 24 bits. 2^23 is 8,388,608. It is simply not possible to run the digital PWM at over 400 GHZ. So, this is an unsolved problem of HiFi. --- The 400 Ghz from 48Khz instead of 192Ks/s for the perfect reproduction PWM, right? --- Also, I note that it is possible to have feedback with an all digital class D amp without an DAC or ADC. The PWM creates an ideal pulse train. Then this is used to drive the output MOSFETs. The inner loop would compensate for the turn on/off delays by adjusting the timing of the drive to the MOSFETs. Then an outer loop compensate for any difference in rise and fall times. It can compare the total power of the output pulse to the power of the reference pulse and adjust the timing to fix it. Note that these feedback parameters remain fairly constant so the feedback loops to not have to be fast for it to work. --- That is interesting. I'll have to think about it more before I can get back ;-) --- It might even be possible to close the loop from the output filter, but you would need a reference filter (and you could put the shelf in there). --- end of quote --- _______________________________________________ Open-hardware mailing list [email protected] http://lists.duskglow.com/mailman/listinfo/open-hardware
