DE69634584T2 - Optische Abtaster - Google Patents

Optische Abtaster Download PDF

Info

Publication number
DE69634584T2
DE69634584T2 DE1996634584 DE69634584T DE69634584T2 DE 69634584 T2 DE69634584 T2 DE 69634584T2 DE 1996634584 DE1996634584 DE 1996634584 DE 69634584 T DE69634584 T DE 69634584T DE 69634584 T2 DE69634584 T2 DE 69634584T2
Authority
DE
Germany
Prior art keywords
signal
filter
edge
bar code
derivative
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE1996634584
Other languages
English (en)
Other versions
DE69634584D1 (de
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Symbol Technologies LLC
Original Assignee
Symbol Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/455,216 external-priority patent/US6170749B1/en
Priority claimed from US08/454,830 external-priority patent/US5734152A/en
Application filed by Symbol Technologies LLC filed Critical Symbol Technologies LLC
Publication of DE69634584D1 publication Critical patent/DE69634584D1/de
Application granted granted Critical
Publication of DE69634584T2 publication Critical patent/DE69634584T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10851Circuits for pulse shaping, amplifying, eliminating noise signals, checking the function of the sensing device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1452Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1478Methods for optical code recognition the method including quality enhancement steps adapting the threshold for pixels in a CMOS or CCD pixel sensor for black and white recognition

Description

  • Hintergrund der Erfindung
  • Diese Erfindung bezieht sich auf einen A/D-Umsetzer für einen optischen Leser, auf ein Verfahren zum Umsetzen eines analogen Abtastsignals, das ein gedrucktes Zeichen repräsentiert, in digitale Daten, auf einen optischen Leser und auf einen Strichcode-Scanner.
  • Wie im Gebiet bekannt ist, besitzen die hier verwendeten optischen Scanner und Signalprozessoren einen weiten Anwendungsbereich. Eine solche Anwendung ist das Lesen von Strichcodes, die an Produkten vorgesehen sind. Diese optischen Scanner werden allgemein als Strichcode-Scanner bezeichnet. Die durch die Scanner erzeugten Signale werden üblicherweise einer Rechenvorrichtung zugeführt, um sie zu decodieren und dadurch eine Identifizierung des Produkts zu liefern, auf das der Strichcode aufgetragen ist. Beispiele sind in fast jedem Supermarkt, Tankstellengeschäft, Kaufhaus usw. sowie in Lagern und in Fabriken, die Strichcode-Scanner für die Lagerbestands- und Produktionssteuerung verwenden, zu finden.
  • Zum Lesen von Strichcodesymbolen, die auf einem Etikett oder auf der Oberfläche eines Artikels erscheinen, sind bisher verschiedene optische Leser und optische Abtastsysteme entwickelt worden. Das Strichcodesymbol selbst ist ein codiertes Zeichenmuster, das eine Reihe angrenzender Striche und Zwischenräume verschiedener Breiten umfasst, wobei die Striche und Zwischenräume verschiedene Lichtreflexionseigenschaften besitzen.
  • Es gibt eine Anzahl verschiedener Strichcodenormen und -symboliken. Diese Symboliken umfassen z. B. UPC/EAN, Code 128, Codabar und Interleaved 2 of 5. Die Leser und Abtastsysteme decodieren jedes Symbol elektrooptisch, um mehrere alphanumerische Zeichen zu erzeugen, die den Artikel oder einige seiner Eigenschaften beschreiben sollen. Diese Zeichen werden typisch in digitaler Form als eine Eingabe in ein Datenverarbeitungssystem für Anwendungen bei der Kassenplatzverarbeitung, Lagerbestandsführung und dergleichen dargestellt. Abtastsysteme dieser allgemeinen Art sind z. B. in den US-Patenten Nr. 4.251.798; 4.360.798; 4.369.361; 4.387.297; 4.409.470 und 4.460.120 offenbart, die sämtlich auf Symbol Technologies, Inc., übertragen sind. Wie in einigen der obigen Patente offenbart ist, funktioniert ein üblicherweise verwendetes Beispiel eines solchen Abtastsystems dadurch, dass ein Symbol in einer Linie mit dem Laserstrahl abgetastet wird. Das aus abwechselnden rechteckigen reflektierenden und nicht reflektierenden Segmenten mit verschiedenen Breiten zusammengesetzte Symbol reflektiert einen Teil dieses Laserlichts. Daraufhin erfasst ein Photodetektor dieses reflektierte Licht und erzeugt ein elektrisches Signal, das die Intensität des empfangenen Lichts angibt. Die elektronische Schaltungsanordnung oder Software des Abtastsystems decodiert das elektrische Signal und erzeugte eine digitale Darstellung der durch das abgetastete Symbol repräsentierten Daten.
  • Ein Scanner enthält typisch eine Lichtquelle wie etwa einen Gaslaser oder einen Halbleiterlaser, der einen Lichtstrahl erzeugt. Die Verwendung von Halbleiterlasern als die Lichtquelle in Scanner-Systemen ist wegen ihrer kleinen Größe, niedrigen Kosten und niedrigen Leistungsanforderungen besonders erwünscht. Der Lichtstrahl wird, typisch durch eine Linse, optisch modifiziert, um in einem vorgeschriebenen Abstand einen Strahlfleck mit einer bestimmten Größe zu bilden. Vorzugsweise ist die Strahlfleckgröße nicht größer als etwa die Mindestbreite zwischen Bereichen mit verschiedenen Lichtreflexionsvermögen, d. h. den Strichen und Zwischenräumen, des Symbols.
  • Außerdem enthält ein Scanner ein Abtastbauelement und einen Photodetektor. Das Abtastbauelement kann entweder das Symbol mit dem Strahlfleck überstreichen und einer Abtastlinie an dem Symbol vorbei folgen oder das Gesichtsfeld des Scanners abtasten oder beides. Der Photodetektor besitzt ein Gesichtsfeld, das sich über das Symbol und etwas darüber hinaus erstreckt, wobei er so funktioniert, dass er von dem Symbol reflektiertes Licht erfasst. Das analoge elektrische Signal von dem Photodetektor wird typisch zuerst in ein impulsbreitenmoduliertes digitales Signal umgesetzt, wobei die Breiten den physikalischen Breiten der Striche und Zwischenräume entsprechen. Dieses Signal wird daraufhin gemäß der spezifischen Symbolik in eine Binärdarstellung der in dem Symbol für die so dargestellten alphanumerischen Zeichen codierten Daten decodiert.
  • In dem oben beschriebenen Stand der Technik kann eine A/D-Umsetzerschaltung verwendet werden, um das analoge Signal in eine digitale Darstellung zu übersetzen, die ein Digital Bar Pattern (oder DBP) genannt wird. Diese einfache digitale Darstellung der Daten arbeitet in vielen Situationen äußerst gut, obgleich sie gelegentlich irreparablen Fehlern unterliegen kann, falls mit dem zu lesenden Strichcodesymbol wesentliches Rauschen verknüpft ist. Bei dieser Darstellung des Standes der Technik kann eine einzige zusätzliche wegen des Rauschens erfasste oder verschobene Zusatzkante die richtige Decodierung verhindern.
  • Eine unkomplizierte Art, z. B. für eine aggressivere oder adaptive Decodierung eine genauere Darstellung des Strichcodes zu erfassen, wäre es, das analoge Signal über der Nyquist-Rate abzutasten, das analoge Signal im Speicher zu speichern und daraufhin Digitalsignalverarbeitungstechniken (DSP-Techniken) anzuwenden. Wegen der hohen Anzahl erforderlicher Abtastwerte und der nötigen schnellen Verarbeitung ist diese Lösung allerdings sehr teuer.
  • Dementsprechend besteht ein Bedarf an der Schaffung eines verhältnismäßig preiswerten und zuverlässigen Verfahrens zum Decodieren eines Zeichens (z. B. eines Strichcodesymbols), nachdem es das optische Erfassungssystem in eine verzerrte analoge Signalform gewandelt hat. Ein solcher Bedarf ist besonders dort akut, wo es erwünscht ist, das Symbol aggressiv zu decodieren, d. h. zu versuchen, es nach einer einzigen Abtastung zu decodieren.
  • Es ist eine Aufgabe von Ausführungsformen der vorliegenden Erfindung, diesen Bedarf erfüllen zu helfen.
  • Es ist eine weitere Aufgabe von Ausführungsformen der Erfindung, ein effizientes und wirtschaftliches Mittel zum Erfassen einer verbesserten Darstellung des Strichcodesignals zu schaffen.
  • Wo das analoge Signal, das die gelesenen Zeichen repräsentiert, analysiert wird, um lediglich die Zeiten zu übergeben, zu denen die Kanten (Übergänge zwischen Strichen und Zwischenräumen) – (DPB) an den Decodierer übergeben werden, sind nicht genug Informationen für einen optimalen Code verfügbar. Insbesondere kann der Decodierer nicht das Signal analysieren, indem er auf denselben Abtastdatenstrom verschiedene Rauschschwellenwerte anwendet. Um dieses Problem zu überwinden, kann an den Decodierer zusammen mit den Kantenzeiten ein Kantenstärkewert übergeben werden, der ein Vorzeichen besitzt, das den Kantentyp (Strich-Zwischenraum oder Zwischenraum-Strich) angibt, im Ergebnis dessen der Decodierer für denselben Abtastdatenstrom verschiedene Rauschschwellenwerte ausprobieren kann, indem er adaptiv anhand dieser Stärken Kanten hinzufügt oder entfernt. Allerdings ist es erwünscht, ein System zu schaffen, das auf diese Weise unter Verwendung der minimal erforderlichen Elektronik und Teile arbeiten kann und somit Anlass zu vereinfachter Herstellung und niedrigeren Kosten gibt. Ferner ist es erwünscht, bei einer Anordnung anzukommen, die sowohl für Standard- als auch für Hochgeschwindigkeits-Abtastmaschinen geeignet ist.
  • Außerdem ist nachgewiesen worden, dass die Signalverarbeitungs-Schaltungsanordnung bei der Abtastung gedruckter Zeichen wie etwa Strichcodes das empfangene Signal filtern muss und die Kanten in dem Signal erfassen muss, die von den Strich-Zwischenraum- oder Zwischenraum-Strich-Übergängen in dem gedruckten Strichcode ausgehen. Für die Ausführung dieser Operation gibt es derzeit viele Techniken; bekannte Filter enthalten Systeme mit "reellem Pol", "Bessel"-Systeme und "Butterworth"-Systeme. Ähnlich sind verschiedene Arten von Kantendetektoren einschließlich nichtlinearer Vorrichtungen wie etwa ein Kondensator für die Suche nach einer Änderung des Signals vorgeschlagen worden. In anderen Systemen wird aus dem Eingangssignal ein Signal der ersten Ableitung hergestellt, wobei die Spitzen der ersten Ableitung erfasst werden, die Übergänge repräsentieren. Außerdem kann ein Signal der zweiten Ableitung gebildet werden, in dem der Nulldurchgangspunkt identifiziert wird, der die Spitze der ersten Ableitung repräsentiert. Diese Systeme sind als Erste-Ableitung-A/D-Umsetzer bzw. Zweite-Ableitung-A/D-Umsetzer bekannt.
  • Ein Problem ist in bekannten Systemen das der Erfassung der Kanten der Übergänge bei gleichzeitiger Unterdrückung des Rauschens in dem Signal. Obgleich in der Kommunikationsindustrie Lösungen für dieses Problem vorgeschlagen worden sind, können diese Lösungen nicht direkt auf das Lesen gedruckter Zeichen wie etwa von Strichcodesymbolen angewendet werden. Zum Beispiel ist die Bitrate in einem Kommunikationssystem festgesetzt, während sich in einem Strichcode-Scanner die Bitrate, die das Inverse der Dauer des kleinsten Strichs oder Zwischenraum ist, je nach der Strichdichte, dem Abtastabstand und der Abtastgeschwindigkeit ändert. Obgleich die meisten Scanner eine feste Abtastrate haben, ändert sich außerdem je nach dem Ort in der Abtastzeile die momentane Abtastgeschwindigkeit in einem solchen Scanner innerhalb einer einzigen Abtastung. Außerdem kann die Abtastrate von Scannern von der Betriebsart abhängen. Darüber hinaus ist in Kommunikationssystemen ein Bitsynchronisationstakt verfügbar oder kann ein solcher entnommen werden, um zu bestimmen, wann das Ausgangssignal eines Filters abgetastet werden soll, während in einem Strichcodeabtastsystem kein solcher Takt verfügbar ist und entnommen werden kann, da die Abtastgeschwindigkeit nie konstant ist. Somit ist es insbesondere erwünscht, die Probleme der Filterung in einem System zu lösen, das nicht synchronisiert ist (in dem kein externer Takt verfügbar ist.
  • Es ist bekannt, dass der Laserstrahl in einem Scanner zu einer Taille konvergiert und daraufhin wieder divergiert, d. h., das Strichcodebild beginnt unter der Voraussetzung eines festen Laserbrennpunkts unscharf zu werden, während der Abtastabstand in irgendeiner Richtung von der Fokussierungsstelle (Taille des Laserstrahls zunimmt. Diese Unschärfe wird durch den wachsenden Laserfleck verursacht, der ein nahezu Gaußsches Intensitätsprofil aufweist, das die scharfen Kanten des gedruckten Strichcodes effektiv filtert. Somit macht dieser Filtereffekt die Kantenerfassung schwierig und fehlerhaft, falls sich der gewünschte Leseabstand ändert, wobei es erwünscht ist, dieses Problem zu lösen.
  • EP-A-0419226 offenbart eine Signalverarbeitungsschaltung mit einer Signaleingabeschaltung zur optischen Erfassung eines Strichcodes und zum Ausgeben eines ersten Signals, mit einer Differentialeinheit, die mit der Signaleingabeeinheit verbunden ist, zum Verstärken des ersten Signals, Differenzieren des ersten Signals, Filtern des ersten Signals und Ausgeben eines zweiten Signals; einer Vergleichsschaltung, die mit der Differentialeinheit verbunden ist, um das zweite Signal zu integrieren und ein drittes Signal auszugeben und das zweite Signal mit dem dritten Signal zu vergleichen und ein viertes Signal auszugeben; einer Schnittpegel-Erzeugungseinheit, die mit der Differentialeinheit verbunden ist, um eine Spitzenspannung des zweiten Signals zu halten; einer Auftastsignal-Ausgabeeinheit, die mit der Differentialeinheit und mit der Schnittpegel-Erzeugungseinheit verbunden ist, um das zweite Signal mit der positiven Schnittspannung und mit der negativen Schnittspannung zu vergleichen; und mit einer Signalausgabeeinheit, die mit der Vergleichseinheit und mit der Auftastsignal-Ausgabeeinheit verbunden ist, um das vierte Signal und die positive Schnittspannung einzugeben und ein Auftastsignal auszugeben, um ein binär codiertes Signal zu erhalten. Die unabhängigen Ansprüche sind gegenüber diesem Stand der Technik abgegrenzt.
  • EP-A-0653721 offenbart einen Mehrbit-A/D-Umsetzer für einen Strichcodeleser zum Erfassen der Anwesenheit von Kanten eines abgetasteten Strichcodesymbols und außerdem zum Messen der Stärke jeder erfassten Kante. Ein Polaritäts- oder Kantenrichtungssignal gibt die Richtung jeder erfassten Kante an, während ein Synchronisiersignal den Zeitpunkt und außerdem mittels einer veränderlichen Impulsbreite die Stärke jeder Kante repräsentiert. Falls die gemessene an den Scanner-Motor des Strichcodelesers angelegte Spannung höher oder niedriger als definierte Grenzwerte ist, gibt ein Auftastsignal an, dass die Daten unzuverlässig und ungültig sind. Irgendwelche Abtastungen, die mit einer Geschwindigkeit ausgeführt wurden, die zu hoch oder zu niedrig war, werden zurückgewiesen.
  • Zusammenfassung der Erfindung
  • Gemäß einem Aspekt der Erfindung wird ein A/D-Umsetzer für einen optischen Leser geschaffen, mit: einem Sensormittel zum Erfassen von Licht, das von einem gedruckten Zeichen reflektiert wird, und zum Erzeugen eines analogen Abtastsignals, das dieses Licht repräsentiert; einem Ableitungsmodul, in das das Abtastsignal eingegeben wird, um ein Ableitungsausgangssignal zu erzeugen, das die erste Ableitung des Abtastsignals repräsentiert; gekennzeichnet durch einen Kantenstärkendetektor, der so beschaffen ist, dass er eine Angabe der Kantenstärke, die durch das Ableitungsausgangssignal repräsentiert wird, schafft, indem er das Ableitungsausgangssignal mit mehreren vorgegebenen Schwellenwerten vergleicht, wobei der Signalstärkendetektor so beschaffen ist, dass die vorgegebenen Schwellenwerte nichtlinear voneinander beabstandet sind.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Leser zum Lesen optischer Zeichen geschaffen, der einen A/D-Umsetzer des ersten Aspekts enthält.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Verfahren zum Umsetzen eines analogen Abtastsignals, das ein gedrucktes Zeichen repräsentiert, in digitale Daten geschaffen, wobei das Verfahren das Bilden der ersten Ableitung des Signals mit einem Mittel für die erste Ableitung umfasst, gekennzeichnet durch: Eingeben des ersten Ableitungssignals in ein Kantenstärken-Erfassungsmittel, das so beschaffen ist, dass es eine Angabe der Kantenstärke, die durch das Signal der ersten Ableitung repräsentiert wird, schafft und das Ableitungssignal mit mehreren vorgegebenen Schwellenwerten vergleicht, wobei der Signalstärkendetektor so beschaffen ist, dass die vorgegebenen Schwellenwerte nichtlinear voneinander beabstandet sind.
  • Gemäß einem nochmals weiteren Aspekt der Erfindung wird ein optischer Leser geschaffen, der einen A/D-Umsetzer gemäß dem ersten Aspekt und einen Scanner umfasst, der mit einem Lichtstrahl ein gedrucktes Zeichen abtastet, das Bereiche mit unterschiedlichem Lichtreflexionsvermögen, die zwischen sich Kanten definieren, besitzt; wobei das Sensormittel einen Detektor umfasst, der so beschaffen ist, dass er ein elektronisches Signal erzeugt, das eine Amplitudenänderung besitzt, die die Änderung des Reflexionsvermögens des Zeichens repräsentiert.
  • Gemäß einem abermals weiteren Aspekt der Erfindung wird ein Strichcode-Scanner geschaffen, der einen Scanner zum Abtasten eines Strichcodes mit einem Lichtstrahl umfasst, wobei ein solcher Strichcode eine Reihe von miteinander verschachtelten Strichen und Zwischenräumen aufweist, wobei jeder Strich und jeder Zwischenraum zwischen sich einen angrenzenden Kantenbereich aufweisen, wobei eine solche Vorrichtung ein elektrisches Signal erzeugt, das sich in Übereinstimmung mit dem Lichtreflexionsvermögen des Strichcodes ändert, wenn die Vorrichtung den Strichcode mit dem Lichtstrahl abtastet; einen A/D-Umsetzer gemäß dem ersten Aspekt der Erfindung, wobei das Sensormittel einen Detektor umfasst, um ein elektrisches Signal zu erzeugen, das eine Amplitude besitzt, die sich in Übereinstimmung mit dem Lichtreflexionsvermögen des Strichcodes ändert, wenn die Vorrichtung den Strichcode mit dem Lichtstrahl abtastet; und ein Verbesserungsfilter, das mit dem Ausgang der Differenziererschaltung gekoppelt ist, um die von der Differenziererschaltung erzeugten Impulse zu modifizieren, wobei eine solche Modifikation die Erhöhung der Anstiegszeit und des Spitzenpegels der durch die Differenziererschaltung erzeugten Impulse umfasst.
  • Kurzbeschreibung der Zeichnung
  • 1 ist ein Blockschaltplan eines Strichcode-Scanners gemäß der Erfindung;
  • 2 ist ein Blockschaltplan eines Lichterfassungsabschnitts und eines Mehrbit- A/D-Umsetzers, die in einem Prozessor des Strichcode-Scanners aus 1 verwendet werden;
  • 3A, 3B sind Zeithistorien von durch den Scanner aus 1 erzeugten Signalen;
  • 3A zeigt ein durch einen in dem Scanner verwendeten Detektor erzeugtes Ausgangssignal;
  • 3B zeigt das Ausgangssignal, das durch eine Differenziererschaltung erzeugt wird, die zum Differenzieren des durch den Detektor erzeugten und in 3A gezeigten Signals verwendet wird; und
  • 3C zeigt das Strichcodemuster, das durch den Scanner abgetastet wird, um die Signale in den 3A und 3B zu erzeugen;
  • 4 ist ein Prinzipschaltbild einer in dem Lichterfassungsabschnitt aus 2 verwendeten Differenziererschaltung;
  • 5 ist ein Prinzipschaltbild einer in dem Lichterfassungsabschnitt aus 2 verwendeten Filter/Verstärker-Stufe;
  • 6 ist ein Prinzipschaltbild einer in dem Lichterfassungsabschnitt aus 2 verwendeten Schaltung für die automatische Verstärkungssteuerung (AGC-Schaltung);
  • 7 ist ein Prinzipschaltbild eines Verbesserungsfilters, das in dem Lichterfassungsabschnitt aus 2 verwendet wird;
  • 8A und 8B sind Zeithistorien von durch den Scanner aus 1 erzeugten Signalen vor dem Durchgang durch das Verbesserungsfilter aus 7; und 8C zeigt die Spitzen in den in 8B erzeugten Signalen;
  • 9A und 9B sind Zeithistorien von durch den Scanner aus 1 erzeugten Signalen vor dem Durchgang durch das Verbesserungsfilter aus 7, wobei die Zeithistorie aus den 9A und 9B für eine Abtastfleckgröße ist, die größer als die in den 8A und 8B verwendete Abtastfleckgröße ist; 9C zeigt die Spitzen in den in 9B erzeugten Signalen;
  • 10 zeigt die Frequenzantwort des Verbesserungsfilters aus 7;
  • 11 zeigt die Polstellen und Nullstellen des Verbesserungsfilters aus 7;
  • 12 ist ein Prinzipschaltbild einer in dem Mehrbit-A/D-Umsetzer aus 2 verwendeten Randerfassungsschaltung;
  • 13 ist ein Prinzipschaltbild einer in dem Mehrbit-A/D-Umsetzer aus 2 verwendeten Doppelweggleichrichterschaltung;
  • 14 ist ein Prinzipschaltbild einer in dem Mehrbit-A/D-Umsetzer aus 2 verwendeten Kantenerfassungsschaltung;
  • 15 ist ein Prinzipschaltbild einer in dem Mehrbit-A/D-Umsetzer aus 2 verwendeten Schwellenwerterfassungsschaltung;
  • 16 ist ein Prinzipschaltbild einer in dem Mehrbit-A/D-Umsetzer aus 2 verwendeten Synchronisationssteuerungs-Logikschaltung;
  • 17 ist ein Prinzipschaltbild einer in der Synchronisationssteuerungs-Logikschaltung aus 16 verwendeten Logikschaltung;
  • 18 ist ein Prinzipschaltbild einer in dem Mehrbit-A/D-Umsetzer aus 2 verwendeten Polaritätserzeugungsschaltung;
  • 19 ist ein Ablaufplan, der den Betrieb eines in dem Prozessor aus 1 verwendeten Decodierers zeigt; und
  • 20 ist ein Zeitablaufplan, der nützlich beim Verständnis des Decodierers ist;
  • 21 ist ein ungeglättetes Histogramm, das von dem Decodierer bei der Festsetzung eines Rauschschwellenpegels für den Decodierer verwendet wird;
  • 22 ist ein ungeglättetes Histogramm, das aus dem ungeglätteten Histogramm aus 21 konstruiert worden ist und von dem Decodierer bei der Festsetzung eines Rauschschwellenpegels für den Decodierer verwendet wird;
  • 23 ist ein Ablaufplan, der von dem Decodierer bei der Bestimmung des Rauschschwellenpegels verwendet wird;
  • 24 ist ein Diagramm, das die Zeithistorie von durch einen Lichterfassungsabschnitt des Scanners aus 1 ohne das Verbesserungsfilter aus 7 erzeugten Signalen zeigt; und
  • 25 ist ein Diagramm, das die Zeithistorie der Signale in 24 nach dem Durchgang durch das Verbesserungsfilter aus 7 zeigt.
  • 26A ist eine beispielhafte Zeithistorie von Synchronimpulssignalen, die mit dem Scanner aus 1 erzeugt worden sind; 26B ist eine Synchronisationshistorie von Polaritätssignalen, die den beispielhaften Synchronimpulssignalen in 26B zugeordnet sind;
  • und 26C ist eine Synchronisationshistorie der Umsetzung der Synchronimpulssignale und der Polaritätssignale aus den 26A und 26B.
  • 27A ist eine weitere beispielhafte Synchronisationshistorie der mit dem Scanner aus 1 erzeugten Synchronimpulssignale; 27B ist eine Synchronisationshistorie von Polaritätssignalen, die den beispielhaften Synchronimpulssignalen in 27B zugeordnet sind; und 27C ist eine Synchronisationshistorie der Umsetzung der Synchronimpulssignale und der Polaritätssignale der 27A und 27B.
  • 28 zeigt eine Kantenstärken-A/D-Umsetzerarchitektur;
  • 29 repräsentiert ein von einem verrauschten Strichcode abgeleitetes Signal;
  • 30 repräsentiert das doppelweggleichgerichtete Signal der ersten Ableitung des analogen Signals aus 29;
  • 31a zeigt eine Implementierung einer Nulldurchgangsschaltung;
  • 31b zeigt eine Bank von Komparatoren für drei Schwellenwerte;
  • 31c zeigt die Histogrammkästen für ein gegebenes Signal;
  • 32 zeigt einen Kantenstärkendetektor, der eine automatische Verstärkungssteuerung enthält;
  • 33 ist ein Blockschaltplan eines Standard-A/D-Umsetzers der ersten Ableitung;
  • 34 ist ein Blockschaltplan eines Strichcode-Kantendetektors;
  • 35 zeigt die Impulsantwort eines ideal angepassten Filters und eines näherungsweise angepassten Filters;
  • 36a zeigt ein Filtersystem erster Ordnung;
  • 36b zeigt ein allgemeines biquadratisches Filter;
  • 36c zeigt ein Tiefpass-Mehrfachrückkopplungs-Verstärkerfilter mit unendlicher Verstärkung;
  • 36d ist ein Blockschaltplan eines insgesamt angepassten Filters;
  • 37 zeigt die Polstelle und die Nullstellen für ein näherungsweise angepasstes Filter;
  • 38 zeigt einen Vergleich der Impulsantworten von fünf verschiedenen Filtertypen;
  • 39 zeigt die Antworten der fünf verschiedenen Filter aus 38 auf eine Strichcodekante;
  • 40 zeigt ein reflektiertes verrauschtes Strichcodesignal mit starker Unschärfe (Fleck/Modul-Größe = 2,8);
  • 41 zeigt eine Implementierung eines Pegelquantisierers;
  • 42 zeigt das doppelweggleichgerichtete Signal der ersten Ableitung des analogen Signals aus 40;
  • 43 zeigt die Impulsantwort von zwei verschiedenen näherungsweise angepassten Filtern;
  • 44 zeigt ein Unschärfeentfernungssystem des Standes der Technik, das ein elektronisches Verbesserungsfilter verwendet;
  • 45 zeigt ein Unschärfeentfernungssystem des Standes der Technik, das ein Laserfokussierungsmodul verwendet;
  • 46 zeigt ein Unschärfeentfernungssignal mit geschlossenem Regelkreis, das ein Verbesserungsfilter verwendet;
  • 47 zeigt ein Unschärfeentfernungssystem mit geschlossenem Regelkreis, das ein Laserfokussierungsmodul verwendet;
  • 48 veranschaulicht die Funktion des Spitzenlokalisiererblocks der 46 und 47;
  • 49 veranschaulicht den Betrieb des Spitzenlokalisiererblocks der 46 und 47;
  • 50 veranschaulicht die Funktion und den Betrieb des Spitzenlokalisiererblocks der 46 und 47;
  • 51a zeigt die Implementierung eines Spitzenlokalisiererblocks;
  • 51b zeigt die Schwellengrenzwerte und die Spitzen, wenn ein Bild fokussiert ist;
  • 52 zeigt die Schwellengrenzwerte und die Spitzen, wenn das Bild unscharf ist;
  • 53 ist ein Algorithmus zur Unschärfeentfernung, wenn ein abstimmbares elektronisches Verbesserungsfilter verwendet wird;
  • 54 ist ein Algorithmus zur Unschärfeentfernung, wenn ein Fokussierungsmodul verwendet wird;
  • 55 ist ein Blockschaltplan einer beispielhaften Vorrichtung zur Verwendung mit einem Verfahren;
  • 56 zeigt ein beispielhaftes Verfahren zum Decodieren eines Strichcodesignals;
  • 57 ist ein Ablaufplan des Betriebs des in 55 gezeigten Decodierers;
  • A.1 zeigt einen Korrelationsempfänger für binäre Signale; und
  • A.2 zeigt ein angepasstes Filter, das für binäre Signale empfangen wird.
  • Beschreibung der bevorzugten Ausführungsformen
  • In einem Aspekt bezieht sich die Erfindung auf einen preiswerten adaptiven Mehrbit-A/D-Umsetzer für Standard- und Hochgeschwindigkeits-Scanner. Obgleich die folgende Diskussion auf Strichcode-Scanner beschränkt ist, ist aus der folgenden Diskussion tatsächlich klar, dass die Erfindung in irgendein System integriert werden kann, das optische Empfänger nutzt.
  • Standard-A/D-Umsetzer leiden an dem Problem, dass, während ihre Empfindlichkeit erhöht wird, um Symbole mit höherer Dichte zu bewältigen, ein Risiko besteht, dass Fehler als zu lesende Zeichen interpretiert werden können, wenn schlecht gedruckte Symbole festgestellt werden, wobei im Ergebnis dessen die Abtastzeit und -effizienz und die Verarbeitung des Signals erhöht werden können, um das Rauschproblem zu überwinden. Dies führt zu einem Verlust an "Aggressivität" für den Scanner als Ganzes.
  • Dieses Problem ist durch die Anwendung mehrerer Schwellenwerte für die gleiche Abtastung behandelt worden, wobei die Hardware in diesen Systemen aber nicht leicht für schnellere Abtastmaschinen skaliert werden kann. Alternativ ist es dort, wo Systeme leicht für schnellere Abtastmaschinen skaliert werden können, nicht möglich, mehrere Schwellenwerte an der gleichen Abtastung auszuführen.
  • Somit ist es erwünscht, einen Decodierungsalgorithmus mit einem A/D-Umsetzer mit ausreichend Informationen über die erfassten Kanten zu schaffen, damit die Wahrscheinlichkeit der Decodierung schlecht gedruckter Strichcodes stark verbessert wird, ohne Decodierungsleistungsfähigkeit über die Strichcodes mit hoher Dichte zu verlieren. Außerdem ist es erwünscht, Signale zu verarbeiten, bei denen zwei angrenzende Kanten mit der gleichen Polarität gemeinsam ermittelt werden. Dies führt zu der nützlichen Fähigkeit, mehrere Schwellenwerte an den gleichen Abtastdaten zu versuchen, wo alle gültigen und möglicherweise ungültigen Kantenorte und -stärken verfügbar sind. In Fällen, in denen ein Strichcodesymbol während eines einzelnen Überstreichens nur von wenigen Abtastungen überquert wird, verbessert die Fähigkeit, verschiedene Rauschschwellenwerte in den gleichen Abtastdaten zu versuchen, die Wahrscheinlichkeit der Decodierung.
  • In 28 ist eine preiswerte Architektur gezeigt, die sowohl für Standard- als auch für Hochgeschwindigkeitsscanner geeignet ist. Wie im Folgenden ausführlicher beschrieben wird, ist die Architektur adaptiv, da sie durch Abstimmen lediglich der Ableitungsfunktionen leicht für die Abstimmbarkeit umgesetzt werden kann. Dies steht im Gegensatz zu früheren Anordnungen, die wegen der Verwendung von "Synchronisationspolaritäts"-Signalen zur Codierung der Kantenzeit und -stärke nicht leicht für höhere Geschwindigkeiten neu konstruiert werden konnten.
  • Das in 28 gezeigte System kann in einem Strichcodeleser implementiert werden, der einen Abtastkopf und einen Hauptkörper umfasst, so dass die Grundabtastdaten analysiert werden und von dem Abtastkopf ein Signal ausgegeben wird, das die erste Ableitung des analogen Signals repräsentiert. Die Bedeutung der ersten Ableitung wird im Folgenden ausführlicher diskutiert. Im Hauptkörper des Strichcodelesers, der einen Decodierungsanschluss umfassen kann, kann der Rest der Schaltungsanordnung untergebracht sein. Diese Anordnung verringert die Anzahl der Signalleitungen zwischen dem Abtastkopf und dem Decodierungsanschluss.
  • Es ist bekannt, eine Analyse eines analogen Signals, das ein Strichcodesymbol repräsentiert, dadurch auszuführen, dass die erste Ableitung dieses Signals gebildet wird. In 29 ist ein verrauschtes Strichcodesignal gezeigt. Das Rauschen kann z. B. durch Fehler in dem zu lesenden Symbol, durch Umgebungsrauschen oder durch "Unschärfe", die z. B. wegen der endlichen Fleckgröße des Abtaststrahls vorkommen kann, eingeführt werden. Das Strichcodesymbol, das gelesen wird, ist durch die Strichlinie repräsentiert, die das ideale Reflexionsvermögen zeigt, bei dem die hellen Abschnitte des Strichcodesymbols das Reflexionsvermögen 1 und die dunklen Abschnitte des Strichcodesymbols das Reflexionsvermögen 0 haben. 30 zeigt die Informationen, die durch Bilden der ersten Ableitung des verrauschten Signals abgeleitet werden können – es ist zu sehen, dass das Ableitungssignal an jedem Übergang von einem dunklen Gebiet (Strich) zu einem hellen Gebiet (Zwischenraum) und umgekehrt Spitzen enthält. Das gezeigte Signal ist doppelweggleichgerichtet.
  • Die Spitzen und Täler des Signals der ersten Ableitung sind gute Indikatoren der "Kantenstärke", d. h. der Qualität des Übergangs zwischen den Gebieten mit verschiedenem Reflexionsvermögen sowie des Pegels der Faltungsverzerrung.
  • Es wird vorgeschlagen, auf die Spitzen und Täler eines Signals der ersten Ableitung eine nichtlineare Quantisierung anzuwenden. Wie im Folgenden ausführlicher erläutert wird, sind lediglich zwei bis drei Quantisierungsbits über und unter der Referenzspannung ausreichend, um die relativen Kantenstärken zu klassifizieren. Somit sind die Informationen für eine Mehrbitverarbeitung geeignet, während kein herkömmlicher Analog/Digital-Konverter mit allen Merkmalen erforderlich ist. Stattdessen wird eine Bank von Komparatoren mit nichtlinearen oder kompandierenden Schwellenwerten über und unter einer Referenzspannung verwendet. Da der herkömmliche Analog/Digital-Konverter beseitigt ist, wird die Latenzzeit oder Verzögerung der Umsetzungszeit vermieden, so dass die Kantenstärkedaten sofort für den Decodierer verfügbar sind und der A/D-Umsetzer zu Abtastgeschwindigkeiten fähig ist, die lediglich durch die Datenverarbeitungsgeschwindigkeit des Decodierers begrenzt sind. Im Wesentlichen implementiert die Technik einen Log2(N)-Flash-Analog/Digital-Konverter mit nichtlinearen Quantisierungspegeln (ähnlich der U-LAN- und A-LAW-Kompandierung, die in PCM-Telephonsystemen verwendet wird), wobei N die Anzahl der Bits in einem herkömmlichen Analog/Digital-Konverter ist.
  • Wieder anhand von 28 ermöglichen die Detektoren 501, 501' für positive und negative Spitzen, dass die Schwellenwerte einer Bank von Komparatoren 502 die Signalstärke verfolgen, wenn in dem Abtastkopf keine automatische Verstärkungssteuerung verfügbar ist. Im Ergebnis wird über die gesamte Arbeitsreichweite des Scanners eine maximale Auflösung erreicht. Das System schafft ein Fenster mit Schwellenwerten, die durch ein Spannungsteiler-Widerstandsnetz eingestellt werden, das symmetrisch um die Referenzspannung ist. Die Schwellenwerte können auf kompandierende Weise angeordnet sein, so dass in der Nähe der Referenzspannung, wo die Kantenstärken klein sind, eine größere Auflösung verfügbar ist. Alternativ können die Schwellenwerte auf andere Weise angeordnet sein, um am besten an das Merkmal der erwarteten Signale anzupassen.
  • Das System enthält einen Vorverstärker und geeignete Filter 503 zur Vorverarbeitung des Eingangssignals in ein Modul 504 der ersten Ableitung, das ein Signal ausgibt, das für die erste Ableitung des vorverarbeiteten Signals repräsentativ ist. Außerdem enthält das System ein Modul 505 der zweiten Ableitung und einen Nulldurchgangsdetektor 506. Es ist klar, dass der Nulldurchgangsdetektor jedes Mal ein Signal ausgibt, wenn das Signal der zweiten Ableitung die Nulllinie durchquert, was einer Spitze oder einem Tal in dem Signal der ersten Ableitung entspricht. Die Kombination des Moduls 505 der zweiten Ableitung und des Nulldurchgangsdetektors 506 liefert somit über den Kantenimpulsdetektor 508 sowohl die Kantenpolarität (Strich-Zwischenraum oder Zwischenraum-Strich) als auch die Kantenzeiten an den Mikrocontroller 507. Es wird ermittelt, dass der Kantendetektor, der auf der zweiten Ableitung beruht, sehr empfindlich ist, im Ergebnis dessen die zuvor vorgeschlagenen Verbesserungsfilter vernachlässigbare Leistungsfähigkeitsvorteile beim Lesen hochdichter Symbole bieten.
  • In 31a ist eine Implementierung der Nulldurchgangsschaltung gezeigt. 31a zeigt die zweite Ableitung, die in den positiven Anschlussstift eines Differenzverstärkers 520 eingegeben wird, während der negative Anschlussstift an Masse läuft. Der Ausgang liefert eine Kantenpolarität und einen Zeitwert, der ebenfalls direkt zu einem Eingang eines Exklusiv-ODER-Gatters 521 und parallel über einen Widerstand R zu dem anderen Eingang läuft, wobei zwischen dem Widerstand R und dem Eingang eine Masseverbindung vorgesehen ist, die über den Kondensator C geleitet ist. Das Ausgangssignal des Exklusiv-ODER-Gatters ist ein Kantenzwischenspeichersignal.
  • Die Kompandierungsanordnung 502 kann von irgendeinem geeigneten bekannten Typ sein, der dem Fachmann bekannt ist. Insbesondere ist der Begriff "Kompandierungsanordnung" in einem allgemeinen Sinn gemeint, der angibt, dass kleineren Werten eine größere Auflösung gegeben wird, während größeren Werten eine kleinere gegeben wird. Somit sind die Fensterpegel für niedrige Spannungswerte nahe beieinander und für größere Werte weiter voneinander entfernt.
  • Die Schwellenwertanordnung ist nicht notwendig logarithmisch, wie es der Begriff "Kompandierungsanordnung" bedeuten kann. Dem Fachmann ist klar, dass die Schwellenspannungen unter Berücksichtigung vieler Parameter des Systems wie etwa der Laserfokussierung, der Laserleistung, den erwarteten Umgebungslichtbedingungen, dem Typ und der Qualität der Strichcodes, von denen erwartet wird, dass sie der Scanner liest, und dem Pegel des in dem System erzeugten elektronischen und Sprenkelrauschens bestimmt werden.
  • Zum Beispiel kann sich der Fachmann dafür entscheiden, den ersten Schwellenwert über dem Pegel des elektronischen Rauschens, einen zweiten Schwellenwert direkt über dem Rauschpegel, der sich aus einer Kombination des elektronischen Rauschens zuzüglich des Sprenkelrauschens ergibt, und einige wenige weitere Schwellenwerte über den vorangehenden beiden, jedoch je nach der Qualität und dem Typ des Strichcodes, dessen Abtastung erwartet wird, anzuordnen. Zum Beispiel können Sprenkel und Leerräume in schlecht gedruckten Strichcodes zu Signalpegeln führen, die sowohl höher als das elektronische Rauschen als auch als das Sprenkelrauschen sind und unterschieden werden müssen.
  • Offensichtlich ist eine solche Anordnung von Schwellenwerten wahrscheinlich nichtlinear. Das Spannungsteilernetz wird in der Weise eingestellt, dass diese vorgegebenen Schwellenwerte erzeugt werden. Eine Bank von Komparatoren vergleicht das eingegebene Signal der ersten Ableitung mit diesen Schwellenwerten. Alle Komparatoren, die Eingangssignale erfassen, die höher als ihr entsprechender Referenzschwellenwert sind, stimmen ihrer Ausgabe zu. Zum Beispiel ist die Anordnung für log2(N) = 3 Schwellenwerte in 31b gezeigt. An die positiven Eingänge der drei Komparatoren 529a, 529b, 529c wird das Signal der ersten Ableitung angelegt und an die negativen Eingänge der jeweiligen Komparatoren 529a, 529b, 529c wird jeweils eine erste, eine zweite und eine dritte Schwellenwertspannung V1, V2, V3 angelegt, wobei die Schwellenwerte durch die Widerstände R1 bis R4 in einem Spannungsteiler eingestellt sind. Die Komparatoren geben an einen Zwischenspeicher 530 in einem System 531 aus. Die Kompandierungsanordnung der Komparatoren richtet einen groben nichtlinearen Histogrammkastenindikator ein, im Ergebnis dessen die Kantenstärken in Kantenstärkenkästen klassifiziert werden können. Um die optimalen Schwellenwerte und ihre Anordnung zur Klassifizierung dieser Kantenstärkenkästen zu bestimmen, kann eine durch die F.A.T.-Ausstattung oder einen Fachmann auf dem Gebiet der Konstruktion von A/D-Umsetzern gesammelte Datenbank von Mehrbitdaten genutzt werden. Da vorgeschlagen wird, sich auf zwei bis drei Quantisierungsbits über und unter der Referenzspannung zu stützen, sind wenige Kantenstärkenkästen innerhalb der drei Quantisierungsbits zu verarbeiten, wobei ein Algorithmus, der die Kantenstärkedaten verwenden kann, weniger Rechenbetriebsmittel erfordert und somit deutliche Vorteile gegenüber vorhandenen Systemen schafft.
  • In 31c sind die in dem Zwischenspeicher 530 eingestellten Histogrammkästen gezeigt. Es sind sechs mit E1 bis E6 bezeichnete Kästen gezeigt, die sechs Kantensignalabtastungen entsprechen. Das Histogramm für die gesamte Abtastung ist mit Et bezeichnet gezeigt und liefert die bei 540 gezeigte Verteilung. Es ist zu sehen, dass die zwischengespeicherten Werte von jedem der Komparatoren 529a, 529b, 529c an jeweiligen Stellen L1, L2 und L3 gehalten werden. Das Histogramm für die gesamte Abtastung Et zeigt, dass eine Kante über den höchsten Schwellenwert (V3) ging, drei Kanten über den zweithöchsten Schwellenwert (V2), aber unter V3, gingen und zwei Kanten über den untersten Schwellenwert (V1), aber unter V2, gingen.
  • 32 zeigt eine alternative Anordnung, in der eine automatische Verstärkungssteuerung 509 integriert ist. Die automatische Verstärkungssteuerung 509 empfängt ein Eingangssignal von dem Vorverstärker und von den Filtern 503 und gibt eine geeignet gesteuerte erste Ableitung aus. Somit können die anhand von 28 beschriebenen Detektoren für positive und negative Spitzen durch einen schwebenden bzw. einen festen Schwellenwert ersetzt werden. Das System ist so beschaffen, dass das Nulldurchgangs-Ausgangssignal für positive Spitzen der ersten Ableitung hochgeschaltet wird, im Ergebnis dessen die Fensterkomparatoren ihren Schwellenwert nun von einer höheren Spannungsschiene ableiten (siehe das Spannungsteilernetz 510). Für negative Spitzen der ersten Ableitung gilt die entgegengesetzte Situation. Im Ergebnis kann die Schaltung verwendet werden, um die Quantisierungsauflösung zu verdoppeln oder damit die halbe Anzahl Komparatoren benötigt wird.
  • In bestimmten Fällen können einige Täler des Signals der ersten Ableitung nicht unter die Referenzspannung fallen und einige Spitzen gleichfalls nicht über die Referenzspannung steigen. In diesen Fällen und wo festgesetzt ist, dass eine gültige Strichcodedatenfolge gelesen worden ist, muss der A/D-Umsetzer wissen, ob die betreffende Spitze oder das betreffende Tal über oder unter der Referenzspannung lag, wobei der schwebende Schwellenwert für den Betrieb des Decodierers auf eine Konstante eingestellt werden kann.
  • Der für die Verarbeitung des Signals angewendete Algorithmus kann stark von äußeren Bedingungen abhängen. Zum Beispiel können diese äußeren Bedingungen die Laserfleckgröße umfassen – wo die Laserfleckgröße im Vergleich zu den Strichcodeinformationen groß ist, gibt es ein Element der Glättung des Rauschens wie etwa von Sprenkeln, Punkten und Leerstellen, wobei der Übergang zwischen hellen und dunklen Gebieten des Symbols ebenfalls weniger ausgeprägt ist. Falls das Fleck/Strich-Verhältnis sehr klein ist, ist die Position umgekehrt. Die Fleckgröße hängt in gewissem Umfang vom Abstand des Lesers von dem zu lesenden Symbol ab; bekanntlich konvergiert ein Laserstrahl sehr schwach zu einer "Taille", woraufhin er wieder divergiert.
  • Da die Spitzen und Täler des Signals der ersten Ableitung durch die Hardware in nichtlineare Kantenstärkekästen klassifiziert werden, kann ein Algorithmus ein Histogramm akkumulieren und die Schwankung oder Streuung der größeren Kanten untersuchen, um den Pegel der Faltungsverzerrung zu bestimmen. Das heißt, die Höhenänderung der Spitzen und Täler des Signals der ersten Ableitung gibt zusätzliche Informationen über das (Laser)-Fleck/Strich-Verhältnis. Große Änderungen in diesen Spitzen und Tälern geben an, dass das Fleck/Strich-Verhältnis wahrscheinlich groß ist. Das heißt außerdem, dass die Modulationstiefe niedrig ist und dass die Punkte und Leerräume in einem schlecht gedruckten Strichcode durch die optische Glättung im Wesentlichen entfernt werden. Außerdem ist das Sprenkelrauschen größer, da der größere Fleck herausgemittelt wird. Diese Situation kann weiter korreliert werden, falls es eine verhältnismäßig kleine Anzahl winziger Kanten gibt, was somit wegen des größeren Flecks ein niedrigeres Sprenkel- und Druckrauschen angibt. Somit sollte für diesen Fall ein niedrigerer Kantenauswahl-Schwellenwert der erste Versuch sein, um die Leserate im ersten Versuch und somit die Decodierungsaggressivität zu verbessern. Obgleich für diesen ersten Versuch eine gute Decodierung nicht sichergestellt werden kann, ist die Erfolgswahrscheinlichkeit wegen der A-priori-Informationen über die Schwankung großer Kanten und die Qualität kleiner Kanten höher.
  • Wenn die Schwankung der größeren Kanten zusammen klein ist, ist das Fleck/Strich-Verhältnis höchstwahrscheinlich gleichfalls klein. Dies heißt außerdem, dass das Symbol in der Nähe der Taille des Laserstrahls sein kann und das Sprenkelrauschen höher sein kann. Außerdem werden Flecken und Leerräume in schlecht gedruckten Symbolen als Teil des analogen Signals aufgelöst. Alternativ kann dies einfach ein Symbol mit niedriger Dichte sein. Falls es eine verhältnismäßig große Anzahl winziger Kanten gibt, ist der erste Fall wahrscheinlicher. In jeder Situation sollte der Decodierer den Rauschschwellenwert beim ersten Versuch hoch einstellen, um die Wahrscheinlichkeit eines ersten Lesens zu verbessern.
  • Echte Fuzzy-Logic-Algorithmen können diese Daten ebenfalls nutzen. Die Menge kleiner Kanten, mittlerer Kanten, größerer Kanten und riesiger Kanten kann Fuzzy-Mitgliedschaftsfunktionen zugewiesen werden. Außerdem können die Zeiten zwischen den Kanten Fuzzy-Mitgliedschaftsfunktionen zugewiesen werden. Daraufhin können Fuzzy-Vorschriften angewendet werden, um anhand der Eigenschaften ihrer angrenzenden oder benachbarten Kanten zu bestimmen, ob eine Kante zu einem Abtastdatenstrom gehört.
  • Es ist klar, dass die Erfindung eine verringerte Komplexität und eine Anzahl von Bauelementen, die eine merkliche Verringerung der Kosten des Systems ermöglicht, ermöglicht.
  • Es ist zu sehen, dass die Geschwindigkeit unter Verwendung der Komparatoren anstelle herkömmlicher Analog/Digital-Konverter skaliert werden kann, wobei die Vergleichsschwellenwerte ohne automatische Verstärkungssteuerung mit der Signalstärke schrumpfen. Es ist lediglich erforderlich, die Spitzenhöhen der ersten Ableitung abzuleiten, um ausreichend Informationen zur Bestimmung der Fokussierung usw. zu liefern. Da lediglich die Spitzenhöhen gebildet werden, braucht der Prozessor wesentlich weniger Abtastwerte als bei einer vollständigen Abtastung zu speichern.
  • In 1 ist nun ein Strichcode-Scanner 10 gezeigt. Der Strichcode-Scanner 10 enthält einen Scanner 12 zum Abtasten eines Strichcodes 14 mit einem Laserlichtstrahl 13. Der Strichcode 14 umfasst eine Reihe miteinander verschachtelter oder abwechselnder schwarzer Striche 40b und weißer Zwischenräume 14s, wobei jeder Strich 14b und jeder Zwischenraum 14s zwischen sich einen angrenzenden Kantenbereich 14e aufweisen. Außerdem enthält der Strichcode-Scanner 10 einen Prozessor 16 mit einem Lichterfassungsabschnitt 18 und einem Mehrbit-A/D-Umsetzer 20 zum Erzeugen einer Reihe von Kantenstärke- oder Synchronimpulssignalen auf der Ausgangsleitung 17. Jedes der Synchronimpulssignale besitzt eine Zeitdauer ts, die mit den Eigenschaften des Reflexionsvermögens eines entsprechenden Kantenbereichs 14e in Beziehung steht. Die Zeitdauer ts jedes der Synchronimpulssignale auf der Leitung 17 ist hier proportional zur Größe der Kantenstärke, gemessen durch die erste Ableitung des analogen Signals, das durch den Lichterfassungsabschnitt 18 in Reaktion auf Reflexionen des Laserlichts über einen Kantenbereich 14e erzeugt wird. Außerdem erzeugt der Mehrbit-A/D-Umsetzer 20 auf der Ausgangsleitung 19 ein Polaritätssignal. Das Polaritätssignal ist ein Logiksignal mit einem Logikzustand, der angibt, ob der gleichzeitig damit erzeugte Kantenstärkeimpuls ein Übergang von einem Strich 14b zu einem Zwischenraum 14s oder alternativ ein Übergang von einem Zwischenraum zu einem Strich ist. Eine positive Kante (d. h. das Polaritätssignal ändert sich von einer logischen 0 zu einer logischen 1) gibt hier z. B. einen Übergang von einem Strich 14b zu einem Zwischenraum 14s an, während eine negative Kante (d. h. das Polaritätssignal ändert sich von einer logischen 1 zu einer logischen 0) einen Übergang von einem Zwischenraum 14s zu einem Strich 14b angibt. Die Zeitdauer te zwischen den Vorderflanken der Synchronimpulse ist ein Maß für die Kante-Kante-Zeitdauer eines Strichs 14b oder eines Zwischenraums 14s.
  • Für die Decodierung des Synchronimpulssignals und des Polaritätssignals auf den Leitungen 17, 19 in entsprechende digitale Mehrbitwörter ist ein Decodierer 21 vorgesehen.
  • Nunmehr ebenfalls anhand von 2 enthält der Lichterfassungsabschnitt 18 einen Detektor 22, eine Differenziererschaltung 24, eine Filter/Verstärker-Stufe 26, einen Abschnitt 28 zur automatischen Verstärkungssteuerung (AGC-Abschnitt 28) und ein Verbesserungsfilter 30, die wie gezeigt angeordnet sind. Das Verbesserungsfilter ist üblicherweise wählbar, so dass der Decodierer das Signal auf Wunsch über das Verbesserungsfilter senden oder es umgehen kann. Während der Lichtstrahl 13 den Strichcode 14 abtastet, erzeugt der Detektor 22 ein elektrisches Signal mit einer Amplitude, die sich in Übereinstimmung mit dem Strichcode 14 ändert. Insbesondere erzeugt der Detektor 22 ein elektrisches Signal 32 (3A) mit einer Amplitude, die sich in Übereinstimmung mit dem Reflexionsvermögen des Lichts 13 von dem Strichcode 14 ändert, während der Scanner 12 mit dem von dem Laser produzierten Lichtstrahl 13 den Strichcode 14 abtastet, wobei das abgetastete Muster in 3C gezeigt ist. In Reaktion darauf, dass der Lichtstrahl die Kantenabschnitte 14e abtastet, wechselt die Amplitude des elektrischen Signals 32 zwischen höheren Pegeln 32H1 , 32H2 , 32H3 , 32H4 , 32H5 und 32H6 und niedrigeren Pegeln 32L1 , 32L2 , 32L3 , 32L4 und 32L5 .
  • Die Differenziererschaltung 24 erzeugt auf der Leitung 25 ein elektrisches Signal 34 (3B) mit einer Amplitude, die sich in Übereinstimmung mit den zeitlichen Änderungsraten der Amplitudenänderungen des durch den Detektor erzeugten elektrischen Signals 32 ändert. Somit erzeugt die Differenziererschaltung 24 wie gezeigt jedes Mal einen Impuls 341 3410 , wenn sich das elektrische Signal jeweils zwischen den höheren und niedrigeren Pegeln 32H1 34H6 , 34L1 34L5 ändert (d. h. 32H1 32L1 , 32L1 32H2 , 32H2 32L2 , 32L2 32H3 ... 32L5 32H6 ). Das durch die Differenziererschaltung 24 erzeugte elektrische Signal 34 ist ein Bipolarsignal; d. h. wie gezeigt werden Impulse 341 , 343 , 345 , 347 , 349 mit negativer Polarität erzeugt, wenn das elektrische Signal 32 von einem hohen Pegel zu einem niedrigeren Pegel geht, während Impulse mit positiver Polarität erzeugt werden, wenn das elektrische Signal 32 von einem niedrigeren Pegel zu einem höheren Pegel geht. (Es wird angemerkt, dass "positiv" und "negativ" wie im Folgenden ausführlicher beschrieben relativ zu einem Referenzpotential, hier VREF, sind.)
  • Das durch die Differenziererschaltung 24 erzeugte elektrische Signal 34 wird über die Leitung 25 einem Anschluss 25' zugeführt. Außerdem wird dem Anschluss 25' das Ausgangssignal der AGC-Schaltung 28 zugeführt. Das Ausgangssignal des Anschlusses 25' geht zu der Filter/Verstärker-Stufe 26. Das Ausgangssignal an der Filter/Verstärker-Stufe 26 wird wie gezeigt über die Leitung 55: dem Eingang der AGC-Schaltung 28; dem Eingang des Verbesserungsfilters 30; und dem Anschluss B des Schalters 75 zugeführt. Das Verbesserungsfilter 30 modifiziert die durch die Differenziererschaltung 24 erzeugten Impulse 341 3410 ; d. h. von den Signalen wie etwa den in 24 gezeigten zu den wie in 25 gezeigten. Diese Modifizierung umfasst das Erhöhen der Anstiegszeit und des Spitzenpegels der durch die Differenziererschaltung 24 erzeugten Impulse 341 3410 . Das Ausgangssignal des Verbesserungsfilters wird einem zweiten Eingang 572 des Schalters 57 zugeführt. Das Ausgangssignal des Schalters 57, d. h. die Leitung 41, ist entweder: mit dem Ausgang des Verbesserungsfilters 30, wie wenn die Leitung 41 mit dem Eingang 571 des Schalters 57 gekoppelt ist (d. h. Stellung A des Schalters 57); oder andererseits direkt mit dem Ausgang der Filter/Verstärker-Stufen 26, wie wenn die Leitung 41 mit dem Eingang 572 des Schalters 57 gekoppelt ist (d. h. Schalterstellung B), gekoppelt. Um die Schalterstellung A, B des Schalters 57 zu steuern, wird ein Signal auf der Leitung 573 vom Decodierer 21 verwendet. In der Stellung A wird das Verbesserungsfilter 30 verwendet (d. h. "ein"), während das Verbesserungsfilter 30 in der Stellung B nicht verwendet wird (d. h. "aus"). Der Decodierer 21 schaltet hier das Verbesserungsfilter alle N Abtastungen "ein" an, wobei N eine vorgegebene ganze Zahl, hier z. B. 3, ist.
  • Falls das Verbesserungsfilter 30 "ein" ist, werden die Spitzenpegel der modifizierten Impulse 34'1 34'10 , oder, falls das Verbesserungsfilter 30 "aus" ist, die der Impulse 341 3410 , durch den Mehrbit-A/D-Umsetzer 20 auf eine im Folgenden ausführlicher beschriebene Weise in jedem Fall in die Kantenstärkeimpulse umgesetzt. Allerdings reicht es hier zu sagen, dass der Mehrbit-A/D-Umsetzer 20 einen Schwellenpegeldetektor 202 (2 und 15) zum Zurückweisen modifizierter Impulse 34'1 34'10 mit Spitzenpegeln unter einen Schwellenpegel und zum Umsetzen lediglich nicht zurückgewiesener modifizierter Impulse 34'1 34'10 in die Kantenstärkeimpulssignale (d. h. Synchronimpulssignale) und in die Polaritätssignale auf den Leitungen 17 bzw. 19 besitzt. Wie beschrieben wird, besitzt ferner jedes der umgesetzten Kantenstärke-Synchronimpulssignale auf der Leitung 17 eine Zeitdauer, die mit den Eigenschaften des Reflexionsvermögens eines entsprechenden Kantenbereichs 14e (hier mit dem Spitzenpegel der umgesetzten, modifizierten Impulse 34') in Beziehung steht. Der Decodierer 21 setzt die Kantenstärke- Synchronimpulssignale auf der Leitung 17 unter Verwendung eines nicht gezeigten Zählers in ein Synchronisiersignal um, um die Zeitdauer der auf der Leitung 17 erzeugten Kantenstärke-Synchronimpulssignale zu messen.
  • Insbesondere enthält der Mehrbit-A/D-Umsetzer 20 (2) eine Randerfassungsschaltung 40, eine Synchronimpuls-Erzeugungsschaltung 42 und eine Polaritätserzeugungsschaltung 44, die alle wie gezeigt angeordnet sind. Die Randdetektorschaltung 40 (4) reagiert auf die auf der Leitung 41 erzeugten Signale und erfasst die Anwesenheit eines Strichcodes 14 (1). Die Synchronimpuls-Erzeugungsschaltung 42 reagiert auf die Randerfassungsschaltung 40 und auf die auf der Leitung 41 erzeugten Signale und erzeugt auf der Ausgangsleitung 17 die Reihe der Kantenstärke-Synchronimpulssignale. Die Polaritätsschaltung 44 reagiert auf die auf der Leitung 41 erzeugten Signale und auf die Randerfassungsschaltung 40 und erzeugt auf der Leitung 19 eine Reihe von Logiksignalen mit Logikzuständen, die damit in Beziehung stehen, ob der Kantenstärkeimpuls von einem Strich-Zwischenraum-Kantenübergang oder alternativ von einem Zwischenraum-Strich-Kantenübergang des abgetasteten Strichcodes 14 kommt. Die Breite der Kantenstärke-Synchronimpulssignale auf der Leitung 17 liefert den Absolutwert der Stärke der Kanten. Die Zeitdauer von der steigenden Flanke eines Kantenstärkeimpulses bis zur steigenden Flanke des nächsten Kantenstärkeimpulses ist die Zeitdauer te zwischen den steigenden Flanken der Synchronimpulssignale und ist wie oben angemerkt ein Maß für die Kante-Kante-Zeitdauer eines Strichs 14b oder eines Zwischenraums 14s. Außerdem repräsentiert der Wert (d. h. der Logikzustand) des Polaritätssignals auf der Leitung 19 auf der steigenden Flanke der Kantenstärke-Synchronimpulssignale auf der Leitung 17 wie oben diskutiert die Polarität der Kante (d. h., ob die Kante ein Strich 14b oder ein Zwischenraum 14s ist).
  • Nunmehr ausführlicher in Bezug auf den Lichterfassungsabschnitt 18 ist die Differenziererschaltung 24 in 4 ausführlich gezeigt. Die Differenziererschaltung 24 enthält wie gezeigt einen Operationsverstärker 45 mit einem invertierenden Eingang (–) davon, der über die Leitung 48 über einen Kondensator C27, hier 1000 pF, und über einen in Reihe geschalteten Widerstand R2, hier 1 kOhm, durch den Detektor 22 gespeist wird, und einem nicht invertierenden Eingang (+) davon, dem ein Referenzpotential (VREF), hier mit einem Nennwert von 1,9 Volt, zugeführt wird. (Die Referenzspannung VREF wird von einer (nicht gezeigten) Widerstandsteilerschaltung abgeleitet und über eine Parallelschaltung eines (nicht gezeigten) 2,1-Mikrofarad-Elektrolytkondensators und eines (nicht gezeigten) 0,1-Mikrofarad-Keramikkondensators gefiltert.) Wie oben angemerkt wurde, wird die Eingangsleitung 48 durch den Detektor 22 (2), d. h. durch das Signal 32 (3A), gespeist. Zwischen den Ausgang und den invertierenden Eingang (–) des Operationsverstärkers 45 ist wie gezeigt ein paralleles Netz 47 aus einem Widerstand R34 und einem Kondensator C23 geschaltet. R34 beträgt hier 100 kOhm und der Kondensator C23 beträgt 5 pF. Die Verstärkung des Differenzierers beträgt hier 40 dB mit Polen bei 318 kHz und 159 kHz. Die Differenziererschaltung 24 besitzt hier eine Bandbreite von 40 kHz und erzeugt auf der Leitung 49 (d. h. das Signal 34, 3B) Analogsignalpegel von 10 mVp-p bis 1,6 Vp-p.
  • In 5 ist die Filter/Verstärker-Stufe 26 gezeigt. Die Filter/Verstärker-Stufe 26 ist hier ein modifiziertes Fünfpol-Butterworth-Filter, das dazu verwendet wird, für das Ausgangssignal der Differenziererschaltung 24 auf der Leitung 49 eine zusätzliche Signalaufbereitung zu liefern. Die Verstärkung über die Stufe 26 beträgt hier 46 dB. Die Stufe 26 enthält drei hintereinander geschaltete Operationsverstärker 50, 52, 54. Ein erster Verstärker 50 besitzt wie gezeigt den nicht invertierenden (+) Eingang davon, dem über die Leitung 49 das Ausgangssignal der Differenziererschaltung 24 zugeführt wird, und den invertierenden (–) Eingang, dem über einen Widerstand R18, hier 82,5 kOhm, das 1,9-Volt-Referenzpotential VREF zugeführt wird. In einem geschlossenen Regelkreis ist wie gezeigt ein paralleles Netz 56 aus einem 82,5 kOhm-Widerstand R28 und einem 47 pF-Kondensator C47 vorgesehen. Der Zwischenverstärker 52 besitzt den invertierenden Eingang (–) davon, der über ein Netz 58, das aus einem Widerstand R106 (hier 8,2 kOhm), einem Kondensator C15 (hier 0,1 Mikrofarad), einem geerdeten Kondensator C29 (hier 470 pF) und einem Widerstand R94, hier 20 kOhm, gebildet ist, die wie gezeigt angeordnet sind, mit dem Ausgang des ersten Verstärkers 50 gekoppelt ist. Der nicht invertierende Eingang (+) ist wie gezeigt mit einem zweiten Referenzpotential VFERF gekoppelt. Wie gezeigt ist, ist ein Rückkopplungsnetz 60 vorgesehen, das aus Widerständen R13, hier 82,5 kOhm, und einem Kondensator C41, hier 22 pF, gebildet ist. Der invertierende Eingang (–) des letzten Verstärkers 54 ist über ein Netz 68, das aus einem Widerstand R50, hier 3,9 kOhm, einem Kondensator C19, hier 0,1 Mikrofarad, einem geerdeten Kondensator C13, hier 2200 pF, und einem Widerstand R27, hier 18,2 kOhm, gebildet ist, die wie gezeigt angeordnet sind, mit dem Ausgang des Zwischenverstärkers 52 gekoppelt. Der nicht invertierende Eingang (+) ist wie gezeigt mit dem zweiten Referenzpotential VREF gekoppelt. Wie gezeigt ist, ist ein Rückkopplungsnetz 70 vorgesehen, das aus Widerständen R5, hier 39 kOhm, und einem Kondensator C20, hier 10 pF, gebildet ist.
  • In 6 ist die AGC-Schaltung 28 gezeigt. Der Zweck der AGC-Schaltung 28 ist es, analoge Signale mit geregelter Amplitude an den Mehrbit-A/D-Umsetzer 20 (2) zu liefern. Die AGC-Butterworth-Filterstufe 28 liefert einen Verstärkungsbereich, hier etwa ein Maximum von 44 dB bis zu einem Minimum von 2,8 dB. Mit Signalpegeln von dem Ausgang der Differenziererschaltung 24, die von 10 mVp-p bis 1,6 Vp-p gehen, liefert die AGC-Butterworth-Filterstufe 26 für ein Maximum-Minimum-Verhältnis von 1,4 für das Signal auf der Leitung 41 eine maximale Signalgröße von 2,22 Vp-p und ein minimales Signal von 1,66 Vp-p.
  • In 7 ist das Verbesserungsfilter 30 gezeigt. Der Zweck des Verbesserungsfilters 30 ist es, durch Verbessern oder Verstärken des Hochfrequenzinhalts des ihm zugeführten analogen Signals eine Faltungsverzerrung zu korrigieren, während die lineare Phase aufrechterhalten wird. Insbesondere korrigiert das Verbesserungsfilter 30 einen Teil der Faltungsverzerrung, die realisiert wird, wenn die Fleckgröße des Laserstrahls 13 (1) erheblich größer als das schmalste Symbolelement (d. h. ein Strich 14b oder ein Zwischenraum 14s) in dem Strichcode 14 ist. Während sich die Vorderseite des Laserstrahls 13 von dem Strichcode 14 nach außen bewegt, beginnt ein typisches Strahlprofil in der x-Richtung (1) breit, wird schmal, bis in der Taille ein Minimum erreicht ist, und wird daraufhin in größeren Reichweiten größer. Die Faltungsverzerrung ist am auffälligsten, wenn in der Nähe des Scanners 12, wo die Fleckgröße groß ist, Symbole mit hoher Dichte angeordnet sind oder wenn Symbole weit in der Reichweite des Scanners 12 angeordnet sind, wo die Fleckgröße ebenfalls groß wird. Insbesondere ist bei der Strichcode-Laserabtastung einer der Faktoren, die die Arbeitsreichweite des Scanners begrenzen, die Filterwirkung des Lichtstrahls auf das ursprüngliche Zweipegel-Strichcodesignal (d. h. Strich-Zwischenraum-Strichcodesignal). Der Zweck eines analogen Kantenverbesserungsfilters 30 ist es, die Wirkung der endlichen Breite des Lichtstrahls zu kompensieren. Dies verleiht dem Scanner effektiv eine höhere Auflösung.
  • Der Lichtfleck des Lasers wirkt auf das durch den Detektor 22 erzeugte ursprüngliche Strichcodesignal 32 (3A) als ein Tiefpassfilter. Dies führt zu einer Glättung der Kanten des Signals. Falls die Fleckgröße größer als das kleinste Element des Strichcodes (d. h. ein Einheitsmodul; Strich oder Zwischenraum) ist, werden nicht nur die Kanten geglättet, sondern nimmt auch die Höhe der Kanten ab. Dies ist durch Betrachtung des Signals in den 8A und 9B zu sehen, wobei 8A das Ausgangssignal 32' des Detektors 22 für eine Fleckgröße von 2,0 Modulen ist, während 9A die Ausgangssignale 32'' des Detektors 22 für eine Fleckgröße von 2,8 Modulen sind. Außerdem verschieben sich die tatsächlichen Kantenorte, während die Fleckgröße größer wird. Dies wird häufig als Faltungsverzerrung bezeichnet. Eine übermäßige Faltungsverzerrung kann die Decodierbarkeit des Strichcodes verhindern. Falls die Signale der ersten Ableitung für einen großen Fleck (2,0 Module wie in 9A gezeigt mit 2,8 Modulen wie in 9B gezeigt) verglichen werden, nimmt die Höhe der Spitzen des Signals 34H'' der ersten Ableitung für einige der Kanten ab, wie z. B. offensichtlich ist, wenn die Spitze 34H'' in 9B mit der gleichen entsprechenden Spitze 34' in 9A verglichen wird. Falls diese Spitzenwerte unter einen festen Schwellenwert (üblicherweise etwa 20% des Maximums) fallen, akzeptiert sie eine Schwellenwertschaltung 202 (2, wird noch beschrieben) nicht. Falls die Kanten kleiner als der Schwellenwert sind oder falls sich die Kanten zu stark verschieben, ist der Strichcode nicht decodierbar. Der Zweck des Verbesserungsfilters 30 ist es, die Kantenstärken (d. h. die Spitzen 341 3410 ) in dem Signal, das durch die Differenziererschaltung 34 erzeugt wird, zu verbessern, bevor es an den Mehrbit-A/D-Umsetzer 20 übergeben wird, so dass die gültigen Kanten den Schwellenwert übersteigen sowie nahe genug am richtigen Ort sind, so dass der Strichcode decodierbar ist. Die Spitzen in den in den 8B und 9B gezeigten Signalen sind in den 8C bzw. 9C gezeigt.
  • Die Fleckgröße des Lasers ist eine physikalische Länge, die in Mikrometern oder Millizoll gemessen wird. Da der Laserstrahl abtastet, kann ist aber die Vorstellung möglich, dass die Fleckgröße eine Größe (oder Zeitdauer) in Sekunden hat. Die Zeitdauer des Flecks ist die physikalische Größe (z. B. in Zoll), dividiert durch die Geschwindigkeit (z. B. in Zoll/Sekunden). Da das empfangene Signal ein Zeitbereichssignal ist und die gesamte nachfolgende Verarbeitung (d. h. analoge Filterung, A/D-Umsetzung usw.) im Zeitbereich erfolgt, ist es jedoch zweckmäßig, im Zeitbereich zu denken.
  • Wie oben angemerkt wurde, ändert sich die Lichtfleckgröße mit dem Abstand von dem Scanner. Hinter der Taille des Strahls wächst die Fleckgröße näherungsweise linear mit dem Abstand. Die Fleckgröße des Lasers wächst in Abhängigkeit vom Abstand von dem Scanner linear. Somit ist die Fleckdauer in Sekunden hinter der Taille des Strahls, da sie das Verhältnis der Fleckgröße zur Abtastgeschwindigkeit ist, näherungsweise festgesetzt. Dies erleichtert es, ein Kantenverbesserungsfilter 30 zu konstruieren, da das Tiefpassfilter, das das Strichcodesignal bearbeitet (d. h. der Laserstrahl), im Zeitbereich näherungsweise ein festes Filter ist. Da der Lichtstrahl Gaußsch ist, ist die Impulsantwort des Tiefpassfilters Gaußsch,
    Figure 00280001
    wobei die Fleckgröße im Zeitbereich 4σ ist. Die Laplace-Transformation dieser Impulsantwort ist
  • Figure 00280002
  • Das Kantenverbesserungsfilter 30 ist unter Verwendung einer Taylor-Reihen-Näherung zu einem näherungsweisen inversen Filter von H(s) zu implementieren:
  • Figure 00280003
  • Der Zähler Δ(s) gibt die Polstellen, die üblicherweise einige Standard-Tiefpassfilterpole (z. B. Butterworth, Bessel) sind. Um bei hohen Frequenzen eine zu große Verstärkung zu verhindern, die lediglich das Rauschen erhöhen würde, sind diese Pole bei höheren Frequenzen als die Nullstellen angeordnet.
  • 9 zeigt die Übertragungsfunktion H(f) wegen des Lichtflecks, die Übertragungsfunktion G(f) wegen des Kantenverbesserungsfilters und die Übertragungsfunktion der Kombination H(f)G(f). Es wird angemerkt, dass die Bandbreite des kombinierten Systems verbreitert ist.
  • Die Wirkung des Kantenverbesserungsfilters 30 ist es, die Arbeitsreichweite des Scanners 12 zu verbessern. In Abständen, wo die Fleckgröße des Laserstrahls 13 so groß ist, dass die Stärke der Kanten kleiner als der Schwellenwert in dem Mehrbit-A/D-Umsetzer 20 ist, oder wenn die Kanten zu stark verschoben sind, ist der Strichcode nicht decodierbar. Wie oben angemerkt wurde, verbessert das Kantenverbesserungsfilter 30 die Kanten des Signals, so dass sie den Schwellenwert übersteigen und näher an der richtigen Stelle sind und der Strichcode decodierbar ist. Die 24 und 25 zeigen die beim Abtasten eines hochdichten Strichcodes (z. B. 3,5 Millizoll) mehrere Zoll vom Rauschen eines Standardreichweiten-Scanners erzeugten Signale. 24 zeigt das durch die Differenziererschaltung 24 erzeugte Signal, während 25 das gleiche Signal zeigt, nachdem es durch das Verbesserungsfilter 30 geleitet worden ist. Es wird angemerkt, dass die Kanten des durch das Verbesserungsfilter 30 erzeugten verbesserten Signals viel ausgeprägter sind und dass es viel leichter ist, ein solches verbessertes Signal in digitale Daten umzusetzen und zu decodieren.
  • Wie nunmehr in 11 gezeigt ist, enthält das Verbesserungsfilter 30 vier modifizierte Butterworth-Pole und zwei komplex konjugierte Paare von Nullstellen (ein Paar komplex konjugierter Nullstellen rechts von der imaginären Achse, das andere Paar links von ihr), die in der Ordnung angeordnet sind, dass sie über die 'verbesserten' interessierenden Frequenzen eine lineare Phase erzeugen.
  • Nunmehr ausführlicher in Bezug auf die Synchronimpuls-Erzeugungsschaltung 42 (2) enthält diese Schaltung 42: eine Doppelweggleichrichterschaltung (FWR) 200 zum Umsetzen des Bipolarsignals auf der Leitung 41 in ein entsprechendes elektrisches Unipolarsignal auf der Leitung 201. Der Schwellenwertschaltung 202 wird das Unipolarsignal auf der Leitung 201 und ein Referenzpotential, das durch die Schwellenwertschaltung 202 selbst erzeugt wird, um einen vorgegebenen Prozentsatz, hier 80%, eines Spitzenpegels in dem Unipolarsignal darzustellen, zugeführt. Die Schwellenwertschaltung 202 erzeugt auf der Leitung 204 ein Logiksignal, das mit der Differenz zwischen dem Pegel des Unipolarsignals auf der Leitung 201 und dem Referenzpotential in Beziehung steht. Die Synchronimpuls-Erzeugungsschaltung 42 enthält die Kantendetektorschaltung 206 (14), der das Unipolarsignal auf der Leitung 201 zur Hochpassfilterung des Unipolarsignals auf der Leitung 201 und zur Erzeugung eines Logiksignals auf der Leitung 208 zugeführt wird. Das Logiksignal auf der Leitung 208 ändert den Logikzustand, wenn das Unipolarsignal auf der Leitung 201 in seinem Minimum- oder Maximumwert ist. Die Synchronimpuls-Erzeugungsschaltung 42 enthält eine Synchronisationssteuerungs-Logikschaltung 210, die durch die Kantendetektorschaltung 206, durch die Schwellenwertdetektorschaltung 202 (15) und durch die Randerfassungsschaltung 40 gespeist wird, um auf der Leitung 17 die Kantenstärke-Synchronimpulssignale zu erzeugen. Der Kantenstärkeimpuls beginnt, wenn eine Spitze in dem Unipolarsignal auf der Leitung 201 über dem durch den Schwellenwertdetektor 202 festgesetzten Schwellenpegel erfasst wird, und wird während einer Zeitdauer fortgesetzt, die mit der Größe der Spitze des Unipolarsignals, d. h. mit dem Spitzenpegel des Unipolarsignalimpulses, in Beziehung steht. Die Polaritätserzeugungsschaltung 44 reagiert auf das elektrische Signal, das durch die Differenziererschaltung 24 erzeugt wird (oder, falls überhaupt, nach Modifizierung durch das Verbesserungsfilter 30), auf das elektrische Signal, das durch die Randerfassungsschaltung 40 erzeugt wird, auf das Kantenstärke-Synchronimpulssignal auf der Leitung 17 und auf ein Referenzsignal auf der Leitung 212, das den Durchschnittspegel des elektrischen Signals repräsentiert, das durch die Differenziererschaltung 24 und, wenn "ein", durch das Verbesserungsfilter 30 erzeugt wird, um auf der Leitung 19 ein Logiksignal zu erzeugen, das ein erstes Logikzustandssignal hat, wenn das durch die Differenziererschaltung 22 und, wenn "ein", durch das Verbesserungsfilter 30 erzeugte elektrische Signal größer als das Referenzsignal auf der Zeile 212 ist, und einen zweiten Logikzustand hat, wenn das durch die Differenziererschaltung 24 und, wenn "ein", durch das Verbesserungsfilter 30 erzeugte elektrische Signal kleiner als das Referenzsignal auf der Zeile 212 ist.
  • Die Randerfassungsschaltung 40 (12) erfasst die Anwesenheit eines Strichcodes und ermöglicht, dass auf der Leitung 17 und 19 Synchronisier- bzw. Polaritätssignale erzeugt werden. Die Randerfassungsschaltung 40 enthält ein Widerstandsspannungsteilernetz 214 (R29, R74), das durch eine Referenzspannung VREF, hier 1,9 Volt, gespeist wird. Die durch das Netz 214 erzeugte Spannung wird mit dem verbesserten differenzierten analogen Signal verglichen, das durch das Signal auf der Leitung 41 erzeugt wird. Wenn die erste abfallende Strichflanke (d. h. als das Signal 34, 3A) von 32H1 auf 3211 geht, erzeugt der Komparator 216 (12) eine verhältnismäßig niedrige Spannung. Diese niedrige Spannung schaltet den Transistor Q7 "aus" und hebt den Pegel der Spannung an dessen Kollektorelektrode (d. h. auf der Leitung 218) an, um über einen Widerstand R119 eine Spannung VREG zu liefern. Dies ermöglicht wiederum, dass auf den Leitungen 17, 19 Synchronimpuls- und Polaritätssignale erzeugt werden. Nachdem der Strichcode nicht mehr vorhanden ist, d. h. das Signal 34 (3A) einen hohen stationären Pegel, d. h. 32H6 , erreicht, geht der Komparator 216 an seinem Ausgang in den Leerlauf über. In diesem Zustand beginnt sich der Kondensator C6 über den Widerstand R30 auf VREG zu laden. Wenn die Spannung am Kondensator C6 0,7 Volt erreicht, wird der Transistor Q7 gesättigt, wobei seine Kollektorelektrode und somit die Leitung 218 auf einen "Tief"-Pegel gezogen wird. Dies verhindert, dass auf der Leitung 17 das Synchronimpulssignal erzeugt wird und stellt außerdem den Logikpegel des Polaritätssignals auf der Leitung 19 "hoch". Wie oben angemerkt wurde, erzeugt der Mehrbit-A/D-Umsetzer 20 das Synchronimpulssignal auf der Leitung 17 mit einer Dauer, die proportional zur Höhe der Spitzen des verbesserten differenzierten analogen Signals auf der Leitung 41 ist. Die steigende Flanke des Impulses tritt auf der Spitze des verbesserten differenzierten analogen Signals auf der Leitung 41 auf, falls die oben beschriebenen Schwellenwertbedingungen erfüllt sind.
  • Wie nun in 13 gezeigt ist, enthält der FWR 200 einen Kondensator C3, Widerstände R24, R11, R23, R10, R26, ein Paar Dioden D1, D2 und Operationsverstärker 222, 224, die alle wie gezeigt angeordnet sind. Die Funktion des FWR 200 ist wie folgt: Wenn das verbesserte differenzierte analoge Signal auf der Leitung 41 (Vin) unter die Referenzspannung VREF geht, ist die Diode D1 in Durchlassrichtung und die Diode D2 in Sperrrichtung. Dies stellt die Spannung an der Anode der Diode D2 auf die Referenzspannung VREF ein. Die Spannung am Ausgang 220 des FWR 202 d. h.
    Vout = –(VREF + Vin)(R10/R26 – VREF(R10/R23) + VFER(1 + R10/(R26||R23)); wobei "||" der Widerstandswert von (R26)(R23)/(R26 + R23); d. h. der Widerstandswert der Parallelschaltung der Widerstände R26, R23, ist. Somit ist Vout = VREF – Vin. Andererseits ist D1 in Sperrrichtung und D2 in Durchlassrichtung, wenn Vin über VREF schwingt. Dies stellt die Spannung an der Anode von D2 gleich –Vin + VREF ein. In diesem Fall ist das Ausgangssignal auf der Leitung 201 des FWR 200 gleich:
    Vout = –(VREF + Vin)(R10/R26) – (–Vin + VREF)(R10//R23) + VREF(1 + R10/(R26||R23)). Somit ist Vout = VREF + Vin. Somit ist das Ausgangssignal des FWR 200 in Bezug auf die Referenzspannung VREF ein Unipolarsignal.
  • In 14 ist nun die Kantenerfassungsschaltung 206 gezeigt. Zunächst wird angemerkt, dass es die Funktion der Kantenerfassungsschaltung 206 ist, die Flanken des verbesserten differenzierten analogen Signals auf der Leitung 41 zu lokalisieren, die mit den Strich/Zwischenraum-Kanten 14s (1) des Strichcodes 14 korrelieren sollten. Das doppelweggleichgerichtete verbesserte differenzierte analoge Signal auf der Leitung 201 wird über ein RC-Netz 226 zugeführt, das aus einem Kondensator C1, hier 1000 pF, und aus einem Widerstand R1, hier 1,8 kOhm, zur Filterung gebildet ist. Die RC-Kombination, d. h. das Netz 226, wirkt als eine passive Differenziererstufe, mit dem Ergebnis, dass die Spitzen (Maxima) des Signals auf der Leitung 201 vom FWR 200 auf Nullstellen, d. h. auf Signale mit Pegeln bei VREF, abgebildet werden. Dieses gefilterte Signal wird im Komparator 228 mit VREF (1,9 Volt) verglichen. Wenn die Spitzen in dem durch das Netz 226 erzeugten differenzierten Signal größer als VREF sind, wird der Komparator 228 ausgelöst, wobei er am Ausgang 208 eine hohe Spannung erzeugt. Die Widerstände R118, R15 und R21 erzeugen eine Hysterese, die verhindert, dass der Komparator 228 bei Rauschen schaltet. Der Ausgang 208 des Komparators 228 schaltet jedes Mal, wenn eine Spitze des durch das Netz 226 erzeugten differenzierten Signals erfasst wird, auf einen hohen Pegel.
  • In 15 ist nun die Schwellenwertschaltung 202 gezeigt. Die Funktion der Schwellenwertschaltung 202 ist es, den Pegel des auf der Leitung 201 erzeugten FWR-Signals zu überwachen und das Ausgangssignal 204 der Schwellenwertschaltung 202 auf einen hohen Pegel zu schalten, wenn der Pegel des Signals vom FWR 200 (d. h. der Pegel des Signals auf der Leitung 201) über einen gewissen Prozentsatz, hier 80%, des Spitzenspannungspegels auf der Leitung 201 gelangt. Der Komparator 230, die Diode CR7 und der Kondensator C42 bilden einen Detektor für positive Spitzen. Der Ladezustand des Kondensators C42 wird durch die Ausgangsimpedanz des Komparators 230 in Reihe mit dem dynamischen Widerstand der Diode CR7 gesteuert. Die Entladezeit des Kondensators C42 wird wie gezeigt durch den Widerstand R83 in Reihe mit der Parallelschaltung der Widerstände R115, R36 gesteuert. Somit ist die dem invertierenden Eingang (–) des Komparators 232 zugeführte Spannung ein Prozentsatz der Spitzenspannung am Kondensator C42; insbesondere ist die Spannung an dem invertierenden Eingang (–) des Komparators 232 gleich Vcap (R36/(R36 + R83||R115)); wobei Vcap die Spannung am Kondensator C42 und R83||R115 gleich
    (R115)(R36)/(R115 + R36) ist. Die Spannung an dem invertierenden Eingang (–) des Komparators 232 wird mit der auf der Leitung 201 erzeugten FWR-Spannung verglichen. Die Spannung auf der Leitung 201 wird wie gezeigt über die Widerstände R39 dem nicht invertierenden (–) Eingang des Komparators 232 zugeführt. Wenn die FWR-Spannung auf der Leitung 201 über der Spannung an dem invertierenden Eingang (–) des Komparators 232 liegt, geht der Ausgang 204 des Komparators 232 auf einen hohen Pegel, hier VREG. Die Widerstände R39, R118 und R92 erzeugen eine Hysterese und ziehen den Ausgang des Komparators 232 auf seine Versorgungsspannung VREG herauf.
  • Wieder kurz anhand von 2 enthält die Synchronimpuls-Erzeugungsschaltung 42 außerdem eine Synchronisationssteuerungs- und Logikschaltung 210 (16) und eine A/D-Konverterschaltung 250 (17). Die Synchronisationssteuerungs- und Logikschaltung 210 erzeugt in den durch den FWR 200 auf der Leitung 201 erzeugten Spitzen auf der Leitung 17 einen ansteigenden Impuls. Wie nun in 16 gezeigt ist, enthält die Synchronisationssteuerungs-Logikschaltung 210 vier NAND-Gatter 252, 254, 256 und 258, die wie gezeigt angeordnet und logisch gleichwertig einem einzelnen Dreieingangs-UND-Gatterabschnitt 259 konfiguriert sind. Die Eingänge in die Logikschaltung 259 sind die Ausgänge der Randerfassungsschaltung 40 (d. h. die Leitung 218), der Kantenerfassungsschaltung 208 (d. h. die Leitung 208) und der Schwellenwerterfassungsschaltung 202 (d. h. die Leitung 204). Die Leitungen 204, 208 werden als Eingänge dem NAND-Gatter 252 zugeführt, dessen Ausgänge zusammen mit einer festen Logikspannung (V1) dem NAND-Gatter 254 zugeführt werden, dessen Ausgang zusammen mit der Leitung 218 wie gezeigt dem NAND-Gatter 256 zugeführt wird. Das Ausgangssignal der Logikschaltung 259 liefert ein Signal für den Taktanschluss 260 eines D-Flipflops 262. Somit wird dem Anschluss 260 ein Taktsignal zugeführt, um ein hohes Signal hereinzutakten, das dem "D"-Eingangsanschluss des Flipflops 262 zugeführt wird, wodurch ein hoher Pegel des Q-Ausgangssignals des Flipflops 262 erzeugt wird, wobei das Q-Ausgangssignal der Leitung 17 zugeführt wird, wenn drei Bedingungen erfüllt sind: (1) Durch die Randerfassungsschaltung 40 (Leitung 218) wird ein Rand oder ein Strichcodemuster erfasst; (2) eine durch die Kantenerfassungsschaltung 206 (Leitung 208) erfasste Kante; und (3) die durch den Schwellenwertdetektor 202 festgesetzte Schwellenwertanforderung ist erfüllt (Leitung 204). Somit wird auf der Leitung 17 der Kantenstärkeimpuls begonnen, wenn die drei Bedingungen erfüllt sind. Außerdem wird das komplementäre Ausgangssignal Q* tief, während das Ausgangssignal Q hoch wird. Das Tiefpegelsignal an dem komplementären Ausgang Q* wird über die Leitung 270 dem A/D-Konverter 250 zugeführt (2 und 17).
  • Insbesondere wird das Ausgangssignal Q* über die Leitung 270 den Anschlussstiften E3 und E4 eines analogen Schalters 272, hier eines Modells HC 4066, zugeführt. Die A/D-Konverterschaltung 250 wird freigegeben, wenn das komplementäre Ausgangssignal Q* tief wird. Vor diesem Ereignis ist Q* hoch. Ein hoher Pegel an den Anschlussstiften E3 und E4 des analogen Schalters 272 erzwingt das Schließen des analogen Schalters und verbindet den Eingangsanschlussstift A3 mit dem Ausgangsanschlussstift B3 und den Eingangsanschlussstift A4 mit dem Ausgangsanschlussstift B4. Der Anschlussstift A4 ist über die Leitung 201 der Ausgang des FWR 200. Der Ausgangsanschlussstift B3 ist mit einem Widerstands-Kondensator-Netz 273 verbunden, das wie gezeigt aus einem Kondensator C5, einem Pufferverstärker 275 mit hoher Eingangsimpedanz und einem Widerstand R82 gebildet ist. Obgleich die Anschlussstifte A3 und B3 verbunden sind, wirkt der Kondensator C5 als ein Abtastkondensator, wobei das Signal am Eingangsanschlussstift A3 (d. h. das Ausgangssignal des FWR 200) wie gezeigt über das Widerstands-Kondensator-Netz 273 dem nicht invertierenden Eingang des Komparators 274 zugeführt wird. Der Widerstand R32, der Kondensator C24 und der Komparator 276 sind wie gezeigt so angeordnet, dass sie einen Integrator 277 bilden. Solange der Eingangsanschlussstift A4 mit dem Ausgangsanschlussstift B4 verbunden ist, ist der Integrator 277 deaktiviert, wobei am Ausgang des Komparators 276 (d. h. auf der Leitung 278) und somit an dem invertierenden Eingang (–) des Komparators 274 das dem nicht invertierenden Eingang (+) des Komparators 276 zugeführte VREF erscheint. Wenn der Pegel des am Ausgang des FWR 200 (auf der Leitung 201) am nicht invertierenden Eingang (+) des Komparators 274 erzeugten Signals größer als das VREF auf der Leitung 278 ist, ist der Komparator 274 auf einem hohen Pegel. Das Ausgangssignal des Komparators 274 wird über die Leitung 282 dem Löscheingang des D-Flipflops 262 (16) zugeführt. (Es wird angemerkt, dass der Schalter 57 mit dem oberen Abschnitt des Schalters 272 implementiert sein kann. Insbesondere kann der Anschluss 571 mit dem Anschluss A1 verbunden sein, kann der Anschluss 572 mit dem Anschluss A2 verbunden sein und kann der Anschluss B1 (der hier gemeinsam mit B2 verbunden ist) die Leitung 41 liefern).
  • Wenn in dem an dem Ausgang des FWR 200 (Leitung 201) erzeugten Signal eine Spitze erfasst wird (und die drei oben beschriebenen Bedingungen erfüllt sind), wird das komplementäre Signal Q* (Leitung 270) tief. Somit wird das Signal an den Anschlussstiften E3 und E4 des analogen Schalters 271 tief, wobei es den Eingangsanschlussstift A3 vom Ausgangsanschlussstift B4 trennt und den Eingangsanschlussstift A4 vom Ausgangsanschlussstift B4 trennt. An diesem Punkt wird die Spannung am Kondensator C5 (17) auf ihrem Spitzenwert gehalten und der Integrator 277 freigegeben. Die durch den Integrator 277 auf der Leitung 278 erzeugte Ausgangsspannung vout steigt linear an. Die genaue Spannungsformel ist wie folgt: vout = (1/C24)(∫ARCREF2/R32)dt + ARCREF2)
  • Wenn die linear ansteigende Spannung auf der Leitung 278 größer als die Spitzenspannung an dem nicht invertierenden (+) Eingang des Komparators 274 wird, schaltet der Komparator 274 von seinem hohen Pegel auf seinen tiefen Pegel und löscht über die Leitung 282 das D-Flipflop 262 (16); d. h., der Q-Anschluss wird tief, wobei er das Synchronimpulssignal auf der Leitung 17 abschließt. Ferner wird der Anschluss Q* hoch. An diesem Punkt wird der Integrator 277 wieder deaktiviert. Die Widerstände R82, R40 und R114 erzeugen eine Hysterese und ziehen VREG herauf.
  • Zusammengefasst erzeugt der Ausgangsanschluss Q des D-Flipflops 262 somit das Synchronimpulssignal für den Decodierer 21 (1). Er wird durch das Takten der Spitzen des durch den FWR 200 erzeugten Signals gesetzt und durch das Löschsignal für das D-Flipflop 262 auf der Leitung 282 vom A/D-Konverter 250 zurückgesetzt (17). Die Zeitdauer, während der der Q-Anschluss des D-Flipflops auf einem hohen Pegel bleibt, ist proportional zur Amplitude der Spitzen des durch den FWR 200 auf der Leitung 201 erzeugten Signals.
  • In 18 ist nun die Polaritätserzeugungsschaltung 44 gezeigt. Das durch diese Schaltung 44 auf der Leitung 19 erzeugte Polaritätssignal repräsentiert die Polarität des differenzierten analogen Signals auf der Leitung 41 in seinen Spitzen. Das differenzierte analoge Signal auf der Leitung 41 wird im Komparator 290 mit VREF (seiner Wechselspannungsmasse) auf der Leitung 212 verglichen. Falls das Signal auf der Leitung 41 über der Referenz VREF liegt, ist das Ausgangssignal des Komparators 290 auf einem tiefen Pegel. Falls das Signal auf der Leitung 41 dagegen unter der Referenz VREF liegt, ist das Ausgangssignal des Komparators 290 auf einem hohen Pegel. Dieser Ausgang wirkt als Datenleitung zu einem D-Flipflop 272. Die Widerstände R80, R98 und R60 erzeugen eine Hysterese und ziehen wie gezeigt auf VREG herauf. Die Daten an dem D-Anschluss des D-Flipflops 272 erscheinen auf der steigenden Flanke des Synchronimpulssignals auf der Leitung 17 als das Polaritätssignal auf der Leitung 19. (Das Signal auf der Leitung 17 wird wie gezeigt dem Taktanschluss CK des D-Flipflops 272 zugeführt.
  • Um (anhand einer Kombination des beschriebenen Synchronimpulssignals auf der Leitung 17 und des Polaritätssignals auf der Leitung 19) ein Mehrbitsignal zu decodieren, ist es zunächst erforderlich, die Signale auf den Leitungen 17 und 19 in digitale Werte umzusetzen, die die Kantenorte und -stärken repräsentieren. Kurz gesagt, enthält der Decodierer 21 zwei Zähler: einen 16-Bit-Zähler 302 zur Messung der Kante-Kante-Zeiten te des Strichcodes (1) aus der Kantenstärke oder aus dem Synchronimpulssignal auf der Leitung 17 und einen 8-Bit-Zähler 300 zur Messung der Größe des Stärkesignals (d. h. für die Zeitdauer ts) aus dem Signalstärke-Synchronimpulssignal auf der Leitung 17. Die Taktrate des Zählers 300 ist hier um einen Faktor 5 höher als die Taktrate für den Zähler 300. Der Decodierer 21 liest an jeder Strichcodekante die zwei Zählerwerte, setzt die Zähler zurück und speichert die Werte zusammen mit dem Polaritätsbit des Polaritätssignals auf der Leitung 19 im Speicher 304. Es wird die Polarität getestet und, falls sie positiv ist, der Stärkewert direkt gespeichert. Falls er negativ ist, speichert der Decodierer eine negative Stärke. Wenn eine Abtastung von Mehrbitdaten gespeichert worden ist, muss sie decodiert werden. Wie in den Synchronisationshistorien für das Beispiel in 1 gezeigt ist, haben die mittleren zwei Synchronimpulssignale P1, P2 die gleiche Polarität wie wenn es zwei negative Kanten nacheinander gibt.
  • Der durch die CPU 306 ausgeführte Decodierungsalgorithmus kann als eine Vorverarbeitung und als eine Nachverarbeitung betrachtet werden. 19 zeigt einen Ablaufplan des Decodierungsalgorithmus. Die Vorverarbeitung umfasst eine erste Analyse der Kantenstärke-Synchronimpulssignale zur Bestimmung der Kantenstärke, die Wahl eines Rauschschwellenwerts zum Trennen realer und falscher Kanten und daraufhin das Umsetzen der Daten in ein Standard-DBP-Format. Nachdem an den umgesetzten DBP-Daten ein Standarddecodierungsversuch ausgeführt worden ist, analysiert die Nachverarbeitung die Decodierungsergebnisse und beginnt geeignete Aktionen. Falls eine vollständige Decodierung stattgefunden hat, entscheidet die Post-Decodierungs-Analyse anhand bestimmter Sicherheitsprüfungen, ob diese Decodierung akzeptabel ist. Außerdem entscheidet die Nachverarbeitung, ob eine zweite Decodierung an denselben Daten versucht werden soll und ob das Verbesserungsfilter 30 "ein"gestellt oder "aus"gestellt werden soll.
  • In 20 ist der Prozess der Umsetzung der Mehrbitdaten in ein DBP gezeigt. Die Kantenstärken sind als vertikale Linien gezeigt, deren Höhe und Richtung die Stärke und die Polarität repräsentieren. Es gibt zwei Vorschriften, die in dem Umsetzungsprozess verwendet werden. Zunächst werden alle Kanten, die unter dem Rauschschwellenwert sind, ignoriert. Zweitens wird die stärkere Kante gewählt, falls es mehrere Kanten mit der gleichen Polarität über dem Rauschschwellenwert gibt. Der einzelnen Verarbeitungsschritte eines Decodierungsversuchs sind wie im Folgenden beschrieben:
    • (1) Durch das Takt-, das Polaritäts- und das Abtaststart-(SOS-)Signal (1) wird eine vollständige Abtastung von Daten erfasst und in den Speicher 304 geladen. Die Daten bestehen aus einer Folge von Kanten (positiv und negativ) und Kantenstärken;
    • (2) nachdem die Daten erfasst worden sind, werden unter Verwendung der Größe der Kantenstärken Histogramme (die im Folgenden ausführlich beschriebenen 21 und 22) konstruiert. Die Spitzen und Täler der Histogramme werden analysiert und als Histogrammmerkmale gespeichert. Die Täler in den Histogrammen repräsentieren mögliche Umsetzungsschwellenwerte. Kanten, deren Stärken unter dem Umsetzungsschwellenwert liegen, werden als Rauschen betrachtet und ignoriert; und
    • (3) wenn ein Umsetzungsschwellenwert gewählt worden ist, werden die Daten in ein Standard-DBP-Format umgesetzt. Während der Umsetzung wird die Anzahl der ignorierten Kantenstärkesignale gezählt, um die Menge des Rauschens anzugeben, das in dem Strichcodesignal vorhanden ist. Dieses Rauschmaß wird von der Post-Decodierungs-Analyse verwendet;
    • (4) um einen größeren Dynamikbereich zu erreichen, wird die Zeit zwischen den Kanten te unter Verwendung von 16-Bit-Zeitgebern gemessen. Nachdem die Mehrbitdaten in ein Standard-DBP-Format umgesetzt worden sind, werden die 16-Bit-Daten auf 8 Bits herunterskaliert. Die Größe der Skalierung wird anhand der mittleren zehn Elemente der DBP-Daten gewählt;
    • (5) nachdem die Mehrbitdaten in ein Standard-DBP-Format umgesetzt worden sind, werden sie durch die Standard-8-Bit-Decodierungsalgorithmen verarbeitet. Die Standarddecodierungsalgorithmen werden etwas modifiziert, um ausführliche Informationen über einen misslungenen Decodierungsversuch (z. B. wie viel Zeichen wurden decodiert?) zurückzugeben. Diese Informationen werden von der Post-Decodierungs-Analyse verwendet;
    • (6) nach einem Standarddecodierungsversuch untersucht die Post-Decodierungs-Analyse die Decodierungsergebnisse, das Rauschmaß und die Histogrammmerkmale und beginnt geeignete Aktionen. Falls eine vollständige Decodierung stattgefunden hat, entscheidet die Nachdecodierung anhand der decodierten Nachricht und des Rauschmaßes (der Anzahl der ignorierten Kanten), ob diese Decodierung akzeptabel ist. Zum Beispiel können "schwache" Codetypen wie etwa Interleaved 2 of 5 zurückgewiesen werden, falls eine große Menge Rauschen vorhanden ist. Außerdem entscheidet die Post-Decodierungs-Analyse, ob an den gleichen Mehrbitdaten eine zweite Decodierung versucht werden soll und ob das Verbesserungsfilter "an"geschaltet (d. h. "ein"geschaltet) oder "ab"geschaltet (d. h. "aus"geschaltet) werden sollte.
  • Ein wichtiger Aspekt der Decodierung schlecht gedruckter Strichcodes unter Verwendung der Kantenstärke-Synchronimpulssignale ist die Bestimmung, welche Kanten im Gegensatz zu den durch Rauschen veranlassten 'real' sind. Hierzu werden Histogramme (21) der Kantenstärken verwendet. Diese Histogramme besitzen typisch zwei Hauptspitzen; eine Spitze, die aus den schwächeren Kanten besteht, repräsentiert das Rauschen, während die andere, die aus den stärkeren Kanten besteht, den Strichcode repräsentiert. Der tiefste Punkt in dem Tal zwischen den zwei Spitzen ist der Rauschschwellenwert (wobei Kanten, die stärker als der Schwellenwert sind, als real betrachtet werden).
  • Das Ermitteln dieses Punkts besteht aus den folgenden Schritten (23):
    • (1) Das Kantenstärkehistogramm besteht aus einem 128-Byte-Feld. Jedes Element dieses Felds repräsentiert eine mögliche Kantenstärke (0–127). Der Wert jedes Elements in dem Feld repräsentiert die Anzahl, in der Kanten mit dieser Stärke auftreten. Um das Histogramm zu erzeugen, wird der MultiBit-Ladevorgang durchlaufen und unter Verwendung jeder Stärke als ein Index in dem Feld der richtige Histogrammort inkrementiert;
    • (2) das Anfangshistogramm (21) neigt dazu, in Bezug auf die Verteilung sehr grob zu sein und viele hohe Spitzen und tiefe Täler zu haben. Dies erschwert es der Software, zu bestimmen, welche von diesen die wahren Spitzen und Täler sind. Um dieses Problem lösen zu helfen, wird das Histogramm unter Verwendung einer Durchlaufsummentechnik geglättet (22). In dem geglätteten Histogramm repräsentiert jeder Ort die Summe von vier aufeinander folgenden Orten des ursprünglichen Histogramms. Jede aufeinander folgende Summe in dem geglätteten Histogramm überschneidet sich um drei Orte des ursprünglichen Histogramms mit der vorangehenden Summe. Zum Beispiel: smoothed_hist[0] = hist[0] + hist[1] + hist[2] + hist[3] smoothed_hist[1] = hist[1] + hist[2] + hist[3] + hist[4];
    • (3) wenn das Histogramm geglättet worden ist (22), wird jede Spitze und jedes Tal identifiziert. Eine Spitze ist als irgendein Ort definiert, dessen unmittelbare Nachbarn kleiner sind. Gleichfalls ist ein Tal als irgendein Ort definiert, dessen unmittelbare Nachbarn größer sind. In Fällen, in denen ein unmittelbarer Nachbar gleich ist, wird zur Bestimmung der nächste ungleiche Nachbar verwendet. Wenn eine Spitze oder ein Tal einen Nachbarn hat, der gleich ist, wird der linke äußere Ort ausgewählt;
    • (4) obgleich das Histogramm geglättet worden ist, enthält es immer noch eine Welligkeit. Um zu bestimmen, welche der in dem vorangehenden Schritt ermittelten Spitzen und Täler von Interesse sind, werden Spitzen- und Talschwellenwerte gewählt. Es werden lediglich Täler betrachtet, die unter dem Talschwellenwert liegen. Gleichfalls werden lediglich Spitzen betrachtet, die über dem Spitzenschwellenwert liegen. Der Spitzenschwellenwert wird dadurch bestimmt, dass der Durchschnitt aller Spitzenhöhen größer als 4 mit Ausnahme der höchsten Spitze und der tiefsten Spitze (die größer als 4 ist) gebildet wird. Dieser Wert wird dann um minus 2 einseitig verschoben, um Grenzlinienspitzen anzunehmen. Falls es weniger als 5 Spitzen gibt, die größer als 4 sind, wird der Schwellenwert als die niedrigste Spitze, die größer als 4 ist, eingestellt. Falls es lediglich 1 Spitze größer als 4 gibt, wird der Schwellenwert auf diesen Wert minus 1 eingestellt. In den folgenden Schritten werden lediglich jene Schritte betrachtet, die größer als der Schwellenwert sind. Der Talschwellenwert wird dadurch bestimmt, dass der Durchschnitt aller Taltiefen größer als 0 mit Ausnahme des höchsten Tals und des tiefsten Tals (das größer als 0 ist) gebildet wird. Dieser Wert wird daraufhin um plus 2 einseitig verschoben, um Grenzlinientäler zu akzeptieren. Falls es weniger als 5 Täler gibt, die größer als 0 sind, wird der Schwellenwert auf das höchste Tal eingestellt, das größer als 0 ist. Falls es lediglich 1 Tal größer als 0 gibt, wird der Schwellenwert auf diesen Wert plus 1 eingestellt. In den folgenden Schritten werden lediglich jene Täler betrachtet, die kleiner als der Schwellenwert sind. In Fällen, in denen der Spitzenschwellenwert kleiner als der Talschwellenwert ist, gilt die folgende Vorschrift. Falls mehr Spitzen als Täler ermittelt wurden, ist der Talschwellenwert gleich dem Spitzenschwellenwert einzustellen. Falls es dagegen mehr Täler als Spitzen gab, ist der Spitzenschwellenwert gleich dem Talschwellenwert einzustellen.
  • Nachdem nun alle Spitzen und Täler identifiziert und die Spitzen- und Talschwellenwerte gewählt worden sind, kann der Rauschschwellenwert bestimmt werden. Grundsätzlich erfolgt dies dadurch, dass im geglätteten Histogramm (22) das tiefste Tal ermittelt wird, das kleiner als der Talschwellenwert ist, der zwischen zwei Spitzen liegt, die größer als der Spitzenschwellenwert sind. Aus mehreren Gründen ist es gelegentlich möglich, dass dieses Verfahren kein Tal ermittelt: lediglich 1 Spitze über dem Spitzenschwellenwert, keine Täler unter den Talschwellenwerten zwischen den Spitzen über dem Spitzenschwellenwert, keine Spitzen oder Täler, die ihre Schwellenwerte überschreiten, usw. Wenn dies geschieht, wird das folgende Verfahren zum Wählen eines Tals verwendet. Falls es keine Spitzen über dem Spitzenschwellenwert gab oder falls die erste Spitze in der Liste den Spitzenschwellenwert überschreitet, ist unabhängig davon, ob es unter dem Talschwellenwert liegt, das erste Tal in der Liste zu wählen. Andernfalls ist das tiefste Tal in der Liste zu wählen, das der ersten Spitze vorangeht, die den Spitzenschwellenwert überschreitet.
  • Wenn ein Tal aus dem geglätteten Histogramm ausgewählt worden ist, werden unabhängig von dem verwendeten Verfahren die vier Orte in dem ursprünglichen ungeglätteten Histogramm, die den ausgewählten Punkt repräsentieren, untersucht. Der niedrigste der vier Orte wird als der Schwellenwert ausgewählt. Falls mehr als einer dieser Orte den niedrigsten Wert gemeinsam hat, wird der linke äußere Ort ausgewählt. Dieser Wert wird daraufhin dekrementiert, so dass Stärken, die gleich dem tiefsten Punkt sind, während des Umsetzungsprozesses als reale Daten akzeptiert werden.
  • Nachdem nun ein Rauschschwellenwert bestimmt worden ist, können die Daten in das Standard-DBP-Format umgesetzt werden, um sie mit den in den oben zitierten Patentanmeldungen beschriebenen Standarddecodierungsalgorithmen zu decodieren. Dies erfolgt dadurch, dass die Ladung durchlaufen wird, wobei Kanten, die den Rauschschwellenwert nicht überschreiten, die zwischen Kanten mit wechselnder Polarität liegen, die ihn überschreiten, verkettet werden. Zum Beispiel ist in 26A gezeigt, dass die Synchronimpulse 400, 402, 404, 406, 408 und 410 wie angegeben jeweils die Kantenstärkepegel 20, 18, 9, 11, 22 und 21 haben. Das entsprechende Polaritätssignal ist in 26B angegeben. Zum Beispiel überschreiten die Synchronimpulssignale 404 und 406 bei einem Schwellenpegel von z. B. 15 diesen Schwellenpegel nicht und werden somit als falsche Kanten (d. h. Kanten vom Rauschen) betrachtet. Somit ignoriert der Decodierer bei der DBP-Umsetzung wie in 26C angegeben den Synchronimpuls 404.
  • Wenn mehr als eine Kante mit der gleichen Polarität ermittelt wird, die den Schwellenpegel überschreitet, bevor eine geeignete Kante mit der entgegengesetzten Polarität festgestellt wird, wird, wie in den 27A27C gezeigt ist, das stärkste Kantenstärke-Synchronimpulssignal ausgewählt. Zum Beispiel ist dort das Synchronimpulssignal 420, 422, 424, 426, 428, 430 und 432 gezeigt, das wie in 27A angegeben jeweils die Kantenstärkepegel 20, 16, 68, 18, 17, 23 und 19 besitzt. Ein Schwellenpegel ist wieder z. B. 15. Somit übersteigt das Synchronimpulssignal 424 nicht den Schwellenpegel 15 und wird wie oben beschrieben ignoriert. Wie in 27B gezeigt ist, haben in diesem Beispiel ferner zwei aufeinander folgende Synchronimpulssignale 428, 430 die gleiche Kantenpolarität. Somit wird das Synchronimpulssignal mit dem stärksten Kantenstärkepegel, hier der Synchronimpuls 430, als der Synchronimpuls zur Bestimmung der Polarität (d. h. als das umgesetzte DBP-Signal, 27C) ausgewählt., das den Zustand in Reaktion auf die stärkere Kantenstärke; d. h. das Synchronimpulssignal 430 wie in 26C gezeigt, ändert Es wird angemerkt, dass das Kantenverbesserungsfilter 30 (3) gemäß Software-Steuerung "ein"geschaltet oder "aus"geschaltet werden kann. Wenn dieses Filter 30 "ein"geschaltet ist, erhöht es wie oben diskutiert die Fähigkeit des Scanners zum Lesen hochdichter Symbole. Allerdings wird die Fähigkeit des Scanners zum Lesen schlecht gedruckter Punktmatrixsymbole verringert, wenn das Filter 30 "ein" ist. Vorzugsweise wird das Kantenverbesserungsfilter 30 in jeder dritten Abtastung für die Dauer einer Abtastung "ein"geschaltet. Dies erfolgt, um sicherzustellen, dass das Filter bei abwechselnden Abtastrichtungen aktiv ist. In Fällen, in denen mehrere Decodierungen erforderlich sind, wird das Filter in dem Zustand gelassen, den es zur Zeit der Anfangsdecodierung hat, wenn eine Decodierung stattgefunden hat.
  • Außerdem sind angepasste Filter für eine optimale Strichcodekantenerfassung vorgesehen. In bekannten Systemen wird die Kantenerfassung von Strichcodesignalen üblicherweise durch Tiefpassfilterung und Differenzierung, gefolgt von einer Spitzenerfassung (Erste-Ableitung-R/D-Umsetzer) oder von einer Nulldurchgangserfassung (Zweite-Ableitung-A/D-Umsetzer), ausgeführt. Das Tiefpassfilter wird verwendet, um Rauschen zu entfernen, während das Strichcodesignal nur minimal verzerrt wird, und ist somit so konstruiert, dass es ein ideales Tiefpassfilter mit einem scharfen Übergangsband und einer ausgezeichneten Sperrbereichsdämpfung annähert.
  • Es wird nun eine neue Perspektive zu dieser Filterkonstruktion vorgeschlagen. Es wird nun vorgeschlagen, das Standard-Tiefpassfilter und die erste Ableitung durch ein angepasstes Filter zu ersetzen. Das angepasste Filter ist ein optimales Filter hinsichtlich des Signal/Rauschens und repräsentiert somit eine obere Grenze hinsichtlich der Leistungsfähigkeit. Da das genau angepasste Filter unter Verwendung analoger Bauelemente (wegen ihrer Impulsantwort mit endlicher Länge), wie im Folgenden ausführlicher diskutiert wird, nicht realisierbar ist, kann eine Näherung erreicht werden.
  • Das Konzept angepasster Filter ist in Bezug auf Kommunikationsempfänger diskutiert worden, wobei die Grundtheorie hinter angepassten Filtern in Anhang A zu der Beschreibung gegeben wird.
  • Wie ausführlicher in der Einleitung diskutiert worden ist, sind bekannte angepasste Filter für die Strichcode-Scanner ungeeignet, da sie für Kommunikationssysteme konstruiert worden sind, in denen die Bitrate festgesetzt ist und ein Bitsynchronisationstakt verfügbar ist. Andererseits ist der erste Hauptunterschied für Strichcode-Scanner und andere optische Leser, dass sie keine synchronen Systeme sind (d. h. kein externer Takt verfügbar ist), so dass jede Kante zwischen Flächen mit verschiedenem Lichtreflexionsvermögen wie etwa Strichen und Zwischenräumen (analog einem Bitübergang) auf isolierte Weise, asynchron von den anderen Kanten, erfasst wird. Außerdem ist es in vielen Strichcodesystemen notwendig oder zumindest nützlich, die Bandbreite des angepassten Filters zu ändern (d. h. das Filter abzustimmen).
  • Wie im Folgenden ausführlicher diskutiert wird, würde irgendein Typ einer Strichcodeabtastung aus dem an den Strichcode angepassten Filter hinsichtlich der Verbesserung des Signal/Rausch-Verhältnisses und somit der Verbesserung der Abtastleistungsfähigkeit Nutzen ziehen. Von besonderer Relevanz ist das Filter für Systeme, bei denen sich die Abtastraten ändern können. Ein abstimmbares, an den Strichcode angepasstes Filter könnte außerdem in Standardsystemen mit fester Abtastrate verwendet werden, in denen sich die Bandbreite des Strichcodesignals (d. h. das Inverse des kleinsten Strichs oder Zwischenraums) wegen der Abtastung verschiedener Dichten und der Abtastung in verschiedenen Abständen dennoch ändert.
  • Wie im Folgenden ausführlicher diskutiert wird, kann gezeigt werden, dass das ideal angepasste Filter ein Signal/Rausch-Verhältnis besitzt, das um 2,8 dB besser als beim besten momentan verwendeten Filtert und 4,2 dB besser als bei dem von den Erfindern häufig verwendeten Standardfilter ist. Es werden zwei verschiedene näherungsweise angepasste Filter betrachtet. Diese Filter können mit analogen Bauelementen gebaut werden und besitzen Signal/Rausch-Verhältnisse, die um 0,3 dB und 0,8 dB kleiner als die des ideal angepassten Filters sind. Die Filter sind nützlich in Scannern, die durch das Signal/Rausch- Verhältnis beschränkt sind. Dies betrifft langreichweitige Scanner, Hochgeschwindigkeitsscanner, Nicht-Retro-Scanner und LED-Scanner. Diese Filter können ohne zusätzliche Kosten verwendet werden. Unter Verwendung eines der Filter kann die Scannerkonstruktion entweder durch eine Verringerung der Sammelfläche (z. B. der Spiegelgröße oder der Photodiodengröße) oder durch eine Zunahme der Arbeitsreichweite verbessert werden.
  • Es kann gezeigt werden, dass die Sammelfläche (z. B. die Spiegelgröße für Retro-Scanner und die Photodiodengröße für Nicht-Retro-Scanner) durch einen Wechsel von einem Standardfilter mit reellen Polen zu einem der vorgeschlagenen Filter auf 41% ihrer ursprünglichen Größe verringert werden kann. Ähnlich kann die Arbeitsreichweite um 25% erhöht werden, falls die Arbeitsreichweite durch vom Umgebungslicht induziertes Rauschen begrenzt ist.
  • Das System wird nun ausführlicher beschrieben:
  • In Strichcode-Laserscannern werden die Kanten des Strichcodes durch etwas erfasst, das als ein A/D-Umsetzer bezeichnet wird. Es gibt viele Formen von A/D-Umsetzern, die aber bestimmte Merkmale gemeinsam haben. Die älteren Scanner verwendeten nichtlineare Elemente (d. h. Dioden) für den Bau einfacher, preiswerter A/D-Umsetzer.
  • Wegen der durch diese Nichtlinearitäten verursachten Verzerrung fallen die meisten momentanen A/D-Umsetzer aber in eine von zwei Kategorien: Erste-Ableitung-A/D-Umsetzer und Zweite-Ableitung-A/D-Umsetzer. In einem Erste-Ableitung-A/D-Umsetzer wird ein Spitzendetektor benötigt, während in einem Zweite-Ableitung-A/D-Umsetzer ein Nulldurchgangsdetektor benötigt wird. Es gibt weitere, subtilere Faktoren, wobei der Grundzugang aber ähnlich ist. In Bezug auf einen Erste-Ableitung-A/D-Umsetzer ist 33 ein Blockschaltplan eines Standard-Erste-Ableitung-A/D-Umsetzers mit einem Eingangssignal r(t).
  • In dem Erste-Ableitung-A/D-Umsetzer wird ein Tiefpassfilter 520 verwendet, um so viel Rauschen wie möglich zu entfernen, ohne das Strichcodesignal zu verzerren. Ein Ableitungs- und Spitzendetektor (521, 522) erfassen zusammen die Wendepunkte (Übergänge) des gefilterten Signals. Diese Punkte sollten sehr nahe bei den Kanten des ursprünglichen Strichcodesignals auftreten; allerdings gibt es wegen der Faltungsverzerrung und dem Rauschen einen gewissen Fehler.
  • In A2 ist ein Grundsystem mit angepasstem Filter gezeigt, das im Anhang A zu der Beschreibung beschrieben ist. In dem angepassten Filter ist die Impulsantwort des Filters (die Zeitumkehr des zu erfassenden Signals) an das Signal angepasst, das das System zu erfassen versucht. Die Grundprinzipien angepasster Filter sind dem Fachmann aus verschiedenen Quellen wie etwa den in Anhang A hierzu angegebenen Literaturhinweisen bekannt, wobei hier die genauen Bauelemente für das System nicht ausführlich beschrieben werden.
  • Wie im Folgenden ausführlicher diskutiert wird, nutzen Ausführungsformen das Prinzip der "Module" in einem Strichcodesymbol, wobei ein Modul das schmalste Element (Strich oder Zwischenraum) des Strichcodes ist.
  • Mit Bezug auf bekannte Empfänger (Digitalkommunikationsempfänger) bestehen diese Empfänger aus einem Kanalentzerrer zur Kompensation eines nicht idealen Kanals, gefolgt von einem angepassten Filter zur Symbolerfassung. Dieser Zugang behandelt die zwei Hauptfaktoren, die das Lesen des Strichcodes beeinflussen: Faltungsverzerrung und Rauschen. Der Kanalentzerrer (das zuvor erwähnte Kantenverbesserungsfilter) hängt von dem Kanal ab, der bei der Strichcodeabtastung der Fleckgröße des Laserstrahls entspricht. Diese ändert sich mit dem Abstand, wobei es erforderlich wäre, die Fleckgröße genähert zu bestimmen, um wegen der Laserstrahlbreite zu korrigieren. Das an den Strichcode angepasste Filter ist so konstruiert, dass es an einen einzelnen Modulstrich, gefolgt von einem einzelnen Modulzwischenraum, angepasst ist. Ein Filter, das an einen einzelnen Modulzwischenraum, gefolgt von einem einzelnen Modulstrich, angepasst ist, ist genau das Gleiche wie das erste Filter mit dem entgegengesetzten Vorzeichen, so dass es möglich ist, beide Fälle mit nur einem einzigen Filter abzudecken. In einem Kommunikationssystem sind die Symbole synchronisiert, so dass der Empfänger das Ausgangssignal der angepassten Filter am Ende der Symbolzeit abtastet.
  • Wie oben diskutiert wurde, gibt es in einem Strichcodesystem keine solche Synchronisation; die Abtastgeschwindigkeit ist unbekannt und häufig nicht einmal sehr gleichförmig, so dass das Kantenerfassungsschema nicht synchronisiert ist. Das Verfahren, dies zu behandeln, ist, die Spitze des von dem angepassten Filter kommenden Signals zu erfassen. 34 ist ein Blockschaltplan des vorgeschlagenen Strichcode-Kantendetektors.
  • Um für den Kanal mit einem Kanalentzerrer zu entzerren, ist es erforderlich, die Fleckgröße des Laserstrahls zu bestimmen, was z. B. mit dem im Folgenden diskutierten Zugang adaptiver Filter erfolgen kann. Die Bauelemente des Systems, die an diesem Punkt betrachtet werden, sind ein angepasstes Filter 526, gefolgt von einem Spitzendetektor 527. Um die Analyse zu vereinfachen, wird angenommen, dass der Strichcode, der abgetastet wird, eine Einheitsmodulgröße hat. Alle hier diskutierten Filter können durch die tatsächliche Modullänge skaliert werden, um das richtige Filter zu erhalten. In vielen Systemen sind Filter für das Signal mit der höchsten Frequenz (d. h. das kürzeste Modul konstruiert. Allerdings ergibt sich eine Verbesserung des Signal/Rausch-Verhältnisses, falls ein System gebaut wird, das das Filter auf die tatsächliche Modullänge skaliert.
  • Die Impulsantwort des oben erwähnten ideal angepassten Filters ist wie in 35 gezeigt,
  • Figure 00460001
  • Zum Vergleich ist in 35 die Impulsantwort eines (im Folgenden ausführlicher diskutierten näherungsweise angepassten Filters gezeigt.
  • In einem Kommunikationssystem wird das Signal/Rausch-Verhältnis am Ende der Symbolperiode definiert. Da das Symbolintervall bei der Strichcodeabtastung nicht bekannt ist, wird das Signal/Rausch-Verhältnis zu der Zeit definiert, zu der der Spitzendetektor die Spitze des Signals erfasst. Es sei tp die Zeit, zu der die Spitze erfasst wird. Gemäß der Analyse aus Anhang A ist das Signal/Rausch-Verhältnis durch Gleichung (A.7) gegeben, wobei T durch tp ersetzt ist,
  • Figure 00460002
  • Somit ist es notwendig, die Spitzenzeit tp zu bestimmen und S(tp) zu berechnen, um das Signal/Rausch-Verhältnis zu bestimmen. Da das Rauschen stationär ist, ändert sich seine Statistik mit der Zeit nicht, so dass die Rauschleistung eine Konstante ist.
  • Das Problem bei dem vorgeschlagenen angepassten Filter ist, dass es eine endlich lange Impulsantwort hat. Ein solches Filter kann mit analogen Standardbauelementen nicht genau gebaut werden, da die Übertragungsfunktion eine unendliche Anzahl von Polen besitzt.
  • Da das ideal an den Strichcode angepasste Filter nicht realisierbar ist, ist es erforderlich, ein näherungsweises Filter zu bauen, das so nahe wie möglich wie das ideale Filter funktioniert (siehe 35).
  • Es gibt viele Verfahren zum Annähern einer Übertragungsfunktion oder gleichwertig einer Impulsantwort. Das hier vorgeschlagene Verfahren ist das Annähern der Übertragungsfunktion des an den Strichcode angepassten Filters unter Verwendung einer Padé-Näherung.
  • Padé-Näherungen sind diskutiert in "Padé Approximants – Part I: Basic Theory", Encyclopedia of Mathematics and its Applications, Bd. 13, G. A. Baker, Jr., und P. Graved-Morris, Addison-Wesley, 1981. Die Prinzipien sind dem Fachmann bekannt, wobei aber zusammengefasst gilt:
  • Ausgehend von einer komplexen Funktion f(z) ist ein Verfahren zur Darstellung der Funktion das in einer Taylor-Reihe, f(z) = c0 + c1z + c2z2 + ....
  • Die Taylor-Reihe kann abgeschnitten werden, wobei eine Polynomialnäherung der Funktion f(z) erhalten wird. Ähnlich ist eine Padé-Näherung eine Näherung einer komplexen Funktion durch einen Quotienten zweier Polynome,
  • Figure 00470001
  • Die Theorie der Padé-Näherung erläutert, wie die Bauelemente auf optimaler Weise zu bestimmen sind.
  • Falls eine Übertragungsfunktion durch das Verhältnis zweier Polynome genähert wird, ist es möglich, das durch diese Näherung beschriebene System mit einer analogen Schaltung zu realisieren. Dies ist es, was für das angepasste Filter getan wird. Die Impulsantwort des angepassten Filters kann als h(t) = u(t) – 2u(t – 1) + u(t – 2)geschrieben werden, wobei u(t) die Heaviside-Einheitsstufenfunktion ist. Bilden der Laplace-Transformation der Impulsantwort gibt die Übertragungsfunktion des ideal angepassten Filters,
  • Figure 00480001
  • Bei der Ausführung einer Padé-Näherung ist es erforderlich, die Ordnungen des Zählerpolynoms und des Nennerpolynoms auszuwählen. In den momentanen Systemen erfordern die Filter und die erste Ableitung zumindest drei Operationsverstärker. Somit könnte ein Filter fünfter Ordnung realisiert werden, das mit drei Operationsverstärkern gebaut werden könnte.
  • Ein solches näherungsweise angepasstes Filter wird als ein "Dritte-über-fünfte-Ordnung-System" bezeichnet und kann durch eine Hintereinanderschaltung zweier Systeme zweiter Ordnung und eines Systems erster Ordnung realisiert werden. H(s) kann als
    Figure 00480002
    faktorisiert werden, wobei
    N(s) zweiter Ordnung
    D1(s) erster Ordnung
    D2(s) zweiter Ordnung
    D3(s) zweiter Ordnung
    ist, während H(s) als
    Figure 00480003
    geschrieben wird.
  • Dementsprechend ist H1(s) ein System erster Ordnung, das, wie in 36a gezeigt ist, leicht mit einer aktiven RC-Filterschaltung realisiert wird.
  • H2(s) ist ein allgemeines System zweiter Ordnung mit zwei Polen und zwei Nullstellen (wie im Folgenden ausführlicher diskutiert wird). Es kann unter Verwendung einer Schaltung wie etwa der in 36b gezeigten realisiert werden. Die gezeigte Schaltung umfasst ein allgemeines biquadratisches Filter, in dem die mit YA bis YD bezeichneten Elemente Admittanzen sind.
  • H3(s) ist ein System zweiter Ordnung mit zwei Polen und keinen Nullstellen, das mit einer wie in 36c gezeigten Schaltung realisiert werden kann. Die Figur zeigt ein Tiefpass-Mehrfachrückkopplungs-Verstärkerfilter mit unendlicher Verstärkung. Eine weitere Diskussion der Schaltungsanordnung und der entsprechenden Theorie ist zu finden in "Introduction to Operational Amplifiers Theory and Practice", J. V. Wait, L. P. Huelsman und G. A. Korn, McGraw-Hill 1975.
  • Das gesamte angepasste Filter ist in 36d gezeigt, in der die Schaltung aus 36a als H1(s) repräsentiert ist, die Schaltung aus 36b als H2(s) repräsentiert ist und die Schaltung aus 36c als H3(s) erwähnt ist, wobei ein insgesamt angepasstes Filter bereitgestellt wird.
  • Somit wird die Ordnung des Nenners auf 5 eingestellt. Es ist erwünscht, dass der Filterfrequenzgang bei hohen Frequenzen abfällt, so dass hochfrequentes Rauschen gedämpft wird. Somit wurde die Ordnung des Zählers um zwei weniger als die des Nenners gewählt (d. h. ein Zähler dritter Ordnung). Die Dritte-Ordnung-über-fünfte-Ordnung-Padé-Näherung des angepassten Filters kann "Mathematics: A System for Doing Mathematics by Computer", S. Wolfram, folgend abgeleitet werden:
  • Figure 00490001
  • Die Impulsantwort des näherungsweise angepassten Filters wird dadurch erhalten, dass die inverse Laplace-Transformation von Hp(s) gebildet wird. 35 zeigt die Impulsantwort sowohl des ideal angepassten Filters als auch die des näherungsweise angepassten Filters. Die Frage ist jetzt, wie gut dieses Filter ist. Es gibt zwei Maße für die Leistungsfähigkeit eines solchen Filters: das wie zuvor definierte Signal/Rausch-Verhältnis und die durch das Filter verursachte Verzerrung des Strichcodesignals (Faltungsverzerrung).
  • Das Signal/Rausch-Verhältnis ist durch Gleichung (2) gegeben, wobei die Zeit tp die Zeit der Signalspitzen in Reaktion auf ein einzelnes Strich-Zwischenraum-Modulpaar ist. Somit ist das Eingangssignal x(t) = u(t) + 2u(t – 1) – u(t – 2). Die Spitzenzeit des Ausgangssignals tp wurde unter Verwendung einer numerischen Routine zum Ermitteln des Maximums einer Funktion ermittelt. Wie in dem oben erwähnten Literaturhinweis von S. Wolfram definiert ist, ist die Rauschleistung durch Gleichung (A.8) gegeben. Falls der Wert von N0 so gewählt wird, dass er das Signal/Rausch-Verhältnis des ideal angepassten Filters normiert, ist er 0 dB. Dies ist nützlich für Vergleichszwecke, da alle anderen Filter leicht mit dem optimalen Filter verglichen werden können. Der Wert von 0 dB kann ebenfalls direkt aus Gleichung A.9 für das ideal angepasste Filter ermittelt werden. Mit diesem Wert von N0 ist das Signal/Rausch-Verhältnis für das näherungsweise angepasste Filter –0,31 dB. Somit ist das näherungsweise angepasste Filter ausgezeichnet in Bezug auf das Signal/Rausch-Verhältnis. Das nächste zu behandelnde Problem ist die durch dieses Filter verursachte Verzerrung des Strichcodesignals.
  • Die Verzerrung des Strichcodesignals wird in Bezug auf die ungünstigste Zeichenkombination für den Universal Product Code (UPC) gemessen. Die Verzerrung wird in Modulen gemessen, wobei ein Fehler von einem halben Modul ausreicht, um die Decodierung zu verhindern. Es ist vorgeschlagen worden, dass die durch die analogen Filter in dem Scanner verursachte Verzerrung wesentlich kleiner als die durch den Lichtstrahl verursachte Verzerrung sein sollte. Anhand dieses Arguments sollte die durch die analogen Filter verursachte maximale Verzerrung z. B. etwa 0,05 Module sein. Ein Konstrukteur kann sich entscheiden, eine etwas höhere Verzerrung zu akzeptieren, um die Leistungsfähigkeit auf anderen Gebieten (z. B. Signal/Rausch-Verhältnis) zu verbessern.
  • Es wird angemerkt, dass die Impulsantwort des ideal angepassten Filters in 35 außerhalb des Intervalls [0,2] null ist, so dass durch angrenzende Elemente keine Verzerrung verursacht wird. Somit ist das ideal angepasste Filter optimal in Bezug auf die Verzerrung sowie in Bezug auf das Signal/Rausch-Verhältnis. Die Impulsantwort des näherungsweise angepassten Filters verläuft über das Intervall [0,2] hinaus, so dass es eine gewisse Störung von angrenzenden Elementen gibt, die zur Verzerrung des Strichcodesignals führt. Wenn die zur Bestimmung der durch ein analoges Filter verursachten Verzerrung verwendeten Verfahren auf das näherungsweise angepasste Filter angewendet werden, stellt sich heraus, dass die durch das näherungsweise angepasste Filter verursachte Verzerrung 0,1 Module beträgt. Dies ist das Doppelte des ursprünglichen Konstruktionsziels, aber immer noch nicht übermäßig viel.
  • Ein Verfahren zur Erzeugung einer alternativen Näherung an das angepasste Filter ist die Verwendung einer Padé-Näherung für ein Filter, das eine kürzere Impulsantwort besitzt. In einem Versuch, ein neues Filter mit einer Verzerrung von etwa 0,05 Modulen zu ermitteln, wurden mehrere Prototypfilter verwendet. Zum Beispiel ist für ein Filter, das eine Impulsantwort
    h(t) = u(t) – 2u(t – 0,88) + u(t – 1,76) besitzt, die Padé-Näherung für dieses Filter
  • Figure 00510001
  • Das durch ein solches Filter erhaltene Signal/Rauschen kann zu –0,86 dB berechnet werden, so dass das Signal/Rauschen durch Verringern der Verzerrung um etwa 0,5 dB verringert wird. Die Impulsantwort dieses Filters ist zusammen mit der Impulsantwort der ersten Padé-Näherung in 43 graphisch dargestellt.
  • Ein Bedenken über irgendein vorgeschlagenes Filter ist die Schwierigkeit der Verwendung serienmäßig gefertigter Standardteile. Ein weiteres Hauptbedenken für das Filter ist, dass es keine Pole mit sehr hohem Q verwendet, die einen Hochgeschwindigkeitsbetrieb an Verstärkern erfordern würden. Durch die Näherung des ideal angepassten Filters mit einer Übertragungsfunktion fünfter Ordnung ist es möglich, das Filter unter Verwendung eines aktiven RC-Filters zu bauen. Die einzige weitere zu untersuchende Fragestellung ist, ob die Pole und Nullstellen des Filters ein sehr großes Q haben, was Operationsverstärker mit höherer Bandbreite als in Standardfiltern erfordern würde. Das zweite näherungsweise angepasste Filter ist grundsätzlich eine zeitskalierte Version des ersten, so dass sich nicht das Q der Pole und Nullstellen, sondern lediglich ihre absolute Lage ändert.
  • Die Polstellen können ermittelt werden, falls der Nenner der Übertragungsfunktion für das Filter (7) der ersten Padé-Näherung faktorisiert wird. Ähnlich können durch Faktorisieren des Zählers die Nullstellen ermittelt werden. 37 ist eine graphische Darstellung aller Pol- und Nullstellen des Filters.
  • Das größte Q der Pole beträgt lediglich 0,86, was recht akzeptabel ist. Es wird angemerkt, dass die zwei komplexen Nullstellen recht nahe bei der jw-Achse liegen, so dass ihr Ort etwas empfindlicher gegenüber einer Bauteilstreubreite sein kann. In irgendeiner Konstruktion wäre es immer erforderlich, die Wirkung einer Bauteilstreubreite sowie nicht idealer Operationsverstärker zu betrachten. Die unter Berücksichtigung dieser Faktoren erhaltene Übertragungsfunktion kann daraufhin hinsichtlich des Signal/Rauschens und der Verzerrung analysiert werden. Da das Filter lediglich eine Näherung des ideal angepassten Filters ist, haben kleine Änderungen der Übertragungsfunktion aber wahrscheinlich eine minimale Wirkung auf die Leistungsfähigkeit.
  • Es wird nun die Leistungsfähigkeit einer Anzahl von Filtern verglichen. Die betrachteten Filter sind: das ideal angepasste Filter, das erste und das zweite näherungsweise angepasste Filter, das Butterworth-Filter mit erster Ableitung und ein Filter mit drei reellen Polen mit erster Ableitung. Die Filter werden sowohl hinsichtlich des Signal/Rausch-Verhältnisses als auch hinsichtlich der Verzerrung verglichen. Um die Vergleiche zu erleichtern, werden alle Filter skaliert, so dass das Rauschen nach dem Filter (A.8) die gleiche Rauschleistung wie das ideal angepasste Filter besitzt. Dies verleiht dem ideal angepassten Filter ein Signal/Rausch-Verhältnis von 0 dB, was für Vergleichszwecke nützlich ist. Dadurch, dass alle Filter in der Weise skaliert werden, dass ihre Ausgangsrauschleistungen gleich sind, ist das Signal/Rausch-Verhältnis lediglich durch Betrachtung der Ausgangssignalleistung des Filters in Reaktion auf eine Strichcodekante zu sehen.
  • In 38 sind die Impulsantworten der fünf Filter gezeigt. Es ist zu sehen, wie die Padé-Näherungen nahe dem ideal angepassten Filter sind, das Butterworth-Filter verschieden ist und das Filter mit reellen Polen sehr verschieden ist. Die Abschneidefrequenz des Butterworth-Filters ist 0,6T–1, wobei T die Dauer eines Moduls ist. Die Abschneidefrequenz des Filters mit reellen Polen ist 0,5T–1. Dies sind typische Abschneidefrequenzen für bekannte Produkte.
  • Da jedes dieser Filter normiert worden ist, so dass es zu dem gleichen Rauschen führt, ist das Maß für die Leistungsfähigkeit, welches Filter das Signal am meisten verbessert.
  • Dies ist dadurch zu sehen, dass die Antwort des Filters auf ein einzelnes Modul-Strich-Zwischenraum-Paar betrachtet wird. Somit ist das Eingangssignal x(t) = –u(t) + 2u(t – 1) – u(t – 2). Die Antwort der Filter auf diese Strichcodekante ist in 39 gezeigt.
  • Dasjenige Filter, das die größte Spitzenantwort besitzt, hat das größte Signal/Rausch-Verhältnis. Das ideal angepasste Filter ist das Beste, gefolgt von der ersten und von der zweiten Näherung und daraufhin das Butterworth-Filter und das Filter mit reellen Polen.
  • Figure 00530001
  • Tabelle 1 vergleicht alle fünf Filter hinsichtlich des normierten Signal/Rausch-Verhältnisses und der Faltungsverzerrung. Das Signal/Rausch-Verhältnis ist in der Weise normiert worden, dass das ideal angepasste Filter ein Signal/Rausch-Verhältnis von 0 dB besitzt, was leichte Vergleiche ermöglicht. Es wird angemerkt, dass das ideal angepasste Filter keine Verzerrung und das höchste Signal/Rausch-Verhältnis besitzt. Das erste näherungsweise angepasste Filter ist eine ausgezeichnete Näherung, da das Signal/Rausch-Verhältnis lediglich um 0,31 dB fällt. Allerdings ist die ungünstigste Verzerrung 0,1 Module, was etwas hoch ist. Das zweite näherungsweise angepasste Filter ist um 0,86 dB schlechter als das ideal angepasste Filter und besitzt eine Verzerrung von nur 0,05 Modulen. Sowohl das Butterworth-Filter als auch das Filter mit reellen Polen besitzt ein um 2,83 bzw. 4,20 dB niedrigeres Signal/Rausch-Verhältnis. Die Verzerrung ist in diesen Filtern niedriger, so dass die Abschneidefrequenzen etwas, aber nicht viel, niedriger gemacht werden könnten, was das Signal/Rauschen nur leicht erhöhen würde.
  • Es wird nun betrachtet, welche Verbesserungen in dem Scanner durch diese Verbesserung des Signal/Rausch-Verhältnisses erhalten werden können. In diesem Abschnitt werden zwei Arten von Verbesserungen diskutiert: eine Verringerung der Sammelfläche und eine Zunahme der Arbeitsreichweite, wenn (z. B. unter hohem Umgebungslicht) durch Rauschen begrenzt. Die Sammelfläche repräsentiert die Spiegelgröße für einen Retro-Scanner oder die Photodiodengröße für einen Nicht-Retro-Scanner (der einen starren Detektor verwendet).
  • Wenn das durch das Umgebungslicht induzierte Rauschen dominiert, ist das Signal/Rausch-Verhältnis proportional zur Quadratwurzel der Lichtsammelfläche, SNR ∝ 20log(√Fläche).
  • So ermöglicht eine Verbesserung des Signal/Rauschens von 3,89 dB durch Wechsel von einem Filter mit reellen Polen zu einer ersten Padé-Näherung des angepassten Filters die Verwendung eines Kollektors mit 41% der Fläche des ursprünglichen Kollektors. In einem weiteren Beispiel ermöglicht eine Verbesserung des Signal/Rauschens um 1,97 dB durch Wechsel von dem Butterworth-Filter zu der zweiten Padé-Näherung die Verwendung eines Kollektors mit 64% der Fläche des ursprünglichen Kollektors.
  • Das Signal/Rausch-Verhältnis ist proportional zum Quadrat des Abstands zum Strichcode SNR ∝ 20log(r2)
  • Somit wird die Arbeitsreichweite erhöht, falls die begrenzende Bedingung das Signal/Rausch-Verhältnis ist. Unter Verwendung der vorangehenden zwei Beispiele führt eine Verbesserung von 3,89 dB des Signal/Rausch-Verhältnisses zu einer 1,25-fachen Arbeitsreichweite der ursprünglichen Arbeitsreichweite. Ähnlich führt eine Verbesserung von 1,97 dB zu einer 1,12-fachen Arbeitsreichweite der ursprünglichen Arbeitsreichweite.
  • Das hier diskutierte an den Strichcode angepasste Filter ist eines einer Anzahl von Signalverarbeitungskonzepten, die auf die Strichcodedecodierung angewendet werden können. Die Implementierung des angepassten Filters in einer festen Analogschaltung ist ebenfalls nur eine Option.
  • Die verwendeten Filter werden üblicherweise für das kleinste Modul (in der Zeit) konstruiert. Wenn bekannt ist, dass die Modulgröße das Doppelte des Minimums ist (wenn der Decodierer z. B. die näherungsweise Moduldauer beispielsweise auf bekannte Weise bestimmen kann), könnte das Filter aber an die tatsächliche Modulgröße angepasst werden. Falls das Filter für ein Modul neu skaliert wird, das die doppelte der ursprünglichen Größe besitzt, wird das Signal/Rausch-Verhältnis, siehe Gleichungen (A.9) und (A.10), um 3 dB erhöht. Somit kann die Verwendung von Filtern mit veränderlichen Bandbreiten zu einer erheblichen Erhöhung des Signal/Rauschens führen.
  • Eine weitere Fragestellung hinsichtlich der Realisierung des angepassten Filters ist, dass das ideal angepasste Filter in einem rein digitalen System leicht digital implementiert werden kann, da es lediglich ein einfaches Filter mit endlicher Impulsantwort (FIR-Filter) ist. Natürlich ist es in einem digitalen System noch leichter, das Filter an das Signal anzupassen. Eine weitere Fragestellung ist, dass das FIR-Filter lediglich aus 1-en und –1-en besteht, so dass es ohne irgendwelche Multiplizierer gebaut werden könnte. Dies ermöglicht eine einfache, preiswerte Implementierung. Eine weitere Realisierung wäre ein analoges abgetastetes Datensystem, das ladungsgekoppelte Vorrichtungen verwendet.
  • Eine letzte zu erwähnende Fragestellung ist, dass das an den Strichcode angepasste Filter für additives weißes Gaußsches Rauschen, das in vielen Fällen eine gute Annahme ist, das optimale Filter ist.
  • Die Filter sind besonders nützlich in Scannern, die wegen additiven weißen Gaußschen Rauschens durch das Signal/Rausch-Verhältnis begrenzt sind. Dies betrifft langreichweitige Scanner, Hochgeschwindigkeitsscanner, Nicht-Retro- Scanner und LED-Scanner. Da diese Filter ohne zusätzliche Kosten verwendet werden können, können sie zu Kosteneinsparungen hinsichtlich Photodiodengröße oder Spiegelgröße führen. Außerdem ist es sehr nützlich, das ideal angepasste Filter als einen Vergleichspunkt für irgendein Filter zu haben, das zur Verwendung in einem Scanner betrachtet werden kann.
  • Das Problem der automatischen Unschärfeentfernung für Strichcode-Laserscanner wird ebenfalls behandelt. In der Vergangenheit sind verschiedene Systeme, z. B. das im US-Patent Nr. 5.302.812 von Symbol Technologies, Inc., dargestellte Verfahren, vorgeschlagen worden.
  • Weitere bekannte Systeme umfassen ein abstimmbares Verbesserungsfilter und ein Linsenfokussierungsmodul für einen Laser – diese Systeme verschieben die Unschärfeentfernungs-Steuereingabe allgemein zwischen mehreren Werten, während sie mehrere Abtastungen von Daten sammeln in der Hoffnung, eine der Abtastungen zu decodieren. Das System gemäß dem oben identifizierten Patent untersucht den Kontrast des empfangenen analogen Signals. Dies beinhaltet ein Mittel zur Abtastung des analogen Signals, um den Kontrast zu berechnen, der durch C = (Imax – Imin)/(Imax + Imin)gegeben ist, wobei Imax der Wert des analogen Signals in einer Spitze ist, die dem von einem schwach gefärbten (z. B. weißen) Bereich des Codes reflektierten Licht entspricht, und Imax der Wert des analogen Signals in einem Minimum ist, das dem von einem stark gefärbten (z. B. schwarzen) Gebiet des Codes reflektierten Licht entspricht. Allerdings kann die Bestimmung des Signalkontrasts auf diese Weise fehlerhafte Ergebnisse erzeugen, wenn Umgebungslicht, Spiegelreflexion oder statistisches Rauschen das Signal verfälschen. Zum Beispiel zeigt 29 Signalformen eines idealen Strichcodesignals im Vergleich zu dem empfangenen analogen Signal mit Umgebungslichtkomponenten. In dieser Figur ist das Signal nur leicht unscharf. Falls das Signal dann stark unscharf ist, aber die gleichen Umgebungslichtkomponenten wie in 40 gezeigt besitzt, ist klar, dass das Maximum- und Minimumsignal im Wesentlichen ungeändert bleiben. Dennoch ist dieses Bild stark unscharf. Dementsprechend ist der Signalkontrast nicht notwendig ein guter Indikator für das Niveau der Unschärfe.
  • Die Streuung der Spitzen des doppelweggleichgerichteten Signals der ersten Ableitung ist ein besserer Indikator dafür, wann das Bild fokussiert ist. Zum Beispiel zeigt 30 das Signal der ersten Ableitung des durch Umgebungslicht verfälschten analogen Signals, das 29 entspricht. Da das Bild nur schwach unscharf ist, sind die Spitzenhöhen des doppelweggleichgerichteten Signals der ersten Ableitung nahezu gleich. Demgegenüber ist in 41 das doppelweggleichgerichtete Signal der ersten Ableitung eines stark unscharfen Signals gezeigt. Dies entspricht dem durch Umgebungsrauschen verfälschten analogen Signal aus 40. Durch visuelle Untersuchung ist zu sehen, dass dieses Signal eine viel größere Schwankung der Spitzenhöhen zeigt und dadurch eine starke Unschärfe angibt.
  • Das Signal der ersten Ableitung ist wegen seiner Hochpassfiltereigenschaft allgemein unempfindlich gegenüber niederfrequenten Rauschkomponenten in dem empfangenen analogen Signal. Dies ist es, weshalb sich seine Verwendung zur Bestimmung, wann das Signal im Brennpunkt ist, in einer Umgebung mit hohem Umgebungsrauschen als robust herausstellt. Außerdem ist es nicht erforderlich, das gesamte Signal abzutasten, um die Signalwerte in einem Maximum oder Minimum zu bestimmen. Stattdessen werden lediglich die Spitzenhöhen des doppelweggleichgerichteten Signals der ersten Ableitung benötigt. Die verringerte Anzahl von Datenpunkten, die verarbeitet werden müssen, senkt die Systemkosten und die Komplexität sehr. Nach Registrierung der Spitzenhöhen des doppelweggleichgerichteten Signals der ersten Ableitung wird die Schwankung dieser Spitzenpegel berechnet. Je kleiner die Schwankung ist, desto schärfer (oder decodierbarer) ist das reflektierte Bild. Somit arbeitet das Steuersystem in der Weise, dass es die Schwankung minimiert.
  • Allerdings kann zu viel Unschärfeentfernung das Rauschen in dem empfangenen Signal erhöhen. Somit darf die Unschärfeentfernung nur in dem von dem A/D-Umsetzer benötigten Umfang erfolgen. Dies kann dadurch sichergestellt werden, dass bestimmt wird, wann die Spitzenhöhen des Doppelwegsignals der ersten Ableitung alle innerhalb eines Spannungsbereichsfensters liegen. Dieses Fenster wird durch einen in einen Pegelquantisierer wie etwa den in 41 gezeigten eingegebenen oberen und unteren Schwellenwert eingestellt.
  • Die 44 und 45 zeigen Unschärfeentfernungssysteme des Standes der Technik für die Strichcodeabtastung, die einen ersten und einen zweiten Komparator 601, 602, einen Doppelweggleichrichtereingang 603 und einen oberen und einen unteren Schwellenwert 604, 605 enthalten. Das System in 44 verwendet ein Verbesserungsfilter 610 wie etwa den oben erwähnten Typ, an das das bei 611 in ein Spannungssignal umgesetzte Lichtsignal über ein Tiefpassrauschfilter 612 übergeben wird. Das Verbesserungsfilter 610 wird durch einen Schalter 613 gesteuert und gibt an einen Kantendetektor 614 und an einen Decodierer 615 aus. Anfangs wird das Lichtsignal durch einen Laser 616 erzeugt. 45 verwendet ein Laserfokussierungsmodul 617 wie etwa das in US 5.302.812 offenbarte, wobei das Lichtsignal bei 611 in ein Spannungssignal umgesetzt und durch ein Tiefpassrauschfilter 612, einen Kantendetektor 614 und einen Decodierer 615 verarbeitet wird. Das Laserfokussierungsmodul wird durch einen Schalter 618 gesteuert. Beide Systeme sind dadurch, dass ihr Steuereingangssignal durch die Schalter 613, 618 wahlfrei ohne Kenntnis des Grads der Bildunschärfe zwischen zwei oder mehr Einstellungen umgeschaltet wird, im Wesentlichen offene Regelkreise.
  • Die 46 und 47 zeigen Versionen mit geschlossenen Regelkreisen des Systems, das die Schwankung der Spitzenhöhen des doppelweggleichgerichteten Signals der ersten Ableitung prüft und das richtige Steuersignal erzeugt, das die Unschärfe minimiert.
  • 46 enthält wie in 44 zusammen mit einer Laserquelle 616 einen Lichtsignal/Spannungssignal-Umsetzer 611, ein Tiefpassrauschfilter 612, ein Verbesserungsfilter 610, einen Kantendetektor 614 und einen Decodierer 615. Allerdings ist anders als bei den wahlfrei umgeschalteten Verbesserungsfilter aus 44 ein Unschärfeentfernungssystem mit geschlossenem Regelkreis integriert. 47 zeigt ein Unschärfeentfernungssystem mit geschlossenem Regelkreis, das ein Laserfokussierungsmodul verwendet, dessen Grundbauelemente 45 entsprechen. Allerdings wird das Laserfokussierungsmodul durch das Unschärfeentfernungssystem mit geschlossenem Regelkreis umgeschaltet. Das wie in den 46 und 47 gezeigte System umfasst eine Differentiation 620, einen Doppelweggleichrichter 621, eine Spitzenlokalisierung 624, einen Pegelquantisierer 622 und einen Mikrocontroller 623. In den meisten Fällen sind der Differenzierer 620, der Doppelweggleichrichter 621 und der Spitzenlokalisierer 624 bereits Teil der Kantenerfassungs- oder A/D-Umsetzerschaltungsanordnung, wobei die geforderten Signale direkt überwacht werden können. Der Mikrocontroller zählt die Anzahl der Spitzen in einem Spannungsfenster und erzeugt ein für den Pegel der erforderlichen Unschärfeentfernung geeignetes Signal. Dies erfolgt in Echtzeit, nachdem jede Abtastung gesammelt worden ist und bevor die nächste Abtastung beginnt. Da der Mikrocontroller wenig zu tun hat, können diese Funktionen Teil des Mikroprozessors sein, der die Decodierung ausführt.
  • Die 48 bis 50 veranschaulichen die Funktion des Spitzenlokalisiererblocks 624, während 51 ein Blockschaltplan seiner Implementierung ist. Das Rauschschwellenwert-Eingangssignal 625 verhindert im Wesentlichen, dass der Block auf Rauschen unterhalb dieses Schwellenwerts reagiert. Das Ausgangssignal dieses Blocks ist jedes Mal, wenn eine Spitze des doppelweggleichgerichteten Signals der ersten Ableitung über diesem Rauschschwellenwert erfasst wird, ein einzelner Impuls an einen Zwischenspeicher 626 in dem Mikrocontroller 623. Ein Komparator A 630 erzeugt das Auftastsignal A 631 über einem voreingestellten Rauschschwellenwert. Dies ist in 48 gezeigt. Ein Komparator B 632 und ein Exklusiv-ODER-Gatter 633 erzeugen jedes Mal, wenn das Signal der zweiten Ableitung vom Differenzierer 634 null Volt durchquert, einen Signalimpuls. Dieses Ereignis tritt an den Spitzenorten des doppelweggleichgerichteten Signals der ersten Ableitung sowie in anderen Teilen des Signals auf. Dies ist in 49 gezeigt. Nach einem UND-Gatter 635 werden die wie in 50 gezeigten Impulse erzeugt, die die wahren Spitzenorte des doppelweggleichgerichteten Signals der ersten Ableitung angeben.
  • Das Spitzenlokalisierersignal wird verwendet, um die zeitliche Lage einer Spitze anzugeben, so dass der Prozessor den Spitzenwert in dem Pegelquantisierer 622 zwischenspeichern kann. Die Anzahl der Pegel in dem Quantisierer hängt vom Dynamikbereich des empfangenen Signals ab. Falls das System eine AGC enthält, kann der Pegelquantisierer lediglich zwei Signale benötigen. Das heißt, es ist lediglich erforderlich zu wissen, ob alle Spitzen innerhalb eines bestimmten Wertefensters liegen. Falls nicht, benötigt das Bild weitere Unschärfeentfernung. Dies ist in den 51 und 52 gezeigt. Es ist darauf zu achten, die Unschärfe nicht übermäßig zu entfernen, da das erhöhte Rauschen die Decodierung unmöglich machen kann. Somit werden der obere und der untere Schwellenwert für den Pegelquantisierer 622 auf Werte eingestellt, die optimal für den in dem System verwendeten A/D-Umsetzer (Kantendetektor) 614 sind.
  • Außerdem wird angemerkt, dass der Pegelquantisierer 622 als ein N-Bit-A/D-Konverter verallgemeinert werden kann, falls in dem System keine AGC verwendet wird. Dies macht einen Detektor 627 für die Einhüllende optional. Das heißt, die Gesamtsignalstärke kann dadurch genähert werden, dass entweder die gemittelte oder die maximale doppelweggleichgerichtete Spitzenableitungshöhe gebildet wird. Außerdem kann das Spannungspegelfenster zur Bestimmung, wann die Spitzen alle ähnliche Höhen haben, beliebig eingestellt werden.
  • Falls zur Unschärfeentfernung ein Fokussierungsmodul 617 verwendet wird, kann der Pegel des empfangenen Signals außerdem verwendet werden, um zu bestimmen, ob sich das Bild von dem Scanner fort oder näher zu ihm hin bewegt. Dies hilft, schnell zu bestimmen, in welcher Richtung sich das Steuersignal ändern sollte, um die Unschärfe zu minimieren. Das heißt, die Fleckgröße soll kleiner gemacht werden, indem die Taille des Strahls zu dem Bildort bewegt wird. Falls das Signal z. B. unschärfer wird, während das Gesamtsignal größer wird, gibt dies an, dass sich das Bild näher zu dem Scanner und von der Strahltaille wegbewegt. Falls das Signal unschärfer wird, die Gesamtsignalstärke aber kleiner wird, gibt dies gleichfalls an, dass sich das Bild von dem Scanner und von der Taille des Strahls wegbewegt.
  • Der Pegelquantisierer für die Spitzenableitungswerte kann unter Verwendung mehrerer Komparatoren implementiert werden. Die Anzahl der Komparatoren hängt vom Dynamikbereich des Signals ab. Ein Flash-N-Bit-A/D-Konverter besitzt im Wesentlichen 2N integrierte Komparatoren. Falls in dem System eine AGC enthalten ist, brauchen wie in 41 gezeigt lediglich zwei Komparatoren 601, 602 verwendet zu werden. Dies liegt daran, dass die Gesamtsignalstärke näherungsweise konstant gehalten wird. Allerdings bleibt die Beziehung zwischen den Spitzenhöhen des doppelweggleichgerichteten Spitzenableitungssignals ungeändert.
  • Während der Fleck wächst, gehen dem Spitzenlokalisiererblock einige der Spitzenorte verloren. Dies liegt daran, dass einige der gültigen Spitzen unter den Rauschschwellenpegel fallen. Somit muss der Algorithmus versuchen, nicht nur die Schwankung der Spitzenableitungshöhen zu minimieren, sondern auch die Anzahl gültiger Spitzen in dem Pegelquantisiererfenster zu maximieren. Zum Beispiel kann es in einer stark verrauschten Umgebung eine große Anzahl von Spitzen geben, wobei aber nicht alle Spitzen innerhalb des Pegelquantisiererfensters liegen. Dies gibt an, dass das Bild nicht im Brennpunkt ist. Falls die Anzahl der Spitzen klein ist und einige der Spitzen außerhalb des Pegelquantisiererfensters liegen, kann dies angeben, dass lediglich die größeren Spitzen erfasst werden. Das heißt, der Fleck kann zu groß gewesen sein, so dass die kleineren gültigen Spitzen unter den Rauschschwellenwert gefallen sind und nicht erfasst wurden. Somit ist das Bild im Brennpunkt, wenn die maximale Anzahl der Spitzen innerhalb des Pegelquantisiererfensters alle lokalisiert worden sind. Falls die momentane Abtastung alle Spitzen in dem Pegelquantisiererfenster lokalisiert hat, kann eine Decodierung versucht werden. Falls die Decodierung misslingt, kann in einem Versuch, die Anzahl der Spitzen in dem Pegelquantisiererfenster zu erhöhen, auf die neuen Abtastungen mehr Verbesserung angewendet werden. 53 zeigt einen Grundalgorithmus, wenn das System mit einem elektronischen Verbesserungsfilter verwendet wird, während 54 ihn zeigt, wenn das System mit einem Laserfokussierungsmodul verwendet wird.
  • 53 zeigt einen Algorithmus zur Unschärfeentfernung unter Verwendung eines abstimmbaren elektronischen Verbesserungsfilters. Bei 640 wird eine Abtastung empfangen und bei 641 eine Überprüfung ausgeführt, um zu sehen, ob alle Spitzen innerhalb des Pegelquantisiererfensters liegen. Bei ja wird bei 642 eine Decodierung versucht und bei 643 eine Decodierungsüberprüfung ausgeführt. Falls nicht alle Spitzen in dem Pegelquantisiererfenster (LQW) liegen, wird bei 644 der Unschärfeentfernungspegel erhöht und der Prozess bei 641 beginnend wiederholt. Falls die Decodierung bei 643 erfolglos ist, wird bei 644 der Unschärfeentfernungspegel erhöht.
  • Wenn anhand des Algorithmus zur Unschärfeentfernung ein wie in 54 gezeigtes Fokussierungsmodell verwendet wird, wird bei 650 die Abtastung erhalten und bei 651 bestimmt, ob alle Spitzen in dem Pegelquantisiererfenster liegen. Bei ja wird bei 652 eine Decodierung versucht, während bei 653 eine Decodierungsüberprüfung ausgeführt wird, falls nicht alle Spitzen innerhalb des Fensters liegen oder die Decodierung erfolglos ist, woraufhin der Signalpegel mit einem Taillenschwellenwert verglichen wird, der den wähnend der Kalibrierung gemessenen Pegel des empfangenen Signals mit dem Objekt der Taille des Laserstrahls vergleicht. Falls der Signalpegel höher ist, wird die Strahltaille hereinbewegt und werden die Schritte ab 651 wiederholt, während die Strahltaille herausbewegt wird und die Schritte ab 651 wiederholt werden, falls der Signalpegel niedriger ist.
  • Wo Scanner vom bekannten "Mehrbit"- oder "Fuzzy-Logic"-Typ verwendet werden, erfassen sie Daten über die Kantenstärke und den Kantenort des Signals, die ebenfalls mit den in den 53 und 54 gezeigten Algorithmen verwendet werden können, um die Größe und Richtung der Unschärfe in dem empfangenen Bild zu bestimmen. Das "Kantenstärke"-Signal kann doppelweggleichgerichtete Spitzenableitungshöhen ersetzen.
  • Nunmehr übergehend zu 55 ist ein Blockschaltplan einer Vorrichtung gezeigt, die ein Verfahren zum Abtasten von Zeichen unter Verwendung einer selektiven Abtastung verwendet.
  • Das zu decodierende analoge Signal 710, das verzerrt sein kann und/oder dem Rauschen zugeordnet sein kann, wird parallel an den ersten und an den zweiten Signalverarbeitungsblock 712, 714 angelegt. Obgleich zwei getrennte Signalverarbeitungsblöcke gezeigt sind, können einige oder alle Signalverarbeitungsfunktionen gemeinsam genutzt werden. Zum Beispiel könnte eine Ableitungsfunktion von den zwei Blöcken gemeinsam genutzt werden. Der erste Signalverarbeitungsblock 712 bearbeitet das Signal auf irgendeine gewünschte Weise, um eine Signalform abzuleiten, die längs einer Leitung 716 ausgegeben und an einen A/D-Konverter 718 angelegt wird. Die Ausgangssignalform braucht keine einfache Funktion des analogen Signals 710 zu sein. Zum Beispiel kann die Ausgangssignalform unter Verwendung einer Kombination von Abtast-Halte-Schaltungen, Ableitungen, Schwellenwertfunktionen und Subtrahierern aus dem analogen Signal abgeleitet werden. Nichtlineare Schaltungen wie etwa Klemmschaltungen können ebenfalls genutzt werden.
  • Die Ausgangssignalform wird selektiv gemäß Signalen, die durch einen Abtastentscheidungs- und Synchronimpulserzeugungsblock 720 geliefert werden, durch den A/D-Konverter 718 abgetastet.
  • Der zweite Signalverarbeitungsblock 714 empfängt das analoge Signal 710 und führt die von dem Abtastentscheidungs- und Synchronimpulserzeugungsblock 720 geforderte Verarbeitung aus. Der Block 720 entscheidet, wann eine selektive Abtastung stattfinden sollte, und erzeugt das richtige Synchronsignal 722, das an einen Decodierer 724 übergeben wird. Außerdem wird das richtige Signal an den A/D-Konverter 718 übergeben.
  • Die ausführliche Logik in dem Block 720, die genau bestimmt, wann die Ausgangssignalform entlang der Leitung 716 abzutasten ist, kann gemäß der besonderen Anwendung gewählt werden. Allerdings umfassen die Entscheidungskästen häufig einen ausgewählten Rauschschwellenwert, wobei Merkmale in dem Signal unter diesem Schwellenwert ignoriert werden. Ein spezifisches Beispiel, das im Folgenden beschrieben wird, ist in 56 gezeigt.
  • Der Hauptzweck des Synchronsignals 722 ist die Synchronisierung der Übertragung der selektiven Abtastwerte an den Decodierer. Dies ist wegen der ungleichförmigen Abtastung der Signalform erforderlich. Das Synchronsignal liefert entscheidende Synchroninformationen wie etwa die Zeit zwischen den selektiven Abtastwerten.
  • Das Synchronsignal braucht kein einzelnes Signal zu sein, sondern könnte unter einigen Umständen ein mehrfaches Signal auf mehreren digitalen Leitungen sein. Alternativ könnten die Synchroninformationen auf einer einzelnen Leitung multiplexiert werden. Zum Beispiel kann es Situationen geben, in denen es zweckmäßig ist, zwei digitale Leitungen, eine für positive Spitzen, die in dem Ausgangssignal auf der Leitung 716 erfasst worden sind, und eine für negative Spitzen zu haben.
  • Obgleich die Synchronisation die Hauptfunktion des Synchronsignals ist, kann das Synchronsignal selbst zusätzliche Informationen über die Signalform enthalten, die die A/D-Abtastwerte nicht übermitteln. Zum Beispiel können zusätzliche Impulse selektiv zusätzliche Synchroninformationen über die ursprüngliche Signalform senden. Das Synchronsignal kann z. B. nicht nur die Datenübertragung synchronisieren, sondern auch Kantenanstiegszeitinformationen enthalten, die als eine Impulsbreite repräsentiert sind. Ein solches Konzept ist in einer Patentanmeldung offenbart, die gleichzeitig hiermit mit dem Titel "Optical Scanners and Signal Processors Therefore", Erfinder David Goren, Stephen Shellhammer, Harry Kuchenbrod, Donna Pandolfo, Gary Serbin, Guy Cipriani und Edward Barkin, eingereicht und auf den gleichen Anmelder wie die vorliegende Erfindung übertragen wurde. Außerdem könnten die Informationen für eine sehr preiswerte Implementierung ohne den A/D-Konverter verwendet werden: Siehe z. B. die gleichzeitig anhängige US-Patentanmeldungsnummer der Erfinder.
  • Der A/D-Konverter 718 empfängt entlang der Leitung 716 das Ausgangssignal und tastet es selektiv gemäß von dem Abtastentscheidungs- und Synchronimpulserzeugungsblock 720 empfangenen Anweisungen ab. Das abgetastete n-Bit-Ausgangssignal wird entlang der Leitung 726 an den Decodierer 724 übergeben.
  • Bei Bedarf kann der A/D-Konverter 718 eine Abtast-Halte-Schaltung enthalten. Wegen der langsameren Datenrate im Vergleich zur Abtastung des analogen Signals mit der Nyquist-Rate kann ein verhältnismäßig langsamer und verhältnismäßig preiswerter A/D-Konverter verwendet werden. Die Anzahl der erforderlichen Bits hängt von der Genauigkeit des gemessenen Merkmals ab, wobei aber normalerweise 4 bis 8 Bits ausreichen. Bei Bedarf kann der A/D-Konverter bipolar sein, um vorzeichenbehaftete Daten zu enthalten. Zum Beispiel können die Spitzen positiv sein, falls die Spitzen der ersten Ableitung des analogen Signals 710 über einer Referenzspannung liegen. Falls die Spitzen unter der Referenzspannung liegen, können die Werte negativ sein.
  • In 57 ist ein Ablaufplan des Betriebs des Decodierers 724 gezeigt. Zunächst erfasst der Decodierer die selektiven Abtastwerte und die Synchroninformationen und speichert sie. Diese Informationen enthalten normalerweise sowohl die Merkmale der Signalform, die den Strichcode oder andere Zeichen (z. B. die Strichcodekanten) identifizieren, als auch unerwünschtes Rauschen. Daraufhin verwendet der Decodierer einen geeigneten Algorithmus (dessen Einzelheiten vollständig im Umfang des Fachmanns auf dem Gebiet liegen), um zu identifizieren zu versuchen, welche Abtastwerte Rauschen sind und welche Abtastwerte die zu decodierenden Zeichen repräsentieren. Der Algorithmus verwendet typisch eine Kombination von empirisch-praktischen Techniken und Datenanalysetechniken wie etwa einer statistischen Klassifizierung. Diese Analyse führt auch zu einer Schätzung der Codierungsumgebung, z. B. des Rauschpegels und der Verzerrungspegel. Daraufhin wird ein Versuch unternommen, die Zeichen unter Verwendung nur jener Merkmale zu decodieren, von denen durch den Algorithmus bestimmt worden ist, dass sie die Zeichen repräsentieren.
  • Gemäß der Schätzung der Schwierigkeit der Decodierungsumgebung durch den Algorithmus kann eine zusätzliche Decodierungssicherheit erforderlich sein. Zum Beispiel kann der Decodierer eine zusätzliche Redundanz erfordern, bevor er eine erfolgreiche Decodierung signalisiert, falls er bestimmt, dass ein hoher Rauschpegel erforderlich ist, wobei dann, wenn die Decodierung erfolglos ist, von dem Decodierer ein Rückkopplungssignal oder eine Reihe von Signalen an den zweiten Signalverarbeitungsblock 714 und an den Abtastentscheidungs- und Synchronimpulserzeugungsblock 720 gesendet werden. Diese reagieren dadurch auf die Signale, dass sie den Scanner an die Abtastumgebung anpassen. Daraufhin kann eine weitere Abtastung der zu decodierenden Zeichen unternommen werden, wobei diese durch die angepasste Elektronik und/oder durch die digitale Elektronik für einen zweiten Versuch verarbeitet werden, um eine zufriedenstellende Decodierung zu erreichen.
  • Die Anpassungen des Scanners können unter anderem das Ändern der Rauschschwellenwerte, der Signalfilterung, der Frequenzbandbreiten, der Verbesserungs- oder Entfaltungsfilter und weiterer elektronischer und/oder digitaler Logik umfassen. Die mechanischen/optischen Merkmale des Scanners können ebenfalls adaptiv sein, wobei das System z. B. automatisch die Intensität des zur Abtastung verwendeten Laserstrahls, die Laserfokussierung, die Abtastgeschwindigkeit und das Abtastmuster oder andere Variablen ändern kann.
  • Wieder anhand von 57 ist zu sehen, dass das System in Schritt 810 eine Abtastung selektiv abgetasteter Daten- und Synchroninformationen erfasst. Daraufhin versucht der Decodierer, die Abtastumgebung zu schätzen und so weit wie möglich Rauschen und systematische Ungenauigkeiten in den Daten zu behandeln. Dies wird in Schritt 812 ausgeführt. In Schritt 814 versucht der Decodierer, den Strichcode (oder andere Zeichen) lediglich unter Verwendung jener Abtastwerte zu decodieren, von denen bestimmt worden ist, dass sie reale Daten repräsentieren. In Schritt 816 wird ein Test ausgeführt, um zu sehen, ob die Decodierung erfolgreich gewesen ist. Wenn das der Fall ist, wird der Algorithmus in Schritt 818 abgeschlossen. Falls die Decodierung erfolglos war, wird der Scanner in Schritt 820 an die Abtastumgebung angepasst und der Prozess unter Verwendung einer neuen Abtastung wiederholt.
  • In 56 ist eine einfache Ausführungsform der vorliegenden Erfindung veranschaulicht. Wie veranschaulicht ist, enthält das zu decodierende Strichcodesymbol 800 einen kleinen Defekt 840.
  • Das Symbol 800 wird auf übliche Weise abgetastet und die erste Ableitung 742 des rohen analogen Signals bestimmt. In dieser Ausführungsform sind es die Spitzenwerte des Signals der ersten Ableitung, die als die selektiven Abtastpunkte verwendet werden. Diese Spitzen können positiv oder negativ sein, wobei in der Zeichnung durch den Pfeil 744 eine typische negative Spitze veranschaulicht ist.
  • Die Abtastentscheidungs- und Synchronimpulserzeugungslogik ist so beschaffen, dass sie ein Synchronsignal 722 ausgibt, das in jedem der ausgewählten Abtastpunkte den Zustand ändert.
  • Die Entscheidungslogik in dem Block 720 (55) ist so beschaffen, dass sie einen Abtastwert nur dann akzeptiert, wenn die erste Ableitung größer als ein positiver minimaler Pegel 746 oder kleiner als ein negativer minimaler Pegel 748 ist. Dementsprechend entspricht die kleine Spitze 750, die dem Defekt 740 zugeordnet ist, einem akzeptierten Abtastpunkt, da sie außerhalb der Linien 746, 748 liegt, während die noch kleinere Spitze 752 nicht akzeptiert wird.
  • Die Spitzen in dem Signal 742 der ersten Ableitung repräsentieren Wendepunkte des ursprünglichen Rohdatensignals und werden in vielen A/D-Umsetzern des Standes der Technik als Strichcode-Kantenorte definiert. Der Decodierer 724 liest alle Spitzenwerte ein, von denen einige natürlich reale Kanten repräsentieren, während andere Rauschen repräsentieren. Daraufhin entscheidet der Decodierer z. B. durch eine empirisch-praktische Analyse oder durch eine Histogrammanalyse, welche Kanten real sind. Wenn die realen Kanten gewählt worden sind, kann das Strichcodesignal durch Standardverfahren decodiert werden. Falls die Decodierung erfolglos ist, ist klar, dass die Kanten nicht richtig gewählt worden sind, wobei der in 57 gezeigte adaptive Algorithmus ins Spiel kommt.
  • Aus den Spitzen der ersten Ableitung und aus dem decodierten oder teilweise decodierten Strichcode können Informationen über die Decodierungsumgebung bestimmt werden. Zum Beispiel kann eine große Anzahl falscher Kanten eine verrauschte Umgebung angeben. Außerdem können die verschiedenen Höhen der Spitzen der realen Kanten verwendet werden, um das Verhältnis der Abtastfleckgröße zu den Strichgrößen zu schätzen, die abgetastet werden. Diese Informationen über die Abtastumgebung werden daraufhin verwendet, um die mechanischen, optischen, elektronischen oder digitalen Merkmale des Scanners anzupassen, bevor eine weitere Abtastung genommen und ein weiterer Versuch zur Decodierung des Strichcodesymbols ausgeführt wird. In einer alternativen Version des Verfahrens kann eine selektiv Abtastung an mehr als einem Merkmal gleichzeitig ausgeführt werden. Dies könnte entweder mit mehreren A/D-Konvertern oder alternativ unter Verwendung eines einzelnen A/D-Konverters und Multiplexieren des Ausgangssignals erfolgen.
  • Natürlich ist es für das bevorzugte Verfahren nicht wesentlich, dass es innerhalb der spezifischen in 55 gezeigten Architektur verkörpert wird. Es gibt viele Alternativen. Zum Beispiel könnten der erste und der zweite Signalverarbeitungsblock 712, 714 zu einer Signaleinheit vereinigt werden oder für geeignete analoge Eingangssignale 710 vollständig weggelassen werden.
  • Wie zuvor erwähnt wurde, kann das oben beschriebene Verfahren besondere Anwendung in Laserscannern des Typs finden, in dem das empfangene Strahlprofil ein Mehrmodenprofil ist und Seitenkeulen enthält, die ein Artefakt des Bilderzeugungsprozesses sind. Die beispielhaften Scanner verwenden nicht herkömmliche Optiken wie etwa eine Axicon- oder Holographieoptik, wobei die Scanner Verbesserungsfilter zur Erhöhung der Modulationstiefe verwenden.
  • Obgleich in Bezug auf spezifische Ausführungsformen spezifische Merkmale diskutiert worden sein können, ist klar, dass alle Merkmale und Ausführungsformen, wo geeignet, ausgetauscht oder kombiniert werden können. Außerdem können die Ausführungsformen verschiedene alternative oder zusätzliche Merkmale enthalten. Zum Beispiel können verschiedene Hinzufügungen vorgenommen werden, wo es erwünscht ist, die Arbeitsreichweite und die Widerstandsfähigkeit des Decodierers in Bezug auf Änderungen in der Abtastumgebung zu optimieren. Zum Beispiel können das Signal/Rausch-Verhältnis und die Rauschkomponenten in einem empfangenen Signal von künstlichen Lichtquellen abgetastet werden und die Laserkohärenz, der Laserfokus, die Laserleistung und die Bandbreiten optischer und elektronischer Filter dementsprechend angepasst werden. Wo Rauschimpulse empfangen werden, die von künstlichen Lichtquellen herrühren, können die Abtastfrequenz und -phase geeignet eingestellt werden, um diese Rauschimpulse zu vermeiden, wobei ein adaptives Rauschfilter verwendet werden kann, um eine Störung von Umgebungsquellen zu entfernen. Es kann eine zweidimensionale Anordnung von Photodioden, jeweils mit einem begrenzten Gesichtsfeld, verwendet werden, in der die Einschaltzeit mehrerer dieser Photodioden von einem Laserfleck synchronisiert werden kann, so dass auf analoge Weise wie in einer phasengesteuerten Antennengruppe ein bewegtes Gesichtsfeld erreicht wird. Mit anderen Worten, die Signale von mehreren der Photodioden werden miteinander addiert, wobei aber die Amplituden anstelle der Phasen zwischen den Photodioden modifiziert werden.
  • Es kann ein Kantenverbesserungsfilter verwendet werden, um den Verbesserungspegel anhand der Strichcodedichte in der Weise zu ändern, dass für höhere Dichten ein großer Verbesserungswert verwendet wird. Je nach der Umgebung, in der der Scanner verwendet werden soll, können verschiedene Optikmodule und Laserwellenlängen verwendet werden – dabei können aus einem Standardüberblick relevante Informationen gewonnen werden, um die optimalen Module und Wellenlängen zu bestimmen. In Umgebungen mit hohem Umgebungslicht kann das Abtastmuster in eine niederfrequentere Einzellinie geändert werden, wobei das Gesichtsfeld dementsprechend eingeschränkt wird. Falls zuvor die ungerichtete Betriebsart gewählt worden ist, wird sie überschrieben – somit besitzt das hohe Umgebungslicht weniger Wirkung.
  • Die Bandbreite des optischen Filters kann verringert werden, falls eine Temperatursteuerung mit geschlossenem Regelkreis des Lasers (unter Verwendung eines Thermokühlers) aufrechterhalten wird, so dass die Wellenlänge innerhalb eines sehr schmalen Spielraums gehalten wird. Alternativ kann die Bandbreite des optischen Filters in der Weise eingestellt werden, dass sie an die Wellenlänge des Lasers angepasst wird, während sich die Temperatur ändert, was wiederum die erforderliche Bandbreite minimiert. Außerdem ist es möglich, die Strichcodetransportgeschwindigkeit und -größe zu erfassen – das Abtastmuster kann dann geändert werden, um auf Aggressivität zu optimieren. Die Betriebsart, in der der Scanner verwendet wird, z. B. Durchgang oder Darstellung, kann durch Betrachtung der vergangenen Historie von Abtastversuchen gelernt und das Abtastmuster in eines geändert werden, das für die Betriebsart optimal ist. Zum Beispiel wird in einer Darstellungsbetriebsart für eine gegebene Anzahl von Abtastungen mehr von dem Strichcodesignal gesammelt, während in einer Durchgangsbetriebsart weniger gesammelt wird: Bei CCDs können die Integrationszeit-Fokussierungslinse und die Beleuchtungsintensität und die Beleuchtungsstelle alle geändert werden, um den Betrieb hinsichtlich der Abtastumgebung zu optimieren.
  • Ein weiteres Problem, dessen Lösung erwünscht sein kann, ist die Vergrößerung des Gesichtsfelds, ohne den Abtastwinkel an dem Abtastelement zu vergrößern. Es ist erwünscht, durch Verringern der Belastung des Elements die Lebensdauer des Abtastelements zu erhöhen. Hierzu können mehrere Laser verwendet werden, die verschiedene Abtastmuster-Offsets haben, wobei die Ein/Aus-Steuerungen der Laser synchronisiert werden, so dass ein größeres Gesichtsfeld abgedeckt werden kann. Die Abtastmusterform kann geändert werden, um das geforderte Gesichtsfeld abzudecken, was z. B. besonders bei Rückkaufanwendungen nützlich sein kann.
  • Außerdem kann es erwünscht sein, die Abtastergonomie zu verbessern, wobei hierzu die Orientierung, in der der Nutzer die Vorrichtung (z. B. ein Terminal) hält, erfasst werden kann, so dass das Abtastmuster unabhängig davon, wie der Nutzer die Vorrichtung hält, in einer festen Richtung (vielleicht nach unten) zeigt. Der Scanner kann so beschaffen sein, dass er es ermöglicht, das Abtastmuster für ein optimales Muster, z. B. für den linkshändigen oder rechtshändigen Gebrauch, zu wechseln. Für Zielzwecke kann ein Vergrößerungsglas oder ein ähnliches Muster erzeugt sein. Das Zielmuster kann verwendet werden, um die Größe des Strichcodes zu bestimmen, so dass ein Abtastmuster lediglich in der richtigen Größe geöffnet zu sein braucht.
  • Jeder Nutzer kann eine kundenspezifische Menge von Abtastpräferenzen eingeben. Zum Beispiel könnte ein Nutzer wünschen, dass der Scanner, wenn er aufgenommen wird, ein Einzeilenscanner ist, während ein weiterer wünschen kann, dass er stattdessen in einer ungerichteten Konfiguration ist. Die persönlichen Präferenzen können in einem Strichcode (entweder 1D oder 2D) gespeichert werden, wobei der Nutzer den Strichcode abtasten kann, um den Scanner gemäß dem Wunsch des Nutzers zu konfigurieren. Alternativ kann der Scanner, wenn sich der Nutzer bei dem Nutzerregister meldet, indem er einen ID-Code eingibt, was in vielen Einrichtungen eine geforderte Prozedur ist, automatisch durch Lesen des Codes für diesen Nutzer konfiguriert werden.
  • In einigen Fällen kann ein großes Abtastmuster zu viel von dem Ladentisch abdecken, wobei unbeabsichtigt Strichcodes, z. B. Strichcodesymbole, decodiert werden können, die auf anderen Gegenständen als denen zu finden sind, die abgetastet werden. Um dies zu überwinden, kann ein Abtastmuster angepasst werden, um es auf die Abtastfläche zu begrenzen. Zum Beispiel kann die Oberseite des Ladentischs während Transaktionen überladen sein, wobei der Scanner Gegenstandserfassungsmittel verwenden kann, um das Abtastmuster auf eine weniger überladene Fläche zu richten.
  • Während der Scanner im Leerlauf ist, ist es erwünscht, diese Leerlaufzeit auf rentable und nützliche Weise zu verwenden, wobei vorgeschlagen wird, die Laserabtastmaschine zur Anzeige von Abtastmustern, Zahlen, Buchstaben, Wörtern, Symbolen, Zeichen, Dienstnachrichten (wie etwa Batterie leer), Fehlermeldungen und anderen Nachrichten wie etwa "Willkommen" zu verwenden, die die Einkaufserfahrung für den Kunden verbessern und die Nützlichkeit des Scanners verbessern.
  • Außerdem kann die Scannervorrichtung für andere Formen der Identifizierung als die Produktidentifizierung, z. B. für die biometrische Identifizierung, genutzt werden. In diesem Fall kann der Strichcode-Scanner ein dichtes Muster für die Abbildung von Fingerabdrücken und Unterschriften erzeugen. Das Abtastmuster kann an die optimale Form und Dichte angepasst werden, um diese als Bilder zu erfassen.
  • Es ist erwünscht, dass die Scanner eine Nutzerrückkopplung schaffen, wobei z. B. dort, wo der Scanner eine Schallaussendevorrichtung wie etwa einen Piepser enthält, die Lautstärke des Piepsers eingestellt werden kann, so dass sie über den Umgebungsrauschpegel steigt, indem veranlasst wird, dass die Lautsprecherspule des Piepsers den Pegel des Umgebungsrauschens erfasst. Es kann eine Sprachrückkopplung geschaffen werden, die den Nutzer anweist, einen Strichcode näher zu dem Strichcodesymbol zu bringen, ihn weiter weg zu bewegen, die Durchziehrate zu verzögern, den Strahl (insbesondere für Unterschriftserfassungsanwendungen) auf die richtige Lage zu zielen und auf sie auszurichten und den Nutzer allgemein auf andere Betriebsparameter oder 2D-Anwendungen lenkt. Der Scanner könnte so beschaffen sein, dass er eine Rückkopplung von Komponenten in dem Scanner wie etwa einen Laserstrom, Motorrückkopplungssignale und Gesamtleistungsverbrauchsänderungen erfasst und dem Nutzer eine Rückkopplung für anhängige Kundendienstbesuche liefert, um den Wartungspegel des Scanners auf einem hohen Niveau zu halten.
  • Die Leistungsfähigkeit des Scanners kann je nach einer Strichcodemenge, deren Abtastung erwartet wird, optimiert werden. Offensichtlich können während verschiedener Tages- oder Jahreszeiten Produkte eines bestimmten Typs – alkoholische Getränke am Abend, Geschenkerzeugnisse während der Weihnachtsperiode – beliebter sein. Das Abtastmuster des Scanners kann geändert werden, so dass es an die Eigenschaften der Strichcodes und der Verpackung dieser Arten von Produkten zu den relevanten Tages- oder Jahreszeiten angepasst ist. Zum Beispiel kann sich der Strichcode in einem bewegten graphischen Hintergrund auf der Verpackung der Waren befinden, der die Signalverarbeitung bei Verwendung großer Abtastmuster durcheinander bringen kann – so dass ein kleineres Abtastmuster erwünscht wäre. Bei Versandanwendungen können während verschiedener Tageszeiten Produkte von verschiedenen Händlern erwartet werden. Jeder Händler kann einen charakteristischen Druckstil der Symbolik verwenden, der durch ein anderes Abtastmuster optimiert sein kann. Der Nutzer kann ständig eine Anzahl von Strichcodes verschiedener Stile, aber in einer spezifischen Reihenfolge, z. B. einen UPC, daraufhin einen PDF, daraufhin eine Unterschrift, abtasten. Der Scanner kann die besten Abtastmuster für diesen Prozess sequentiell ordnen.
  • Obgleich die Erfindung spezifisch in Verbindung mit der Decodierung von Zeichen, insbesondere von Strichcodesymbolen, beschrieben wurde, kann die Technik auf viele verschiedene Typen von Signalen und Anwendungen angewendet werden. Allgemeiner kann das Verfahren der vorliegenden Erfindung auf die Mustererkennung in erfassten Bildern angewendet werden. Obgleich diese Erfindung mit Bezug auf eine spezifische Ausführungsform beschrieben worden ist, soll die obige Beschreibung nicht in einem beschränkenden Sinn verstanden werden. Mit Bezug auf diese Beschreibung sind für den Fachmann auf dem Gebiet verschiedene Abwandlungen der offenbarten Ausführungsformen sowie weitere Ausführungsformen der Erfindung offensichtlich. Dementsprechend sollen die beigefügten Ansprüche alle solchen Abwandlungen und Ausführungsformen, die in dem durch die beigefügten Ansprüche definierten Umfang der Erfindung liegen, einschließen.
  • ANHANG A
  • ANGEPASSTE FILTER
  • Angepasste Filter sind bekannt für Kommunikationsempfänger und Radardetektoren und sind ausführlich diskutiert in "Detection of Signals in Noise" von A. D. Whalen, Academic Press, 1971, und in "Detection, Estimation and Modulation Theorie, Part I" von H. L. Van Trees, Wiley 1968. Somit kennt der Fachmann die Grundbauelemente und Eigenschaften eines solchen Systems. Es folgt aber eine Zusammenfassung der wichtigen Punkte:
  • In einem binären Kommunikationssystem wird eines von zwei Signalen gesendet, wobei das empfangene Signal das durch zusätzliches weißes Rauschen verfälschte gesendete Signal ist. Die Empfängerkonstruktion kann als ein Hypothesentestproblem betrachtet werden, wobei es zwei Hypothesen gibt und der Empfänger bestimmen muss, welche Hypothese am wahrscheinlichsten ist. Die zwei Hypothesen sind H0: r(t) = s0(t) + n(t) H1: r(t) = s1(t) + n(t). (A.1)
  • Das Signal wird während des Zeitintervalls [0, T] übertragen. Das Rauschen n(t) ist ein Gaußscher weißer Rauschprozess mit dem Mittelwert null mit der Leistungsspektraldichte N0/2.
  • Der optimale Empfänger, der die Bitfehlerrate minimiert, ist der Korrelationsempfänger, siehe A.1. Die Schwierigkeit bei dem Korrelationsempfänger ist, dass die Korrelationsoperation schwierig auszuführen ist. Sie erfordert die Modulation des empfangenen Signals mit einem der möglichen Eingangssignale und daraufhin die Integration. Es stellt sich heraus, dass die Korrelationsoperation durch ein lineares Filter ersetzt werden kann. Dasjenige Filter, das das gleiche Ausgangssignal wie der Korrelator ergibt, ist das wie in A.2 gezeigte angepasste Filter.
  • Das Filter wird ein angepasstes Filter genannt, da die Impulsantwort des Filters an das Signal angepasst ist, das zu erfassen versucht wird. Die Impulsantwort des Filters ist eine Zeitumkehr des zu erfassenden Signals, hi(t) = si(T – t) 0 ≤ t ≤ T; i = 0,1. (A.2)
  • Ein Empfänger mit angepasstem Filter repräsentiert den optimalen Empfänger im Sinn der Minimierung der Bitfehlerrate. Das angepasste Filter besitzt eine weitere wünschenswerte Eigenschaft; es maximiert das Signal/Rausch-Verhältnis. Das Ausgangssignal des angepassten Filters sei e(t), wobei dann zur Abtastzeit e(–T) = ∫T0 h(τ)r(T – τ)dτ. (A.3)ist. Wenn r(t) = s(t) + n(t) gesetzt wird, wird das Filterausgangssignal zu e(T) = ∫T0 h(τ)s(T – τ)dτ + ∫T0 h(τ)n(T – τ)dτ. (A.4)
  • Die Signal- und die Rauschkomponente werden leicht als S(T) = ∫T0 h(τ)s(T – τ)dτ. (A.5) N(T) = ∫T0 h(τ)n(T – τ)dτ. (A.6)identifiziert. Das Signal/Rausch-Verhältnis ist der Signalwert, dividiert durch die Standardabweichung des Rauschens (das Rauschen hat den Mittelwert null),
  • Figure 00730001
  • Da das Rauschen weiß ist, ist der Erwartungswert von N2(T) durch [3]
    Figure 00730002
    gegeben. Es kann gezeigt werden, dass das Signal/Rausch-Verhältnis (in Bezug auf die Leistung) für das angepasste Filter durch
    Figure 00730003
    gegeben ist, wobei E die Energie des Signals E ≜ ∫T0 s2(t)dt (A.10)ist und die Leistungsspektraldichte des Rauschens N0/2 ist.

Claims (18)

  1. A/D-Umsetzer (20) für einen optischen Leser, mit: einem Sensormittel (22) zum Erfassen von Licht, das von einem gedruckten Zeichen reflektiert wird, und zum Erzeugen eines analogen Abtastsignals, das dieses Licht repräsentiert; einem Ableitungsmodul (504), in das das Abtastsignal eingegeben wird, um ein Ableitungsausgangssignal zu erzeugen, das die erste Ableitung des Abtastsignals repräsentiert; gekennzeichnet durch einen Kantenstärkendetektor (510, 502), der so beschaffen ist, dass er eine Angabe der Kantenstärke, die durch das Ableitungsausgangssignal repräsentiert wird, schafft, indem er das Ableitungsausgangssignal mit mehreren vorgegebenen Schwellenwerten vergleicht, wobei der Signalstärkendetektor so beschaffen ist, dass die vorgegebenen Schwellenwerte nichtlinear voneinander beabstandet sind.
  2. A/D-Umsetzer nach Anspruch 1, der Mittel (501, 501') umfasst, um zu erfassen, ob die jeweils erfasste Kante eine ansteigende Kante oder eine abfallende Kante ist, wobei der Signalstärkedetektor so beschaffen ist, dass er entsprechende positive bzw. negative Schwellenwerte bereitstellt.
  3. A/D-Umsetzer nach Anspruch 1 oder Anspruch 2, der Detektoren (501, 501') für positive und negative Peaks umfasst, die so beschaffen sind, dass sie ermöglichen, dass die Schwellenwerte der Eingangssignalstärke folgen.
  4. A/D-Umsetzer nach Anspruch 1 oder Anspruch 2, der ferner eine automatische Verstärkungssteuereinheit (28) umfasst, um das Eingangssignal in das Modul für die erste Ableitung zu steuern.
  5. A/D-Umsetzer nach einem vorhergehenden Anspruch, der Datenspeichermittel (304) umfasst, um Signalstärkedaten für den Vergleich mit dem Eingangssignal zu speichern.
  6. A/D-Umsetzer nach einem vorhergehenden Anspruch, der Mittel (306), um die Qualität des Eingangssignals zu analysieren, und Mittel, um die Schwellenwert grenzen anhand der Qualität des Eingangssignals zu setzen, umfasst.
  7. Leser zum Lesen optischer Zeichen, der einen A/D-Umsetzer nach einem vorhergehenden Anspruch enthält.
  8. Verfahren zum Umsetzen eines analogen Abtastsignals, das ein gedrucktes Zeichen repräsentiert, in digitale Daten, wobei das Verfahren das Bilden der ersten Ableitung des Signals mit einem Mittel (504) für die erste Ableitung umfasst, gekennzeichnet durch: Eingeben des ersten Ableitungssignals in ein Kantenstärken-Erfassungsmittel, das so beschaffen ist, dass es eine Angabe der Kantenstärke, die durch das Signal der ersten Ableitung repräsentiert wird, schafft und das Ableitungssignal mit mehreren vorgegebenen Schwellenwerten vergleicht, wobei der Signalstärkedetektor so beschaffen ist, dass die vorgegebenen Schwellenwerte nichtlinear voneinander beabstandet sind.
  9. Verfahren nach Anspruch 8, das ferner das Analysieren der Signalqualität unter Verwendung von Analysemitteln und das entsprechende Verändern des Schwellenwertbereichs gemäß einem vorgegebenen Algorithmus umfasst.
  10. Optischer Leser, der eine A/D-Umsetzer nach Anspruch 1 und einen Scanner (12) umfasst, der mit einem Lichtstrahl ein gedrucktes Zeichen abtastet, das Bereiche mit unterschiedlichem Lichtreflexionsvermögen, die zwischen sich Kanten definieren, besitzt; wobei das Sensormittel (22) einen Detektor umfasst, der so beschaffen ist, dass er ein elektronisches Signal erzeugt, das eine Amplitudenänderung besitzt, die die Änderung des Reflexionsvermögens des Zeichens repräsentiert.
  11. Optischer Leser nach Anspruch 10 zum Lesen eines gedruckten Zeichens, das ein Strichcode-Symbol enthält, das aus einer Reihe abwechselnder Striche und Zwischenräume gebildet ist, wobei das Detektorsignal eine Amplitude besitzt, die sich entsprechend dem Reflexionsvermögen des Lichts von dem gedruckten Zeichen ändert, wenn der Scanner mit dem Lichtstrahl das gedruckte Zeichen abtastet, wobei eine solche elektrische Signalamplitude in Reaktion auf das Abtasten der abwechselnden Striche und Zwischenräume mit dem Lichtstrahl zwischen höheren und niedrigeren Pegeln wechselt; und wobei sich das Differenzierer-Ausgangssignal ändert, wenn sich die Detektorausgangssignal-Amplitude zwischen den höheren und niedrigeren Pegeln ändert, wobei die Differenziererschaltung Impulse erzeugt, wenn sich das elektrische Signal zwischen den höheren und niedrigeren Pegeln ändert, und wobei der A/D-Umsetzer so beschaffen ist, dass er Kantenstärkesignale erzeugt, die Pegel besitzen, die mit den Pegeln der Impulse in Beziehung stehen.
  12. Optischer Leser nach Anspruch 10 oder 11, der einen Decodierer zum Umsetzen der Pegel der Kantenstärkesignale in entsprechende digitale Wörter mit mehreren Bits enthält.
  13. Optischer Leser nach Anspruch 11, bei dem der Lichtdetektor in einem Lichterfassungsabschnitt enthalten ist und ferner ein mit dem Ausgang der Differenziererschaltung gekoppeltes Verbesserungsfilter enthält, um die durch die Differenziererschaltung erzeugten Impulse zu modifizieren, wobei eine solche Modifikation die Erhöhung der Anstiegszeit und des Spitzenpegels der durch die Differenziererschaltung erzeugten Impulse umfasst; und wobei der A/D-Umsetzer (20) die Kantenstärkesignale als Signale, die die Pegel der modifizierten Impulse repräsentieren, erzeugt.
  14. Optischer Leser nach Anspruch 13, der einen Prozessor enthält, der einen Schwellenpegeldetektor besitzt, um Kantenstärkesignale zurückzuweisen, die modifizierte Impulse repräsentieren, deren Pegel unter einem Schwellenpegel liegen, und um nicht zurückgewiesene Kantenstärkesignale, die modifizierte Impulse repräsentieren, deren Pegel über dem Schwellenpegel liegen, in ein elektrisches Signal umzusetzen, das den abgetasteten Strichcode repräsentiert.
  15. Optischer Leser nach einem der Ansprüche 10 bis 14, bei dem der A/D-Umsetzer so beschaffen ist, dass er die Kantenstärkesignale in Impulse umsetzt, wovon jeder eine Zeitdauer besitzt, die mit den Eigenschaften des Reflexionsvermögens eines entsprechenden reflektierenden Bereichs in Beziehung steht.
  16. Optische Leser nach einem der Ansprüche 10 bis 15, der ferner ein Verbesserungsfilter enthält, das mit dem Ausgang der Differenziererschaltung gekoppelt ist, um das Differenzierer-Ausgangssignal zu definieren, wobei eine solche Modifikation die Erhöhung der Anstiegszeit und des Spitzenpegels der durch die Differenziererschaltung erzeugten Impulse umfasst.
  17. Strichcode-Scanner, der einen Scanner zum Abtasten eines Strichcodes mit einem Lichtstrahl umfasst, wobei ein solcher Strichcode eine Reihe von miteinander verschachtelten Strichen und Zwischenräumen aufweist, wobei jeder Strich und jeder Zwischenraum zwischen sich einen angrenzenden Kantenbereich aufweisen, wobei eine solche Vorrichtung ein elektrisches Signal erzeugt, das sich in Übereinstimmung mit dem Lichtreflexionsvermögen des Strichcodes ändert, wenn die Vorrichtung den Strichcode mit dem Lichtstrahl abtastet; einen A/D-Umsetzer nach Anspruch 1, wobei das Sensormittel einen Detektor umfasst, um ein elektrisches Signal zu erzeugen, das eine Amplitude besitzt, die sich in Übereinstimmung mit dem Lichtreflexionsvermögen des Strichcodes ändert, wenn die Vorrichtung den Strichcode mit dem Lichtstrahl abtastet; und ein Verbesserungsfilter, das mit dem Ausgang der Differenziererschaltung gekoppelt ist, um die von der Differenziererschaltung erzeugten Impulse zu modifizieren, wobei eine solche Modifikation die Erhöhung der Anstiegszeit und des Spitzenpegels der durch die Differenziererschaltung erzeugten Impulse umfasst.
  18. Strichcode-Scanner nach Anspruch 17, bei dem der Prozessor einen Schwellenpegel-Detektor umfasst, um Kantenstärkesignale, die modifizierte Impulse repräsentieren, deren Pegel unter einem Schwellenpegel liegen, zurückzuweisen und um Stärkesignale, die modifizierte Impulse repräsentieren, deren Pegel über dem Schwellenpegel liegen, in ein elektrisches Signal umzusetzen, das den abgetasteten Strichcode repräsentiert.
DE1996634584 1995-05-31 1996-05-31 Optische Abtaster Expired - Lifetime DE69634584T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/455,216 US6170749B1 (en) 1995-05-31 1995-05-31 Method of scanning indicia using selective sampling
US455216 1995-05-31
US454830 1995-05-31
US08/454,830 US5734152A (en) 1995-05-31 1995-05-31 Optical scanners and signal processors therefor

Publications (2)

Publication Number Publication Date
DE69634584D1 DE69634584D1 (de) 2005-05-19
DE69634584T2 true DE69634584T2 (de) 2005-09-15

Family

ID=27037620

Family Applications (3)

Application Number Title Priority Date Filing Date
DE1996634584 Expired - Lifetime DE69634584T2 (de) 1995-05-31 1996-05-31 Optische Abtaster
DE1996636205 Expired - Lifetime DE69636205T2 (de) 1995-05-31 1996-05-31 Optischer Abtaster
DE1996637397 Expired - Lifetime DE69637397T2 (de) 1995-05-31 1996-05-31 Optischer Barcode Abtaster

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE1996636205 Expired - Lifetime DE69636205T2 (de) 1995-05-31 1996-05-31 Optischer Abtaster
DE1996637397 Expired - Lifetime DE69637397T2 (de) 1995-05-31 1996-05-31 Optischer Barcode Abtaster

Country Status (2)

Country Link
EP (3) EP0745951B1 (de)
DE (3) DE69634584T2 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6494376B1 (en) 1998-09-14 2002-12-17 Psc Scanning, Inc. Compensation for scan line variations in a bar code scanner system
US6585157B2 (en) 1998-09-14 2003-07-01 Psc Scanning, Inc. Symbology determination to aid decoding in a bar code scanning system
US6454168B1 (en) 1998-09-14 2002-09-24 Psc Scanning, Inc. Correlation and stitching techniques in a bar code scanning system
US6513714B1 (en) 1998-09-14 2003-02-04 Psc Scanning, Inc. Character reconstruction and element level processing in bar code scanning system
EP1380983B1 (de) * 1998-10-30 2006-05-24 Symbol Technologies, Inc. Kodelesesystem mit Klangregelung für hörbares Signal
CN100395768C (zh) * 1998-10-30 2008-06-18 讯宝科技公司 改进的包括隧道扫描器的集成的代码阅读系统
US6508405B1 (en) 2000-11-14 2003-01-21 Ncr Corporation Methods and apparatus for area weighted means processing of barcode signals
CN1275183C (zh) * 2001-01-26 2006-09-13 富士通株式会社 信息读取和读取信号处理方法及装置、信号取得、频带限制处理、定时点振幅抽出方法
US7204422B2 (en) * 2004-06-10 2007-04-17 Psc Scanning, Inc. System, circuit, and method for edge detection in a binary optical code
US7506816B2 (en) * 2004-10-04 2009-03-24 Datalogic Scanning, Inc. System and method for determining a threshold for edge detection based on an undifferentiated equalized scan line signal
US20080283605A1 (en) * 2007-05-16 2008-11-20 Sik Piu Kwan Device and system for a low noise photodiode in a barcode scanner
US8302864B2 (en) 2007-12-28 2012-11-06 Cognex Corporation Method and apparatus using aiming pattern for machine vision training
US8947590B2 (en) 2011-11-22 2015-02-03 Cognex Corporation Vision system camera with mount for multiple lens types
US11366284B2 (en) 2011-11-22 2022-06-21 Cognex Corporation Vision system camera with mount for multiple lens types and lens module for the same
US10498933B2 (en) 2011-11-22 2019-12-03 Cognex Corporation Camera system with exchangeable illumination assembly
US9746636B2 (en) 2012-10-19 2017-08-29 Cognex Corporation Carrier frame and circuit board for an electronic device
FR3076129B1 (fr) * 2017-12-27 2020-01-10 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede de modulation de largeur d'impulsions

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2635207B1 (fr) * 1988-08-02 1990-10-19 Sud Systemes Procede et dispositif de traitement d'un signal electrique analogique en vue d'obtenir un signal binaire parametrable representatif de sa composante significative
JP2729088B2 (ja) * 1989-09-22 1998-03-18 富士通株式会社 バーコードリーダ処理装置
DE69229345T2 (de) * 1991-07-11 1999-11-25 United Parcel Service Inc System und verfahren zur erfassung eines optischen zieles
US5298728A (en) * 1991-11-01 1994-03-29 Spectra-Physics Scanning System, Inc. Signal processing apparatus and method
US6082621A (en) * 1992-04-02 2000-07-04 Symbol Technologies, Inc. Interface between threshold processing digitizer for bar code reader
US5302813A (en) * 1992-04-02 1994-04-12 Symbol Technologies, Inc. Multi-bit digitizer
CA2134698A1 (en) * 1993-11-17 1995-05-18 Raj Bridgelall Digitizer for bar code reader

Also Published As

Publication number Publication date
EP1445725B1 (de) 2006-05-31
DE69634584D1 (de) 2005-05-19
DE69637397D1 (de) 2008-02-14
EP0745951A2 (de) 1996-12-04
EP1443450A3 (de) 2005-08-24
DE69637397T2 (de) 2009-01-02
DE69636205T2 (de) 2007-04-26
EP1443450A2 (de) 2004-08-04
EP0745951B1 (de) 2005-04-13
DE69636205D1 (de) 2006-07-06
EP1445725A3 (de) 2005-08-24
EP1445725A2 (de) 2004-08-11
EP0745951A3 (de) 2001-03-28
EP1443450B1 (de) 2008-01-02

Similar Documents

Publication Publication Date Title
DE69634584T2 (de) Optische Abtaster
US6209788B1 (en) Optical scanners
DE69625583T2 (de) Datenformleser
DE69838714T2 (de) Optische abtastvorrichtung und bildleser zum bildlesen und dekodieren optischer informationen mit ein- und zweidimensionalen symbolen bei veränderlicher tiefenschärfe
DE69932250T2 (de) Optische symbolanzeige
Joseph et al. Bar code waveform recognition using peak locations
CN102622569B (zh) 具有边缘检测增强的条码读取器
DE19882768B3 (de) Zweiter Ordnung differenzierender Signalprozessor für einen Strichkodescanner sowie Signalverarbeitungsverfahren zum Verwenden von Strichkodescannern
DE102012206078A1 (de) Bestimmung einer Anzahl von Objekten in einem IR-Bild
US5734152A (en) Optical scanners and signal processors therefor
DE4125899A1 (de) Abtastvorrichtung mit lichtemittierender diode
CN101916357A (zh) 一种激光条码识读装置及条码识读方法
DE19705747A1 (de) Verfahren und Vorrichtung zur Ermittlung und Decodierung von maschinenlesbaren Symbolen
Nazarkevych et al. Image filtration using the Ateb-Gabor filter in the biometric security systems
DE102021115575A1 (de) Fokusstabilisierung eines bildgebungssystems mit einer linse mit variablem fokus
EP1921565A1 (de) Barcodelesegerät
US6012640A (en) Rule based and fuzzy logic method and apparatus for processing reflectance signals from machine-readable symbols or images
Rees et al. The effect of median filtering on synthetic aperture radar images
EP2677492A1 (de) Codeleser und Verfahren zur Online-Verifikation eines Codes
EP0720762B1 (de) Optoelektronische vorrichtung zum erkennen von kontrastmarken
DE69930984T2 (de) Optische Vorrichtung zur Abtastung und Deckodierung eines Strichckodes
EP0686290B1 (de) Optoelektronische vorrichtung zum erkennen von barcode-symbolen
EP1883893B1 (de) Verfahren, system und scanner zum decodieren eines strichcodes
Krešić-Jurić Edge detection in bar code signals corrupted by integrated time-varying speckle
CN112101058A (zh) 一种试卷条码自动识别方法及装置

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: MEISSNER, BOLTE & PARTNER GBR, 80538 MUENCHEN

R082 Change of representative

Ref document number: 745951

Country of ref document: EP

Representative=s name: SCHUMACHER & WILLSAU PATENTANWALTSGESELLSCHAFT MBH