This description relates generally to the correction of errors and/or compensation of errors which may be included in signals. In particular, a signal that may be transmitted through the air, such as an infrared (IR) signal, a radio frequency (RF) signal, or the like, may suffer degradation. For example, an IR signal may suffer degradation from thermal sources and the like. Degradation can cause information to be lost or cause the signal to be lost to a receiver. A typical application may be a remote control in communication with a consumer electronics device such as a television, a video cassette recorder, stereo, or the like.
The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein:
Like reference numerals are used to designate like parts in the accompanying drawings.
The detailed description provided below in connection with the appended drawings is intended as a description of the present examples and is not intended to represent the only forms in which the present example may be constructed or utilized. The description sets forth the functions of the example and the sequence of steps for constructing and operating the example. However, the same or equivalent functions and sequences may be accomplished by different examples.
Although the present examples are described and illustrated herein as being implemented in a PC system, the system described is provided as an example and not a limitation. As those skilled in the art will appreciate, the present examples are suitable for application in a variety of different types of systems such as a Media Center PC's processor, a consumer electronics (CE) device, television, video cassette recorder, and the like. Also, the infrared signals described below are exemplary. Those skilled in the art will realize that the described compensation can apply to radio frequency and other types of signals.
A Media Center PC may participate in a home theater system and as such may include a signal transceiver, a hard drive or other storage media, an audio and/or video digitizer to convert analog audio and video signals to digital forms that may be stored on the hard drive or other storage media. A Media Center PC may also include an infrared signal database which stores the full set of infrared signals designed to control a wide variety of consumer electronics devices. A user may easily inform the Media Center PC of the identity of the consumer electronics devices participating in the home theater system by sending signals to the signal transceiver using the device's remote control. The Media Center PC may then match the signals received to those stored in the infrared signal database and in doing so identify the device. The Media Center PC may then utilize the stored signals in conjunction with the signal transceiver to act on a user's instructions to schedule and record entertainment programming received from the consumer electronics devices.
Under ideal conditions, signals intended to control a Media Center PC or consumer electronics devices are typically received correctly and completely. However, such signals are frequently subject to elements which may introduce distortion and introduce errors into the signal. Methods and processes for compensating for errors in such signals may allow the signals to be interpreted and the appropriate action to be taken.
An infrared (IR) signal emitted by a conventional remote control may be subject to one or more distortion causing nuisances as it travels to a receiver. Such distortion causing nuisances may be ambient room light, movement of the conventional remote control by a user, or the interference of a physical object. Such distortion causing nuisances may corrupt the IR signal by introducing errors into the IR signal. Such a corrupted signal may cause the remote control to operate improperly. A process for compensating for errors in the corrupted IR signal may allow a corrupted IR signal to be received successfully. An infrared signal correction component and a compensation method as will be described in
A conventional remote control 105 may be coupled to a conventional infrared transceiver 110 by a typical infrared signal 145. Equivalently, a radio frequency (RF) signal or the like may be substituted for the infrared signal. The infrared transceiver 110 may be coupled to one or more consumer electronics devices 165 by a typical infrared signal 160 or its equivalent.
The consumer electronics device 165 may include one or more conventional devices such as a set top box 120, a television 125, or the like. Such devices are typically configured to operate in conjunction with an infrared transceiver 110 or alternatively under direct control of the conventional remote control 105.
Return to the infrared transceiver 110, the infrared transceiver 110 may also be coupled to a PC 115 by any conventional method. The PC 115 typically operates in conjunction with the conventional remote control 105 to control the consumer electronics devices 165. The PC 115 may also receive signals from the consumer electronics device 165 to function as a conventional Media Center PC.
The PC 115 is a conventionally constructed Personal Computer or its equivalent configured to communicate in a conventional manner with the infrared transceiver 110. The PC 115 may be a stand-alone Media Center PC, or it may be a conventional processor incorporated in one or more of the consumer electronics devices 165. Alternatively, the PC 115 may be incorporated into the infrared transceiver 110. The PC 115 typically includes a conventional central processing unit (CPU) 130, a conventional random access memory (RAM) 140, and a conventional infrared code database 135.
The infrared code database 135 is a conventional database storing codes for various functions sent by a remote control 105 or its equivalent. The infrared code database 135 may also store codes for various different remote controls typically provided by various manufacturers.
Software in the PC 115 may typically allow signals from the conventional remote control 105 or consumer electronics devices 165 to be converted to a format the PC 115 may be able to process. Likewise, signals stored within the infrared code database 135 may be converted to infrared codes which may be transmitted by the infrared transceiver 110 and may cause the consumer electronics devices 165 to function appropriately.
It is specifically contemplated that any consumer electronics device which includes a signal transceiver of any type, a central processing unit of any type, memory of any type, and database storage of any type may equivalently provide the functions of the PC 115. An example of such a device may be a universal remote control that may include a central processing unit (CPU). Such an example is provided for illustrative purposes only and is not intended to be limiting in any manner.
The conventional remote control 105 may emit a typical infrared signal 145 which may be received by the IR transceiver 110, the set top box 120, the television 125, or any other type of consumer electronic device. The IR transceiver 110 may also emit an infrared signal 160 which may also control the set top box 120, the television 125, or any other type of consumer electronic device. However, if the signal received is degraded it may not be easily matched.
The conventional remote control may emit a typical infrared signal 145 which is received by the infrared transceiver 110. The infrared transceiver 110 may pass the received typical infrared signal 145 to the CPU 130. The CPU 130 may then search the infrared code database 135 for a match of the typical infrared signal 145.
Once the CPU 130 has discovered a match for the typical infrared signal 145, the CPU 130 may have identified the set top box 120, television 125, or other type of consumer electronics device the conventional remote control is intended to control. Degraded signals may be difficult to match, or may fail to be matched. In discovering the match of the typical infrared signal 145, the CPU 130 may then utilize other infrared signals stored in the infrared code database 135 corresponding to the typical infrared signal 145 to control the consumer electronics devices 165, such as a set top box 120, television 125, or the like.
If the PC 115 is a Media Center PC, it may be useful for the PC 115 to control the consumer electronics devices 165 on behalf of a user of the consumer electronics device 165. For example, a user of the Media Center PC may instruct the Media Center PC to control the consumer electronics device 165 by utilizing the infrared transceiver 110 at a certain time to change the consumer electronics devices 165 to a certain channel.
A media center PC may typically include a hard drive or other form of mass storage, a conventional video graphics hardware device, and a conventional audio and/or video digitizing hardware device which may include a conventional television signal tuner. The hard drive or other form of mass storage may be coupled to the CPU 130, the conventional video graphics hardware device may be coupled to the CPU 130, and the conventional audio and/or video digitizing hardware device may be coupled to the CPU 130. The consumer electronics devices 165 may be coupled to the PC 115 such that the audio and/or video signals sent by the consumer electronics devices 165 may be digitized by the audio and/or video digitizing hardware device and recorded to the hard drive of the PC 115.
Examples of such a Media Center PC are provided in U.S. patent application Ser. No. 10/881,618, filed on Jun. 30, 2004, and U.S. patent application Ser. No. 10/414,713, filed on Apr. 16, 2003, both of which are hereby incorporated by reference in their entirety. Such a Media Center PC may be useful to users as it may record television programs on a user's behalf such that a user may only need to inform the Media Center PC to record a television show series and may not need to select each individual program in the television show series to be recorded.
Further, such a Media Center PC may simplify the task of identifying which consumer electronics devices 165 it may be required to control on the user's behalf by requesting that the user press a button on the conventional remote control 105 which is provided by the manufacturer of the consumer electronics devices 165 as described earlier. However, the typical infrared signal 145 may become a corrupted infrared signal 155 due to the introduction of a distortion causing nuisance 150.
Such a corrupted infrared signal 155 may not be useful in identifying the consumer electronics devices 165, which may be a set top box 120, television 125, or the like. Such a distortion causing nuisance 150 may be the interference of ambient room lighting, an object located near the conventional remote control, or any other entity which introduces errors and causes a corrupted infrared signal 155.
When the corrupted infrared signal 155 is received at the infrared transceiver 110, the transceiver 110 may pass the corrupted infrared signal 155 to the CPU 130. The CPU 130 may then attempt search the infrared code database 135 for a match of the corrupted infrared signal 155.
As previously discussed, the CPU 130 may fail in finding a match as the corrupted infrared signal 155 may contain one or more errors. However, the corrupted infrared signal 155 may contain sufficient information to function if the signal were cleared up. Once cleared up, the signal may be used to identify the consumer electronics devices 165, which may be a set top box 120, television 125, or the like. Such clearing up of the signal may be accomplished in various ways. One such way of clearing up the signal may be a compensation method.
The components having like numbering from the previous figure function similarly, and the reader is directed to the previous figure for a description of their operation. A description of the new components is provided below.
The infrared correction component 205 includes a compensation method 210 may allow a corrupted infrared signal 155 to be processed by the PC 115. The infrared correction component is typically a software component, or its equivalent, that operates in conjunction with the software of the PC 115 to allow interpretation of a corrupted infrared signal 155 prior to or in conjunction with its processing information from the infrared code database 135.
As previously discussed, the corrupted infrared signal 155 may not be useful in identifying the consumer electronics devices 165. For example, the CPU 130 may fail in finding a match for the corrupted infrared signal 155 as the corrupted infrared signal 155 may contain one or more errors. However, the corrupted infrared signal 155 may contain sufficient information such that compensation for the one or more errors may be applied. Once error compensation has been applied, the corrupted infrared signal 155 is transformed to a compensated infrared signal used to identify the set top box 120, television 125, or other type of consumer electronics device.
Once the CPU 130 has discovered a match for the infrared signal 145 using the compensated infrared signal, the PC 115 may identify the consumer electronics device 165, which may be a set top box 120, a television 125, or other type of consumer electronics device the conventional remote control is attempting to control. In discovering the match of the infrared signal 145, the PC 115 may then utilize other infrared signals stored in the infrared code database 135 corresponding to the infrared signal 145 to control the consumer electronics device 165 which may be a set top box 120, a television 125, or the like.
The infrared correction component 205 and the compensation method 210 implemented by it may compensate for errors from a variety of sources that tend to distort the signal. In order to more clearly understand the corrections made to the signal, further details of the typical signals designed to control a consumer electronics device will be provided. Also, a typical distortion mechanism that may degrade a signal will be defined in greater detail.
A typical infrared signal 145 (from
A typical consumer electronics device with a remote control receiver may also include an automatic gain control (AGC). Such an AGC may measure an initial pulse length and strength to establish the expected length and strength of subsequent pulses within the signal. The strength, as illustrated by the vertical amplitude, and the length, as illustrated by the horizontal time scale, may be useful to the AGC.
Following the infrared prefix 310 may be a set of infrared repeat pulses 315. The number, length, strength or any other attributes of such infrared repeat pulses 315 are exemplary. The infrared repeat pulses 315 are included in the signal in a repeated manner so as to provide redundant information useful in identifying the typical infrared signal 145 (from
Ending the typical infrared signal 145 (from
As previously discussed, such a typical infrared signal 145 (from
The corrupted AGC pulse 405 may be received by the AGC. However, the corrupted AGC Pulse 405 may have a length which is shorter than expected. For example, the corrupted AGC Pulse 405 may be less than the expected 900 milliseconds in length. The introduction of a distortion causing nuisance 150 (from
A corrupted infrared signal 155 (from
Following the infrared prefix 310 may be one or more correct infrared repeat pulses 315, unacceptable infrared repeat pulses 410, and acceptable infrared repeat pulses 415. The order, length, strength, and other attributes of the correct infrared repeat pulses 315, unacceptable infrared repeat pulses 310, and acceptable infrared repeat pulses 415 are provided as an example only. Unacceptable infrared repeat pulses 315 may be mixed among acceptable repeat pulses. The correct infrared repeat pulses 315 and the corrupted forms of the correct infrared repeat pulse 315 may include two or more repeated pulses and are not limited in the number of pulses that may comprise the repeat pattern in any way.
One or more corrupted forms of the correct infrared repeat pulse 315 may be included in the correct set of infrared repeat pulses 315. For example, the signal may include at least one unacceptable infrared repeat pulse 410. An unacceptable infrared repeat pulse 410 may be determined to be unacceptable because the length of the pulse may have been distorted by a distortion causing nuisance 150 (from
An acceptable infrared repeat pulse 415 may be included within the set of correct infrared repeat pulses 315. Such an acceptable infrared repeat pulse 415 may also have had an error introduced by a distortion causing nuisance 150 (from
An infrared suffix 320 may end the corrupted infrared signal 155 (from
The errors illustrated in the corrupted infrared signal 155 (from
As previously discussed, the compensation method 210 (from
At block 510 a signal, such as an infrared remote control signal, may be received. A receiver may be provided in a PC 115 (from
At block 520 the received signal may be parsed into one or more discrete portions. Such parsing may take the form of splitting the signal into one or more discrete portions based on time, length, strength or any other criteria without limitation. The process of parsing a signal into discrete portions is conventionally performed.
The compensation method 210 (from
Flow continues along path A to block 530, where the automatic gain control (AGC) pulse width may be measured. AGC pulse measurement will be discussed more fully in the detailed description of
If an unacceptable margin of error is measured in the AGC pulse width 560, flow continues along path C to block 550. When an unacceptable margin of error is measured in the AGC pulse width error correction is typically not performed on the signal. Therefore, the signal may still contain errors when the operation at block 550 is performed. If an allowable margin of error is measured in the AGC pulse width 530, flow continues along path D to block 540.
At block 540, any errors in the signal may be corrected. Correction is typically performed using the allowable margin of error in the pulse width measured at block 530. The process of signal correction at block 540 will be discussed more fully in the detailed description of
Block 550 is typically an operation in which a database may be searched for a match to the signal received from block 540 along path B. The operation to search the database for a match to the signal may utilize the allowable margin of error in pulse width 570 in finding a match. For example, the comparison operation may use a loose comparison in which the comparison may not yield exact matches, but rather matches falling within the allowable margin of error in pulse width 570.
Block 570 is typically an operation in a database may be searched for a match to the signal received from block 530 along path C, but may not use the allowable margin of error in pulse width 570 in finding a match. For example, the comparison operation may find matches which may match the signal exactly.
At block 610 the AGC pulse width of the signal received from Block 520 (of
At block 615 a comparison of the measured AGC pulse width to an expected or predetermined value may be made. For example, if the time length of the AGC pulse width has been measured, a decision at block 610 may be based on a comparison of the measured AGC pulse width against a fixed expected value such as, for example, 900 milliseconds. Any other suitable fixed value may be used as circumstances may require. Any equivalent method of comparing the measured value of the AGC pulse to an expected or predetermined value may be substituted. For example, an analog comparison, a comparison of bits in digitized signals, or other methods could be utilized.
If the AGC pulse is determined to be less than or equal to the expected value flow continues to block 625. However, if the AGC pulse is determined to be greater than the expected value, the signal received at block 610 is determined to include an unacceptable margin of error in the AGC pulse width 620. Flow then continues along path C.
At block 625, a further comparison of the difference between the expected value of the AGC pulse width and the measured value of the AGC pulse width is performed. Various methods of comparing the difference between the expected value of the AGC pulse width and the measured value of the AGC pulse width may be used. However, if the difference between the expected value of the AGC pulse width and the measured value of the AGC pulse width falls outside of a predetermined or prescribed value, the signal received at block 610 is determined to include an unacceptable margin of error in the AGC pulse width 620 and flow continues along path C. Conversely, if the difference between the expected value of the AGC pulse width and the measured value of the AGC pulse width falls within a predetermined or prescribed value, the signal received at block 610 is determined to include an allowable margin of error in the AGC pulse width 630 and flow continues along path D for error compensation.
At Block 705 an operation to determine a pattern in a signal is performed. The process of determining the pattern within the signal may be performed in various ways. For example, if the received signal is an infrared signal similar to the infrared signals of
For example, the process of determining the pattern may be performed by assigning a value to each similar type of pulse encountered in the signal. More particularly, the first occurrence of a first pulse in the repeat portion of a signal may be assigned the value “B”. A first occurrence of a second pulse in the repeat portion of a signal may be assigned the value “C”. The second occurrence of the first pulse in the repeat portion of a signal may also be assigned the value “B”. The second occurrence of the second pulse in the repeat portion of a signal may also be assigned the value “C”. Therefore, the sequence of values of pulses in the signal may be “BCBC”. An algorithm may be applied to the value “BCBC” which may in turn determine the pattern to be “BC”. It should be appreciated that such a process is provided as an example only and any process which is able to determine the pattern may be equivalently substituted.
At block 710 in which a variable named, for example, “x” is defined, which may act as a numerical counter. The variable “x” may be set to an initial value of zero. Further, a variable named, for example, “n” may be defined which corresponds to the total number of pulses in the received signal. Note that “n” may also refer to the total number of “pattern” pulses included in the received signal. For example, if the pattern is determined to be “BC” as discussed in the previous example and the repeat portion of the signal is determined to be “BCBC”, the number of “pattern” pulses equals two.
The variable “x” may be used to designate the position of a pulse or set of pulses within the received signal. That is, in a signal with a set of 5 repeated single pulses, the first pulse is designated to be pulse “1”, the second pulse is designated to be pulse“2”, and so on. In the example where the set of pulses represents a pattern in the received signal, the first set of pulses is designated “1”, the second set of pulses is designed “2”, and so on.
At block 715 the value of the variable “x” is incremented by one. Also, the pulse or pulses at position “x+1” of the received signal is compared to the pattern determined at block 705. The previously discussed method of comparing the pulse or pulses may be used. Equivalent methods of comparison may be substituted. In response to a failure to match, flow may continue along to block 720. In response to a match, flow may continue along to block 730.
At block 720, the pulse or pulses at position “x+1” of the received signal are compared to the pattern determined at block 705, however, a greater margin of error in the difference between the pulse or pulses and the pattern determined at block 705 may be used in determining equivalency. For example, the margin of error used may be related to the difference between the expected length of the automatic gain control pulse width and the measured automatic gain control pulse width determined at block 530 of
If the pulse or pulses at position “x+1” of the received signal are determined to not be equal to the pattern determined at block 705 within the margin of error, flow continues to block 725. If the pulse or pulses at position “x+1” of the received signal are determined to be equal to the pattern determined at block 705 within the margin of error, flow continues to block 730.
At block 725 an operation to exclude pulses from the pattern comparison may be performed. The pulse or pulses at position “x+1” may be excluded from the pattern comparison, which may be used to identify the received signal at block 735. Such an exclusion of the pulse or pulses at position “x+1” may be called “correcting” or “compensating” for errors in the received signal. Flow continues from block 725 to the input of block 735.
Returning to the output of block 715 for a positive comparison, at block 730 an operation in which the pulse or pulses at position “x+1” are included the pattern comparison which may be used to identify the received signal at block 735.
At block 735 an operation in which the total number of individual pulses or sets of pulses is compared to the value of the counter variable “x”. If the variable “x” does not equal the total number of pulses or sets of pulses, flow continues on to block 740. At block 740, the variable “x” may be incremented and flow may return to block 715. If the total number of individual pulses or sets of pulses is equal to the variable “x”, all of the individual pulses or groups of pulses may have been processed and therefore flow may continue on to block 745.
At block 745 an operation in which the “corrected” or “compensated” signal may be used to confirm the identity of the signal may be performed. Here a determination may be made if a sufficient number of pulses have been examined.
If the number of pulses or sets of pulses previously identified at block 730 is greater than or equal to an expected or predetermined number, flow may continue along path B. However, if the number of pulses or sets of pulses previously identified at block 730 is less than an expected or predetermined number, the signal may not have been sufficiently “corrected” or “compensated”. Such a signal therefore may not be successfully identified, and flow may continue to block 750 where the user may be requested to press the remote control button again, or otherwise try to re-transmit the command.
Methods and procedures for compensating and correcting errors in a received signal have been discussed. Those skilled in the art will realize that storage devices utilized to store program instructions can be distributed across a network. For example, a remote computer may store an example of the process described as software. A local or terminal computer may access the remote computer and download a part or all of the software to run the program.
Alternatively, the local computer may download pieces of the software as needed, or may distributively process by executing some software instructions at the local terminal and some at the remote computer (or computer network). Those skilled in the art will also realize that by utilizing conventional techniques known to those skilled in the art that all, or a portion of the software instructions may be carried out by a dedicated circuit, such as a DSP, programmable logic array, or the like.
This application claims the benefit of U.S. Provisional Patent Application No. 60/703,221 filed Jul. 28, 2005, the contents of which are hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
4291405 | Jayant et al. | Sep 1981 | A |
4375099 | Waters et al. | Feb 1983 | A |
4441192 | Kita et al. | Apr 1984 | A |
5675569 | Yamaguchi et al. | Oct 1997 | A |
6360090 | Holcombe et al. | Mar 2002 | B1 |
6396542 | Patel | May 2002 | B1 |
6542560 | Buehrer et al. | Apr 2003 | B1 |
6662329 | Foster et al. | Dec 2003 | B1 |
6891496 | Husted et al. | May 2005 | B2 |
6999127 | Ryoo et al. | Feb 2006 | B2 |
7043680 | Aizawa | May 2006 | B2 |
20040199834 | Fukae | Oct 2004 | A1 |
20060010361 | Lin | Jan 2006 | A1 |
20060020996 | Takagi et al. | Jan 2006 | A1 |
20060203742 | Bui | Sep 2006 | A1 |
Number | Date | Country | |
---|---|---|---|
20070025736 A1 | Feb 2007 | US |
Number | Date | Country | |
---|---|---|---|
60703221 | Jul 2005 | US |