| Products > Test Equipment |
| A High-Performance Open Source Oscilloscope: development log & future ideas |
| << < (48/71) > >> |
| tom66:
That's true, but what does a decimation filter need to look like? Would an IIR type response be acceptable (sum pairs of samples and shift) or does it need to be a true FIR-type filter? The latter is considerably more expensive to implement, but I fear it's the only way to achieve the required decimation response. |
| Marco:
--- Quote from: tom66 on December 15, 2020, 06:25:06 pm ---In raw bandwidth terms there's enough DSP to do ~200 tap filters --- End quote --- In theory you could do FFT overlap add, doesn't have to be straight FIR. |
| gf:
--- Quote ---but what does a decimation filter need to look like? --- End quote --- A common approach seems to be a CIC decimator, which is computationally cheap (requires not even multipliers), and to adjust its (non-flat) passpand afterwards to the desired shape with a compensation filter (running at the lower rate). The latter could be basically done in the post-processing too, if DSP resources don't suffice to do it real-time. One point with running a FIR filter in the post-processing is that you lose N-1 samples of each captured buffer (where N is the number of taps), since the captured buffers do no longer form a gapless stream of samples. --- Quote from: Marco on December 15, 2020, 09:41:52 pm ---In theory you could do FFT overlap add, doesn't have to be straight FIR. --- End quote --- Starting at how many taps is it computationally cheaper than brute-force FIR? |
| nctnico:
--- Quote from: rhb on December 14, 2020, 11:30:13 pm ---@nctnico Here's the same information from another author who also provides Matlab scripts, though I've not downloaded them yet. --- End quote --- I just had the chance to review the results. It turns out I made a mistake indeed. For 1Gs/s and a 200MHz bandwidth a Bessel filter (together with several other 1st order roll-offs within the AFE) might do it. For 500Ms/s and a 200MHz bandwidth a much steeper filter it needed. |
| rhb:
The ADC should always run full speed. The case of an ADC with different sample rates at different bit depths requires a filter for each speed. This results in the simplest and easiest architecture to implement. Everything that can be done in SW is. A moving average (boxcar in time) filter is two adds and N+1 storage locations. An arbitrary filter profile can be constructed by placing multiple such filters with different values of N in sequence. In the frequency domain each filter has a sinc(f) profile. By varying the lengths of the filters you can place zeros in one profile on a peak in another profile and systematically suppress the stop band. And in fact sinc(f)**N for N>2 has quite good stop band performance without doing that. If you are downsampling, you can loop on a subset of the filter poles using a single DSP block. As a consequence, the resource requirements are quite low. While the filtering operation is performed, it's very simple to put in the phase shift term without requiring significant additional operations. Here is a canonical set of references: Best DSP intro I have seen and the one I grab if I want to check a formula. An Introduction to Digital Signal Processing John H. Karl Academic Press 1989 This was my grad school Linear Systems text. There is a pictorial dictionary of Fourier transforms in the back which once mastered will allow you to do meticulously correct analysis of complex DSP problems on a cocktail napkin. The math text I use most. The Fourier Transform and Its Applications Ronald N. Bracewell McGraw-Hill 1978 2nd ed (there's also a 3rd) The best summary of Nyquist-Shannon-Weiner ever. I've relied on it since the 2nd edition. The successive editions added worked examples of ever more arcane problems such as sign bit. If you don't understand this you don't understand DSP even if that's all you do all day. Random Data Bendat & Piersol Wiley 4th ed Practical issues such as word length and digital filters from an EE viewpoint. Theory and Application of Digital Signal Processing Rabiner & Gold Prentice-Hall 1975 The source of the 2nd set of Bessel function plots and arguably the best written of all my analog filter design texts. Design and Analysis of Analog Filters Larry D. Paarmann Springer 2001 [edit: Best intro to the state of the art A Wavelet Tour of Signal Processing Mallat Academic Press 3rd edbook edit] @nctnico 200 MHz corner and 500 MHz Nyquist will give very fine results. A 5th order filter will be ~ -32 dB at Nyquist and if one picks up another -10 dB elsewhere in the AFE the 8 bit case is done. Though, personally I'd go to a 7th order just to be sure I had the roll off. Steep slopes cause heavy ringing, so they are not a good idea. |
| Navigation |
| Message Index |
| Next page |
| Previous page |