This relates generally to direct sequence spread spectrum (DSSS) radio systems.
Interference with platform wireless operation caused by noise coming from system buses and clocks internal to a device, referred to as platform noise, is a growing concern. The impact of such platform noise is becoming more severe in smaller, more radio-rich platforms and frequently forces higher costs, delayed product launches due to redesign and retest cycles, and post launch end user complaints.
Shielding is the predominant industry solution but is undesirable due to materials and tooling costs as well as impacts on form factor flexibility which for example impacts cooling, weight, and product thickness.
Claimed subject matter is particularly pointed out and distinctly claimed in the concluding portion of the specification. However, such subject matter may be understood by reference to the following detailed description when read with the accompanying drawings in which:
It will be appreciated that for simplicity and/or clarity of illustration, elements illustrated in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, if considered appropriate, reference numerals have been repeated among the figures to indicate corresponding and/or analogous elements.
In accordance with some embodiments, a direct sequence spread spectrum receiver receives a signal including an undesired platform generated noise signal. A noise vector is generated from the noise source, filtered, and subtracted from the received signal.
As shown in
In accordance with one or more embodiments, the I/O controller 114 or similar bus or clock device may include a noise vector generator 124 that calculates the noise vectors representative of the noise 120 radiated by the bus 116 to the radio transceiver 112. The noise vectors calculated by the noise vector generator 124 may be transmitted to the radio transceiver 112 via a link which may comprise a low speed data link 126 in one or more embodiments. Such a low speed data link 126 may transmit data on the order of tens of megabytes per second or so, and may be implemented using existing interfaces such as a peripheral component interconnect express (PCIe) interface, a universal serial bus (USB) and/or USB high speed inter-chip (HSIC) interface, or the M-PHY specification set forth by the Mobile Industry Processor Interface (MIPI) Alliance, although the scope of the claimed subject matter is not limited in this respect.
The radio transceiver 112 may include a noise vector scaling and synchronization block 128 that receives noise vectors over link 126 for synchronization and scaling. In one or more embodiments, the noise vector scaling and synchronization block 128 may be realized by a digital signal processor of the radio transceiver 112, although the scope of the claimed subject matter is not limited in this respect. The synchronized and scaled noise vectors represent estimated error vectors, EV′, and may be cancelled from received radio signals at radio transceiver 112 so that the received radio signals may effectively have the interference due to the noise eliminated from the radio signals.
It should be noted that the term “cancel” as used herein may refer to cancelling all, nearly all, or at least a portion of the noise from a signal such that the data encoded in the signal may be decoded, determined, or recovered with a reduced error rate in comparison with the error rate that would otherwise occur without cancellation of the noise. In general, the term cancel may mean that noise is removed, reduced or mitigated, and may not necessarily mean that all of the noise is completely removed from a signal. In some embodiments, cancellation of noise may refer to the concept of noise cancellation as known to those of skill in the art. However, these are merely one of several possible meanings of the term cancel or cancellation, and the scope of the claimed subject matter is not limited in these respects. It should be noted that the term “scaling” as used herein may refer to multiplicative scaling by real or complex quantities, or filtering in a more general sense.
Noise cancellation, in accordance with one or more embodiments, may be described herein in terms of direct sequence spread spectrum (DSSS), which is one particular technology used in modern digital radios such as a wireless local area network (WLAN) or a Wi-Fi network as set forth by the Wi-Fi alliance in accordance with an Institute of Electrical and Electronics Engineers (IEEE) standard including but not limited to some releases of IEEE 802.11, a mobile cellular network such as a 3G network employing code division multiple access technology as set forth by the Universal Mobile Telecommunications System (UMTS), a satellite based geo-positioning system, or a personal area network including but not limited to a ZigBee network as set forth by IEEE standard 802.14.
Direct sequence spread spectrum (DSSS) techniques rely on the use of pseudo-noise carriers, also called spreading codes, spreading sequences, code sequences and chip sequences, and a transmission bandwidth which is much wider than the minimum required to transmit the information. The transmitter spreads the information by modulating the information with a pseudo-noise spreading sequence. At the receiver, the information is de-spread to recover the base information. This de-spreading is accomplished by correlating the received, spread-modulated, signal with the spreading sequence used for the transmission.
The modulating signal, such as a pseudo-random spreading code signal, possesses a chip rate (analogous to carrier frequency) which is much larger than the data rate of the information signal. This characteristic is required for efficient spreading. Each state of the pseudo-random spreading sequence is referred to as a chip. The spreading sequence (chip sequence) directly modulates each bit of the information signal, hence the name direct spread. Pseudo-randomness of the spreading signal is required in order to recover the original information signal. Since the spreading sequence is deterministic, it can be exactly duplicated at the receiver in order to extract the information signal.
The spreading operation causes the signal power to be distributed across the spread bandwidth. Any undesired signal picked up during transmission is spread by the receiver in the same way that the transmitter spread the desired signal originally. In other words, the receiver spreads undesired signals picked up during transmission, while simultaneously de-spreading, or demodulating, the desired information signal. Processing gain is the term used to express this interference suppression in the overall transmit/receive operation. When viewed as a transmit/receive operation, the desired signal is spread-modulated twice, giving back the original signal, while in-band interference is spread-modulated once, and thereby depleted across the full spread bandwidth.
CDMA direct spread is an adaptation of conventional direct spread which accommodates multiple simultaneous access through the use of mutually orthogonal spreading codes. Mutually orthogonal means the cross correlation of any spreading code in the set is small (ideally zero). In an ideally orthogonal system, orthogonality not only means that there is no mixing of signals, but it also means that there is no interference between signals.
A direct-sequence spread spectrum multiplexing graph, in accordance with one or more embodiments, shown in
A DSSS receiver, shown in
The output of the de-mapping 18 also goes to a conventional back end 20, which may, for example, include further decoding and error checking.
The coefficient or tap weight update section of the adaptive filter may be driven by a combination of the error signal, such as the error vectors as illustrated, and the signal to be filtered, including the noise vectors as illustrated in this case. The noise vectors are filtered and subtracted from the received signal at the chip rate, before de-spreading, in order to maintain correlation of the portion of the chip error due to bus noise. But since the only error signal available for driving the adaptive filter has been de-spread, the noise vector input to the coefficient update section is also de-spread with the same sequence.
A more detailed block diagram of an adaptive filter with coefficient update de-spreading is shown in
The error vector 22 goes to the multiplier 34, as does a rate adaptation constant 32. The output from the multiplier 34 is added to the feedback at 36 and then passed to the 1/z 38. The 1/z unit is a time delay or a radio time symbol delay, such as a register or latch delay of one clock symbol at the radio symbol rate.
In some embodiments, the noise vector is de-spread going into the feedback loop, but the noise vector is also not de-spread going on another path into the multiplier 40. Thus, the noise vectors at the chip rate are provided in a DSSS radio receiver.
Direct sequence spread spectrum is a spread spectrum modulation technique where a sine wave carrier is pseudo randomly modulated with a continuous string of pseudo random spreading code signals called chips, each of which has a much shorter duration than an information symbol. The idea is to cancel noise at the spread chip rate, not the de-spread symbol rate, in order to remove all, or at least more, of the noise. The noise vectors are calculated at the chip or spread rate.
DSSS divides the information signal symbol time into shorter times and randomly inverts the signals at these short time intervals using a spreading or chip code. Several radio users can be on the same frequency, but each has a different code. Then a receiver can recover a desired user's signal by de-spreading with that user's code. Other users' signals get averaged away by de-spreading at the receiver. The noise vectors are generated at the chip rate and subtracted from the incoming signal at the chip rate in order to remove noise over the full spread signal bandwidth. The adaptive filter scales the noise vectors so they closely match the error vectors. After subtraction, ideally the error vectors become very small or approach zero.
Referring now to
The difference between the received I-Q vectors and the corresponding I-Q vectors sent by the transmitter 410 are error vectors (EV) introduced by the radio-frequency interference (RFI). It should be noted that in general, any noise or interference generate in or by the platform 100 may be referred to as platform interference, and in general such interference may interfere with one or more radios of the platform 100 at radio frequencies, so such platform interference may also be referred to as radio frequency interference, noise, platform noise, or platform radio frequency interference. However, the scope of the claimed subject matter is not limited in this respect. Such error vectors may prevent the demodulator 318 from recovering the intended data reliably. It is noted that other noise mechanisms normally present in wireless systems are neglected for clarity.
In platform 100, receiver (RX) 310 represents the first stages of the wireless receiver of platform 100. Although platform 100 may include a transmitter as a component of radio transceiver 112, typically the signals received by the receiver 310 of platform 100 are transmitted from a remote device wherein the transmitter 410 is part of the remote device and not part of platform 100. Bus noise from bus (BUS or I/O) 438 introduces an error vector, EV, into the received baseband vector IQRX. Noise vectors, NV, are calculated from bus data, D, and scaled for the noise coupling path and the front end of receiver 310 to find estimated error vectors, EV′. The estimated error vectors EV′ are finally subtracted from the baseband I-Q vectors to get enhanced baseband vectors for de-spreading. The effect of the noise on the transmitted vector at the received baseband vector is the error vector, and the effect of subtracting the estimated error vector from the received baseband vector is to result in the enhanced baseband vector.
The effects of the noise interference 120 can be removed if the error vectors can be determined and subtracted from the received I-Q vectors prior to de-spreading 316. Analysis of the received signal chain shows that the error vector of each carrier in each symbol period is proportional to the value at the carrier frequency of the complex spectrum of the bus noise at bus 438 when the spectrum is taken over the symbol period. The complex constant of proportionality depends on the noise coupling and radio front end gain and phase response. In one or more embodiments, the bus or clock noise vectors, NV, are calculated at each symbol time based on the bus or clock signal, D, scaled for the gain and phase of the noise coupling path and receiver front end, and then the estimated error vectors, EV′, are subtracted from the received I-Q vectors, IQRX.
In one or more embodiments, the manner in which spectral noise vectors are calculated will result in cancellation of the RFI noise. In one embodiment, a discrete Fourier transform (DFT) may be applied to the bus data. The DFT may involve a high sampling rate to achieve the desired accuracy. In a particular embodiment, a simpler discrete time Fourier transform (DTFT) approach involves calculating the noise vectors at the bus transfer or baud rate. An example approach for phasor-based line coding applications is described in International Application No. PCT/US2011/054498 filed Oct. 1, 2011 by the assignee of the present application. Said Application No. PCT/US2011/054498 is hereby incorporated herein by reference in its entirety. In such an approach, the noise vectors may be calculated by noise vector generator 124 using the following simplified formula:
where fr is the DSSS carrier frequency, xb is the bus data at bit time b and fBR is the bus baud rate, the bit transfer rate of a single bus lane. The sum is taken over the radio symbol period. Note that xb does not need to be binary. Such an approach may be applied to multiple lanes of bus data simultaneously by adding the binary values of each lane together to form an equivalent multi-valued data signal. In addition, fBR may be a fixed parameter or it may be varied in synchronization with any spread spectrum clocking (SSC) utilized in the noise source. Such an approach may be easily extended for buses having transmit pre-equalization by adding another term in the summation.
Referring now to
In accordance with some embodiments, the flow diagram represented in
Referring now to
In one or more embodiments, information handling system 800 may include an applications processor 810 and a baseband processor 812. Applications processor 810 may be utilized as a general purpose processor to run applications and the various subsystems for information handling system 800. Applications processor 810 may include a single core or alternatively may include multiple processing cores wherein one or more of the cores may comprise a digital signal processor or digital signal processing core. Furthermore, applications processor 810 may include a graphics processor or coprocessor disposed on the same chip, or alternatively a graphics processor coupled to applications processor 810 may comprise a separate, discrete graphics chip. Applications processor 810 may include on board memory such as cache memory, and further may be coupled to external memory devices such as synchronous dynamic random access memory (SDRAM) 814 for storing and/or executing applications during operation, and NAND flash 816 for storing applications and/or data even when information handling system 800 is powered off. In general, any of the memory devices of information handling system 800 may comprise an article of manufacture having instructions stored thereon that cause a processor of the information handling system 800 to execute the instructions to implement any method or process wholly or in part as described herein. Baseband processor 812 may control the broadband radio functions for information handling system 800. Baseband processor 812 may store code for controlling such broadband radio functions in a NOR flash 818. In one embodiment, computer executed instructions to implement the sequence of
In one or more embodiments, applications processor 810 may drive a display 830 for displaying various information or data, and may further receive touch input from a user via a touch screen 832 for example via a finger or a stylus. An ambient light sensor 834 may be utilized to detect an amount of ambient light in which information handling system 800 is operating, for example to control a brightness or contrast value for display 830 as a function of the intensity of ambient light detected by ambient light sensor 834. One or more cameras 836 may be utilized to capture images that are processed by applications processor 810 and/or at least temporarily stored in NAND flash 816. Furthermore, applications processor may couple to a gyroscope 838, accelerometer 840, magnetometer 842, audio coder/decoder (CODEC) 844, and/or global positioning system (GPS) controller 846 coupled to an appropriate GPS antenna 848, for detection of various environmental properties including location, movement, and/or orientation of information handling system 800. Alternatively, controller 846 may comprise a Global Navigation Satellite System (GNSS) controller. Audio CODEC 844 may be coupled to one or more audio ports 850 to provide microphone input and speaker outputs either via internal devices and/or via external devices coupled to information handling system via the audio ports 850, for example via a headphone and microphone jack. In addition, applications processor 810 may couple to one or more input/output (I/O) transceivers 852 to couple to one or more I/O ports 854 such as a universal serial bus (USB) port, a high-definition multimedia interface (HDMI) port, a serial port, and so on. Furthermore, one or more of the I/O transceivers 852 may couple to one or more memory slots 856 for optional removable memory such as secure digital (SD) card or a subscriber identity module (SIM) card, although the scope of the claimed subject matter is not limited in these respects.
Referring now to
The following clauses and/or examples pertain to further embodiments:
One example embodiment may be a platform comprising a direct sequence spread spectrum receiver to receive a signal including a platform generated noise signal, a device to calculate a noise vector, and an adaptive filter to de-spread the noise vector and to subtract the scaled or filtered noise vector from the received signal. The platform may also include a noise signal generated from a bus, a memory circuit, a clock, a power supply, a circuit ground or integrated circuit substrate, or an input/output circuit of the platform. The platform may also include a device further configured to synchronize the calculated noise vectors with a symbol time of the receiver. The platform may also include a device further configured to implement two or more noise vector generation and processing blocks to arrive at a combined estimated error vector for two or more noise signals from two or more sources or paths. The platform may also include a front end coupled to a subtractor, coupled to a de-spread, coupled to a constellation de-mapper. The platform may also include an output of said de-mapper to feed error vectors to said filter. The platform may also include said filter to receive noise vectors and de-spread noise vectors. The platform may also include said filter to subtract scaled or filtered noise vectors from the received signal at the chip rate before de-spreading. The platform may also include said device to calculate noise vectors at a spreading or chip rate and de-spreading to a symbol rate. The platform may also include a multiplier and said noise vector being input to said multiplier, both with and without de-spreading. The platform may also include a touch screen display, keyboard, memory port, multiple antennas, a graphics processor, and speakers.
Another example embodiment may be a method comprising calculating noise vector based on bus noise, de-spreading the noise vector, and subtracting the scaled or filtered noise vector from a received direct sequence spread spectrum signal. The method may also include receiving a noise signal generated from a bus, a memory circuit, a clock, a power supply, a circuit ground or integrated circuit substrate, or an input/output circuit of a platform. The method may also include synchronizing the calculated noise vectors with a symbol time of a receiver. The method may also include implementing two or more noise vector generation and processing blocks to arrive at a combined estimated error vector for two or more noise signals from two or more sources or paths. The method may also include calculating noise vectors at a spreading or chip rate and de-spreading to a symbol rate. The method may also include multiplying noise vector both with and without de-spreading.
Another example embodiment may be one or more non-transitory computer readable media storing instructions to perform a sequence comprising receiving a direct spread spectrum signal including noise generated by a bus device, calculating a noise vector based on said noise, and filtering to remove the noise by de-spreading the noise vector and multiplying the de-spread noise vector by an error vector. The media may further store instructions to perform a sequence including receiving a noise signal generated from a bus, a memory circuit, a clock, a power supply, a circuit ground or integrated circuit substrate, or an input/output circuit of a platform. The media may further store instructions to perform a sequence including synchronizing the calculated noise vectors with a symbol time of a receiver. The media may further store instructions to perform a sequence including implementing two or more noise vector generation and processing blocks to arrive at a combined estimated error vector for two or more noise signals from two or more sources or paths. The media may further store instructions to perform a sequence including calculating noise vectors at a spread or chip rate and de-spreading to a symbol rate. The media may further store instructions to perform a sequence including multiplying noise vector both with and without de-spreading. The media may further store instructions to perform a sequence including providing an output of de-mapper to feed error vectors for said filtering. The media may further store instructions to perform a sequence including providing noise vectors without de-spreading and with de-spreading to said filtering.
Although the claimed subject matter has been described with a certain degree of particularity, it should be recognized that elements thereof may be altered by persons skilled in the art without departing from the spirit and/or scope of claimed subject matter. It is believed that the subject matter pertaining to baseband cancellation of platform radio interference and/or many of its attendant utilities will be understood by the forgoing description, and it will be apparent that various changes may be made in the form, construction and/or arrangement of the components thereof without departing from the scope and/or spirit of the claimed subject matter or without sacrificing all of its material advantages, the form herein before described being merely an explanatory embodiment thereof, and/or further without providing substantial change thereto. It is the intention of the claims to encompass and/or include such changes.