Patent Description:
Digital data can be serially communicated in a data stream by interconnected electronic devices, i.e., data bits are communicated one-by-one in a sequential manner over a single data transfer link. Pulse Position Modulation (PPM) may be employed to encode the digital data stream onto an optical carrier wave. The encoding is achieved by modulating the optical carrier wave such that the digital data bits are conveyed through variations in a time relationship between optical pulses.

The datastream can be transferred as discrete frames of information from the transmitting device to the receiving device. Thus, the receiving device may also perform frame synchronization by determining a location of a sync word within the received data stream. The sync word comprises a fixed pattern of bits inserted into a header of each frame by the transmitting device. This determination is made by matching the fixed pattern of bits in the received signal to a reference pattern of bits. The pattern matching may be achieved using a cross-correlation technique on the detected bits. When PPM is used to encode the digital bits onto the optical carrier wave, the cross-correlation technique can perform poorly due to the low duty cycle of pulses in the PPM encoded signal. In particular, the differences in correlation values between a match and random data can be small and difficult to detect. Technological background is disclosed in the documents <CIT>, <CIT> and <NPL>.

This document concerns systems and methods for synchronize word correlation. The methods comprise: obtaining, by a correlator, first values that each indicate a likelihood or probability that a respective timeslot in a symbol timing window of a carrier wave is meant or expected to include energy in form of a light pulse; multiplying, by the correlator, the first values respectively by correlation coefficients to produce a plurality of products (wherein at least one of the correlation coefficients comprises a negative coefficient value); generating, by the correlator, a correlation value by combining the products together; determining, by the correlation, whether a synchronization word has been detected with a given amount of likelihood based on the correlation value; and causing, by the correlator, symbol timing synchronization at a receiver when a determination is made that the synchronization word has been detected with the given amount of likelihood based on the correlation value.

The negative coefficient value is used in the multiplying when energy should not be present in the respective timeslot of the symbol timing window. Thus, the correlation coefficient having the negative value causes the correlation value to be penalized when carrier wave energy exists in a timeslot that should not have any carrier wave energy. At least another one of the correlation coefficients comprises a positive coefficient value. The positive coefficient value is used in the multiplying when energy should be present in the respective timeslot of the symbol timing window. An absolute value of the positive coefficient value is greater than an absolute value of the negative coefficient value. A distance between the positive coefficient value and the negative coefficient value is equal to or greater than three.

The determining comprises comparing the correlation value to a threshold value. A determination is made that the synchronization word has been detected with the given amount of likelihood when the correlation value is exceeds the threshold value. A determination is made that the synchronization word has not been detected with the given amount of likelihood when the correlation value is less than the threshold value.

The implementing system can comprise a processor and a non-transitory computer-readable storage medium comprising programming instructions that are configured to cause the processor to implement a method for mitigating interference. Alternatively or additionally, the implementing system may include logic circuits (e.g., subtractors), passive circuit components (e.g., resistors, capacitors, switches, delays, etc.) and/or other active circuit components (e.g., transistors, demodulators, modulators, combiners, etc.).

This disclosure is facilitated by reference to the following drawing figures, in which like numerals represent like items throughout the figures.

It will be readily understood that the solution described herein and illustrated in the appended figures could involve a wide variety of different configurations. Thus, the following more detailed description, as represented in the figures, is not intended to limit the scope of the present disclosure but is merely representative of certain implementations in different scenarios. While the various aspects are presented in the drawings, the drawings are not necessarily drawn to scale unless specifically indicated.

Reference throughout this specification to features, advantages, or similar language does not imply that all the features and advantages that may be realized should be or are in any single embodiment of the invention.

The present solution will be described herein in relation to optical communication systems. The present solution is not limited in this regard, and can be used with other types of communication systems such as Radio Frequency (RF) communication systems employing PPM.

Referring now to <FIG>, there is provided an illustration of a system <NUM> implementing the present solution. System <NUM> comprises satellites <NUM>, <NUM>, ground station(s) <NUM>, <NUM>, airborne platform(s) <NUM>, <NUM>, and spacecraft <NUM>. The listed devices are configured to communicate with each other over communication links <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>. As such, each of these devices <NUM>-<NUM> comprises a communication device configured to transmit and receive signals. An illustrative architecture for a communication device is provided in <FIG>, which will be discussed in detail below.

During operation, the communication devices serially communicate digital data in data streams, i.e., data bits are communicated one-by-one in a sequential manner over a single data transfer link <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM> or <NUM>. PPM may be employed by the communication devices to encode the digital data stream onto optical carrier waves. The encoding is achieved by modulating the optical carrier waves such that the digital data bits are conveyed through variations in a time relationship between optical pulses.

The datastream can be transferred as discrete frames of information from a transmitting device (e.g., satellite <NUM>) to a receiving device (e.g., airborne platform <NUM>). Thus, the receiving device may also perform frame synchronization by determining locations of a sync word within the received data stream. The sync word comprises a fixed pattern of bits inserted into a header of each frame by the transmitting device. This determination is made by matching the fixed pattern of bits in the received signal to a reference pattern of bits. The pattern matching may be achieved using a cross-correlation technique on the detected bits.

The cross-correlation technique employed here is improved as compared to that of conventional cross-correlation techniques such that the synchronization pattern is detected with a higher degree of confidence when PPM or other modulation technique is used to encode the digital bits onto an optical carrier wave. In particular, the differences in correlation values between a match and random data is no longer difficult to detect as a result of the novel cross-correlation technique employed in system <NUM>. The particulars of the novel cross-correlation technique will become evident as the discussion progresses.

An illustrative communication device is provided in <FIG> which is configured for carrying out the various methods described herein for synchronize word correlation in communication applications. Satellites <NUM>, <NUM>, ground station <NUM> and/or airborne platform <NUM> can comprise communication device <NUM> of <FIG>. Communication device <NUM> can include more or less components than that shown in <FIG> in accordance with a given application. For example, communication device <NUM> can include one or both components <NUM> and <NUM>. The present solution is not limited in this regard.

As shown in <FIG>, the communication device <NUM> comprises an optical transceiver <NUM>, a processor <NUM>, a memory <NUM>, a display <NUM>, Input/Output (I/O) device(s) <NUM>, user interface <NUM>, and a power source <NUM>. The optical transceiver <NUM> can comprise one or more components such as a processor, an application specific circuit, a programmable logic device, a digital signal processor, or other circuit programmed to perform the functions described herein. The optical transceiver <NUM> can enable end-to-end communication services in accordance with the present solution. In this regard, the optical transceiver can facilitate communication of data (e.g., voice data and/or media content) from the communication device <NUM> over a network and/or communications channel (e.g., a satellite communication channel).

The optical transceiver <NUM> can include, but is not limited to, an optical wireless transceiver and an optical wireless receiver. The optical wireless transceiver <NUM> is generally configured to convert electrical data signals into optical signals. The optical wireless transceiver <NUM> is connected to a processor <NUM> comprising an electronic circuit. During operation, the processor <NUM> is configured to control the optical wireless transceiver <NUM> for providing communication services. The processor <NUM> also facilitates clock synchronization at a receiving device by including a synchronization word at the start of each frame of data and facilitates clock synchronization at the optical wireless receiver by detecting the synchronization word in received signals.

A memory <NUM>, display <NUM>, user interface <NUM> and I/O device(s) <NUM> are also connected to the processor <NUM>. The processor <NUM> may be configured to collect and store data generated by the I/O device(s) <NUM> and/or external devices (not shown). The I/O device(s) <NUM> can include, but are not limited to, a speaker, a microphone, sensor(s) (e.g., a temperature sensor and/or a humidity sensor), and/or a camera. Data stored in memory <NUM> can include, but is not limited to, one or more look-up tables or databases which facilitate synchronize word correlation in communication applications. The user interface <NUM> includes, but is not limited to, a plurality of user depressible buttons that may be used, for example, for entering numerical inputs and selecting various functions of the communication device <NUM>. This portion of the user interface may be configured as a keypad. Additional control buttons and/or rotatable knobs may also be provided with the user interface <NUM>. A power source <NUM> (e.g., a battery) may be provided for powering the components of the communication device <NUM>. The power source <NUM> may comprise a rechargeable and/or replaceable battery. Batteries are well known in the art, and therefore will not be discussed here.

The communication device architecture shown in <FIG> should be understood to be one possible example of a communication device system which can be used in connection with the various implementations disclosed herein. However, the systems and methods disclosed herein are not limited in this regard and any other suitable communication device system architecture can also be used without limitation. Applications that can include the apparatus and systems broadly include a variety of electronic and computer systems. In some scenarios, certain functions can be implemented in two or more specific interconnected hardware modules or devices with related control and data signals communicated between and through the modules, or as portions of an application-specific integrated circuit. Thus, the illustrative system is applicable to software, firmware, and hardware implementations.

Referring now to <FIG>, there is provided a more detailed diagram of the optical transceiver <NUM> of <FIG>. As noted above, the optical transceiver <NUM> comprises an optical transmitter <NUM> and an optical receiver <NUM>. The transmitter <NUM> is configured to receive data from processor <NUM> and process the same to generate an optical signal <NUM>. The processing is performed by a data link layer framer <NUM>, an encoder <NUM>, an optional interleaver <NUM>, a physical layer framer <NUM> and a modulator <NUM>.

The data link layer framer <NUM> is generally configured to generate data link layer frames. An illustration of a data link layer frame <NUM> is provided in <FIG>. The data link layer frame <NUM> comprises a datalink layer header <NUM>, data <NUM>, and a data link layer trailer <NUM>. Data link layer headers and trailers are well known. The header <NUM> may comprise a source address, a destination address, and/or control bytes. The trailer <NUM> may comprise information to ensure that the frame <NUM> is received intact and undamaged.

The data link layer frame <NUM> is then passed to the encoder <NUM>. The encoder <NUM> performs operations to generate an encoded frame. An illustration of an encoded frame <NUM> is provided in <FIG>. The encoded frame <NUM> comprises an encoded datalink layer frame <NUM> and parity bit(s) <NUM>. The encoded datalink layer frame <NUM> comprises the datalink layer frame <NUM> which has been converted into a codeblock. The codeblock can include, but is not limited to, a Low-Density Parity-Check Code (LDPC) codeblock. LDPC is well known. Parity bits are well known as generally comprising one or more bits which act as check bit(s) for validating an integrity of the codeblock.

The encoded frame <NUM> is then passed to the physical layer framer <NUM> via an optional interleaver <NUM>. The physical layer framer <NUM> performs operations to generate a physical layer frame. An illustration of a physical layer frame <NUM> is provided in <FIG>, and an illustration of another physical layer frame <NUM> is provided in <FIG>. Both physical layer frames <NUM>, <NUM> comprise a synchronization word <NUM>, a data sequence number <NUM>, a data type <NUM>, and spare bit(s) <NUM>. The synchronization word <NUM> comprises a sequence of bits which are known to a receiving device for facilitating synchronization of its clock with the clock of transmitter <NUM>. The other components <NUM>, <NUM>, <NUM> are well known.

The physical layer frame is then passed to modulator <NUM>. Modulator <NUM> is configured to perform modulation operations for modulating an optical carrier wave such that the digital data bits of the physical layer frame are conveyed. The modulation technique employed by modulator <NUM> can include, but is not limited to, PPM and/or other modulation schemes that have low duty cycles or in which the energized time is relatively small compared to the non-energized time (e.g., the energized time ≤ <NUM>% of the time for the synchronization word and non-energized time is ≥ <NUM>% of the total time for the synchronization word).

An illustration is provided in <FIG> that is useful for understanding PPM. In PPM, a digital data stream is encoded onto an optical carrier wave. The encoding is achieved by modulating the optical carrier wave such that the digital data bits are conveyed through variations in a time relationship between optical pulses. For example, a symbol timing window <NUM> comprises a plurality of timeslots ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM> in which a symbol of a synchronization word can be transmitted via a light pulse. Each symbol comprises three bits and can have a value <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>. So, if the synchronization word comprise a sequence of symbols <NUM><NUM>, then an optical carrier wave <NUM> is generated in which a light pulse <NUM> is provided in timeslot ts<NUM> of a first symbol timing window and a light pulse <NUM> is provided in timeslot ts<NUM> of a second symbol timing window. The present solution is not limited to the particulars of this example.

Referring back to <FIG>, an optical carrier wave (e.g., optical carrier wave <NUM>) can be received by the optical receiver <NUM>. The optical carrier wave is processed by a photo detector <NUM> and the soft value determiner <NUM> to generate soft values for the timeslots of the symbol timing windows. The soft value determiner <NUM> can include, but is not limited to, an Analog-to-Digital Converter (ADC). Each soft value indicates a probability that the respective timeslot of a symbol timing window is meant or expected to include a light pulse. The soft values are provided to a correlator <NUM> which implements a novel correlation technique for timing synchronization. The particulars of the novel correlation technique will be discussed in detail below in relation to <FIG>. The novel correlation technique is performed to determine when the synchronization word has been detected with a given degree of likelihood. Once it is determined that the synchronization word has been detected with the given degree of likelihood, operations are performed by the demodulator <NUM> to demodulate the optical carrier wave for obtaining a data stream.

The correlator <NUM> is shown in <FIG> as being part of the demodulator <NUM>. The present solution is not limited in this regard. The correlator <NUM> can be a separate device from the demodulator <NUM> and/or comprised in another device other than the demodulator <NUM>.

The data stream is then passed to the physical layer deframer <NUM> where each physical layer frame is extracted from the data stream and processed to remove the physical layer header therefrom to obtain an encoded frame. The encoded frame is passed to the decoder <NUM> via an optional deinterleaver. At the decoder <NUM>, the encoded frame is decoded to obtain the datalink layer frame. The datalink layer frame is passed to the data link layer deframer <NUM> where the data is extracted therefrom. The data is then provided to processor <NUM>.

Referring now to <FIG>, there is provided an illustration that is useful for understanding the novel correlation technique implemented by correlator <NUM> of optical receiver <NUM>. The correlator <NUM> is generally configured to correlate signal samples (or modulation window samples) against synchronization word coefficients. The correlation process may be iteratively performed using signal samples shifted once every sample time. For example, the signal samples s<NUM>, s<NUM>, s<NUM>,. , sN are evaluated in a first iteration of the correlation process. If the synchronization word is not detected in the first iteration, the signal samples are shifted such that signal samples s<NUM>, s<NUM>,. , sN+<NUM> are analyzed in a second iteration of the correlation processes. The correlation process increases the difference between correlation peaks and non-peaks compared to other correlation modes/schemes when using modulation schemes with relatively low duty cycles (e.g., modulation schemes where the energized time is smaller than the non-energized time). In such low duty cycle modulation schemes, the limited number of occupied timeslots cause other correlation modes/schemes to have little difference in correlation values for random data and correlation values for synchronization words.

The correlator <NUM> comprises a circuit <NUM> configured to receive the soft values <NUM> (e.g., from soft value determiner <NUM> of <FIG>). The soft values <NUM> can be generated in accordance with any known technique such as via an ADC. The soft values <NUM> include a plurality of values SVts1, SVts2, SVts3, SVts4, SVts5, SVts6,. , SVtsN-<NUM>, SVtsN. Each of the soft values indicates a likelihood or probability that the respective timeslot of the N timeslots (e.g., timeslots ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM> of <FIG>) in a symbol timing window (e.g., symbol timing window <NUM> of <FIG>) is or is not meant or expected to include light. For example, a soft value of zero indicates a likelihood or probability that the respective timeslot in a symbol timing window is not meant or expected to include light (or have a zero bit value associated therewith), while a soft value of ten indicates a likelihood or probability that the respective timeslot in a symbol timing window is meant or expected to include light (or have a non-zero bit value associated therewith). The present solution is not limited to the particulars of this example.

Circuit <NUM> performs operations to route or otherwise provide the soft values to the respective operational branch of a plurality of operational branches <NUM><NUM>, <NUM><NUM>, <NUM><NUM>, <NUM><NUM>, <NUM><NUM>, <NUM><NUM>,. , <NUM>N-<NUM>, <NUM>N (collectively referred to as "<NUM>"). Specifically, circuit <NUM> passes a soft value SVts1 (associated with a timeslot ts<NUM>) to operational branch <NUM><NUM>, passes a soft value SVts2 (associated with a timeslot ts<NUM>) to operational branch <NUM><NUM>, passes a soft value SVts3 (associated with a timeslot ts<NUM>) to operational branch <NUM><NUM>, passes a soft value SVts4 (associated with a timeslot ts<NUM>) to operational branch <NUM><NUM>, a soft value SVts5 (associated with a timeslot ts<NUM>) to operational branch <NUM><NUM>, a soft value SVts6 (associated with a timeslot ts<NUM>) to operational branch <NUM><NUM>, a soft value SVtsN-<NUM> (associated with a timeslot tsN-<NUM>) to operational branch <NUM>N-<NUM>, and a soft value SVtsN (associated with a timeslot tsN) to operational branch <NUM>N.

Each operational branch <NUM> comprises a multiplier <NUM><NUM>, <NUM><NUM>, <NUM><NUM>, <NUM><NUM>, <NUM><NUM>, <NUM><NUM>,. , <NUM>N-<NUM>, <NUM>N (collectively referred to as "<NUM>"). The multiplier is configured to multiply the soft value with a correlation coefficient. For example, multiplier <NUM><NUM> is configured to multiply soft value SVts1 (associated with a timeslot ts<NUM>) and coefficient Cts1 (also associated with timeslot ts<NUM>) to produce a product Pts1. Multiplier <NUM><NUM> is configured to multiply soft value SVts2 (associated with a timeslot ts<NUM>) and coefficient Cts2 (also associated with timeslot ts<NUM>) to produce a product Pts2. Multiplier <NUM><NUM> is configured to multiply soft value SVts3 (associated with a timeslot ts<NUM>) and coefficient Cts3 (also associated with timeslot ts<NUM>) to produce a product Pts3. Multiplier <NUM><NUM> is configured to multiply soft value SVts4 (associated with a timeslot ts<NUM>) and coefficient Cts4 (also associated with timeslot ts<NUM>) to produce a product Pts4. Multiplier <NUM><NUM> is configured to multiply soft value SVts5 (associated with a timeslot ts<NUM>) and coefficient Cts5 (also associated with timeslot ts<NUM>) to produce a product Pts5. Multiplier <NUM><NUM> is configured to multiply soft value SVts6 (associated with a timeslot ts<NUM>) and coefficient Cts6 (also associated with timeslot ts<NUM>) to produce a product Pts6. Multiplier <NUM>N-<NUM> is configured to multiply soft value SVtsN-<NUM> (associated with a timeslot tsN-<NUM>) and coefficient CtsN-<NUM> (also associated with timeslot tsN-<NUM>) to produce a product PtsN-<NUM>. Multiplier <NUM>N is configured to multiply soft value SVtsN (associated with a timeslot tsN) and coefficient CtsN (also associated with timeslot tsN) to produce a product PtsN.

The coefficients comprise a positive coefficient and a negative coefficient such that the correlation value (STotal) is penalized when carrier wave energy exists when there should be none. The positive and negative coefficients are arbitrarily selected or selected in accordance with a given application (e.g., for optimized processing, processing time or resource intensity). The absolute value of the positive coefficient is greater than the absolute value of the negative coefficient, and the distance between the positive coefficient and the negative coefficient is equal to or greater than three. For example, the positive coefficient is positive eight, while the negative coefficient is negative two. The absolute value of positive eight is greater than the absolute value of negative two, and the distance between positive eight and negative two is ten which is greater than three. Alternatively, the positive coefficient is positive two while the negative coefficient is negative one. The absolute value of positive two is greater than the absolute value of negative one, and the distance between positive two and negative one is equal to three. The present solution is not limited to the particulars of these examples. The positive coefficient is employed as a coefficient in an operational branch when the associated timeslot should be an occupied timeslot, i.e., light or energy should be present in the timeslot. The negative coefficient is employed as a coefficient in an operational branch when the associated timeslot should be an unoccupied timeslot, i.e., light or energy should not be present in the timeslot.

The products Pts1,. , PtsN are then combined to generate a sum STotal thereof. In this regard, the correlator <NUM> comprises a plurality of adders <NUM><NUM>, <NUM><NUM>, <NUM><NUM>,. , <NUM>K (collectively referred to as "<NUM>"), <NUM>. Adder <NUM><NUM> performs an addition operation using products Pts1 and Pts2 to produce sum S<NUM>. Adder <NUM><NUM> performs an addition operation using products Pts3 and Pts4 to produce sum S<NUM>. Adder <NUM><NUM> performs an addition operation using products Pts5 and Pts6 to produce sum S<NUM>. Adder <NUM>K performs an addition operation using products PtsN-<NUM> and PtsN to produce sum SK. Adder <NUM> performs an addition operation using sums S<NUM>, S<NUM>, S<NUM>,. , SK to produce sum STotal.

The sum STotal is then provided to an analyzer <NUM>. In some scenarios, the analyzer <NUM> comprises a comparator. The comparator compares the sum STotal with a threshold value thr. If the sum STotal exceeds the threshold value thr, then a determination is made that the synchronization word has been detected with a given amount of likelihood. In this case, the transceiver sets its clocks and/or other timing parameters based on the detection. If the sum STotal is equal to or less than the threshold value thr, then a determination is made that the synchronization word has not been detected with a given amount of likelihood. In this case, another iteration of the correlation process is performed by correlator <NUM>.

Additionally or alternatively, the analyzer <NUM> comprises a peak detector. The peak detector sets a threshold by sliding the values across the correlator to identify a largest correlation value or peak. The peak detector can be used in conjunction with an expected synchronization occurrence process. The expected synchronization occurrence process involves verifying a next synchronization word is located (occurs) in time when it is expected to. Given knowledge of the frame structure, the system knows how far apart the synchronization words are from each other. Often, the system counts N synchronization words in a row in the expected locations because declaring that the synchronization word has been detected.

Referring now to <FIG>, there is provided an illustration that is useful for understanding an exemplary scenario for correlator <NUM> described above in relation to <FIG>. In this scenario, the synchronization word or pattern is <NUM>. Each soft value falls within a range of zero to ten, where a value of zero indicates that that timeslot is least likely occupied with a light pulse and a value of ten indicates that the timeslot is most likely occupied with a light pulse. Specifically, the soft values comprise SVts1 having a value of zero, SVts2 having a value of six, SVts3 having a value of zero, SVts4 having a value of one, SVts5 having a value of zero, SVts6 having a value of zero, SVts7 having a value of seven, and SVts8 having a value of zero. The correlation coefficients have a value of negative two when the respective bit of the synchronization word or pattern is zero, and a value of eight when the bit of the synchronization word or pattern is one. Since the synchronization word or pattern is <NUM>, the correlation values comprise: Cts1, Cts2, Cts4, Cts5, Cts7, Cts8 each having a value of negative two because the bit value in timeslots ts1, ts2, ts4, ts5, ts7, ts8 is <NUM>; and Cts3, Cts8 having a value of positive eight because the bit value in timeslot ts3, ts8 is <NUM>. The products respectively output from the multipliers <NUM> are Pts1 having a value of zero, Pts2 having a value of negative twelve, Pts3 having a value of zero, Pts4 having a value of negative two, Pts5 having a value of zero, Pts6 having a value of zero, Pts7 having a value of negative fourteen, and Pts8 having a value of positive eight. The sums respectively output from the adders <NUM> are S<NUM> having a value of negative tweleve, S<NUM> having a value of negative two, S<NUM> having a value of zero, and S<NUM> having a value of negative six. Accordingly, the correlation coefficient STotal is negative twenty. Since negative twenty is less than the threshold thr having a value of four hundred, a determination is made that the synchronization word or pattern has not been detected with the given amount of likelihood. Therefore, the correlation process is repeated using a new set of soft values. The present solution is not limited to the particulars of this exemplary scenario. In this regard, it should be noted that the present solution can be used with synchronization words or patterns of any lengths selected in accordance with a given application (e.g., <NUM>-<NUM> bits long). The length helps to decrease the likelihood of the synchronization pattern occurring in the payload.

Referring now to <FIG>, there is provided a flow diagram of an illustrative method <NUM> for synchronization word correlation. Method <NUM> can be performed by correlator <NUM> of <FIG>. Method <NUM> begins with <NUM> and continues with <NUM> where first values (e.g., soft values SVts1, SVts2, SVts3, SVts4, SVts5, SVts6,. , SVtsN-<NUM>, SVtsN of <FIG>) are obtained. Each first value indicates a likelihood or probability that a respective timeslot (e.g., timeslot ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM>, ts<NUM> of <FIG>) in a symbol timing window (e.g., symbol timing window <NUM> of <FIG>) of a carrier wave (e.g., optical carrier wave <NUM> of <FIG>) is meant or expected to include light or energy. In <NUM>, the first values are multiplied by correlation coefficients (e.g., correlation coefficients Cts1, Cts2, Cts3, Cts4, Cts5, Cts6,. , CtsN-<NUM>, CtsN of <FIG>) to produce a plurality of products (e.g., products Pts1, Pts2, Pts3, Pts4, Pts5, Pts6,. , PtsN-<NUM>, PtsN of <FIG>).

At least one of the correlation coefficients comprises a negative coefficient value. The negative correlation coefficient value is employed to cause the correlation value to be penalized when carrier wave energy exists in a timeslot that should not have any carrier wave energy. Thus, the negative correlation coefficient value is used in <NUM> when light or energy should not be present in the respective timeslot of the symbol timing window. At least another one of the correlation coefficients comprises a positive coefficient value. The positive correlation coefficient value is used in <NUM> when light or energy should be present in the respective timeslot of the symbol timing window. In some scenarios, an absolute value of the positive coefficient value is greater than an absolute value of the negative coefficient value, and/or a distance between the positive coefficient value and the negative coefficient value is equal to or greater than three.

In <NUM>, a correlation value is generated by combining the products together. The correlation value is then used in <NUM> to make a determination as to whether the synchronization word or pattern has been detected with a given amount of likelihood. This determination can be made by comparing the correlation value to a threshold value. A determination is made that the synchronization word has been detected with the given amount of likelihood when the correlation value is exceeds the threshold value. A determination is made that the synchronization word has not been detected with the given amount of likelihood when the correlation value is less than the threshold value.

If a determination is made that the synchronization word has not been detected with the given amount of likelihood [<NUM>:NO], then the signal samples are shifted and method <NUM> returns to <NUM> so that another iteration of the correlation process can be performed. If a determination is made that the synchronization word has been detected with the given amount of likelihood [<NUM>:YES], then symbol timing synchronization at a receiver is caused as shown by <NUM>. Subsequently, <NUM> is performed where method <NUM> ends or other operations are performed.

Referring now to <FIG>, there is shown a hardware block diagram comprising an example computer system <NUM> that can be used for implementing all or part of network nodes <NUM>-<NUM> of <FIG> and/or communication device <NUM> of <FIG>. The machine can include a set of instructions which are used to cause the circuit/computer system to perform any one or more of the methodologies discussed herein. While only a single machine is illustrated in <FIG>, it should be understood that in other scenarios the system can be taken to involve any collection of machines that individually or jointly execute one or more sets of instructions as described herein.

The computer system <NUM> is comprised of a processor <NUM> (e.g., a Central Processing Unit (CPU)), a main memory <NUM>, a static memory <NUM>, a drive unit <NUM> for mass data storage and comprised of machine readable media <NUM>, input/output devices <NUM>, a display unit <NUM> (e.g., a Liquid Crystal Display (LCD)) or a solid state display, and one or more interface devices <NUM>. Communications among these various components can be facilitated by means of a data bus <NUM>. One or more sets of instructions <NUM> can be stored completely or partially in one or more of the main memory <NUM>, static memory <NUM>, and drive unit <NUM>. The instructions can also reside within the processor <NUM> during execution thereof by the computer system. The input/output devices <NUM> can include a keyboard, a multi-touch surface (e.g., a touchscreen) and so on. The interface device(s) <NUM> can be comprised of hardware components and software or firmware to facilitate an interface to external circuitry. For example, in some scenarios, the interface devices <NUM> can include one or more Analog-to-Digital (A/D) converters, Digital-to-Analog (D/A) converters, input voltage buffers, output voltage buffers, voltage drivers and/or comparators. These components are wired to allow the computer system to interpret signal inputs received from external circuitry, and generate the necessary control signals for certain operations described herein.

The drive unit <NUM> can comprise a machine readable medium <NUM> on which is stored one or more sets of instructions <NUM> (e.g. software) which are used to facilitate one or more of the methodologies and functions described herein. The term "machine-readable medium" shall be understood to include any tangible medium that is capable of storing instructions or data structures which facilitate any one or more of the methodologies of the present disclosure. Exemplary machine-readable media can include solid-state memories, Electrically Erasable Programmable Read-Only Memory (EEPROM) and flash memory devices. A tangible medium as described herein is one that is non-transitory insofar as it does not involve a propagating signal.

Computer system <NUM> should be understood to be one possible example of a computer system which can be used in connection with the various implementations disclosed herein. However, the systems and methods disclosed herein are not limited in this regard and any other suitable computer system architecture can also be used without limitation. Dedicated hardware implementations including, but not limited to, application-specific integrated circuits, programmable logic arrays, and other hardware devices can likewise be constructed to implement the methods described herein. Applications that can include the apparatus and systems broadly include a variety of electronic and computer systems. Thus, the exemplary system is applicable to software, firmware, and hardware implementations.

Further, it should be understood that embodiments can take the form of a computer program product on a tangible computer-usable storage medium (for example, a hard disk or a CD-ROM). The computer-usable storage medium can have computer-usable program code embodied in the medium. The term computer program product, as used herein, refers to a device comprised of all the features enabling the implementation of the methods described herein. Computer program, software application, computer software routine, and/or other variants of these terms, in the present context, mean any expression, in any language, code, or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code, or notation; or b) reproduction in a different material form.

The described features, advantages and characteristics disclosed herein may be combined in any suitable manner. One skilled in the relevant art will recognize, in light of the description herein, that the disclosed systems and/or methods can be practiced without one or more of the specific features. In other instances, additional features and advantages may be recognized in certain scenarios that may not be present in all instances.

Claim 1:
A method (<NUM>) for synchronize word correlation, comprising:
obtaining (<NUM>), by a correlator, first values that each indicate a likelihood or probability that a respective timeslot in a symbol timing window of a carrier wave is meant or expected to include energy in form of a light pulse;
multiplying (<NUM>), by the correlator, the first values respectively by correlation coefficients to produce a plurality of products, wherein at least one of the correlation coefficients comprises a negative coefficient value;
generating (<NUM>), by the correlator, a correlation value by combining the products together;
determining (<NUM>), by the correlation, whether a synchronization word has been detected with a given amount of likelihood based on the correlation value; and
causing (<NUM>), by the correlator, symbol timing synchronization at a receiver when a determination is made that the synchronization word has been detected with the given amount of likelihood based on the correlation value.