-
Die Erfindung betrifft ein Verfahren zur digitalen Filterung von K Eingangswerten mittels eines nichtlinearen Filters gemäß dem Oberbegriff des Anspruchs 1. Ein solches Verfahren ist aus der
WO 03/107533 bekannt, auf deren Offenbarung ausdrücklich Bezug genommen wird, insbesondere hinsichtlich der begrifflichen Definition eines Rangfilters und dessen Anwendung. Das dort vorgestellte Verfahren wurde als Rangfilter bezeichnet und erzeugt als Ausgangswert einen Wert, welcher exakt dem R-kleinsten Wert aus den K Eingangswerten (K ≥ R ≥ 1) entspricht, wobei der R-kleinste Wert identisch mit dem (K – R + 1)-größten Wert ist. Ein Sonderfall eines Rangfilters ist ein Medianfilter, wobei man unter dem Median einer ungeraden Zahl K an Werten den mittleren Wert (und nicht den Mittelwert!) versteht, d. h. den (K + 1)/2-kleinsten Wert und somit den Wert mit dem Rang (K + 1)/2. Zum Beispiel ergibt sich für die fünf Werte 5, 3, 4, 12 und 1 der Median 4, denn der drittgrößte Wert ist 4, während der Mittelwert (5 + 3 + 4 + 12 + 1)/5 = 25/5 = 5 ist oder aus den Werten 1, 1, 1, 1 und 11 der Median 1 ist, da der drittgrößte Wert immer noch 1 ist, während der Mittelwert (1 + 1 + 1 + 1 + 11)/5 = 15/5 = 3 ist.
-
Rangfilter werden in der Signal- und Bildverarbeitung sehr häufig eingesetzt, z. B.:
- • um eine Detektionsschwelle nach dem Prinzip der geordneten Statistik (Ordered-Statistic) zu bestimmen,
- • um transiente Störungen zu eliminieren; dabei werden häufig Medianfilter verwendet, welche ein spezielles Rangfilter darstellen.
-
Rangfilter repräsentieren einen nichtlinearen Tiefpass. Sie sind einfach zu beschreiben, ihre Implementierung benötigt aber meist einen recht hohen Aufwand.
-
Unter dem Wert mit Rang R wird im folgenden der R-kleinste von K Werten verstanden (1 ≤ R ≤ K); zum Beispiel ergibt sich für die fünf Werte 5, 3, 4, 8 und 1 der Wert mit dem Rang 2 zu 3. Gemäß dieser Definition hat der Q-größte von K Werten den Rang K – Q + 1 (1 ≤ Q ≤ K).
-
Ein eindimensionales Rangfilter berechnet zu jedem Zeitpunkt n = L·m, m = mu, mu + 1, ..., mo und L konstant sowie ganzzahlig den Wert mit dem R-ten Rang von K aufeinanderfolgenden Werten eines Eingangssignals x(n), n = nu, nu + 1, ..., no; für L = 1 handelt es sich um ein Filter ohne Dezimation, d. h. ohne Reduktion der Abtastrate, für L > 1 um ein Filter mit Dezimation, d. h. mit Reduktion der Abtastrate.
-
Analog dazu ermittelt ein mehrdimensionales Rangfilter den Wert mit R-tem Rang von K benachbarten Werten eines mehrdimensionalen Signals.
-
Für die Implementierung von Rangfiltern sind zahlreiche Algorithmen bekannt, welche meist auf Sortierverfahren oder Histogrammverfahren basieren und einen hohen Aufwand an Rechenleistung und bzw. oder Speicherbedarf benötigen. Auch das gattungsbildende Verfahren gemäß der
WO 03/107533 erweist sich als recht aufwendig.
-
Aufgabe der Erfindung ist daher, ein aufwandsgünstigeres Verfahren zur digitalen Rangfilterung vorzustellen. Diese Aufgabe wird durch die Merkmale des Anspruchs 1 gelöst. Vorteilhafte Weiterbildungen sind den Unteransprüchen zu entnehmen.
-
Im Folgenden wird ein neues Verfahren zur approximativen Realisierung von Rangfiltern eingeführt, d. h. der Wert mit R-tem Rang wird jeweils nicht exakt, sondern nur näherungsweise bestimmt. Die Verfahren zur digitalen Rangfilterung werden oft zur Bildung von Schwellwerten aus gemessenen Signalwerten verwendet, wobei die Messung der Signalwerte, deren Digitalisierung und, bedingt durch stochastische Einflüsse, die Definition der Schwellen gewissen Ungenauigkeiten und Rundungsfehlern unterliegen. Daraus ergibt sich die Erkenntnis, dass es für viele Anwendungsgebiete ausreicht, anstelle des exakten Wertes mit dem entsprechenden Rang einen durch Interpolation approximierten Wert zu verwenden, wobei der Güte der Approximation beliebig hoch gewählt werden kann. Sowohl bei Software- als auch bei Hardware-Implementierungen (z. B. auf ASICs oder FPGAs) benötigt dieser neue Algorithmus meist sehr viel weniger Aufwand als alle bisher bekannten exakten Algorithmen.
-
Das Verfahren zur digitalen Filterung von K Eingangswerten erzeugt als Ausgangswert also einen Wert, welcher zumindest näherungsweise dem R-kleinsten und somit dem (K – R + 1)-größten Wert aus den K Eingangswerten (K ≥ R ≥ 1) entspricht.
-
Der zu betrachtende Wertebereich, in welchem die Eingangswerte gegebenenfalls nach einer wertemäßigen Beschränkung liegen, ist dazu ohne Lücken in nicht überlappende Intervalle aufgeteilt. Tritt der Fall auf, dass Eingangswerte außerhalb des zu betrachtenden Wertebereichs liegen, kann eine Beschränkung erfolgen, bspw. diese Eingangswerte auf die Grenzen des Wertebereichs abgebildet und im jeweils niederst- bzw. höchstwertigen Intervall liegend betrachtet werden.
-
Dann sind folgende Schritte durchzuführen:
- a) Über die K Eingangswerte für alle Intervalle
- a1) wird die Anzahl der im jeweiligen Intervall liegenden Eingangswerte ermittelt
- a2) und/oder die Summe über die Anzahl der Eingangswerte im jeweiligen und allen dazu niedererwertigen (= niederwertigeren bzw. geringerwertigen) Intervallen ermittelt
- a3) und/oder die Summe über die Anzahl der Eingangswerte im jeweiligen und allen dazu höherwertigen Intervallen ermittelt.
-
Diese Schritte a1, a2, a3 sind Alternativen, wobei a1) die klassische Histogramm-Auswertung darstellt, während die Schritte a2) und a3) eine Summierung mit Hinblick auf die weitere Auswertung in Schritt b) durchführen.
- b) Anschließend wird das Intervall bestimmt, in welchem der R-kleinste und somit (K – R + 1)-größte der K Eingangswerte liegt; dazu kann entweder
- b1) das niederstwertige Intervall bestimmt werden, für welches die Summe über die Anzahl der Eingangswerte in diesem und allen dazu niedererwertigen Intervallen größer oder gleich R ist, d. h. dem gesuchten Intervall sich vom niederstwertigen Intervall aus genähert werden oder alternativ
- b2) das höchstwertige Intervall bestimmt werden, für welches die Summe über die Anzahl der Eingangswerte in diesem und allen dazu höherwertigen Intervallen größer oder gleich K – R + 1 ist, also dem gesuchten Intervall sich vom höchstwertigen Intervall aus genähert werden.
- c) Der Ausgangswert wird nun durch Interpolation innerhalb des in Schritt b) gefundenen Intervalls bestimmt.
-
Für die Interpolation in Schritt c) können diverse aus der Mathematik bekannte Algorithmen angewendet werden. Die Interpolation erfolgt vorzugsweise unter Berücksichtigung zumindest eines der nachfolgenden Parameter:
- c1) der Intervallgrenzen des in b) gefundenen Intervalls
- c2) der Anzahl der Eingangswerte in diesem Intervall,
- c3) der Summe über die Anzahl der Eingangswerte in allen niederer- oder höherwertigen Intervallen,
- c4) der Größe R
- c5) sowie gegebenenfalls Größen aus anderen, insbesondere benachbarten Intervallen.
-
Zur Durchführung von Schritt a) wird beispielsweise sukzessive für die einzelnen Eingangswerte bestimmt, im welchem Intervall der jeweilige Eingangswert liegt und dann die anfangs zu Null initialisierte Anzahl der Eingangswerte in diesem Intervall inkrementiert, d. h., es wird eine Häufigkeitsverteilung über die Intervalle gebildet. Nachfolgend wird für Schritt b) beginnend beim niederst- oder beim höchstwertigen Intervall in wertemäßig auf- bzw. absteigender Reihenfolge der Intervalle sukzessive die Summe über die Anzahl der Eingangswerte bis inklusive dem aktuell betrachteten Intervall so lange bestimmt, bis diese Summe zum ersten Mal größer oder gleich der Größe R bzw. K – R + 1 ist. Dieses Vorgehen besteht also in einer Summation der Anzahl der Eingangswerte je Intervall und einer nachfolgenden Summation über die Intervalle. Alternativ kann aber die Summation über die Intervalle auch simultan erfolgen. Dazu wird für jedes Intervall entweder
- • die anfangs zu Null initialisierte Summe über die Anzahl der Eingangswerte im jeweiligen und allen dazu niedererwertigen Intervallen inkrementiert
- • oder die anfangs zu Null initialisierte Summe über die Anzahl der Eingangswerte im jeweiligen und allen dazu höherwertigen Intervallen inkrementiert.
-
Ist jedem Intervall dabei ein Summierer zugeordnet, so ist der Endstand im Summierer eines Intervalls also immer die Summe über die Anzahl der Eingangswerte im jeweiligen und allen dazu niederer- bzw. höhenwertigen Intervallen, je nach Zählrichtung vom niederst- oder höchstwertigen Intervall aus. Ein Eingangswert im niederstwertigen Intervall führt also bei Zählung vom niederstwertigen Intervall her dann unmittelbar in allen Summierern zu einer Inkrementierung.
-
Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen und einer Fig. erläutert. Es zeigt:
-
1 Histogramm für die Anzahl der im jeweiligen Intervall liegenden Eingangswerte und der summierten Häufigkeit
-
Die
1 zeigt ein Histogramm für die Anzahl h(p) der im jeweiligen Intervall I
p liegenden Eingangswerte, die summierte Häufigkeit s
n(p) = h(P
0) + h(P
0 + 1) + ... + h(p) vom niederstwertigen bis zum jeweiligen Intervall I
p und die summierte Häufigkeit s
h(p) = h(P
0 + P – 1) + h(P
0 + P – 2) + ... + h(p) vom höchstwertigen bis zum jeweiligen Intervall I
p; p
R ist das kleinste p mit s
n(p) ≥ R bzw. gleichbedeutend das größte p mit s
h(p) ≥ K – R + 1, so dass im zugehörigen Intervall
der gesuchte Wert mit Rang R liegt.
-
Der zu betrachtende Zahlenbereich ist ohne Lücken in P nicht überlappende Intervalle Ip, p = P0, P0 + 1, ..., P0 + P – 1, aufgeteilt; die untere Grenze vom Intervall Ip sei gp-1 und die obere Grenze gp, so dass die Intervalle für aufsteigenden Index p einen aufsteigenden Wertebereich besitzen, wobei die Grenzen gp zu einem der beiden umgebenden Intervalle gehört. Eingangswerte außerhalb des zu betrachtenden Zahlenbereichs werden auf die unterste bzw. oberste Grenze abgebildet und dem niederst- bzw. höchstwertigen Intervall zugeordnet.
-
Der neue Algorithmus für eine soff- oder hardwaremäßige Implementierung gliedert sich in einer bevorzugten Ausführungsform in folgende Schritte:
- a) Über alle Intervalle Ip wird ein Histogramm für die Anzahl h(p) der im jeweiligen Intervall liegenden Eingangswerte bestimmt, d. h., für jeden der K Eingangswerte wird ermittelt, in welchem Intervall er liegt, um dann die anfänglich zu Null initialisierte Häufigkeit h(p) in diesem Intervall zu inkrementieren; das resultierende Histogramm ist in beispielhaft dargestellt.
- b) Aus diesem Histogramm wird bestimmt, bei welchem Intervall die summierte Häufigkeit sn(p) = h(P0) + h(P0 + 1) + ... + h(p) zum ersten Mal – vom niederstwertigen Intervall her betrachtet – den gesuchten Rang R erreicht oder übersteigt, d. h., das kleinste p = pR mit sn(p) ≥ R ist zu ermitteln (siehe ). Im so bestimmten Intervall liegt der gesuchte Wert mit Rang R.
- c) Durch Interpolation vorzugsweise aus den summierten Häufigkeiten sn(pR – 1) und sn(pR) vor und nach diesem Intervall sowie den Grenzen dieses Intervalls wird näherungsweise der gesuchte Wert mit Rang R bestimmt; für den Fall pR = P0 ist dazu sn(P0 – 1) = 0 zu definieren.
-
In Schritt b) könnte man auch vom höchstwertigen Intervall her suchen lassen, so dass die zwei letzten Schritte b) und c) wie folgt zu formulieren wären:
- b*) Aus diesem Histogramm wird bestimmt, bei welchem Intervall die summierte Häufigkeit sh(p) = h(P0 + P – 1) + h(P0 + P – 2) + ... + h(p) zum ersten Mal – vom höchstwertigen Intervall her betrachtet – den Wert K – R + 1 erreicht oder übersteigt, d. h., das größte p = pR mit sh(p) ≥ K – R + 1 ist zu ermitteln (siehe ). Im so bestimmten Intervall liegt der gesuchte Wert mit Rang R.
- c*) Durch Interpolation vorzugsweise aus den summierten Häufigkeiten sh(pR + 1) und sh(pR) vor und nach diesem Intervall sowie den Grenzen dieses Intervalls wird näherungsweise der gesuchte Wert mit Rang R bestimmt; für den Fall pR = P0 + P – 1 ist dazu sh(P0 + P) = 0 zu definieren.
-
Im Folgenden wird die Wahl der Intervalle und die in c) zu verwendende Interpolation noch näher erörtert; zuerst zur Wahl der Intervalle:
Die Intervalle sollten so gewählt werden, dass die Zuordnung der Eingangswerte zum jeweiligen Intervall, in welchem sie liegen, möglichst einfach ist. Damit ist die Wahl der Intervalle stark abhängig von der verwendeten Zahlendarstellung. Da auf digitalen Rechnern im Allgemeinen binäre Zahlendarstellungen benutzt werden, sollen im Folgenden nur diese betrachtet werden.
-
Zuerst zu den binären Gleitkommadarstellungen: Bei diesen Zahlendarstellungen eignet sich in ganz besonderer Weise der Exponent zur Einteilung der Intervalle, wobei für den Fall, dass sowohl positive als auch negative Eingangswerte auftreten können, zusätzlich noch das Vorzeichen des Werts zu betrachten ist.
-
Im allgemeinen Fall ist dann jeder Kombination aus Exponent und Vorzeichen ein Intervall zuzuordnen, was zweckmäßigerweise so geschieht, dass sich der Index des zu einem Wert gehörigen Intervalls möglichst einfach aus dem Exponenten und dem das Vorzeichen beschreibenden Bit des Werts bestimmen lässt. Die absolute Intervallbreite ist somit vom Betrag her mit dem Faktor 2 kaskadiert, während die relative Intervallbreite (also z. B. bezogen auf die Intervallmitte) konstant ist. Genügt eine um den Faktor 2u gröbere Rasterung der Intervalle, so kann man zur Einteilung der Intervalle die u niederstwertigen Bits des Exponenten weglassen. Ist eine feinere Rasterung der Intervalle nötig, so kann man von der Mantisse neben dem das Vorzeichen beschreibenden Bit noch zusätzlich die v höchstwertigen Bits betrachten. Können erstens die Eingangswerte nur in einem Teil des darstellbaren Zahlenbereichs liegen, und bzw. oder ist zweitens für den gesuchten Wert mit Rang R nur ein eingeschränkter Bereich von Interesse, so kann die Zahl der Intervalle entsprechend reduziert werden; im zweiten Fall kann man entweder die Eingangswerte im nicht interessierenden Zahlenbereich auf den entsprechenden Rand dieses Zahlenbereichs abbilden oder die Randintervalle entsprechend vergrößern.
-
Als Beispiel werde betrachtet, dass keine negativen Eingangswerte vorkommen können und dass ein ganzzahliger 8 bit-Exponent mit dem Wertebereich 0–255 vorliegt; dann kann als Index des zu einem Eingangswert gehörigen Intervalls einfach der Wert seines Exponenten benutzt werden.
-
Nun sollen die binären Festkommadarstellungen betrachtet werden. Bei diesen Zahlendarstellungen eignet sich in ganz besonderer Weise eine solche Aufteilung der Intervalle, dass ihre Breiten vom Betrag her mit dem Faktor 2 kaskadiert sind.
-
Im allgemeinen Fall ist dann jeder Kombination aus Vorzeichen und möglicher Position des Bits, welches zum Betrag den höchsten Anteil liefert, ein Intervall zuzuordnen; für die wichtigsten binären Festkommadarstellungen bedeutet dies:
- • bei vorzeichenloser Binärdarstellung ergibt sich der Index des zu einem Eingangswert gehörigen Intervalls eineindeutig aus der Position des höchstwertigen gesetzten Bits (= 1) und kann vorteilhafterweise einfach gleich dieser Position gewählt werden; auf Prozessoren gibt es häufig einen speziellen Befehl zur Bestimmung dieser Position,
- • bei der Vorzeichen-Betrag-Darstellung ergibt sich der Index des zu einem Eingangswert gehörigen Intervalls eineindeutig aus dem Vorzeichenbit und der Position des höchstwertigen gesetzten Betragsbits,
- • bei der Einer- und der Zweierkomplementdarstellung ergibt sich der Index des zu einem Eingangswert gehörigen Intervalls eineindeutig aus dem das Vorzeichen beschreibenden, höchstwertigen Bit (MSB) und dem höchstwertigen der nachfolgenden Bits, welches unterschiedlich zum MSB ist.
-
Genügt eine gröbere Rasterung der Intervalle, so kann man mehrere benachbarte Positionen des Bits, welches zum Betrag den höchsten Anteil liefert, auf ein Intervall abbilden. Ist eine feinere Rasterung der Intervalle nötig, so kann man zusätzlich zu dem Bit, welches zum Betrag den höchsten Anteil liefert, noch diesem Bit bzgl. betragsmäßig absteigender Wertigkeit unmittelbar nachfolgende Bits betrachten.
-
Können die Eingangswerte nur in einem Teil des darstellbaren Zahlenbereichs liegen, und bzw. oder ist für den gesuchten Wert mit Rang R nur ein eingeschränkter Bereich von Interesse, so kann die Zahl der Intervalle entsprechend reduziert werden.
-
Als Beispiel werde betrachtet, dass nur negative Eingangswerte vorkommen können und dass eine 32 bit-Zweierkomplementdarstellung vorliegt; dann kann als Index des zu einem Eingangswert gehörigen Intervalls einfach die zwischen 0 und 30 liegende Position des höchstwertigen Bits mit dem Bitwert 0 benutzt werden.
-
Nun zur Interpolation nach Schritt c) in dem in Schritt b) bestimmten Intervall, in welchem der gesuchte Wert mit Rang R liegt. Für diese Interpolation sind verschiedenste Methoden denkbar und möglich. Im folgenden sollen nur Interpolationsmethoden vom 0-ten und ersten Grad näher betrachtet werden, da diese sehr einfach zu implementieren sind.
-
Bei einer Interpolation 0-ten Grades wird zur näherungsweisen Bestimmung des gesuchten Werts mit Rang R typischerweise die untere Intervallgrenze, die obere Intervallgrenze, das arithmetische Mittel der beiden Intervallgrenzen oder ihr geometrisches Mittel benutzt. Eine Möglichkeit ist, von diesen Größen für alle Intervalle dieselbe zu verwenden – also z. B. immer das arithmetische Mittel der Intervallgrenzen. Man kann aber auch abhängig vom Intervall, in welchem der gesuchte Wert mit Rang R liegt, und bzw. oder den dortigen Verhältnissen unterschiedliche Größen wählen; Beispiele dafür sind:
- • spezielle Behandlung des niederst- und des höchstwertigen Intervalls,
- • Verwendung der unteren oder der oberen Intervallgrenze abhängig davon, ob die summierte Häufigkeit bis zur unteren oder bis zur oberen Intervallgrenze näher am gesuchten Rang liegt.
-
Eine im Allgemeinen bessere Approximation ist durch eine Interpolation ersten Grades erzielbar, welche wie folgt ausgeführt sein kann: Im Intervall
in welchem der gesuchte Wert mit Rang R liegt, liegen h(p
R) Werte. Diese h(p
R) Werte denkt man sich gleichverteilt in diesem Intervall und zwar derart, dass man dieses Intervall in h(p
R) gleich lange Bereiche unterteilt und in die Mitte jedes Abschnittes einen Wert setzt. Aus der unteren und der oberen Grenze
und
des betrachteten Intervalls
ergeben sich die h(p
R) gedachten gleichverteilten Werte dann zu
wobei s
n(p
R – 1) die summierte Häufigkeit über alle zum betrachteten Intervall
niedererwertigen Intervalle ist und s
n(p
R) = s
n(p
R – 1) + h(
pR) die summierte Häufigkeit inklusive diesem Intervall. Als Approximation ỹ für den gesuchten Wert mit Rang R wird nun derjenige Wert verwendet, welcher sich für eine solche Gleichverteilung ergeben würde, d. h. w
gv(R):
-
Man kann natürlich auch die vom höchstwertigen Intervall her summierte Häufigkeit s
h(p) verwenden; dann ergibt sich die Approximation ỹ für den gesuchten Wert mit Rang R, d. h. den (K – R + 1)-größten Wert, zu
-
Alternativ zu oben könnte man für die Lage der beiden äußeren Werte der im betrachteten Intervall angenommenen Gleichverteilung noch die Häufigkeiten in den umgebenden Intervallen berücksichtigen. Des weiteren wäre es möglich, die Gleichverteilung im logarithmischen statt im linearen Bereich anzunehmen, d. h. im Exponenten linear zu interpolieren; was besser geeignet ist, hängt von den statistischen Eigenschaften der Eingangswerte ab.
-
Die Güte der Approximation ist abhängig von:
- • Grad der Übereinstimmung von verwendeter Interpolation und statistischen Eigenschaften der Eingangswerte (mit linearer Interpolation sind meist gute Ergebnisse erzielbar),
- • Zahl K der Eingangswerte; je höher diese Zahl ist und je mehr Eingangswerte somit im Intervall mit dem gesuchten Wert liegen, desto geringer sind die statistischen Abweichungen und desto besser ist im Mittel das Ergebnis.
-
Ein eindimensionales Rangfilter berechnet zu jedem Zeitpunkt n = L·m, m = mu, mu + 1, ..., mo und L konstant sowie ganzzahlig, den Wert mit dem R-ten Rang von K aufeinanderfolgenden Werten eines Eingangssignals x(n), n = n, n + 1, ..., no. Wenn der Grad L der Dezimation kleiner als die Breite K des jeweils zu betrachtenden Segments des Eingangssignals ist, dann überlappen sich die in zwei aufeinanderfolgenden Zeitschritten m – 1 und m zu betrachtenden Segmente des Eingangssignals um K – L Werte – statt den L ältesten Eingangswerten x(L·[m – 1] + 1 – K), ..., x(L·m – K) im vorhergehenden Segment sind nun die L neusten Werte x(L·[m – 1) + 1), ..., x(L·m) zu berücksichtigen. Um im Zeitschritt m das Histogramm der Häufigkeiten zu bestimmen, genügt es, gegenüber dem sich im vorhergehenden Zeitschritt ergebenden Histogramm jeden der nicht mehr zu betrachtenden Eingangswerte x(L·[m – 1] + 1 – K), ..., x(L·m – K) zu eliminieren, d. h. im zugehörigen Intervall die Häufigkeit zu dekrementieren, und jeden der neu zu betrachtenden Eingangswerte x(L·[m – 1) + 1), ..., x(L·m) einzuordnen, d. h., im zugehörigen Intervall die Häufigkeit zu inkrementieren; dabei ist auf eine richtige Initialisierung zu achten.
-
Ohne Dezimation, d. h. für L = 1, ist zur Aktualisierung des Histogramms in jedem Zeitschritt nur ein alter Wert zu eliminieren und ein neuer Wert einzuordnen. Nun wird wieder ein beliebiges L < K betrachtet. Die Suche des Intervalls, in welchem der gesuchte Wert vom Rang R im Zeitschritt m liegt, kann bei dem sich im vorhergehenden Zeitschritt m – 1 ergebenden Intervall starten; die neue summierte Häufigkeit (im Zeitschritt m) vor oder nach diesem Startintervall kann aus der entsprechenden alten summierten Häufigkeit (im Zeitschritt m – 1) durch Dekrementierung bzw. Inkrementierung für nicht mehr bzw. neu zu berücksichtigende Eingangswerte im entsprechenden Bereich realisiert werden.
-
Bezüglich der Bestimmung der summierten Häufigkeiten sei nun noch folgendes bemerkt: Bei den meisten Implementierungen ist es sinnvoll, so, wie oben dargestellt, zuerst die Anzahl der Eingangswerte in den einzelnen Intervallen und dann durch sukzessives Akkumulieren die summierten Häufigkeiten zu bestimmen. Für einzelne Hardware-Implementierung kann es davon abweichend vorteilhaft sein, unmittelbar die summierten Häufigkeiten zu ermitteln, d. h., für jeden der K Eingangswerte wird ermittelt, in welchem Intervall er liegt, um dann die anfänglich zu Null initialisierten summierten Häufigkeiten sn(p) bzw. sh(p) in diesem und allen höher- bzw. niedererwertigen Intervalle zu inkrementieren.
-
Nun einige allgemeine Bemerkungen zum neuen Algorithmus zur approximativen Realisierung von Rangfiltern: Jeder Eingangswert muss nur einmal betrachtet werden, nämlich zur Bestimmung, in welchem Intervall er liegt. Daraus resultiert ein linearer Rechenaufwand bezüglich der Zahl K der Eingangswerte. Im Vergleich dazu haben Sortierverfahren bestenfalls eine Rechenaufwand proportional zu K·logK, so dass sich mit dem neuen Algorithmus insbesondere für große K eine hohe Reduktion des Rechenaufwandes ergibt. Bisher bekannte Histogrammverfahren haben zwar auch einen linearen Rechenaufwand bezüglich der Zahl K der Eingangswerte, aber zum einen ist ihr Rechenaufwand zur Auswertung des Histogramms und zum anderen ihr Speicherbedarf wesentlich höher, insbesondere, wenn die Eingangswerte viele unterschiedliche Zahlen annehmen können, was zumeist der Fall ist. Die Tatsache, dass für den neuen Algorithmus jeder Eingangswert nur einmal betrachtet werden muss, hat darüber hinaus den Vorteil, dass eine Zwischenspeicherung der K Eingangswerte im Gegensatz zu Sortierverfahren nicht notwendig ist; sobald ein Eingangswert anfällt, wird sein Intervall bestimmt und das Histogramm entsprechend aktualisiert – dann ist der Eingangswert nicht mehr von Interesse.
-
Daraus resultiert auch ein gegenüber Sortierverfahren reduzierter Speicherbedarf, sofern die Histogrammlänge P kleiner als die Zahl der Eingangswerte K ist. Aus diesen Betrachtungen ergibt sich, dass der neue Algorithmus insbesondere für eine hohe Zahl K an Eingangswerten den bisher bekannten Algorithmen hinsichtlich Rechenaufwand und Speicherbedarf deutlich überlegen ist; der Fehler, welcher durch den approximativen Charakter des neuen Algorithmus entsteht, ist – ein genügend großes K und eine adäquate Wahl der Intervalle vorausgesetzt – für die meisten Applikationen tolerierbar.
-
Abschließend soll als Anwendungsbeispiel ein Puls-Doppler-Radar für ACC-Anwendungen betrachtet werden. Der Aufbau eines solchen Systems einschließlich der Funktionsweise eines Rangfilters in einer solchen Anwendung ist bereits aus der
WO 03/107533 bekannt und kann knapper gefasst werden.
-
Ein solches Radar bestimmt jeden Zyklus in jedem Entfernungstor und jeder Antenne ein Leistungsspektrum über die Dopplerfrequenzen, um so in jeder räumlichen Zelle Ziele inklusive ihre Relativgeschwindigkeit detektieren zu können. Um in den Leistungsspektren Ziele vom Rauschen zu unterscheiden, ist eine geeignete Detektionsschwelle zu ermitteln. Beim betrachteten Radar besteht jedes der 120 Leistungsspektrum aus 128 Werten; die Detektionsschwelle wird 11 dB über dem 99-kleinsten Wert des jeweiligen Leistungsspektrums gelegt.
-
Da die Berechnung dieser Werte mit herkömmlichen Algorithmen auf dem verwendeten Gleitkomma-DSP zu aufwändig wäre und somit zu einer nicht tolerierbaren Erhöhung der Zykluszeit führen würde, wird der neue Algorithmus zur approximativen Realisierung von Rangfiltern eingesetzt. Zur Einteilung der Intervalle wird der Exponent der Gleitkommazahlen verwendet. Die Werte der Leistungsspektren sind positiv (sie stellen Beträge dar), durch entsprechende Normierung sind sie kleiner als 2, das Rauschen liegt etwa bei 10–8 ≈ 2–27, und die Mantisse der Gleitkommazahlen liegt zwischen 1 und 2. Das Histogramm wird deshalb über Exponenten von 0 bis –32 gebildet, wobei noch kleinere Exponenten auf den Exponenten –32 abgebildet werden (solch kleinen Werte liegen sicher deutlich unter dem 99-kleinsten Wert). Nach Bestimmung des Intervalls mit dem 99-kleinsten Wert wird eine lineare Interpolation im linearen Bereich durchgeführt. Die so resultierende Approximation des 99-kleinsten Werts weist nur einen relativ geringen Fehler auf, da beim zugehörigen und den benachbarten Exponenten immer zahlreiche Werte auftreten, so dass sich nur geringe statistische Abweichungen ergeben.