-
Die
vorliegende Erfindung bezieht sich auf ein Filter zum Filtern eines
digitalen Signals und insbesondere auf digitale Filter mit endlicher
Impulsantwort (FIR; FIR = Finite Impulse Response).
-
Digitale
Filter werden bei verschiedensten Anwendungen für die Verarbeitung von digitalen
Signalen verwendet. Ein Anwendungsgebiet ist beispielsweise die
Echoentzerrung bei kabelgebundenen oder drahtlosen Kommunikationssystemen.
Digitale Filter weisen allgemein eine Vielzahl von elektronischen
Vorrichtungen, wie z. B. Addierer, Multiplizierer, Schieberegister,
Speichereinheiten, etc. auf.
-
Aus
der
DE 90 35 408 C2 ist
beispielsweise eine digitale Tonsignalverarbeitungsvorrichtung zur graphischen
Entzerrung eines digitalisierten Eingangstonsignals mittels mehreren
in Reihe geschalteten Filtern offenbart, wobei die Filter jeweils
durch eine arithmetische Operationseinrichtung gebildet werden,
die eine Speichereinrichtung zum Ablegen der digitalisierten Tonsignaldaten
umfasst und mit einer Bedienungseinrichtung zum Ändern des Betriebsmodus der
arithmetischen Operationseinrichtung und einer Ausgabeeinrichtung
für wenigstens zwei
Tonsignalausgänge
ausgestattet ist. Gemäß der
DE 40 35 408 C2 kann
durch Umwandeln eines der Filter in eine Datenzuführeinrichtung
bzw. Datenausgabeeinrichtung die Reihenschaltung der einzelnen Filter
getrennt werden und damit zwei kürzere
Reihenschaltungen von Filtern für
je einen Kanal vorgesehen werden. Die entsprechende Tonsignalverarbeitungseinrichtung
sieht dabei die Verwendung von nur einem Signalprozessor bei wahlweise
ein- oder zweikanaliger Verwendung der Tonsignalverarbeitungsvorrichtung
vor.
-
5 zeigt
ein herkömmliches
digitales Filter mit endlicher Impulsantwort (FIR). Das FIR-Filter weist
eine Filterlänge
von N, d. h. N Filterkoeffizienten C1, ...
CN, auf und besitzt entsprechend der Filterlänge in der
Darstellung der Z-Transformation
eine Folge von N Verzögerungselementen 502 der
Verzögerung
Z–1 und
N dazu parallele Multiplizierer 504. Die Folge der N Verzögerungselemente 502 bildet eine
Tap Delay Line (TDL) bzw. eine Abgriffsverzögerungsleitung, wobei die Verzögerungsleitung üblicherweise
Speicherelemente, wie z. B. Register, aufweist, die einen aktuellen
digitalisierten Abtastwert und vorhergehende digitalisierte Abtastwerte
eines Eingangssignals Y vorübergehend
speichern und dann im Takt der Abtastwerte jeweils an ein folgendes
Register weitergeben. Das digitale Eingangssignal Y, das eine Mehrzahl
von digitalisierten Abtastwerten aufweist, liegt an einem Eingang 506 des FIR-Filters
an und wird in die Folge der Verzögerungselemente 502 eingespeist.
Die jedem Verzögerungselement 602 zugeführten Abtastwerte
werden außerdem
einem jeweiligen Multiplizierer 504 zugeführt, um
den an dem ersten Verzögerungselement 502 anliegenden
aktuellen Abtastwert bzw. an den folgenden Verzögerungselementen 502 anliegende verzögerte Versionen
des aktuellen Abtastwertes bzw. vorhergehende Abtastwerte mit einem
jeweiligen Filterkoeffizienten zu multiplizieren. Der Ausgang jedes
Multiplizierers 504 ist mit einem Summierer 508 verbunden,
der Abtastwerte des Ausgangssignals Z des Filters als Summe der
einzelnen mit dem zugeordneten Filterkoeffizienten multiplizierten
Abtastwerte liefert.
-
Ein
Filtertyp bzw. ein Filtermodus eines FIR-Filters ist hierin durch
die Filterlänge
N und die Werte der Filterkoeffizienten bzw. durch den gewählten Filterkoeffizientensatz,
wie z. B. für
ein Tiefpassfilter, bestimmt. Ein Filtermodus kann ferner durch
die gewählte
Eingangs/Ausgangs-Rate des FIR-Filters bestimmt sein. Die Filterlänge N entspricht
der Anzahl der im Filter verarbeiteten digitalisierten Abtastwerte
des Eingangssignals, aus denen die Abtastwerte des Aus gangssignals
erzeugt werden. Bei steilen Filterflanken, engen Übergangsbändern bzw. kleiner
Bandbreite oder hoher Sperrdämpfung
ist daher eine große
Filterlänge
und eine große
Anzahl von Multiplizierern erforderlich. Die Größe der Filterkoeffizienten
bestimmt die Bitbreite der Multiplizierer und die Bitbreite des
Summierers 508 (5) und daher den Flächenaufwand,
den Energieverbrauch und die Geschwindigkeit derselben.
-
Eine
FIR-Filterarchitektur ist beispielsweise in CHOI, J. R.; JANG, L.
H.; JUNG, S. W.; CHOI, J. H.: „Structured
Design of a 288-Tap FIR Filter by Optimized Partial Product Tree
Compression", IEEE Journal
of Solid-State Circuits, März
1997, Vol. 32 No. 3, Seiten 468-476 dargestellt. Um ein entsprechendes
FIR-Filter zur Geisterbildunterdrückung und zur Kanalentzerrung
auszubilden, weist das dortige Filter 288 Abgriffe bzw. Filterkoeffizienten
auf. Zur Durchführung
der 288 Filterkoeffizientenoperationen ist das FIR-Filter in neun
Teilmodule mit jeweils 230 Filterkoeffizienten unterteilt. Die Teilmodule
erzeugen dann Summen und Überträge, die
in einem Addierer addiert werden, um eine Endsumme und einen Endübertrag
zu liefern. Dabei müssen
die Teilmodule Registermultiplikatoren und Multiplexer aufweisen,
wobei die Multiplikatorkomponenten gemäß einem modifizierten Booth-Algorithmus
in drei Kategorien aufgeteilt sind. Nachteilig ist dabei die jeweils
notwendige hohe Bitbreite der Multiplikatoren und Akkumulatoren
zur Darstellung der Filterkoeffizienten.
-
Die
Aufgabe der vorliegenden Erfindung besteht darin, ein Filter zum
Filtern eines digitalen Signals zu schaffen, dass das Filtern eines
digitalen Signals mit einem optimierten Flächen-, Energie- und Zeitaufwand
ermöglicht.
-
Diese
Aufgabe wird durch ein Filter nach Anspruch 1 zum Filtern eines
digitalen Signals gelöst.
-
Die
der vorliegende Erfindung zugrunde liegende Idee besteht darin,
die Verzögerungselemente bzw.
Speicherelemente einer Tap Delay Line nach der Bitbreite der Filterkoeffizienten,
die mit den in den Speicherelementen gespeicherten digitalisierten
Abtastwerten zu multiplizieren sind, zu gruppieren bzw. unterschiedliche
Bitbreiten für
die unterschiedlichen Teile der in einem digitalen Filter verwendeten
Multiplikations- und Additionsstrukturen, die unterschiedlichen
Filterkoeffizientensätzen
mit unterschiedlichen Bitwertebereichen entsprechen, zu verwenden.
-
In
den Unteransprüchen
finden sich vorteilhafte Weiterbildungen und Verbesserungen des
in Anspruch 1 angegebenen Filters.
-
Gemäß einer
bevorzugten Weiterbildung des Filters weisen die Ausleseeinrichtungen
Multiplexer auf.
-
Gemäß einer
weiteren bevorzugten Weiterbildung des Filters weisen die Multipliziereinrichtungen
Filterkoeffizientenspeicher zum Speichern der den Speicherpositionen
zugeordneten Filterkoeffizienten auf.
-
Gemäß einer
weiteren bevorzugten Weiterbildung des Filters weisen die Multipliziereinrichtungen
feste Multiplizierer, die einer bestimmten Speicherposition zugeordnet
sind, zum Multiplizieren des jeweiligen aus der Speicherposition
ausgelesen Abtastwerts mit dem der Speicherposition zugeordnetem
Filterkoeffizienten auf.
-
Gemäß einer
weiteren bevorzugten Weiterbildung des Filters weisen die Addiereinrichtungen Addierer
auf, die über
Zwischenspeicher zum Speichern von Teilergebnissen rückgekoppelt
sind.
-
Gemäß einer
weiteren bevorzugten Weiterbildung des Filters weist eine Speichereinrichtung
eines Abschnitts eine Folge von Speicherelementen auf.
-
Gemäß einer
weiteren bevorzugten Weiterbildung des Filters weist eine Speichereinrichtung
eines Abschnitts ein Schieberegister auf.
-
Gemäß einer
weiteren bevorzugten Weiterbildung des Filters weist das Schieberegister D-Flip-Flops
auf.
-
Gemäß einer
weiteren bevorzugten Weiterbildung des Filters weist das Filter
einen symmetrischen Filterkoeffizientensatz mit einer bestimmten Anzahl
von Filterkoeffizienten auf, der der Folge von Speicherpositionen
zugeordnet ist.
-
Gemäß einer
weiteren bevorzugten Weiterbildung des Filters verwendet das Filter
eine Carry-Save-Addition.
-
Gemäß einer
weiteren bevorzugten Weiterbildung des Filters ist das Filter mit
einer unterschiedlichen Anzahl von Speicherpositionen konfigurierbar, um
die Filterlänge
zu ändern.
-
Gemäß einer
weiteren bevorzugten Weiterbildung des Filters weisen die Abtastwerte
reale Abtastwerte und imaginäre
Abtastwerte auf.
-
Ein
Vorteil der vorliegenden Erfindung besteht darin, dass durch eine
Gruppierung der Speicherelemente nach den Bitbreiten der zugeordneten Filterkoeffizienten
ein Bit-effizientes digitales Filter erhalten wird, bei dem die
Multiplikations/Additions-Strukturen, die Wertebereichen mit kleineren Werten
der Filterkoeffizienten entsprechen, hinsichtlich der Bitbreite
weniger aufwendig sind und daher weniger Fläche und Energie benötigen.
-
Ein
weiterer Vorteil der vorliegenden Erfindung besteht darin, dass
einem Multiplizierer des Filters mehrere Speicherelemente mit ihren
zugeordneten Filterkoeffizienten zugeordnet sind und daher eine
aufwandsarme und schnelle Bit- effiziente
parallele Verarbeitung der Multiplikation erreicht wird.
-
Ein
weiterer Vorteil der vorliegenden Erfindung besteht darin, dass
bei der Realisierung eines konfigurierbaren digitalen Filters mit
mehreren Filtermodi, d. h. unterschiedlichen Filterlängen und
Filterkoeffizientensätzen,
eine Optimierung der gemeinsamen Verwendung der Multiplikations-
und Additionsstrukturen bzw. der Hardware durch die unterschiedlichen
Filtermodi ermöglicht
wird. Dies reduziert den Flächenaufwand
des konfigurierbaren digitalen Filters.
-
Ein
weiterer Vorteil der vorliegenden Erfindung besteht darin, dass
lediglich der Summierer, der zur Bildung der gefilterten Abtastwerte
des digitalen Filters aus den verzögerten und mit dem Filterkoeffizienten
multiplizierten Abtastwerten verwendet wird, eine größere Bitbreite
aufweist und daher ebenfalls der Flächenaufwand und der Energiebedarf
des Filters reduziert ist.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung sind nachfolgend unter Bezugnahme auf
die beigefügten
Zeichnungen näher
erläutert. Es
zeigen:
-
1 ein
bevorzugtes Ausführungsbeispiel eines
Filters gemäß der Erfindung;
-
2 ein
weiteres bevorzugtes Ausführungsbeispiel
eines Filters gemäß der Erfindung
mit einem symmetrischen Filterkoeffizientensatz;
-
3A und 3B ein
weiteres bevorzugtes Ausführungsbeispiel
eines Filters gemäß der Erfindung
mit einem symmetrischen Filterkoeffizientensatz, unterschiedlichen
Filtermodi und realen und imaginären
Abtastwerten;
-
4 ein
Ablaufdiagramm für
das Filter nach 3.
-
1 zeigt
ein bevorzugtes Ausführungsbeispiel
eines Filters gemäß der Erfindung.
Das Filter weist eine Folge von Speicherelementen 102 auf,
in denen die digitalisierten Abtastwerte, d. h. ein aktueller Abtastwert
und vorhergehende Abtastwerte, eines Eingangssignals Y des Filters
gespeichert sind. Die Speicherelemente 102 sind vorzugsweise
Register einer bestimmten Bitgröße, wie
z. B. D-Flip-Flops, die zu einem Schieberegister verschaltet sind.
Die Anzahl der Speicherelemente 102 entspricht der Filterlänge des
Filters.
-
Das
Filter bzw. die Folge von Speicherelementen 102 ist in
einzelne Abschnitte 110 aufgeteilt. Die Aufteilung der
Folge von Speicherelementen 102 ist durch die Bitbreite
der den einzelnen Speicherelementen 102 zugeordneten Filterkoeffizienten
C1,i; C2,i; ...;
Ck,i bestimmt, mit denen die in den Speicherelementen 102 gespeicherten
Abtastwerte zu multiplizieren sind. Jeder Abschnitt 110 der
Folge von Speicherelementen 102 entspricht einem bestimmten
Bitbreitenbereich, der durch eine jeweilige untere Bitbreite und
eine jeweilige obere Bitbreite definiert ist und sich von dem Bitbreitenbereich
der anderen Abschnitte 110 unterscheidet und dem bestimmte
Speicherelemente entsprechend der Bitbreite ihrer zugeordneten Filterkoeffizienten
zugewiesen sind. Jedem Abschnitt 110 ist ein jeweiliger
Multiplexer 112 zugeordnet, der mit den einzelnen Speicherelementen 102 des
Abschnitts 110 verbunden ist, um die in den Speicherelementen 102 eines
Abschnitts 110 gespeicherten Abtastwerte vorzugsweise zwischen
dem Eintreffen zweier Abtastwerte des Eingangssignals Y, d. h. nach
dem Eintreffen eines aktuellen Abtastwerts und vor dem Eintreffen
eines neuen Abtastwerts, auszulesen. Dazu wird der jeweilige Multiplexer 112 vorzugsweise
derart angesteuert, dass das Auslesen der gespeicherten Abtastwerte
entsprechend einem Auslesetakt erfolgt, der größer ist als der Signaltakt des
Eingangssignals. Alternativ kann aber auch eine Unterabtastung des
Eingangssignals erfolgen, bei der der Auslesetakt kleiner als der
Signaltakt ist.
-
Das
Filter weist folgend den jeweiligen Multiplexern 112 ferner
jeweils einen Multiplizierer 114 auf, der den jeweils durch
den Multiplexer 112 ausgelesenen Abtastwert mit dem zugeordneten
Filterkoeffizienten C1,i; C2,i;
...; Ck,i multipliziert. Die Multiplikation
von allen Abtastwerten der Speicherelemente 102 eines Abschnitts 110 erfolgt
vorzugsweise zwischen zwei Abtastwerten des Eingangssignals Y. Die
Bitbreite jedes Multiplizierers 114 hängt beispielsweise von dem
Bitbreitenbereich oder der oberen Bitbreite des Bitbreitenbereichs
der Filterkoeffizienten, die einem Abschnitt 110 der Folge
von Speicherelementen 102 zugeordnet sind, und von der
Größe der Abtastwerte
ab. Jeder Multiplizierer 114 weist ferner vorzugsweise
einen Filterkoeffizientenspeicher auf, in dem die Filterkoeffizienten
gespeichert sind. Abhängig
von dem auszulesenden Speicherelement 102 wird ein Filterkoeffizient
aus dem jeweiligen Filterkoeffizientenspeicher zur Multiplikation
mit dem jeweiligen Abtastwert in den Multiplizierer 114 abgerufen. Der
jeweilige Multiplizierer 114 kann alternativ ein fester
Multiplizierer mit fest zugeordnetem Filterkoeffizienten sein.
-
Das
Filter weist folgend jedem Multiplizierer 114 ferner jeweils
einen Addierer 116 auf, der vorzugsweise zwischen zwei
Abtastwerten des Eingangssignals Y die mit den Filterkoeffizienten
multiplizierten Abtastwerte der Speicherelemente 102 akkumulierend
addiert. Zwischen dem jeweiligen Multiplizierer 114 und
dem jeweiligen Addierer 116 kann ein Register 118 zur
Zwischenspeicherung der multiplizierten Abtastwerte angeordnet sein,
um ein zeitliche Steuerung der Verarbeitung zu ermöglichen. Dem
jeweiligen Addierer 116 ist jeweils ein Zwischenspeicher 120 nachgeordnet,
der Teilergebnisse der Addition der mit den Filterkoeffizienten
multiplizierten Abtastwerte speichert und rückkoppelnd an einen Eingang
des jeweiligen Addierers 116 zurückführt. Die Bitbreite jedes Addierers 116 hängt beispielsweise
von der dem jeweiligen Abschnitt 110 der Folge von Speicherelementen 102 zugeordnete
Anzahl von Filterkoeffizienten, dem zugeordneten Bitbreiten bereich
der Filterkoeffizienten und der Größe der Abtastwerte ab.
-
Das
Filter weist schließlich
ferner einen Summierer 122 auf, der die Additionsergebnisse
der Addierer 116 der einzelnen Abschnitte 110 vorzugsweise
zwischen zwei Abtastwerten des Eingangssignals Y summiert, um einen
Abtastwert des gefilterten Eingangssignals Y als Abtastwert des
Ausgangssignals Z zu erzeugen. Die Bitbreite des Summierers 122 hängt beispielsweise
von der Gesamtzahl der Filterkoeffizienten und der Größe der Filterkoeffizienten und
der Abtastwerte ab.
-
2 zeigt
ein weiteres bevorzugtes Ausführungsbeispiel
eines Filters gemäß der Erfindung mit
einem symmetrischen Filterkoeffizientensatz. Das Filter ist vorzugsweise
ein FIR-Filter und
weist eine Folge von Speicherelementen 202 auf. Die Speicherelemente 202 sind
vorzugsweise Register einer bestimmten Bitgröße, wie z. B. D-Flip-Flops,
die zu einem Schieberegister hintereinander geschaltet sind. Bei
dem symmetrischen Filterkoeffizientensatz ist der erste Filterkoeffizient,
d. h. der Filterkoeffizient, der dem ersten Speicherelement 202 der
Folge von Speicherelementen bzw. einem aktuellen digitalisierten
Abtastwert eines Eingangssignals Y zugeordnet ist, gleich dem letzten
Filterkoeffizienten, d. h. dem Filterkoeffizienten, der dem letzten
Speicherelement 202 der Folge von Speicherelementen bzw.
dem am stärksten
verzögerten
oder ältesten
Abtastwert des Eingangssignals Y zugeordnet ist. Fortlaufend ist
der zweite Filterkoeffizient gleich dem vorletzten Filterkoeffizienten
usw. Ein Tiefpassfilter weist beispielsweise einen solchen Filterkoeffizientensatz
auf.
-
Das
Filter bzw. die Folge von Speicherelementen 202 ist in
einzelne Abschnitte 210 aufgeteilt. Die Aufteilung der
Folge von Speicherelementen 202 ist durch die Bitbreite
bzw. Größe der den
einzelnen Speicherelementen 202 zugeordneten Filterkoeffizienten
bestimmt, mit denen die in den Speicherelemen ten 202 gespeicherten
Abtastwerte zu multiplizieren sind. Jedem Abschnitt 210 der
Folge von Speicherelementen 202 ist ein bestimmter eindeutiger Bitbreitenbereich
der Filterkoeffizienten, der durch eine jeweilige untere Bitbreite
und eine jeweilige obere Bitbreite definiert ist und sich von dem
Bitbreitenbereich der anderen Abschnitte 210 unterscheidet, zugeordnet.
Aufgrund der Symmetrie sind daher Speicherelemente 202,
die zueinander symmetrischen Filterkoeffizienten zugeordnet sind,
in gleichen Abschnitten 210 bzw. Gruppen von Speicherelementen 202 angeordnet.
-
Das
Filter weist in den einzelnen Abschnitten 210 der Folge
von Speicherelementen 212 Multiplexer 212 auf,
die jeweils zwei Speicherelementen 202, die zueinander
symmetrische Filterkoeffizienten aufweisen, zugeordnet sind und
mit denselben verbunden sind. Die Multiplexer 212 lesen
vorzugsweise zwischen zwei Abtastwerten des Eingangssignals Y Abtastwerte
aus den Speicherelementen 202 aus. Jeder Multiplexer 212 ist
mit einem jeweiligen Multiplizierer 214 verbunden, der
den in einem Speicherelement 202 gespeicherten und durch
den Multiplexer 212 ausgelesenen Abtastwert mit einem zugeordneten
Filterkoeffizienten C1,1; ... C1,m1;
C2,1 ... C2,m2;
...; Ck,1 ... Ck,mk vorzugsweise
zwischen zwei Abtastwerten des Eingangssignals Y multipliziert.
Die Bitbreite des jeweiligen Multiplizierers 214 hängt beispielsweise
von der Größe der Filterkoeffizienten
eines Abschnitts 210 der Folge von Speicherelementen 202 und
von der Größe der Abtastwerte
ab. Die Multiplizierer 214 sind ferner vorzugsweise feste
Multiplizierer mit festen Filterkoeffizienten als Multiplikator.
Das gezeigte Filter besitzt eine ungerade Filterlänge, so dass
der mittlere Filterkoeffizient des symmetrischen Filterkoeffizientensatzes,
der dem Speicherelement 202' zugeordnet
ist, alleine einem Multiplizierer 214' zugeordnet ist.
-
Die
Multiplizierer 214 eines Abschnitts 210 der Folge
von Speicherelementen 202 sind mit einem jeweiligen Addierer 216 verbunden.
Der Addierer 216 weist eine Bitbreite und Bittiefe auf,
die beispielsweise durch die Anzahl der einem Abschnitt 210 zugeordneten
Filterkoeffizienten, dem Bitbreitenbereich der Filterkoeffizienten
des jeweiligen Abschnitts 210 und durch die Größe der Abtastwerte
bestimmt sind. Der jeweilige Addierer 216 addiert vorzugsweise
zwischen zwei Abtastwerten des Eingangssignals Y die mit dem zugeordneten
Filterkoeffizienten multiplizierten Abtastwerte akkumulierend. Dazu
ist dem jeweiligen Addierer 216 jeweils ein Zwischenspeicher 220 nachgeordnet,
der Teilergebnisse des Addierers 216 der mit den Filterkoeffizienten
multiplizierten Abtastwerte speichert und rückkoppelnd an einen Eingang des
jeweiligen Addierers 216 zurückführt.
-
Das
Filter weist ferner einen Summierer 222 auf, der die Additionsergebnisse
der einzelnen Abschnitte 210 der Folge von Speicherelementen 202 summiert,
um einen Abtastwert des gefilterten Eingangssignals Y als Abtastwert
eines Ausgangssignals Z vorzugsweise zwischen zwei Abtastwerten des
Eingangssignals Y zu erzeugen. Die Bitbreite des Summierers 222 hängt beispielsweise
von der Gesamtzahl der Filterkoeffizienten, der Bitbreite der Filterkoeffizienten
und der Größe der Abtastwerte
ab.
-
In 2 ist
ferner gezeigt, dass die Multiplizierer 214, die Addierer 216 und
der Summierer 222 vorzugsweise eine Carry-Save-Addition
mit gespeichertem (Save) Übertrag
(Carry) verwenden. Dazu weist jeder Multiplizierer 214 einen
Summenausgang und einen Übertragausgang
auf, die mit einem jeweiligen Summeneingang und Übertrageingang eines Addierers 216 durch
eine Summenleitung 224 und eine Übertragleitung 226 verbunden
sind. Die Addierer 216 weisen jeweils einen Summenausgang
und einen Übertragausgang
auf, die mit einem jeweiligen Summeneingang eines Zwischenspeichers 220 durch
eine Summenleitung 228 und mit einem jeweiligen Übertrageingang
eines zusätzlichen
Zwischenspeichers 230 durch eine Übertragleitung 232 verbunden
sind. Die Zwischenspeicher 220 weisen jeweils einen Summenausgang
auf, der mit einem jeweiligen Summenein gang des Summierers 222 durch
eine Summenleitung 234 verbunden ist, und die Zwischenspeicher 230 weisen
jeweils einen Übertragsausgang
auf, der mit einem jeweiligen Übertrageingang
des Summierers 222 durch eine Übertragleitung 236 verbunden
ist. Die Rückkopplung
der Zwischenergebnisse in den Zwischenspeichern 220 und 230 zu
den zugeordneten Eingängen eines
jeweiligen Addierers 216 ist durch eine Summenleitung 238 und
eine Übertragleitung 240 vorgesehen.
-
3A und 3B zeigen
ein weiteres bevorzugtes Ausführungsbeispiel
eines Filters gemäß der Erfindung
mit einem symmetrischen Filterkoeffizientensatz, unterschiedlichen
Filtermodi und einem Eingangssignal mit komplexen Abtastwerten,
die vorzugsweise abwechselnd reale und imaginäre Abtastwerte aufweisen. Die
zwei gezeigten Filtermodi umfassen eine Filterlänge mit 21 Abgriffen (Taps)
oder 21 Filterkoeffizienten für
ein Filter mit großer
Bandbreite bzw. 57 Filterkoeffizienten für ein Filter mit kleiner Bandbreite.
Der erste Filtermodus mit 21 Filterkoeffizienten ist durch einen
rechten Teil 342 des Filters mit den Speicherelementen
19 bis 39 definiert, und der zweite Filtermodus mit 57 Filterkoeffizienten
ist durch sowohl den rechten Teil 342 als auch einen linken
Teil 344 des Filters mit den Speicherelementen 1 bis 18
und 40 bis 57 definiert. Der jeweilige Filtermodus wird durch ein
Filtermodussignal LPF3_MODE ausgewählt. Das Filter weist jeweils
eine obere Folge 346 und eine untere Folge 348 von
Speicherelementen 302 auf. Die obere Folge 346 von
Speicherelementen 302 ist den realen digitalisierten Abtastwerten
eines Eingangssignals IN_IQ zugeordnet, während die untere Folge 348 von
Speicherelementen 302 den imaginären digitalisierten Abtastwerten
des Eingangssignals IN_IQ zugeordnet ist. Die obere und die untere
Folge 346, 348 von Speicherelementen 302 sind
insbesondere in Abschnitte 310 bzw. Gruppen von Speicherelementen 302 aufgeteilt,
denen jeweils Filterkoeffizienten zugeordnet sind, die eine Bitbreite
aufweisen, die in einem jeweiligen eindeutigen Bitbreitenbereich
liegt. Der jeweilige eindeutige Bitbreitenbereich ist durch eine
obere und eine untere Bitbreite definiert und unterscheidet sich
von dem Bitbreitenbereich eines anderen Abschnitts 310.
-
Den
einzelnen Abschnitten 310 der oberen und unteren Folge 346, 348 von
Speicherelementen sind gemeinsam Multiplexer 312 zugeordnet,
die jeweils mit zwei Speicherelementen 302 der oberen Folge 346 von
Speicherelementen und zwei Speicherelementen 302 der unteren
Folge 348 von Speicherelementen, d. h. insgesamt vier Speicherelementen 302,
verbunden sind. Da das Filter eine ungerade Anzahl von Filterkoeffizienten
aufweist, sind die Speicherelemente 302' alleine einem Multiplexer 312', der lediglich
zwei Eingänge
anstatt vier Eingänge
aufweist, zugeordnet. Die Multiplexer 312 lesen gesteuert
durch ein Signal SELECT_ROW_TO_MULT vorzugsweise zwischen zwei komplexen
Abtastwerten des Eingangssignals IN_IQ die realen und imaginären Abtastwerte
aus den zugeordneten Speicherelementen aus und liefern dieselben
aufeinanderfolgend an einen nachgeordneten festen Multiplizierer 314,
der einen festen Filterkoeffizienten als Multiplikator aufweist.
Jeder feste Multiplizierer 314 multipliziert den jeweiligen ausgelesenen
Abtastwert mit dem zugeordneten Filterkoeffizienten und weist beispielsweise
eine Bitbreite auf, die von der oberen Bitbreite eines jeweiligen Bitbreitenbereichs
eines Abschnitts 310 der Folgen 346, 348 von
Speicherelementen 302 abhängt. Abhängig von dem Filtermodus werden
in dem rechten Teil 342 des Filters in einem Abschnitt
entweder ein Multiplizierer 314, der dem ersten Filtermodus
zugeordnet ist, oder ein Multiplizierer 314' (gestrichelt gezeigt), der dem
zweiten Filtermodus zugeordnet ist, ausgewählt. Dazu weist das Filter
jeweils einen weiteren Multiplexer 350 auf, der jeweils
zwischen dem Multiplexer 312 und den Multiplizierern 314, 314' angeordnet
ist, um abhängig
von dem Filtermodussignal LPF3_MODE einen der Multiplizierer 314, 314' mit dem Multiplexer 312 zu
verbinden.
-
Die
Multiplizierer 314 im linken Teil 344 des Filters
sind jeweils mit einem Addierer 316 verbunden, während die
Mul tiplizierer 314, 314' im rechten Teil 342 des
Filters mit einem Addierer 316' verbunden sind (3B).
Der linke Teil 344 des Filters wird wie erwähnt abhängig vom
Filtermodussignal LPF3_MODE lediglich für den zweiten Filtermodus mit
kleiner Bandbreite bzw. größerer Filterlänge verwendet.
Um im rechten Teil 342 des Filters abhängig von dem Filtermodus den
jeweiligen adäquaten
Multiplizierer 314 oder 314' mit dem Addierer 316' zu verbinden,
weist das Filter ferner Multiplexer 352 auf, die durch
das Filtermodussignal LPF3_Mode gesteuert sind und zwischen dem
jeweiligen Multiplizierer 314, 314' und dem Addierer 316' angeordnet
sind. Die Bitbreite der Addierer 316, 316' hängt beispielsweise von
der Bitbreite der Filterkoeffizienten beider Filtermodi, von der
Anzahl der Filterkoeffizienten und der Größe der Abtastwerte ab. Die
Addierer 316, 316' addieren
vorzugsweise zwischen zwei komplexen Abtastwerten des Eingangssignals
IN_IQ unabhängig voneinander
die mit den zugeordneten Filterkoeffizienten multiplizieren realen
und imaginären
Abtastwerte jedes Abschnitts 310. Jedem Addierer 316, 316' ist ein Zwischenspeicher 320 nachgeschaltet, der
Teilergebnisse des jeweiligen Addierers 316, 316' zu den zu addierenden
mit den Filterkoeffizienten multiplizierten Abtastwerten speichert
und rückkoppelnd
an einen Eingang des jeweiligen Addierers 316, 316' zurückführt.
-
Das
Filter weist ferner im linken Teil 344 und im rechten Teil 342 Summmierer 322, 322' auf, die den
Addierern 316, 316' nachgeschaltet
sind. Der Summierer 322 summiert vorzugsweise zwischen zwei
komplexen Abtastwerten des Eingangssignals IN_IQ die Additionsergebnisse
des Addierers 316, die den jeweiligen Abschnitten 310 der
Folgen 346, 348 von Speicherelementen 302 im
linken Teil 344 des Filters zugeordnet sind, während der
Summierer 322' vorzugsweise
zwischen zwei komplexen Abtastwerten des Eingangssignals IN_IQ die
Additionsergebnisse des Addierers 316', die jeweiligen Abschnitten 310 der
Folgen 346, 348 von Speicherelementen 302 im
rechten Teil 342 des Filters zugeordnet sind, summiert.
Die Bitbreite der Summierer 322, 322' hängt beispielsweise
von der Bitbreite und der Anzahl der Filterkoeffizienten des linken
bzw. rechten Teils 344, 342 des Filters und der
Größe der Abtastwerte
ab. Die Summierer 322 und 322' sind mit einem weiteren Summierer 354 verbunden,
der die Ergebnisse der Summierer 322, 322' addiert, um
einen komplexen Abtastwert des gefilterten Eingangssignals IN_IQ
als komplexen Abtastwert eines Ausgangssignals IQ_RE/IM vorzugsweise
zwischen zwei komplexen Abtastwerten des Eingangssignals IN_IQ zu
erzeugen. Der Summierer 354 weist eine Bitbreite auf, die
beispielsweise von der Bitbreite und der Gesamtzahl der Filterkoeffizienten
und der Größe der Abtastwerte
abhängt.
Der Summierer 354 ist vorzugsweise mit einer Einrichtung 356 zum
Runden und zum Abschneiden von überflüssigen Stellen
des komplexen Abtastwertes des Ausgangssignals IQ_RE/IM verbunden,
die gerundete Abtastwerte des Ausgangssignals an ein Ausgangsregister 357 liefert.
-
Zur
Einstellung der Filtermodi bzw. zur Konfiguration des Filters weist
das Filter ferner zwei Multiplexer 358 ( 3A)
auf, die die obere Folge 346 von Speicherelementen 302 für die reellen
Abtastwerte und die untere Folge 348 von Speicherelementen 302 für die imaginären Abtastwerte
konfigurieren und die abhängig
von dem Filtermodussignal LPF3_MODE bei dem ersten Filtermodus nur
den rechten Teil 342 des Filters und bei dem zweiten Filtermodus
beide Teile 342, 344 des Filters mit dem Eingangssignal
IN_IQ verbinden. Die Speicherelemente 302 des linken Teils 344 des
Filters weisen ferner jeweils einen Eingang auf, an dem das Filtermodussignal
LPF3_MODE anliegt, um die Speicherelemente 302 in dem linken
Teil 344 des Filters abhängig von dem Filtermodus zu
aktivieren oder zu deaktivieren. Folgend dem Summierer 354 und
dem Summierer 322' (3B)
ist ferner ein Multiplexer 360 vorgesehen, der abhängig von
dem Filtermodussignal LPF3_MODE im zweiten Filtermodus das Additionsergebnis
des Summierers 354 oder im ersten Filtermodus des Summierers 322' an die Einrichtung 356 weiterleitet.
-
Das
Filter verwendet eine Carry-Save-Addition für die Addition und Multiplikation
in den Multiplizierern 314, 314', den Addierern 316, 316' und in den Summierern 322, 322' und 354.
Das Filter weist dazu jeweils Summenleitungen S und Übertragleitungen
C auf, die die jeweiligen Elemente miteinander verbinden. Zusätzlich zu
den Multiplexern 352, die den einzelnen Multiplizierern 314, 314' des rechten
Teils 342 des Filters nachgeschaltet sind, weist daher
das Filter für
den jeweiligen Übertrag
(C) eines Multiplizierers 314, 314' einen Multiplexer 362 auf,
der ebenfalls durch das Filtermodussignal LPF3-MODE gesteuert ist,
um den Übertrag
eines Multiplizierers 314 oder eines Multiplizierers 314' abhängig von
dem Filtermodus auszuwählen.
Für die
Zwischenspeicherung des Übertrags
der Addierer 316, 316' sind zusätzlich zu den Zwischenspeichern 320 ferner
Zwischenspeicher 330 vorgesehen.
-
Das
Filter weist ferner einen Puffer 366 auf, der beim Einlesen
der komplexen Abtastwerte die imaginären Abtastwerte des Eingangssignals
IN_IQ speichert, während
in der oberen Folge 346 von Speicherelementen 302 der
reale Abtastwert aufgenommen und verarbeitet wird. Der Puffer 366 wird dazu
durch ein Signal LOAD_BUF an einem Eingang desselben angesteuert.
Dem Puffer 366 ist ein Multiplexer 368 nachgeschaltet,
der mit einem Eingang desselben mit dem Eingangssignal IN_IQ und
mit einem weiteren Eingang desselben mit einem Ausgang des Puffers 366 verbunden
ist und durch ein Signal SELECT_TDL_IM0 gesteuert ist. Die Speicherelemente 302 der
oberen Folge 346 von Speicherelementen 302 in 3A weisen
jeweils einen weiteren Eingang für
ein Signal VALID_RE auf, das signalisiert, ob ein gültiger realer
Abtastwert am Eingang des Filters anliegt oder z. B. ein Burst-Modus
vorliegt. Die Speicherelemente 302 der unteren Folge 348 von
Speicherelementen 302 weisen jeweils einen weiteren Eingang
auf, an dem ein Signal SHIFT_TDL_IM anliegt, das die Verschiebung
der imaginären
Abtastwerte zwischen den Speicherelementen 302 abhängig davon
steuert, ob die Zwischenspeicherung in dem Puffer 366 abgeschlossen ist.
-
4 zeigt
ein Ablaufdiagramm für
das Filter nach 3. Das Signal CLK
gibt den Systemtakt des Filters an, mit dem das Eingangssignal IN_IQ
in das Filter eingelesen wird. Das Eingangssignal IN_IQ des Filters
weist abwechselnd einen realen digitalisierten Abtastwert und einen
imaginären
digitalisierten Abtastwert auf, die einen komplexen Abtastwert bilden. Liegt
ein gültiger
realer Abtastwert an dem Eingang des Filters an, so wird das Signal
VALID_RE auf einen hohen Zustand gesetzt, und ein erster realer
Abtastwert (1.) wird in die obere Folge 346 von Speicherelementen 302 des
Filters aufgenommen. Um einen dem ersten realen Abtastwert folgenden
ersten imaginären
Abtastwert (1.) in den Puffer 366 aufzunehmen, wird das
Signal LOAD_BUF in einen hohen Zustand gesetzt, und der Puffer 366 nimmt
den ersten imaginären
Abtastwert auf. Ein zweiter realer Abtastwert (2.) des Eingangssignals
wird dann in die obere Folge 346 von Speicherelementen 302 aufgenommen,
während
gleichzeitig der Puffer 366 durch das Signal SELECT_TDL_IM0
angesteuert wird, um den ersten imaginären Abtastwert zusammen mit
einem folgenden zweiten imaginären
Abtastwert (2.) gesteuert durch das Signal SHIFT_TDL_IM in der unteren
Folge 348 von Speicherelementen 302 aufzunehmen.
Da nun die realen und imaginären
Abtastwerte in die jeweilige Folge 346, 348 von
Speicherelementen 302 durch Verschieben der Abtastwerte
geladen sind, werden gesteuert durch das Signal SELECT_ROW_TO_MULT
jeweils 4 Speicherelemente 302 nacheinander durch den jeweils
zugeordneten Multiplexer 312 ausgelesen. In 4 ist
dies für
den ersten Abschnitt 310 im linken Teil 344 des Filters
durch die Binärcodierung
innerhalb des Signals SELECT_ROW_TO_MULT gezeigt. Folgend einem
ungültigen
Block 00 (XX) wird durch den ersten Multiplexer 312 am
Eingang des Filters das 1. Speicherelement 302 (00) der
oberen Folge 346 von Speicherelementen 302, in
dem ein erster realer Abtastwert (1. reale Reihe) gespeichert ist,
dann das 57. Speicherelement 302 (01) der oberen Folge 346 von Speicherelementen 302,
in dem ein realer Abtastwert (2. reale Reihe) gespeichert ist, dann
das 1. Speicherelement 302 (10) der unteren Folge 348 von Speicherelementen 302,
in dem ein imaginärer
Abtastwert (1. imaginäre
Reihe) gespeichert ist, und dann das 57. Speicherelement 302 (11)
der unteren Folge 348 von Speicherelementen 302,
in dem ein imaginärer
Abtastwert (2. imaginäre
Reihe) gespeichert ist, ausgelesen und jeweils zu dem zugeordneten
Multiplizierer 314 zur Multiplikation mit einem adäquaten Filterkoeffizienten
weitergeleitet.
-
Das
Signal LD_STAGE1 zeigt an, dass die mit den Filterkoeffizienten
multiplizierten realen und imaginären Abtastwerte der einzelnen
Abschnitte 310 des Filters nacheinander in eine erste Filterstufe 370 (3B),
d. h. in die Addierer 316, 316' zum akkumulierenden Addieren geladen
werden. Nachdem die ersten zwei realen Abtastwerte, die durch die
binäre
Codierung 00, 01 des Signals SELECT_ROW_TO_MULT gezeigt sind, in
die erste Filterstufe 370 bzw. die Addierer 316, 316' geladen und
verarbeitet wurden, werden die Additionsergebnisse für alle realen
Abtastwerte in eine zweite Filterstufe 372 geladen. In
der zweiten Filterstufe 372 erfolgt zunächst die Addition von allen
realen Abtastwerten des linken Teils 344 des digitalen
Filters in dem Summierer 322 und die Addition von allen
realen Abtastwerten des rechten Teils 342 des digitalen Filters
in dem Summierer 322' und
dann die Addition der realen Abtastwerte des linken Teils 344 und
des rechten Teils 342 des Filters in dem Summierer 354. Das
Ergebnis durchläuft
die Einrichtung 356 und wird in das Ausgangsregister 357 geladen.
Dies ist durch einen ersten hohen Zustand des Signals LD_STAGE2
gezeigt. Der zweite hohe Zustand dieses Signals in 4 zeigt
das Laden der äquivalent verarbeiteten
imaginären
Abtastwerte in die zweite Filterstufe 372 und das Ausgangsregister 357 an.
-
Eine
vorteilhafte Anwendung des erfindungsgemäßen Filters liegt beispielsweise
auf dem Gebiet von Empfängerchips
für das
digitale Fernsehen, bei denen die Filter zur Tiefpassfilterung und
Herunterabtastung verwendet werden. Ein Filter nach 3A und
B ist beispielsweise für
die Unterdrückung
von Störungen
in einem Übertragungskanal
eines Übertragungssystems,
die durch Nachbarkanäle
verursacht werden, einsetzbar. Die unterschiedlichen Filtermodi
ermöglichen
dabei die Anpassung des Filters an unterschiedliche Störungen.
-
- 102
- Speicherelement
- 110
- Abschnitte
- 112
- Multiplexer
- 114
- Multiplizierer
- 116
- Addierer
- 118
- Register
- 120
- Zwischenspeicher
- 122
- Summierer
- 202
- Speicherelement
- 210
- Abschnitte
- 212
- Multiplexer
- 214
- Multiplizierer
- 216
- Addierer
- 220
- Zwischenspeicher
- 222
- Summierer
- 224
- Summenleitung
- 226
- Übertragleitung
- 228
- Summenleitung
- 230
- Zwischenspeicher
- 232
- Übertragleitung
- 234
- Summenleitung
- 236
- Übertragleitung
- 238
- Summenleitung
- 240
- Übertragleitung
- 302
- Speicherelement
- 310
- Abschnitte
- 312
- Multiplexer
- 314
- Multiplizierer
- 316
- Addierer
- 320
- Zwischenspeicher
- 322
- Summierer
- 330
- Zwischenspeicher
- 392
- rechter
Teil des Filters
- 344
- linker
Teil des Filters
- 346
- obere
Folge von Speicherelementen
- 348
- untere
Folge von Speicherelementen
- 350
- Multiplexer
- 352
- Multiplexer
- 354
- Summierer
- 356
- Einrichtung
zum Runden und zum Abschneiden
- 357
- Ausgangsregister
- 358
- Multiplexer
- 360
- Multiplexer
- 362
- Multiplexer
- 366
- Puffer
- 368
- Multiplexer
- 370
- erste
Filterstufe
- 372
- zweite
Filterstufe
- 502
- Verzögerungselement
- 504
- Multiplizierer
- 506
- Eingang
- 508
- Summierer