eeTimes eeTimes EDN
Forgot password Register
Home Ľ
Print - Send - -


Now fix those drooping DAC and ADC responses

June 11, 2012 | Kendall Castor-Perry | 222903565
Now fix those drooping DAC and ADC responses The Filter Wizard aka Kendall Castor-Perry continues to examine solutions to the problems posed by unexpected droop when dealing your DAC and ADC responses.
Page 1 of 9

In Why Are My DAC and ADC Responses Drooping?, we looked at the two common places where the sinc() function crops up in a data acquisition system. A DAC with zero-order hold has a frequency response that follows a sinc() response, falling as signal frequency rises. Commonly, instrumentation-grade delta-sigma ADCs have responses that are higher powers of the sinc() function. This is a Filter Wizard column, so you just know that filters are going to be involved in the remedy for this response droop. In the ADC case, a filter was the cause of it in the first place!

In a system that suffers from both types of droop when measured from input to output, we could perhaps just try to apply one fix for both. But I recommend that you treat the input side and the output side separately. That's because your data acquisition system probably shares data with other systems and analysis computers, so you want both the 'record' and 'replay' processes to be correct. I'll assume from now on that you do have a droop problem on one or both ends. If you don't, it's either because you already recognized the issue and fixed it, or you used components (for instance, audio-grade converters) that didn't suffer from the issue in the first place. I hope the rest of the column will still be interesting and useful for you, if that's the case!

Lets look at the DAC side of things first, just because thats the order implied by the title. Matters are broadly similar for the ADC case, as well see. In a typical data 'replay path, your data might pass through a digital filter on the way to the DAC, and might also go through an analog 'reconstruction filter after conversion, before it reaches the final output of the system. If you have neither an analog nor a digital filter in your system (harrumph! Why?), and youre suffering from droop, then you will need to add something to your system. If there is a filter in the signal path, the chances are that it can be altered to compensate for the droop.

Ill start with the case that Im not going to cover here (if that makes sense). If you only have an analog filter, it will need to be redesigned to have a different, rising frequency response. Whether this can be done, and how to do it if it is possible, is just too complicated to go into here. In the good old days I designed many reconstruction filters with a peaked response to correct for a DACs sinc() droop, while still suppressing the 'images from the sampling process. Rather than using tables or coefficient equations, the design usually requires careful 'fitting of the response with a dedicated computer program. There are certainly some neat 'short cuts to get you to a good initial solution. If you need to fix a replay droop problem by altering your analogue reconstruction filter, drop me an email.

Incidentally, on a historical note, modern active filter design was heavily driven in the 1970s by the needs of the telephone industry, which was making a transition to digital telephony at the still-standard sample rate of 8 ksps. The highest required audio frequency is 3.4 kHz, which makes the frequency of the lowest sampling image (images are the additional high frequency components that appear in the reconstructed output signal) equal to 4.6 kHz, which is only a factor of 1.35 away. Separating these two frequencies requires fairly sharp filtering, and this was typically done using active elliptic lowpass filters. Had they chosen a higher sample rate for digital telephony, the filtering requirements would have been alleviated, and much less effort would have gone into active filter design methodologies. The need for Filter Wizards would have been reduced, and I might have ended up doing something completely different!

OK, nostalgic waffle mode off, let's look at what I can contribute to droop management on the replay side without tweaking the analog filtering. The key question: is there a digital filter in your signal path? The digital filter might be implemented in dedicated hardware, such as the Digital Filter Block in Cypress's PSoC3 and PSoC5 devices It might be buried in the code that creates or massages the data that you're reproducing.

No digital filter? Then here's the easiest way to fix things up. You can add a very simple digital filter so simple that it can be done in software that can give a very good correction of sinc() droop up to a useful fraction of the sample rate. It's the simplest case of what I call the zero-adding method. You might recall from the discussion in Now Synthesize Your Filters Using High-school Algebra that a 'zero pair' can be expressed as a second-order polynomial in the unit delay variable z^-1. The effect that this small filter has on a system's frequency response depends on the coefficients. In the earlier FIR articles I looked at using them to produce deep nulls in the stopband. Here well use just one zero pair (giving a second-order polynomial) to provide a gentle boost to the passband frequency response, without doing significant harm anywhere else.

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Next page

Please login to post your comment - click here
Related News
    No news
Technical papers
What are your most important criteria when selecting an analog supplier?