Multiraten-Systeme DSV 1, 2005/01, Rur, Multirate, 1 Referenzen [1] Oppenheim et. al., „Zeitdiskrete Signalverarbeitung“, Pearson, 2004. [2] Kester, Editor, „Analog-Digital Conversion“, Analog Devices, 2004. Taktratenänderungen sind in der DSV manchmal unumgänglich (z.B. wegen verschiedener Normen) Audio-CD fs = 44.1 kHz, Audio-Studiotechnik fs = 48 kHz manchmal gewollt (z.B. bei der AD-DA-Umsetzung) dem Umweg DAC-ADC vorzuziehen einfacher, weniger Quantisierungsrauschen Downsampling DSV 1, 2005/01, Rur, Multirate, 2 Abwärtstastung nur jeder N-te Sample von x[n] wird in y[m] kopiert N-fache Ratenreduktion von fos auf fs einfachste Form der (verlustbehafteten) Datenreduktion Matlab-Signal-Processing-Toolbox: downsample(x,N) fos fs = fos/N x[n] x[n] 0 N y[m] Tos 3 6 y[m] = x[m·N] 9 n 0 Ts = N·Tos 1 2 3 m Dezimation DSV 1, 2005/01, Rur, Multirate, 3 Spektrum wird skaliert und quasi zusammengeschoben Bandbegrenzung vor dem Downsampling ! 1 Y(f) Xa (f n f os /N) N Tos n 1 X(f) Xa (f n f os ) Tos n Skalierung fs Ts Dezimation Kaskadierung digitales Antialiasing-TP-Filter und Downsampler Matlab-Signal-Processing-Toolbox: decimate(x,N) default Chebyshev-1-TP 8. Ordnung mit fDB=0.8*(fos/2)/N oder FIR-Filter 30. Ordnung x[n] digitales Antialiasing-Filter Dezimator N y[m] ADC mit Oversampling DSV 1, 2005/01, Rur, Multirate, 4 Verschiebung Antialiasing-Filter vom Analogen ins Digitale xa(t) TP x[n] ADC v[n] Antialiasing-Filter N y[m] einfach! fos IXa(f)I f digitales AA-Filter Tos·IX(f)I fos Tos·IV(f)I f f Downsampling Ts· IY(f)I fos f fs=fos/N Dezimator-FIR-Filter DSV 1, 2005/01, Rur, Multirate, 5 nur jeder N-te Filterausgangswert muss berechnet werden x[n] Tos Tos b1 b0 Tos b2 b3 + N y[n] Verschiebung Downsampler N mal „schieben“, 1 mal Rechnen => N mal weniger MAC-Operationen pro Input-Sample! x[n] Tos Tos N b0 N b1 Tos N b2 + N b3 y[n] Upsampling DSV 1, 2005/01, Rur, Multirate, 6 Aufwärtstastung zwischen je zwei x-Samples werden N-1 Nullen eingefügt N-fache Ratenerhöhung von fs auf fos die fehlenden Abtastwerte werden interpoliert Matlab-Signal-Processing-Toolbox: upsample(x,N) fs fos = N·fs x[m] Ts x[m] 0 N 1 x[m] für n mN y[n] sonst 0 y[n] 2 3 m 0 Tos=Ts/N 3 6 9 n Interpolator DSV 1, 2005/01, Rur, Multirate, 7 Das Spektrum ändert sich nicht beim upsampling! Y(f) Y(z e j2π f Tos ) x[m] e m - j2π f mNTos x[m] e - j2π f m Ts X(z e j2π f Ts ) X(f) m aber es entstehen N-1 images in der 1. Nyquistzone von Y(f) => digitales Anti-Image-Filter (Interpolationsfilter) erforderlich Ts·IX(f)I 1. Nyquistzone NTos·IY(f)I fs digitales Anti-Image-Filter (Verstärkung N) image 1. Nyquistzone f image fos f Interpolator DSV 1, 2005/01, Rur, Multirate, 8 Kaskadierung Upsampler und digitales Anti-Imaging-TP-Filter Matlab-Signal-Processing-Toolbox: interp(x,N) x[n] xup[n] N y[n] digitales Antiimage-Filter xup[n] y[n] n Tos n Lineare Interpolation einfacher als Filterung mit gutem Anti-Imaging-TP-Filter (vgl. ZOH!) Interpolationsfilter H(f) = [sin(NπfTs)/sin(πfTs)]2/N gute Approximation, wenn Bandbreite X(f) << fs/2 h[n] (wenn N=5) Tos n y[n] x[1] n FIR-Interpolationsfilter DSV 1, 2005/01, Rur, Multirate, 9 nur jeder N-te Filtereingangswert xup[n] ist von Null verschieden ! N Subfilter mit je N mal weniger Taps => N mal weniger MACs ! Beispiel: FIR-Interpolator mit 4 Taps und N=2 0 x[m] x[m] Tos 2 0 x[m-1] Tos b1 b0 Direktstruktur x[m] 0 x[m-1] 0 Tos b2 b3 b1·x[m] + b3·x[m-1] b0·x[m] + b2·x[m-1] y[n] + x[m] Polyphasenstruktur Ts b0 b1 b2 + + b3 Verschachtelung (mit fos) 2 2 Tos + y[n] DAC mit Oversampling DSV 1, 2005/01, Rur, Multirate, 10 Verschiebung Antiimaging-Filter vom Analogen ins Digitale x[n] xup[n] N xupi[n] Antiimaging-Filter Verstärkung N DAC (ideal) xa(t) TP einfach! fos Ts· IX(f)I f fs fos digitales AI-Filter NTos·IXup(f)I fs analoges Post-Filter fos Tos·IXupi(f)I fos IXa(f)I f f f Matlab-Beispiele DSV 1, 2005/01, Rur, Multirate, 11 Dezimation Audiosignal von 48 kHz auf 8 kHz [x,fs,bits] = wavread('musical'); sound(x,48000); pause y=decimate(x,6); % fDB=3200 Hz sound(y,8000); Interpolation Audiosignal mit N=5 % Original mit fs=8192 Hz gong=load('gong'); x=gong.y; sound(x,8192); y=upsample(x,5); sound(y,5*8192); % Images hörbar! [y,b]=interp(x,5); sound(y,5*8192); % images nicht mehr hörbar % b enthält FIR-Interpolationsfilter Rationale Ratenverhältnisse DSV 1, 2005/01, Rur, Multirate, 12 Ratenveränderung N1/N2 = fs2/fs1 Anti-Imaging und Anti-Aliasing-Filter zusammenfassbar Eckfrequenz fDB = min{ 0.5·fos/N1, 0.5·fos/N2 } fs1 x[n] fs2 N1 AntiimagingTP-Filter AntialiasingTP-Filter fDB = 0.5·fos/N1 fDB = 0.5·fos/N2 N2 Abtastfrequenz fos x[n] N1 TP-Filter N2 y[n] y[n] Sigma-Delta-Wandler DSV 1, 2005/01, Rur, Multirate, 13 Vorteile und Nachteile low-cost, hohe Auflösung (bis 24 Bit), low power limitierte Bandbreite (z.B. Audio bis 96 kSps) Einfache Basiselemente (komplexe Mathematik) Oversampling wegen Process Gain beim SNR Zusatznutzen: einfache analoge Anti-Aliasing-/Anti-Imaging-Filter Shaping des Quantisierungsrauschens im Spektrum Dezimation bzw. digitale Filterung und Downsampling DAC: Interpolation bzw. Upsampling und digitale Filterung Quantisierung (zur Erinnerung) sin-Vollaussteuerung N-Bit ADC: SNRsin [dB] = 6·N + 1.76 Effective Number Of Bits: ENOB = (SNReffektiv [dB] -1.76) / 6 SNReffektiv > SNRsin bzw. ENOB grösser (höhere Auflösung), wenn Quantisierungsrauschleistung verkleinert werden kann ! Funktionsprinzip Sigma-Delta-ADC DSV 1, 2005/01, Rur, Multirate, 14 Rauschleistung = q2/12 (rms-Wert) Q-Rauschleistungsdichte K mal kleiner K-faches Oversampling [2] Blockdiagramm Sigma-Delta-ADC DSV 1, 2005/01, Rur, Multirate, 15 [2] Wellenformen Sigma-Delta-Modulator DSV 1, 2005/01, Rur, Multirate, 16 4/8 oder binär 100 6/8 oder binär 110 [2] Frequenzanalyse Sigma-Delta-Modulator DSV 1, 2005/01, Rur, Multirate, 17 [2] Noise Shaping Sigma-Delta-Modulator DSV 1, 2005/01, Rur, Multirate, 18 [2] Sigma-Delta-ADC 2. Ordnung DSV 1, 2005/01, Rur, Multirate, 19 [2] SNR-Performance Sigma-Delta-ADC DSV 1, 2005/01, Rur, Multirate, 20 Beispiel AD1871 24-Bit, 96 kSps Sigma-Delta-ADC Second Order Multi-Bit Converter, 128-/64-faches Oversampling