Background of the Invention
1. Area of the Art
This invention relates to ghost canceling and multipath compensation and more particularly relates to echo canceling in teletext systems.
2. Description of the Prior Art
It has long been known that television and other communication signals suffer various types of degradation due to transmission arising from interference from noise and from multipath. For example, in television signals, if a transmitted television signal is reflected off of a building or large geographic feature such as a mountain, antennas in the television service area may receive enough of a signal from this reflecting object to cause discernable interference. Typically, at television frequencies this interference may be discernable by the viewer of a television set coupled to such an antenna as a ghost image on the screen. In addition, in cable television systems, such ghosts may result from improper termination causing reflections due to impedance mismatching.
A variety of techniques have been advanced historically to compensate for ghosting. These include adaptive baseband equalizers and other related techniques.
However, a problem with such equalizers is that they often require complicated and expensive extra circuitry and are not generally suitable for implementation with a microprocessor that is also being used to perform other functions. While a microprocessor such as a Pentium or Pentium Pro microprocessor available from Intel of Santa Clara, Calif. may be able to implement adaptive baseband equalization (ABBE) algorithms, such microprocessors often have many other tasks to perform, particularly if the microprocessor is also processing a video signal for a variety of purposes and running other software through a multi-tasking operating system such as OS/2, Windows or Windows 95. ABBE typically involves multiplication which requires many bit samples.
Similarly, if one makes a hardware version of an equalizer, such hardware versions typically require expensive and slow circuitry or require digital signal processors. Such components are undesirable for products designed for the consumer market.
Therefore, it is a first object of this invention to provide a method and apparatus for ghost canceling of a video signal. It is a second object of this invention to provide such a ghost canceling system that may be implemented on a microprocessor with minimum complexity to permit the microprocessor to perform many other functions. It is yet another object of the invention to provide such echo canceling for teletext.
Summary of the Invention
These and other objects of the invention are provided by a method of correcting for ghosts using a look up table and damping factors. The sequential baseband samples of the video signal should be preferably teletext data having one of two nominal values and each symbol is altered by a correction factor. The appropriate correction factor is selected based upon a part of the output sequence. The sequential samples are corrected and then sliced to be either a one or a zero. The corrected samples are also examined to determine if the correction factor needs to be altered and the correction factor is altered and stored in a lookup table based upon the output sequence of the slicer.
Description of the Figure
FIG. 1 is a block diagram of the process of an embodiment of the invention.
Detailed Description of the Invention
FIG. 1 is a block diagram of an embodiment 10 of the process. The input analog signal (not shown) is baseband video information that preferably includes teletext according to North American Broadcast Teletext System (NABTS) Standards. In NABTS, the data symbols are limited to "zeros" and "ones" and the data is transmitted on lines ten through twenty-one inclusive of each field, which form part of the vertical blanking interval. A zero cosine pulse is one-quarter of the peak white video level and a one cosine pulse is three-quarters of the peak white level. The data rate is 5.7Mbits per second with no data being transmitted for the first thirteen microseconds of each sixty-three microsecond long line. The first two bytes of each line are for recovery of the clock and are the sync pattern of 101010 . . . 10 (eight times). Following the sync pattern is the frame header of E7 and thirty-three bytes of data before the horizontal blanking interval at the end of the line.
In the preferred embodiment, the analog baseband signal is provided to an automatic gain controlled amplifier (AGC) so that an eight bit analog to digital converter nominally converts a nominal teletext "zero" at one-quarter peak white value to a digital value of sixty-four and converts a nominal teletext "one" at three quarters peak white value to a value of "one hundred ninety-two." However, although the specific embodiment described is for teletext, the invention could be used with other types of symbols such as those available from QPSK, QAM and FSK. Also, the processes may be used in paging systems like POCSAG and FLEX and digital wireless communications schemes such as CDPD, PCS, and TDMA.
In the embodiment of FIG. 1, the teletext symbols on each of lines 10 through 21 of the vertical blanking interval are sampled to provide a digital data sequence with the sync pattern at the start of each line removed. Thus, the first symbol of each line to be processed in the embodiment of FIG. 1 is the frame start of "E7." At the start of each line, a sequence representative of the sync sequence of "1010101010" is set as the output sequence for the converter function 22. Of course, for signals other than NABTS teletext, other sync sequences and framing formats may be used. Still further, the disclosed embodiments may also be used with signals that lack sync codes and framing signals.
The converted data samples are preferably provided from a buffer for ghost cancellation to the system implementing the ghost method 10 shown in FIG. 1 as the Data In 12. The eight bit wide Data 12 In is provided to an eight bit adding function 13 that provides an eight bit wide sum 18 based upon an output 15 of the look-up table (LUT) function 14 and the Data In 12. The sum 18 is provided to a threshold converter or slicer function 20 that provides an output bit of a digital "one" for any byte greater than the halfway point (here one hundred twenty-eight) and a "zero" otherwise. Where only two symbols are used, the threshold has been selected to be midway between the zero and one symbols, i.e., at one hundred twenty eight. The output of the threshold function 20 is a ten bit serial to parallel converter function 22. The serial to parallel converter shift function may comprise a FIFO serial to parallel shift register such as cascaded 74164's available from many semiconductor manufacturers. The serial to parallel converter function 22 provides ten bit words as an output for further processing and also provides that ten bit word as the address input of the lookup table function 14. The ten bits in the converter function 22 consist of the ten most recently processed symbols or bits with the left most (most significant) bit being the most recent.
For each sequential sample, the lookup table function 14 provides the ghosting correction factor addend output 15 as input data for the summer function 13. The appropriate ghosting correction factor is selected based upon the ten bits in the serial to parallel converter function. In particular, this means that the most recently processed, recovered symbols provide the basis for selecting the correction factor from the look-up table function.
The output 15 of the lookup table function 14 is also provided to a difference function 26 for calculating an updated or modified correction factor for replacing the current output of the lookup table function 14. The other input of the difference function 26 is provided by an error function 30. The error function 30 takes the difference between the corrected sample 18 from the adder function 13 and the nearest nominal value for a symbol. That error measurement is then multiplied by a damping factor, which is one-fourth here so that a "shift right operation" of two bits may be used in a microprocessor with the result being rounded off. The damped error measurement is subtracted from the correction factor to obtain an updated correction factor to replace the prior correction factor.
The error function as is preferably a triangle wave function a shown in FIG. 1 with the peaks being at the threshold and maximum value. The damped error value is provided at the output 28 and the correction factor may be stored in a memory having a look-up table.
In the example of the NABTS, the error is determined by comparing the corrected value output 18 of the adder with the nominal value for a one or a zero. If the corrected value is greater than the midpoint between a digital zero and one (one hundred and twenty eight in this example), the nominal one value (one hundred and ninety two in this example) is subtracted from the corrected value and multiplied by the damping factor (four in this example) to obtain the error measurement. If the value is less than that midpoint (one hundred and twenty eight in this example), the nominal zero value (sixty four in this example) is subtracted from the corrected value 18, and multiplied by the damping factor to obtain the damped error value to be supplied to the subtractor function. The difference between the correcting factor and the damped error value is then stored in the lookup memory to provide an update the correction factor for the next symbol where the output sequence is the same as the current output sequence.
Initialization requires loading on powering up of the system to load the look-up table function 14 with all zeros. Further at the start of each line of wide samples, the values of the shift register is forced to be a ten byte long sequence of ones followed by a zero, which represents the clock synchronization pattern at the start of each line of teletext. Upon receipt of the frame code E7 for a line of video samples, the ghost canceler process is initiated.
Table I provides a pseudo code listing of the functions described above for implementation with a microprocessor such as an Intel Pentium where eight bit sampled data for each horizontal line in the vertical blanking interval holding teletext after the clocking sequence is stored in a buffer as a linear array called "value". The index for the array is called "value.sub.-- position" and the position of the start of teletext frame in the array is called the "framecode position" and is separately identified by processes based upon detecting the alternating sequence of "1010 . . . " ten times followed by E7 in the samples. The output of the process is a ten bit register called "output" and the base address for the look up table for the correction factor is "LUT". Further, the microprocessor performs comparisons and sets a compare flag bit to be high when the variable for the comparison is greater than the predetermined value.
By using the foregoing code, a microprocessor is able to perform the functions required and described with respect to FIG. 1. Alternatively, as is obvious to those of ordinary skill in the field, it would also be possible to build an electronic circuit according to the functionality of FIG. 1 by using glue logic, RAMs, buffers, FIFOs, shift registers, and discrete adders and subtractors.
In addition, while the specific embodiment disclosed is for a teletext signal where there are merely two symbols values, other schemes may be used such as with each symbol having three or more possible values. In that event, for three possible symbol values, two thresholds (located at one-third and two-thirds maximum value) are used, (for example eighty-five and one hundred seventy for eight bit data) and the nominal values are located at one-sixth, three-sixths, and five-sixths (for example, forty four, one hundred twenty eight and two hundred twenty). Further, instead of having an error function with one comparison and two triangles, the error function will have two comparisons and three triangles. Further, rather than determining the output with one comparison, two comparisons will be needed.
Further, the symbols may also be the land Q symbols for QPSK or QAM in which event each of the I and the Q values must be processed separately. For example, with a total of four symbols in QAM, with two possible I and two possible Q values, each of the I and Q symbols may be processed in the manner discussed above with the corrected cluster points being subsequently determined from the corrected I and Q values. Higher resolutions of QAM may be processed using the means described above for symbols with multiple values.
Also, although no ABBE needs to be used, the process of FIG. 1 may be modified to further include a thirteen bit output register function (not shown) instead of a ten bit output register with the most significant bits being used for ABBE before providing the output. Thus, the symbols go through two corrections: (i) frequency and phase correction from the ABBE, and (ii) multipath distortion and attenuation at higher frequency.
Therefore, the disclosed embodiments provide a mechanism for removing ghosts and other forms of multipath noise using a recursive filtering technique that provides updated correction factors based upon the sequence of the output. This permits implementation of the filter using minimal instructions and avoiding using true multiplication. As can be seen, many hardware and software embodiments are possible. Of course, the scope of the invention should be measured by the claims.