WO2001097477A2 - Method for specifying pulse characteristics - Google Patents

Method for specifying pulse characteristics Download PDF

Info

Publication number
WO2001097477A2
WO2001097477A2 PCT/US2001/018795 US0118795W WO0197477A2 WO 2001097477 A2 WO2001097477 A2 WO 2001097477A2 US 0118795 W US0118795 W US 0118795W WO 0197477 A2 WO0197477 A2 WO 0197477A2
Authority
WO
WIPO (PCT)
Prior art keywords
pulse
value
component
code
characteristic
Prior art date
Application number
PCT/US2001/018795
Other languages
French (fr)
Other versions
WO2001097477A3 (en
Inventor
Mark D. Roberts
Marcus H. Pendergrass
James L. Richards
Original Assignee
Time Domain Corporation
Fullerton, Larry, W.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/592,288 external-priority patent/US6636566B1/en
Priority claimed from US09/592,289 external-priority patent/US6636567B1/en
Priority claimed from US09/638,150 external-priority patent/US6959032B1/en
Application filed by Time Domain Corporation, Fullerton, Larry, W. filed Critical Time Domain Corporation
Priority to AU2001269784A priority Critical patent/AU2001269784A1/en
Publication of WO2001097477A2 publication Critical patent/WO2001097477A2/en
Publication of WO2001097477A3 publication Critical patent/WO2001097477A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • H04L25/4902Pulse width modulation; Pulse position modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/7163Spread spectrum techniques using impulse radio
    • H04B1/717Pulse-related aspects
    • H04B1/7172Pulse shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/7163Spread spectrum techniques using impulse radio
    • H04B1/717Pulse-related aspects
    • H04B1/7174Pulse generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/7163Spread spectrum techniques using impulse radio
    • H04B1/7176Data mapping, e.g. modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B2001/6908Spread spectrum techniques using time hopping

Definitions

  • a coding method for a pulse transmission system specifies temporal and/or non-temporal pulse characteristics of pulses transmitted and received by an impulse transmission system.
  • a code specifies characteristics of pulses according to at least one characteristic value layout that may include one or more non- allowable regions.
  • Predefined criteria may pertain to code length, hi one embodiment of the invention, predefined criteria may require a code to have a length that is not less than some minimum length and/or greater than some maximum length.
  • Figure 2o illustrates an exemplary value range layout including exemplary multiple different-size components and exemplary different-size sub-components are combined with exemplary smaller components of different sizes
  • Figure 3a illustrates an exemplary pulse time position value range layout of four exemplary components subdivided into nine exemplary sub-components
  • Figure 6 illustrates a temporal pulse characteristic value range layout including a pulse and a preceding and succeeding pulse relative to the pulse and having multiple non-allowable regions
  • Figure 7 illustrates a non-temporal pulse characteristic value range layout including characteristic values of two other pulses and having multiple non-allowable regions
  • Figure 13b is an exemplary diagram of an additive Lagged-Fibonacci shift register pseudorandom number generator.
  • Figure 14 depicts generation of a family of quadratic congruential codes comprising 6 channels, mapping of the 5 th channel code to a time layout, and the code wrapping effect that occurs due to the code repeating over time.
  • Figure 15 illustrates autocorrelation properties of the 5 channel code of Figure 14.
  • Figure 1 illustrates an exemplary value range layout which can represent a temporal, non-temporal, or combination of the two, pulse characteristic such as, e.g., timing of a pulse, and amplitude.
  • Figure 1 includes a value range layout 102.
  • the pulse can take on characteristic values between a minimum value v 0 110 and a maximum value v max 112 in layout 102.
  • Layout 102 as shown, can be subdivided into components 104.
  • Components 104 can in turn be divided into sub-components 106.
  • Sub-components 106 can in turn be divided into smaller components 108. Smaller components 108 can then be divided into even smaller components, as shown. The process of subdividing components can be repeated, ad infinitum, so that smaller and smaller components can be obtained.
  • Each component 206 and sub-component 212 has a minimum time value 306 and a maximum time value 308 specifying a range of time as shown with the enlargement of the fifth sub-component 212 of the second component 206 which has a minimum time value 306 of t mm (2,5) and a maximum time value 308 of t max (2,5).
  • a pulse 310 can be positioned at any time value within the value range 202 specified by the component 206, sub-component 212, or smaller component.
  • Figure 5d depicts a diagram 522 illustrating an exemplary embodiment of the invention including a non-inverted pulse 524a and an inverted pulse 524b.
  • Pulse 524a and inverted pulse 524b have the same magnitude but are the inverse in polarity of one another.
  • Figure 5e illustratively depicts exemplary embodiments of the invention including various exemplary different pulse types 526, 528, 530, 532, 534, 536, 538 and 540.
  • Each exemplary pulse type 526-540 has a different pulse wavelet shape, or includes a combination of pulse wavelet shapes.
  • pulse type 526 illustrates an exemplary square wave pulse.
  • Pulse type 528 depicts an exemplary sawtooth pulse.
  • Figure lie depicts diagram 1112 illustrating non-fractional portions 11101- 111 Oo of each floating-point code element value of the code 1104c mapping a pulse characteristic to components (including the first two components labeled 204, 206) within an amplitude value range layout of 314-316.
  • Diagram 1112 also includes fractional portions 11061-1106o of each floating-point code element specifying the fractional difference between the minimum and maximum amplitude values of each mapped component 204, 206 used to determine the exact amplitude value for a pulse 3181-318o.
  • a family of codes to be used by a frame-based pulse transmission system that transmits at most one pulse per one-hundred nanosecond (100 ns) frame must meet the following eight acceptance criteria to accommodate radio application requirements: 1.
  • the code family must have at least ten members.
  • Peak spectral density between 1 MHz and 3 GHz frequencies must be less than 50 microwatts per hertz ( ⁇ W/Hz). 8. Pulses cannot reside within the last ten percent ( 10%) of frames .
  • a final acceptance "test” could also be conducted to determine the channelization quality of TM-UWB radios employing the selected codes. Twelve radios using the selected codes could be simultaneously operated within a test environment that closely emulates the expected operational environment. Acceptance criteria used for the test might include a minimum signal-to-noise ratio (SNR), minimum bit error rate (BER), etc. Based on test results, the ability of the codes to meet the channelization requirements of the radio application could be determined.
  • SNR signal-to-noise ratio
  • BER minimum bit error rate
  • characteristics of pulses within a pulse train used by an impulse transmission system are specified by generating one or more codes having one or more code element values.
  • code element values For example, as explained above, floating point code elements may be used to specify both pulse amplitude and pulse width.
  • integer code elements can specify multiple pulse characteristics using a bit grouping approach as described above.
  • each code element value could have at least two value components that are associated with one or more pulse characteristics.
  • value components can include two or more value sub-components, which can include further subdivisions to smaller components.
  • At least one fixed or non-fixed temporal and/or non-temporal value range and/or discrete value layout is specified, which may include one or more non-allowable regions.
  • the layout approaches specified above allow code element value components to specify value ranges and/or discrete values of pulse characteristics.
  • value ranges can have the same or different sizes, and discrete values may be evenly distributed or not.
  • an established offset value can be used to specify the precise pulse characteristic value within the value range component to which a code element is mapped.
  • An absolute offset value may be specified defining a fixed value from the minimum value of a component to which a code element is mapped.
  • a relative offset value can be specified defining a fraction of the difference between the minimum and maximum value of a component to which a code element is mapped.
  • the relative offset value can be specified using the fractional part of a floating-point component value.

Abstract

A coding method specifies characteristics of pulses of a pulse train including, but not limited to, time position, polarity, amplitude, width, and type. Pulse characteristics are specified, for example, by mapping code elements to value range layouts, discrete value layouts, or to combination value range/discrete value layouts. A code element can be an integer of floating point value, and can specify two or more characteristics of a pulse. Various approaches are described. A value range layout can be subdivided into components, sub-components of components, where each sub-component can be a sub-component of the component, or a smaller component of the sub-component (or an even smaller component of the smaller component, ad infinitum). Methods are provided for defining non-allowable regions within value range layouts to be considered when generating a code. Various approaches address characteristic value layouts specifying fixed values and characteristic value layouts specifying non-fixed values, and accommodate differences between temporal and non-temporal pulse characteristics. The method can require codes to satisfy predefined criteria. Predefined criteria can limit the number of pulse characteristic values within a non-allowable region. The predefined criteria can be based on relative pulse characteristic values. The predefined criteria can also pertain to spectral properties and to correlation properties. The predefined criteria may pertain to code length and to the number of members of a code family. The pulse train characteristics may pertain to a subset of the pulse train

Description

METHOD FOR SPECIFYING PULSE CHARACTERISTICS USING CODES
FIELD OF THE INVENTION
The present invention relates to impulse transmission systems and, more particularly, to a method of specifying characteristics of pulses used by an impulse transmission system using codes.
RELATED ART
As the availability of communication bandwidth in the increasingly crowded frequency spectrum is becoming a scarce and valuable commodity, Time Modulated Ultra Wideband (TM-UWB) technology provides an excellent alternative for offering significant communication bandwidth, particularly, for various wireless communications applications. Because TM-UWB communication systems are based on communicating extremely short- duration pulses (e.g., pico-seconds in duration), such systems are also known as impulse radio systems. Impulse radio systems were first described in a series of patents, including U.S. Patent Nos. 4,641,317 (issued February 3, 1987), 4,813,057 (issued March 14, 1989),
4,979,186 (issued December 18, 1990), and 5,363,057 (issued November 8, 1994) to Larry W. Fullerton, and U.S. Patent Nos. 5,677,927 (issued October 14, 1997), 5,687,169 (issued November 11, 1997), and 5,832,035 (issued November 3, 1998) to Larry W. Fullerton, et al. These patents are incorporated herein by reference in their entireties. Multiple access impulse radio systems are radically different from conventional Code
Division Multiple Access (CDMA), Time Division Multiple Access (TDMA) and Frequency Division Multiple Access (FDMA) systems. Unlike such systems, which use continuous sinusoidal waveforms for transmitting information, a conventional impulse radio transmitter emits a low power electromagnetic train of short pulses, which are shaped to approach a Gaussian monocycle. As a result, the impulse radio transmitter uses very little power to generate noise-like communication signals for use in multiple-access communications, radar and positioning applications, among other things. In the multi-access communication applications, the impulse radio systems depend, in part, on processing gain to achieve rejection of unwanted signals. Because of the extremely high achievable processing gains, the impulse radio systems are relatively immune to unwanted signals and interference, which limit the performance of systems that use continuous sinusoidal waveforms. The high processing gains of the impulse radio systems also provide much higher dynamic ranges than those commonly achieved by the processing gains of other known spread-spectrum systems. Impulse radio communication systems transmit and receive the pulses at precisely controlled time intervals, in accordance with a time-hopping code. As such, the time-hopping code defines a communication channel that can be considered as a unidirectional data path for communicating information at high speed. In order to communicate the information over such channels, typical impulse radio transmitters use position modulation, which is a form of time modulation, to position the pulses in time, based on instantaneous samples of a modulating information signal. The modulating information signal may for example be a multi-state information signal, such as a binary signal. Under this arrangement, a modulator varies relative positions of a plurality of pulses on a pulse-by-pulse basis, in accordance with the modulating information signal and a specific time-hopping code that defines the communication channel.
In applications where the modulating information signal is a binary information signal, each binary state may modulate the time position of more than one pulse to generate a modulated, coded timing signal that comprises a train of identically shaped pulses that represent a single data bit. The impulse transmitter applies the generated pulses to a specified transmission medium, via a coupler, such as an antenna, which electromagnetically radiates the pulses for reception by an impulse radio receiver. The impulse radio receiver typically includes a single direct conversion stage. Using a correlator, the conversion stage coherently converts the received pulses to a baseband signal, based on a priori knowledge of the time- hopping code. Because of the correlation properties of the selected time-hopping codes, the correlator integrates the desired received pulses coherently, while the undesired noise signals are integrated non-coherently such that by comparing the coherent and non-coherent integration results, the impulse receiver can recover the communicated information.
Conventional spread-spectrum code division multiple access (SS-CDMA) techniques accommodate multiple users by permitting them to use the same frequency bandwidth at the same time. Direct sequence CDMA systems employ pseudo-noise (PN) codewords generated at a transmitter to "spread" the bandwidth occupied by transmitted data beyond the minimum required by the data. The conventional SS-CDMA systems employ a family of orthogonal or quasi-orthogonal spreading codes, with a pilot spreading code sequence synchronized to the family of codes. Each user is assigned one of the spreading codes as a spreading function. One such spread-spectrum system is described in U.S. Pat. No. 4,901,307 entitled "Spread- Spectrum Multiple Access Communication System Using Satellite or Terrestrial Repeaters," to Gilhousen et al.
Unlike direct sequence spread-spectrum systems, the time-hopping code for impulse radio communications is not necessary for energy spreading, because the monocycle pulses themselves have an inherently wide bandwidth. Instead, the impulse radio systems use the time-hopping codes for channelization, energy smoothing in the frequency domain, and interference suppression. The time-hopping code defines a relative position of each pulse within a group of pulses, or pulse train, such that the combination of pulse positions defines the communications channel, h order to convey information on such communication channel, each state of a multi-state information signal varies a relative pulse position by a predefined time shift such that a modulated, coded timing signal is generated comprising a train of pulses, each with timing corresponding to the combination of the time position coding and the multi-state modulation. hi one conventional binary approach, pulses are time-modulated forward or backward about a nominal position. More specifically, each pulse is time modulated by adjusting its position within a time frame to one of two or more possible times. For example, in order to send a "0" binary bit during the time frame, the pulse may be offset from a nominal position of the time frame by about -50 pico-seconds. For a "1" binary state, the pulse may be offset from the nominal position by about +50 pico-seconds. Conventional coders that generate the time-hopping code do so in response to a periodic timing signal that corresponds to the data- rate of the multi-state information signal. The data rate of the impulse radio transmission may for example be a fraction of a periodic timing signal that is used as a time base or time reference. hi practice, decoding errors are minimized using distinctive time-hopping codes with suitable autocorrelation and cross-correlation properties. The cross-correlation between any two time-hopping codes should be low for minimal interference between multiple users in a communications system or between multiple target reflections in radar and positioning applications. At the same time, the autocorrelation property of a time-hopping code should be steeply peaked, with small side-lobes. Maximally peaked time-hopping code autocorrelation yields optimal acquisition and synchronization properties for communications, radar and positioning applications. Various coding schemes with known correlation characteristics are available. For example, algebraic codes, Quadratic Congruential (QC) codes, Hyperbolic Congruential (HC) codes and optical codes have been suggested in the past for coding in impulse radio systems. Generally, based on known assumptions, the coding schemes guarantee a maximum number of pulse coincidences, i.e., hits, for any defined time frame or time frame shift during which the codes are repeated. For example, HC codes are guaranteed a maximum of two hits for any sub-frame or frame shift.
McCorkle in US Patent No. 5,847,677 discloses a random number generator for generating a pseudo-random code for use with jittered pulse repetition interval radar systems. The code is generated by a random number generator that possesses certain attributes desirable for a jittered radar. As disclosed, the attributes related to a flat frequency spectrum, a nearly perfect spike for an autocorrelation function, a controllable absolute minimum and maximum interval, long sequences that do not repeat, and a reasonable average pulse rate.
One known coding technique for an impulse radio is disclosed by Barrett in US Patent No. 5,610,907, entitled "Ultrafast Time Hopping CDMA-RF Communications: Code- As-Carrier, Multichannel Operation, High data Rate Operation and Data Rate on Demand." According to the disclosed techniques, two levels of coding are used: major orthogonal codes are applied to provide multiple channels, and forward error correction (FEC) codes are applied to information data before transmission. The disclosed system relies on dividing time into repetitive super-frames, frames and sub-frames. As disclosed, a super-frame corresponds to a time interval of about 1 millisecond, representing one repetition of a code pattern, whereas a frame is defined as a time interval of about 1 microsecond divided according to a code length. A sub-frame corresponds to a short time interval of about 1 nanosecond during which a pulse is time positioned.
Because of practical limitations associated with arbitrarily positioning of pulses in adjacent frames, each frame may have to be divided into allowable and non-allowable time regions for positioning a pulse. One such limitation is associated with hardware limitation on minimum pulse-to-pulse time for respective positioning of two pulses on adjacent frames arbitrarily. The system disclosed in Barrett uses a fraction of frame time for encoding and designates the remainder as a RESET period, thereby avoiding placement of pulses in the disclosed type of non-allowable region when mapping a code.
The inventors have found that the presence of the RESET period in Barrett affects the correlation properties of the codes, specifically, that the maximum correlation guarantee may no longer hold true. With the correlation property guarantees of such codes in question the applicability of such codes to a given application is also questionable. Thus, although the disclosed type non-allowable regions have been considered when applying codes, non- allowable regions have not been considered when generating codes. Therefore, there exists a need for a method of defining and accounting for non-allowable regions when generating codes. Additionally, because impulse transmission technology may be used in a wide variety of applications, such as multiple-access communication systems, positioning systems, radar systems, etc., it is also important that produced and employed codes result in pulse trains having appropriate correlation and spectral properties, and which meet various other requirements of these applications that can not be described or enforced using non-allowable regions. Thus, there exists a need for ensuring codes meet requirements. Furthermore, to satisfy the varying requirements of these applications, there exists a need for methods of specifying temporal and non-temporal pulse characteristics of pulse trains more precisely than is now possible using time-hopping codes.
SUMMARY OF THE INVENTION
Briefly, according to the present invention, a coding method for a pulse transmission system specifies temporal and/or non-temporal pulse characteristics of pulses transmitted and received by an impulse transmission system. A code specifies characteristics of pulses according to at least one characteristic value layout that may include one or more non- allowable regions.
The invention provides methods for defining non-allowable regions within pulse characteristic value range layouts enabling them to be considered when generating a code to avoid code element values that map to non-allowable regions. Various approaches are used to define absolute non-allowable regions based on the pulse characteristic value range layout. Additional approaches are used to define relative non-allowable regions based on characteristic values of one or more other pulses. Various permutations of the approaches are provided to accommodate differences between temporal and non-temporal pulse characteristics. Embodiments of the invention are described for use with a pulse characteristic value layout specifying fixed values and for use with a pulse characteristic value layout specifying non-fixed values.
In one exemplary embodiment of the invention, a non-allowable region may be relative to one or more values within a characteristic value layout. In another exemplary embodiment of the invention, a non-allowable region maybe relative to a temporal or non- temporal characteristic value of one or more pulses.
A code comprised of one or more code elements is generated and used to specify characteristics of pulses including but not being limited to: defining the time component in which the pulse is positioned; defining a sub-component within the time component in which the pulse is positioned; defining the precise position within a time component or sub- component at which the pulse is positioned; defining a polarity of the pulse, including whether or not the pulse is inverted; defining the pulse amplitude; defining the pulse width; and defining the pulse type. In one embodiment, the pulse type can indicate whether the pulse is a square wave pulse, sawtooth pulse, Haar wavelet pulse, gaussian monopulse, doublet pulse, triplet pulse, or a set of wavelets. Each code element can indicate how two or more pulse characteristics can be mapped to one or more components within value range layouts and/or to discrete values within discrete value layouts. Within a value range layout a pulse characteristic can be mapped to a component and/or sub-component of the component, where the sub-component can be a sub- component of the component, or a smaller component of the sub-component (or a even smaller component of the smaller component, or any sub-components thereof, ad infmitum).
According to some of the more detailed features of the present invention, the time- hopping code element can be an integer number indicating how the pulse characteristic is mapped to a component or sub-component of a component, or alternatively, indicates a sub- component of a plurality of components. In an exemplary embodiment, the code element features a floating-point number indicating how the pulse characteristic can be mapped to a component or sub-component of a component, or alternatively, indicates a sub-component of a plurality of time components.
The present invention features various approaches that can be used to specify the pulse characteristic. In one approach, an established offset value can be used to specify an exact characteristic value within a mapped component, hi another approach, an absolute offset value can be used to specify a pulse characteristic a fixed delta value from a minimum value of the component (or any sub-component of the component).
In another approach, a relative offset value can be used to position the pulse a fraction of a difference between a minimum value and a maximum value of the component (or any sub-component of the component). In yet another approach, a fractional part of the floatingpoint number can be used to specify a relative offset to specify a pulse characteristic that is a fraction of the difference between a minimum value and a maximum value of the component (or any sub-component of the component). The above approaches are not mutually exclusive. In another approach, binary representations of code element values can be subdivided into multiple groups of bits, where groups of bits can be translated into decimal values specifying pulse characteristics, hi another approach the sign (+/-) of code element values can be used to specify pulse characteristics.
According to some of the more detailed features of the invention, a code can satisfy predefined criteria. Predefined criteria may limit the number of pulse characteristic values within a non-allowable region. Predefined criteria may pertain to a spectral property of the pulse train produced when employing a code, hi ©ne embodiment of the invention, predefined criteria may limit the maximum or average spectral density within some bandwidth of interest.
Predefined criteria may pertain to a correlation property of a code. In one embodiment of the invention, predefined criteria may limit the maximum or average number of autocorrelation coincidences for some time offset. In another embodiment of the invention, predefined criteria may limit the maximum or average number of cross-correlation coincidences.
Predefined criteria may pertain to code length, hi one embodiment of the invention, predefined criteria may require a code to have a length that is not less than some minimum length and/or greater than some maximum length.
Predefined criteria may also pertain to the number of members of a code family, h one embodiment of the invention, a code family must have at least some minimum number of members.
Further features and advantages of the invention, as well as the structure and operation of various embodiments of the invention, are described in detail below with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number. The foregoing and other features and advantages of the invention will be apparent from the following, more particular description of a preferred embodiment of the invention, as illustrated in the accompanying drawings, wherein: Figure 1 illustrates an exemplary generic pulse characteristic value range layout including exemplary layout parameters, and exemplary subdivisions of the value range including components, sub-components, smaller components, and even smaller components; Figure 2a illustrates an exemplary pulse characteristic value range layout including an exemplary component; Figure 2b illustrates an exemplary value range layout including exemplary multiple components of the same size;
Figure 2c illustrates an exemplary value range layout including exemplary multiple components of different sizes; Figure 2d illustrates an exemplary value range layout including multiple exemplary components of the same size that are each subdivided into exemplary sub-components of the same size;
Figure 2e illustrates an exemplary value range layout including multiple exemplary components of the same size that are each subdivided into exemplary sub-components of different sizes;
Figure 2f illustrates an exemplary value range layout including multiple exemplary components of different sizes that are each subdivided into exemplary sub-components of the same size;
Figure 2g illustrates an exemplary value range layout including multiple exemplary components of different sizes that are each subdivided into exemplary sub-components of different sizes;
Figure 2h illustrates an exemplary value range layout including multiple exemplary same-size components and exemplary same-size sub-components combined with exemplary smaller components of the same size; Figure 2i illustrates an exemplary value range layout including multiple exemplary same-size components and exemplary same-size sub-components combined with exemplary smaller components of different sizes;
Figure 2j illustrates an exemplary value range layout including multiple exemplary same-size components and exemplary different-size sub-components combined with exemplary smaller components of the same size;
Figure 2k illustrates an exemplary value range layout including multiple exemplary same-size components and exemplary different-size sub-components combined with exemplary smaller components of different sizes;
Figure 21 illustrates an exemplary value range layout including multiple exemplary different-size components and exemplary same-size sub-components combined with exemplary smaller components of the same size; Figure 2m illustrates an exemplary value range layout including multiple exemplary different-size components and exemplary same-size sub-components combined with exemplary smaller components of different sizes;
Figure 2n illustrates an exemplary value range layout including multiple exemplary different-size components and exemplary different-size sub-components combined with exemplary smaller components of the same size;
Figure 2o illustrates an exemplary value range layout including exemplary multiple different-size components and exemplary different-size sub-components are combined with exemplary smaller components of different sizes; Figure 3a illustrates an exemplary pulse time position value range layout of four exemplary components subdivided into nine exemplary sub-components;
Figure 3b illustrates an exemplary pulse, amplitude value range layout of seven exemplary components;
Figure 3c illustrates an exemplary pulse width value range layout of five exemplary components;
Figure 4a illustrates an exemplary discrete value layout of thirty-seven exemplary evenly distributed values including exemplary layout parameters;
Figure 4b illustrates an exemplary discrete value layout of six exemplary non-evenly distributed values including exemplary layout parameters; Figure 4c illustrates an exemplary combined value range/discrete value layout of four exemplary components subdivided into nine exemplary sub-components containing 27 exemplary discrete values each including exemplary layout parameters;
Figure 5a illustrates an exemplary discrete time position value layout;
Figure 5b illustrates an exemplary discrete pulse amplitude value layout; Figure 5c illustrates an exemplary discrete pulse width value layout;
Figure 5d illustrates an exemplary discrete pulse polarity value layout;
Figure 5e illustrates an exemplary discrete pulse type value layout;
Figure 6 illustrates a temporal pulse characteristic value range layout including a pulse and a preceding and succeeding pulse relative to the pulse and having multiple non-allowable regions; Figure 7 illustrates a non-temporal pulse characteristic value range layout including characteristic values of two other pulses and having multiple non-allowable regions;
Figure 8a illustrates non-allowable regions relative to a preceding pulse position within a non-fixed temporal pulse characteristic value range layout;
Figure 8b illustrates non-allowable regions relative to any preceding pulse position within a non-fixed temporal pulse characteristic value range layout;
Figure 8c illustrates non-allowable regions relative to a succeeding pulse position within a non-fixed temporal pulse characteristic value range layout;
Figure 8d illustrates non-allowable regions relative to any succeeding pulse position within a non-fixed temporal pulse characteristic value range layout;
Figure 9 illustrates non-allowable regions relative to any pulse value in a non-fixed non-temporal pulse characteristic value range layout;
Figure 10a illustrates an exemplary code mapping approach, depicting exemplary pulses mapped to exemplary sub-components within an exemplary time position value range layout based on integer code element values of a code, where an integer code element exists per component and pulses are positioned within sub-components using an absolute or relative offset value;
Figure 10b illustrates an exemplary code mapping approach, depicting exemplary pulses mapped to sub-components within an exemplary time position value range layout that are numbered in sequence across a time period, where exemplary integer code element values of a code map to the sequentially numbered sub-components;
Figure 10c illustrates an exemplary code mapping approach, depicting exemplary integer code element values mapped to an exemplary layout encompassing a range of pulse amplitude values subdivided into nine exemplary components, where an integer code element exists per pulse, where each code element maps to a component, and where exemplary exact pulse amplitude values within components are determined using an offset fraction; Figure lOd illustrates an exemplary code mapping approach, depicting exemplary integer code element values mapped to exemplary discrete pulse amplitude values, where an integer code element exists per pulse;
Figure 11a illustrates exemplary mapping pulses to positions within components within an exemplary time position value range layout based on exemplary floating-point code element values of a code, where a floating-point code element exists per component;
Figure 1 lb illustrates an exemplary diagram depicting mapping pulses to components within an exemplary time position value range layout using the non-fractional part of a floating point code element value of a code and mapping pulses to exemplary positions within components using the fractional part of the floating-point code element values;
Figure lie illustrates an exemplary diagram depicting mapping pulse amplitudes to components within an exemplary layout encompassing a range of pulse amplitude values using the non-fractional part of a floating point code element value and mapping to exemplary exact amplitude values within components using the fractional part of the floating- point code element values;
Figure lid illustrates an exemplary diagram depicting mapping of code element values to multiple exemplary non-temporal characteristics, where the non-fractional part of each code element specifies an exemplary pulse amplitude, where the fractional part of each code element specifies pulse width, and where the sign (+/-) of each code element specifies pulse polarity;
Figure 12a illustrates an exemplary embodiment of a least significant bit/most sigmficant bit (LSB/MSB) mapping approach applied to an exemplary pulse time position value range layout;
Figure 12b illustrates another exemplary embodiment of a least significant bit/most significant bit (LSB/MSB) mapping approach applied to a pulse time position value range layout;
Figure 12c illustrates an exemplary embodiment of a least significant bit/most significant bit (LSB/MSB) mapping approach applied to an exemplary pulse amplitude value range layout; Figure 12d illustrates another exemplary embodiment of a least significant bit/most significant bit (LSB/MSB) mapping approach applied to an exemplary pulse amplitude value range layout;
Figure 13a is an exemplary diagram depicting an exemplary linear feedback shift- register pseudorandom number generator; and
Figure 13b is an exemplary diagram of an additive Lagged-Fibonacci shift register pseudorandom number generator.
Figure 14 depicts generation of a family of quadratic congruential codes comprising 6 channels, mapping of the 5th channel code to a time layout, and the code wrapping effect that occurs due to the code repeating over time.
Figure 15 illustrates autocorrelation properties of the 5 channel code of Figure 14.
Figure 16a is a plot diagram for illustrating the number of coincidences against a time offset in the example of Figure 14.
Figure 16b is an example embodiment of a plot illustrating moving and re-plotting the data of Figure 16a producing an exemplary 'thumbtack' plot.
Figure 17 illustrates cross-correlation properties of the 6th channel code relative to the 5th channel code of Figure 14.
Figure 18 is an example embodiment of a plot illustratively plotting coincidences of the cross-correlation of the 6th and 5th codes of Figure 14 by time offset.
Figure 19 illustrates a plot of the energy spectrum of a quadratic congruential code.
Figure 20 is a block diagram of an impulse transmitter that advantageously uses the present invention.
Figure 21 is a block diagram of an impulse receiver that advantageously uses the present invention. DETAILED DESCRIPTION OF AN EXEMPLARY
EMBODIMENT OF THE INVENTION
A preferred embodiment of the invention is discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations maybe used without parting from the spirit and scope of the invention.
I. Overview
In a time-hopping impulse transmission system, a sequence of pulses known as a pulse train can be transmitted and received over a period of time. The present invention is directed to a method (and accompanying system) of using a numerically generated code to specify positions and other characteristics of pulses within a pulse train in the impulse transmission system. The method can define a layout of the time period over which the pulse train is overlaid. Also, or alternatively, the method can define a non-temporal (i.e., non-time dependent) pulse characteristic value layout. Non-temporal characteristics can include, e.g., amplitude, width, polarity (+/-), type, and other non-time dependent characteristics of a pulse or series of pulses.
The present invention can ensure that a numerically generated code specifies allowable characteristic values. The method involves defining one or more non-allowable regions within one or more pulse characteristic value range layouts, disallowing code element values that map to non-allowable regions while generating a code using a numerical code generation technique, and mapping code element values to pulse characteristic values in accordance with the defined layout(s)
The method can specify an approach for mapping code element values to pulse positions. Also, or alternatively, the method can specify an approach for mapping code element values to non-temporal pulse characteristics. The method can generate a code using a numerical code generation technique. The method can map code element values to pulse positions according to the defined layouts and code mapping approach. Also, or alternatively, the method can map code element values to non-temporal characteristics according to the defined layouts and code mapping approach. The present invention can ensure that a pulse train meets predefined criteria. The method specifies temporal and/or non-temporal pulse characteristics according to temporal and/or non-temporal characteristic value layouts that may include one or more non-allowable regions. The method generates codes having predefined properties. The method generates a pulse train by mapping codes to characteristic value layouts, where the codes or subsets of codes satisfy predefined criteria. In addition, the predefined criteria can limit the number of pulse characteristic values within a non-allowable region. The predefined criteria can be based on relative pulse characteristic values. The predefined criteria can also pertain to spectral properties and to correlation properties. The predefined criteria can also pertain to code length and to the number of members of a code family.
II. Pulse Characteristic Layouts
To facilitate mapping of codes to pulse characteristics, layouts of pulse characteristic values can be defined. Pulse characteristics may include, e.g., time position, pulse amplitude, pulse width (in time), pulse polarity, or pulse type. Such layouts of pulse characteristic values can be defined in a multitude of ways to accommodate a wide variety of pulse transmission system applications. One way to characterize a layout is by specifying a range of pulse characteristic values. Another way to characterize a layout is by specifying discrete pulse characteristic values.
A. Value Range Layout One exemplary embodiment involves a pulse characteristic value range layout where various pulse characteristic values over some range are divided into smaller and smaller components to achieve a desired component resolution in order to facilitate mapping of a code element value to a characteristic value that resides within a layout component, which corresponds to some range of values. The below described exemplary embodiment performs this pulse characteristic value range layout using any of various temporal or non-temporal pulse characteristics. It should be noted that although the below described exemplary embodiments are described using particular exemplary temporal and/or non-temporal pulse characteristics, other pulse characteristics are equally applicable. For example, an exemplary embodiment may be described in terms of a non-temporal pulse amplitude characteristic. Layouts using other pulse characteristics such as, e.g., pulse width, pulse polarity, etc., are also possible. This fact, together with the different types of temporal and non-temporal pulse characteristics will be made clear from the following description, together with equivalents thereof, as will be recognized by persons having ordinary skill in the relevant art.
Figure 1 illustrates an exemplary value range layout which can represent a temporal, non-temporal, or combination of the two, pulse characteristic such as, e.g., timing of a pulse, and amplitude. Figure 1 includes a value range layout 102. The pulse can take on characteristic values between a minimum value v0 110 and a maximum value vmax 112 in layout 102. Layout 102, as shown, can be subdivided into components 104. Components 104 can in turn be divided into sub-components 106. Sub-components 106 can in turn be divided into smaller components 108. Smaller components 108 can then be divided into even smaller components, as shown. The process of subdividing components can be repeated, ad infinitum, so that smaller and smaller components can be obtained.
The process of subdividing a layout into components is now described in detail. In particular, Figure 1 depicts an exemplary embodiment of pulse characteristic value range layout parameters. Specifically, a pulse characteristic value range 102 is shown. As depicted in Figure 1, two layout parameters, vø and vmax, can be specified to define a pulse characteristic value range 102 bounded by a minimum value of vn and a maximum value of Vmax- A second layout parameter, N component , can be specified to divide the value range 102 into one or more components 104 of the same size, or of different sizes, with each component 104 (indexed by the letter- ή) having a minimum value, vmtn(n), and a maximum value, Vmaxfn), where n = 1 to Ncomponents.
The number and size of components 104 used in a given layout can be selected for various reasons. For example, the number and size of components 104 can be tailored to meet, e.g., specific application requirements, to remain within system implementation limits, to achieve one or more of a variety of system characteristics in areas such as, e.g., performance (i.e., bit rate), reliability (i.e., bit error rate), system-simplicity, ease-of-use, ter alia. When different sized components 104 are employed, minimum and maximum values can be specified for each component 104 indexed by n, wherein the minimum value for a given component, v,„in(n), equals the maximum value of the preceding component, vmax(n-l), or vø, and the maximum value of a given component, vmax(n), equals the minimum value for the following component, vmi„(n+l), or vmax. When same sized components 104 are employed, the value range is evenly divided such that vmax(n) - vm(n(n) is equal for each component 104 indexed by n.
An array of layout parameters, Nsub-components(N components), can be specified to subdivide each component 104 into sub-components 106 of the same size, or different sizes, with each sub-component 106 (indexed by m) of the component 104 (indexed by n) having a minimum value, vmin(n,ni), and a maximum value, vmax(n,m), where n = 1 to N components and m = 1 to Nsub- components(n) ■ As with components 104, the number and size of sub-components 106 for a given component 104 used in a given value range layout 102 can also be tailored to meet, e.g., specific application requirements, to remain within system implementation limits, to achieve one or more of a variety of system characteristics in areas such as, e.g., performance (i.e., bit rate), reliability (i.e., bit error rate), system-simplicity, ease-of-use, etc., and/or for many other reasons. When different sized sub-components 106 are employed, minimum and maximum values are specified for each sub-component 106 indexed by m of each component 104 indexed by n, wherein the minimum value for a given sub-component, vmin(n,m), equals the maximum value of the preceding sub-component, vmax(n,m-l), or the minimum value of the component in which the sub-compoήent resides, v,„in(n), and the maximum value of a given sub-component, vmax(n,m), equals the minimum value for the following sub-component, Vmin(n,m+1), or the maximum value of the component in which the sub-component resides, v,„ax(n). When same sized sub-components 106 are employed, components are evenly divided such that vmax(n,m) - vmm(n,m) is equal for each sub-component 106 indexed by m of a component 104 indexed by n or for all components such that all sub-components 106 of a given component 104 are of the same size, wherein sub-component sizes may vary from component to component or all sub-components of all components are of the same size depending on the sizes of the components and the numbers of sub-components in the components. hi a manner consistent with the subdivision of components into sub-components, additional multi-dimensional arrays of layout parameters can be used to further subdivide sub-components 106 into smaller components 108 (as shown) of the same or different sizes, ad infinitum, until a smallest desirable component resolution is attained, with components at each resolution level having a minimum value, vmin(n,m, ...,a), and a maximum value, vmaχ(n,m, ...,a), where n = 1 to Ncomp0nents, = 1 to Nsub-components(n), ..., and a = 1 to Nsmaιiest components(n.m, ...). Such further subdivision of sub-components into smaller and smaller components enables systems with finer and finer tuning resolution and thus higher and higher fidelity, increases modulation accuracy, and can be useful for other purposes. As with components 104 and sub-components 106, the number and size of these smaller components 108 can also be tailored, e.g., to meet specific application requirements, to remain within system implementation limits, to achieve one or more of a variety of system characteristics in areas such as performance (i.e., bit rate), reliability (i.e., bit error rate), system-simplicity, ease-of-use, etc., and/or for many other reasons. When different sizes of these smaller components 108 are employed, minimum and maximum values are specified for each smaller component 108 (indexed by a), wherein the minimum value for a component, vmi„(n,m, ...,a), equals the maximum value of the preceding component, vmax(n,m, ...,a-l), or the minimum value of the next higher level component in which the component resides, v,„in(n,m, ...), and the maximum value of a given component, vmax(n,m, ...,q), equals the minimum value for the following component, vmin(n,m, ...,a+l), or the maximum value of the next higher level component in which the component resides, vmax(n,m, ...). When same sized smaller components 108 are employed, the next higher level components 106 are evenly divided such that vmax(n,m, ..., a) - vmin(n,m, ...,a) is equal for each smaller component 108 indexed by a of a given next higher level component or for all next higher level components such that all components of a given next higher level component are of the same size, wherein component sizes may vary from next higher level component to next higher level component or all components of all higher level components are of the same size depending on the sizes of the next higher level components and the numbers of components in the next higher level components.
At the top of Figure 1, pulse characteristic value range 102 is depicted that is bounded by endpoints of vø and vmax. Beneath this illustration an equivalent value range 102 is shown that has been subdivided into four components 104 by setting the layout parameter N components to a value of four (4), and the size of each component has been established by setting the minimum and maximum values of each component, vmi„(n) and vmax(n), where n = 1 to 4. An enlargement of the second component 104 is then shown where the component has been subdivided into twenty sub-components 106 by setting the layout parameter Nsub-comPonents(2) to a value of twenty (20), and the size of each sub-component 106 has been established by setting the minimum and maximum values of the sub-components 108 within component two 104, vmin(n,m) and vmax(n,m), where n = 2 and m = 1 to 20. As illustrated, there are 20 subcomponents 106 in component 104, indexed by n=2, and m=l-20, labeled vmi„(2,l) and vmαx(2,20). An enlargement of the eighth sub-component 106 of component two 104 is then shown where the sub-component 106 has been subdivided into ten smaller components 108 by setting the layout parameter Nsmαiier_comp<ments(2, 8) to a value of ten (10), and the size of each smaller component 108 has been established by setting the minimum and maximum values of the smaller components within sub-component eight 106 of component two 104, vmin(n,m,l) and vmαx(n,m,l), where n - 2, m = 8, and / - 1 to 10. As illustrated, there are 10 smaller components 108 in sub-component 106, indexed by n = 2, m = 8, and / = 1 to 10, labeled vmin(2,8,l) and vmαx(2,8,10).
It is then shown that these smaller components 108 could be subdivided into x even smaller components (whose size is not shown) using another layout parameter [e.g., Neven_smαιier_components(2,8,5) = x], which can be further subdivided, ad infinitum. Also not shown in Figure 1, are enlargements of the other components 104, sub-components 106, and smaller components 108, which in an exemplary embodiment could also contain twenty subcomponents 106, ten smaller components 108, and x even smaller components, respectively. By subdividing a value range layout into levels of smaller and smaller components and by varying or not varying the size of components at different levels, a multitude of different layout permutations can be defined.
It should be noted, however, that although the present exemplary embodiments illustrate various layouts, the invention is not limited to the illustrative examples, and other layouts including, e.g., infinite combinations of similar and different sized components, could also be used within the scope of the present invention. It should also be noted that the pulse characteristics could include any of various temporal, non-temporal, or both temporal and non-temporal characteristics, as will also be recognized by persons skilled in the relevant arts.
B. Component-Based Value Range Layouts
Figures 2a through 2o provide exemplary embodiments of different types of value range layouts that can be established. Figures 2a-2o illustrate layout permutations involving nesting of up to three levels of components, which could be subdivided further to additional levels, ad infinitum, as will be apparent to those skilled in the art, to produce additional permutations.
Figure 2a depicts an exemplary embodiment of a value range layout 202 comprising a single component (not labeled).
Figures 2b and 2c depict exemplary embodiments of value range layouts 202 comprising multiple components of the same size 204, 206 and of different sizes 208, 210, respectively. Specifically, in Figure 2b, component 1 204 is shown to be the same size as component 2206. In Figure 2c, component 1 208 is shown as a different size than component 2210. It will be apparent to those skilled in the art that other component size configurations are possible, such as, e.g., a subset of components being the same size and another subset of components being of a different size, and that the exact relative component size illustrations are intended to be illustrative, but not limiting.
Figures 2d and 2e illustrate exemplary embodiments of value range layouts 202 comprising multiple components of the same size 204, 206 that are each subdivided into subcomponents of the same size 212, 214 or of different sizes 216, 218, respectively. Specifically, in Figure 2d, component 1 204 is the same size as component 2206, and the sub-components 212, 214 of component 1 204 are of the same size, hi Figure 2e, again component 1 204 is of the same size than component 2 206, but sub-components 216, 218 of component 1 204 are of different sizes.
Similarly, Figures 2f and 2g illustrate exemplary embodiments of value range layouts comprising multiple components of different sizes 208, 210 that are each subdivided into subcomponents of the same size 212, 214 or of different sizes 216, 218, respectively. Specifically, in Figure 2f, component 1 208 is of a different size than component 2210, and the sub-components 212, 214 of component 1 208 are of the same size. In Figure 2g, again component 1 208 is of a different size than component 2210, but sub-components 216, 218 of component 1 208 are of different sizes.
Adding another level of component subdivision and varying whether or not component size remains constant produce an additional eight layout permutations, as shown in Figures 2h through 2o. In Figures 2h and 2i same-size components 204, 206 and same-size sub-components 212, 214 are combined with smaller components of the same size 220, 222 and of different sizes 224, 226, respectively. At the component level (204, 206) and at the sub-component level (212,214), Figures 2h and 2i are the same. However, the sub-components of Figure 2h have smaller components 220, 222 that are of the same size, whereas the sub-components of Figure 2i have smaller components 224, 226 that are of different sizes.
In Figures 2j and 2k same-size components 204, 206 and different-size subcomponents 216, 218 are combined with smaller components of the same size 220, 222 and of different sizes 224, 226, respectively. At the component level (204, 206) and at the sub- component level (216,218), Figures 2j and 2k are the same. However, the sub-components of Figure 2j have smaller components 220, 222 that are of the same size, whereas the subcomponents of Figure 2k have smaller components 224, 226 that are of different sizes. h Figures 21 and 2m different-size components 208, 210 and same-size subcomponents 212, 214 are combined with smaller components of the same size 220, 222 and of different sizes 224,226, respectively. At the component level (208, 210) and at the subcomponent level (212,214), Figures 21 and 2m are the same. However, the sub-components of Figure 21 have smaller components 220, 222 that are of the same size, whereas the subcomponents of Figure 2m have smaller components 224, 226 that are of different sizes. hi Figures 2n and 2o different-size components 208, 210 and different-size sub- components 216, 218 are combined with smaller components of the same size 220, 222 and of different sizes 224,226, respectively. At the component level (208, 210) and at the subcomponent level (216,218), Figures 2n and 2o are the same. However, the sub-components of Figure 2n have smaller components 224, 226 that are of the same size, whereas the subcomponents of Figure 2o have smaller components 224, 226 that are of different sizes. Although a number of variations for the components, sub-components, and smaller components are illustrated, those skilled in the art will appreciate that the process of breaking down components into finer and finer levels of granularity, ad infinitum, is possible, meaning that smaller components can be further broken down, and so on, and that any conceivable combination of same and different size components is possible. C. Specifying Ranges Using Value Range Layouts
Figures 3a through 3c illustrate the use of value range layouts to specify ranges of time position values, pulse amplitude values, and pulse width values. It will be apparent to those skilled in the art that value range layouts can be used to specify value ranges for other pulse characteristics in accord with the present invention.
Beginning with Figure 3 a, the figure depicts in an exemplary embodiment a diagram 300 illustrating a time value range 202 of time position values between t0 302 and tmax 304. The time value range 202 has been subdivided into four (4) components (the first two components are labeled 204, 206) that have been subdivided into nine (9) sub-components 212, graphed horizontally. Hence, diagram 300 of Figure 3 a illustrates the value range 102 of Figure 1, graphed horizontally, where the pulse characteristic specifies pulse time position. Each component 206 and sub-component 212 has a minimum time value 306 and a maximum time value 308 specifying a range of time as shown with the enlargement of the fifth sub-component 212 of the second component 206 which has a minimum time value 306 of tmm(2,5) and a maximum time value 308 of tmax(2,5). When a code element value maps to a component 206, sub-component 212, or smaller component within a time value range 202, a pulse 310 can be positioned at any time value within the value range 202 specified by the component 206, sub-component 212, or smaller component. An exemplary embodiment of such mapping to a pulse position is shown in Figure 3 a where a pulse 310 is positioned between tmm(2,5) 306 and tmax(2,5) 308, in this example, approximately halfway in between. Figure 3b depicts a diagram 312 illustrating an exemplary embodiment of a range of amplitude values from ΩØ 314 to amax 316 that has been subdivided into seven (7) components (the first two components are labeled 204, 206), vertically shown on the left side of diagram 312. Hence, the value range 102 of Figure 1 is shown in diagram 312 of Figure 3b as a vertical axis, corresponding to an amplitude pulse characteristic. Seven (7) exemplary pulses 318a, 318b, 318c, 318d, 318e, 318f and 318g, are shown in diagram 312 which correspond to representative pulses 318a-318g that could be specified using the layout, h an exemplary embodiment, the exact amplitude of each pulse 318a-318g is determined by arbitrarily selecting the approximate middle value of the range component to which a code element value (i.e., 1 through 7) would map. It will be apparent to those skilled in the art that alternative values to the middle value of the range can be similarly used. The exact values selected within the components 204, 206 could be any other common offset value or a different offset value for each pulse 318a-318g. The layout could also be further subdivided into smaller components (i.e., not shown) to provide greater value resolution. Figure 3c illustrates an exemplary embodiment of diagram 320 depicting a pulse width value range between wo 324 and wmax 326 that has been subdivided into five (5) components (the first two components are labeled 204, 206) and shows five (5) representative pulses 322 that could be specified using the layout. Hence, diagram 320 of Figure 3c illustrates the value range 102 of Figure 1, graphed horizontally, where the pulse characteristic specifies a range of pulse widths. As with the amplitude values of Figure 3b, the width values used for the five (5) representative pulses 322a, 322b, 322c, 322d and 322e were arbitrarily selected as the middle value within each component 204, 206. As will be apparent to those skilled in the relevant art, alternative values to the middle value of the range can be similarly used.
D. Discrete Value Layouts
Another exemplary embodiment of the present invention defines a layout of pulse characteristic values by specifying a layout of discrete characteristic values to which individual code elements can map. As depicted in Figures 4a and 4b, a layout parameter, Ndt crete alues can be specified to identify some number of discrete values within a layout 202 having a value, v(n), with an index n, where n = 1 to Ndtscrete values- Discrete values may, e.g., be evenly distributed, or not, as depicted in Figures 4a and 4b, respectively.
Beginning with Figure 4a, a diagram 400 illustrates an exemplary embodiment in which thirty-seven (37) evenly-distributed (the first two width values are labeled 408, 410) discrete characteristic values, v(l) 404 through v(37) 406, are shown, h the exemplary embodiment, the number of discrete values 404, 406 within layout 402 is thirty-seven (37) and is referred to as N tscrete vaiues= 37.
Figure 4b depicts, in an exemplary embodiment, a diagram 412 illustrating six (6) non-evenly-distributed (the first two width values are labeled 418 and 420) discrete characteristic values, v(l) 414 through v(6) 416. In the exemplary embodiment, the number of discrete values 414, 416 within layout 422 is six (6) and is referred to as Ndt crete values = 6. Figure 4c, combines in an exemplary embodiment the discrete value method with the component value range layout, and is described further below in the section entitled, " E. Combinations of Value Range and Discrete Value Layouts. "
Figures 5 a through 5e illustratively depict exemplary embodiments of discrete value layouts for exemplary temporal and non-temporal pulse characteristics, including, e.g., time position, amplitude, width, polarity, and type pulse characteristics, respectively.
Figure 5 a depicts a diagram 502, illustrating an exemplary embodiment of the invention having thirty-seven (37) discrete time values from t(l) 504 through t(37) 506. Diagram 502 includes five (5) representative pulses 508a, 508b, 508c, 508d and 508e, representing placement at five of the 37 time positions from t(l) 504 through t(37) 506. Figure 5b depicts a diagram 510, illustrating an exemplary embodiment of the invention having seven (7) discrete values 514a, 514b, 514c, 514d, 514e, 514f and 514g, corresponding to exemplary voltage amplitude levels, 1.2v, 2.34v, 3.35v, 5.05v, 6.2v, 7v and 9.35v, respectively. Diagram 510 includes representative pulses 512a, 512b, 512c, 512d, 512e, 512f and 512g, depicted having amplitudes 1.2v-9.35v, that correspond to the seven discrete values 514a-514g, respectively. Unlike the representative pulses depicted in Figure 3b, which can have any amplitude within a given value range component, the amplitude values 1.2v-9.35v of discrete pulse amplitudes 514a-514g of the seven representative pulses 512a-512g of the exemplary embodiment of Figure 5b must equal a discrete amplitude value. Similarly to Figure 5b, Figure 5c depicts a diagram 516, illustrating an exemplary embodiment of the invention having a layout of five (5) discrete pulse width values 520a, 520b, 520c, 520d and 520e, and five (5) representative pulses 518a, 518b, 518c, 518d and 518e. Each pulse 518a-518e has a width that corresponds to the discrete pulse width values 520a-520e. The discrete value layout embodiments of Figures 4a and 4b also lend themselves to pulse characteristics that do not involve magnitude. Unlike the pulse time position of diagram 502, pulse amplitude of diagram 510 and pulse width characteristics of diagram 516, where either a value range layout or a discrete value layout can be used, other pulse characteristics such as, e.g., pulse polarity and pulse type, can only be specified using a discrete value layout. Figures 5d and 5e illustrate exemplary embodiments depicting discrete pulse polarity values and pulse type values, respectively. Specifically, Figure 5d depicts a diagram 522 illustrating an exemplary embodiment of the invention including a non-inverted pulse 524a and an inverted pulse 524b. Pulse 524a and inverted pulse 524b have the same magnitude but are the inverse in polarity of one another. Figure 5e illustratively depicts exemplary embodiments of the invention including various exemplary different pulse types 526, 528, 530, 532, 534, 536, 538 and 540. Each exemplary pulse type 526-540 has a different pulse wavelet shape, or includes a combination of pulse wavelet shapes. For example, pulse type 526 illustrates an exemplary square wave pulse. Pulse type 528 depicts an exemplary sawtooth pulse. Pulse type 530 depicts an exemplary Haar wavelet pulse. Pulse type 532 depicts an exemplary Gaussian Monopulse. Pulse type 534 depicts an exemplary doublet pulse. Pulse type 536 depicts an exemplary triplet pulse. As mentioned above, combinations of pulse types can be created to achieve different pulse sets. For example, pulse type 538 illustrates that a doublet/triplet wavelet set can be created including the combination of a doublet pulse 534 and a triplet pulse 536. Pulse type 540 is intended to indicate that various permutations and combinations of wavelet sets can be created as will be apparent to those skilled in the relevant art without parting from the present invention.
E. Combinations of Value Range and Discrete Value Layouts
In one exemplary embodiment of the present invention, the discrete value layout embodiments illustrated in Figures 4a and 4b, described above, can be combined with an embodiment of a value range layout such as, e.g., the layout 202 of Figure 2b, enabling code element values to specify, e.g., a component 204, 206 within the range layout 202 and a discrete value within the component 204, 206 (not shown). The use of a combination of the discrete layout and value range layout approaches is shown in Figure 4c. Specifically, Figure 4c illustratively depicts a diagram 422 showing an exemplary embodiment of the invention using a combination of a discrete value layout similar to the one depicted in Figure 4a, and a value range layout the same as shown in Figure 2d. Referring now to Figure 4c, a value range layout 202 (as shown in Figure 2d) is subdivided into four (4) components (the first two are labeled 204, 206) that are subdivided into nine (9) sub- components (the first two are labeled 212, 214). Component 2 206 is shown with a sub- component 212 which has been further expanded to illustrate discrete values from vmin (2,5) 424 to vmax(2,5) 426. Thus, as illustrated, each sub-component 212 can contain 27 discrete values. The layout 202 of the exemplary embodiment of diagram 422 could, e.g., be
Specified by Setting Ncomponents = 4, Nsub-components(l-4) = 9, and Ndiscrete values(l-4,l-9) = 27.
III. Non-Fixed Layouts
In another exemplary embodiment of the invention, the value range layout and the discrete value layout embodiments can be employed as non-fixed layouts also referred to as delta layouts. Where a 'fixed' value range layout defines a range of values between, e.g., values vo and vmax, a 'non-fixed' delta value range layout can specify a range of delta values between, e.g., delta values Δvn and Δvmax, where the delta value range can be divided into components and sub-components in the same manner as a fixed value range can be divided. Similarly, where discrete values are defined in a discrete value layout, discrete delta values can also be defined in a discrete delta value layout. These non-fixed layout exemplary embodiments of specifying pulse characteristics depend on the characteristics of the previous pulse. Specifically, the value of a given pulse's characteristic can equal the characteristic value of the previous pulse plus a delta characteristic value. The delta characteristic value can be determined by mapping a code element value to a defined delta value range layout or to a discrete delta value layout, as appropriate to a person having ordinary skill in the relevant art.
IV. Non-Allowable Regions
The present invention permits the establishment of allowable and non-allowable regions within a layout. One or more non-allowable regions are regions in a characteristic value range layout within which a characteristic value of a pulse is not allowed. A non- allowable region may fully or partially include (or overlay) one or more components, subcomponents or smaller components. A non-allowable region can be based solely on a particular pulse characteristic value within a component, subcomponent, or smaller component or can be based relative to a characteristic value of one or more other pulses. For example, a non-allowable region can be defined such that a pulse characteristic value cannot be less than a component minimum value or greater than a component maximum value. Non- allowable regions may also be bounded by minimum and maximum values within a value range layout without regard to component minimum and maximum boundary values (e.g., a region that resides entirely within the boundaries of a component, subcomponent, etc.).
Non-allowable regions can be defined relative to other pulse characteristic values. For example, a minimum value difference between pulse characteristic values can be established by defining a non-allowable region about the characteristic value of another pulse such as the preceding pulse, succeeding pulse, or any other pulse. Similarly, a maximum value difference between pulse characteristic values can be established by defining a non-allowable region consisting of all values greater than or less than some difference from the characteristic value of another pulse. Non-allowable regions can also be defined that are bounded by a minimum and maximum difference in value between the characteristic value of the pulse and the characteristic value of another pulse.
Figure 6 depicts non-allowable regions within a fixed temporal pulse characteristic value range layout. In the top portion of the figure, a component, subcomponent, or smaller component is shown, which is bounded by a minimum time value 602 and a maximum time value 604. A pulse 622 is shown at a position within the component (or subcomponent or smaller component). A preceding pulse 606 and succeeding pulse 608 are shown at positions within the preceding and succeeding time period components, respectively.
Non-allowable regions 610-620 are shown in layers to illustrate that they can overlap one another. Two non-allowable regions 610 are denoted A. These regions are used to maintain the correlation properties of a code, where one region consists of all time prior to the minimum time value of the component to which a code element value is mapped and the other region consists of all time after the maximum time value of the same component.
Three non-allowable regions 612, denoted as B, are defined. These regions are non- allowable regions that are bounded by minimum and maximum time values. Two regions 614, denoted as C, illustrate the application of a minimum proximity limit. Here, the leftmost C region 614 represents a region where a pulse cannot be placed because it would violate the minimum proximity limit relative to the preceding pulse. On the other hand, the rightmost C region 614 represents a region where a pulse cannot be placed because it would violate the minimum proximity limit relative to the succeeding pulse. Similarly, two regions 616, denoted as D, illustrate the application of a maximum proximity limit. Here, the leftmost D region 616 represents a region where a pulse cannot be placed because it would violate the maximum proximity limit relative to the succeeding pulse. On the other hand, the rightmost D region 616 represents a region where a pulse cannot be placed because it would violate the maximum proximity limit relative to the preceding pulse. One non-allowable region 618, denoted as E, is defined. This region is a non- allowable region defined as being bounded by a minimum and maximum distance (in time) from the preceding pulse.
Two other non-allowable regions 620, are defined. These regions are non-allowable regions defined as being bounded by a minimum and maximum distance (in time) from the succeeding pulse.
The bottom portion of the figure depicts the combined effect of the non-allowable regions where the separated layers in the upper portion of the figure are overlaid to show that a given position within a time period component is either allowable or non-allowable.
Figure 7 depicts non-allowable regions within a non-temporal pulse characteristic value range layout. Such a layout might apply to pulse amplitude, pulse width, or to any other pulse characteristic value having some magnitude. In the top portion of the figure, a component, subcomponent, or smaller component is shown, which is bounded by a minimum characteristic value 702 and a maximum characteristic value 704. The characteristic values of two pulses labeled Pulse 1 (706) and Pulse 2 (708) are shown. As in Figure 6, non-allowable regions are shown in layers to illustrate that they can overlap one another. Two non-allowable regions 710 are denoted as A. These are regions that are used to facilitate mapping a code element value, where one region consists of all values less than the minimum characteristic value of the component to which a code element value is mapped and the other region consists of all values greater than the maximum characteristic value of the same component.
Three non-allowable regions 712, denoted B, are shown. These regions are defined as being bounded by minimum and maximum characteristic values.
Four regions 714, denoted as C, are shown. These regions illustrate the application of a minimum value delta with Pulse 1 (706) and Pulse 2 (708) characteristic values. The first two regions represent where a value cannot be used because it would violate the minimum value delta (difference) relative to the Pulse 1 characteristic value. The other two regions represent where a value cannot be used because it would violate the minimum value delta relative to the Pulse 2 characteristic value.
Similarly, two regions 716, are denoted as D. These regions illustrate the application of a maximum delta rule. Here, the leftmost region represents where a value cannot be used because it would violate the maximum value delta relative to the Pulse 2 (708) characteristic value. On the other hand, the rightmost region represents where a value cannot be used because it would violate the maximum value delta relative to the Pulse 1 (706) characteristic value. (Two other regions of the same type as those shown in D are not shown due to the size of the figure.) Four non-allowable regions 718, are denoted as E. These regions are bounded by minimum and maximum value deltas from the two pulses 706, 708.
The bottom portion of the figure depicts the combined effect of the non-allowable regions where the separated layers in the upper portion of the figure are overlaid to show that a given value within a component is either allowable or non-allowable. Figures 8a through 8d depict non-allowable regions within non-fixed temporal characteristic value range layouts.
In Figure 8a, non-allowable regions relative to a preceding pulse time position are shown. Specifically, a layout relative to a preceding pulse 802 at time position, tk-i, is shown, where ta, , to, and td are time values relative to the preceding pulse. Because time has an inherent order (i.e., by definition the time position value of the pulse in question succeeds the time position value of the preceding pulse), only those values after the preceding pulse are included in the non-fixed layout.
Four delta values, Δta, Δtb, Δtc, and Δtd, illustrate how the time values can be translated into delta values in which case the time values t -i, ta, tb, tc, and td become 0, Δta, Δtb, Δtc, and Δtd.
Three non-allowable regions 806-810, shown shaded with diagonal lines, are defined.
The first region 806 enforces a minimum proximity limit, Δtmjn, where Δt cannot reside between 0 and Δta and therefore t cannot reside between t -1 and ta. The second region 808 is bounded by minimum and maximum delta values, such that Δt cannot reside between Δtb and Δtc and therefore tk cannot reside between tb and tc. The third region enforces a maximum proximity limit, Δtmax, where Δt cannot be greater than or equal to Δt and therefore t cannot be greater than or equal to t . hi Figure 8b, non-allowable regions relative to any preceding pulse position are shown. Specifically, Figure 8b illustrates that the non-allowable regions can be defined the same way relative to any preceding pulse, so that the only difference between Figure 8a and
8b is that t -i becomes tk-n.
Figure 8c and 8d illustrate that similar non-allowable regions can be defined relative to the succeeding pulse 812 position, t +ls and to any succeeding pulse 812 position, tk+n, respectively. In the two figures, the first region 818 enforces a minimum proximity limit, Δtmin, where Δt cannot reside between -Δth and 0, and therefore tk cannot reside between th and tk+n- The second region 816 is bounded by minimum and maximum delta values, such that Δtk cannot reside between -Δtf and -Δtg and therefore tk cannot reside between tf and tg.
The third region 814 enforces a maximum proximity limit, Δtmax, where Δt cannot be less than or equal to -Δte and therefore tk cannot be less than or equal to te. Figure 9 illustrates non-allowable regions within a non-fixed non-temporal characteristic value layout relative to any other pulse having some characteristic value, V +n.
This figure is consistent with (and similar to a combination of) Figures 8b and 8d. Here, six non-allowable regions 902-912 are shown with the three leftmost regions 902-906 mirroring the three rightmost regions 908-912. The figure is two-sided as opposed to one-sided, due to a fundamental difference between temporal and non-temporal pulse characteristics. Whereas temporal characteristics have an inherent order to them (e.g., tk+i is always greater than tk), non-temporal characteristics do not (i.e., Vk-π can be less than, greater than, or the same as Vk).
Generally, non-allowable regions within a non-fixed temporal characteristic value range layout can be represented as a general non-allowable region set, S„fl, where S„a is equal to a union of some number, n, of defined non-allowable regions, R,-, relative to a zero reference delta value, where i = l to n.
Sna = Ri u R2 ... Rn
Each non-allowable region, R,-, within the general non-allowable region set S„a can be specified as a delta value range in which a delta value cannot reside. Ri = Δtk £ [Δt_lowι, Δtjiighi]
This process allows a set of non-allowable regions, Sna (n), to be defined relative to any pulse position, t„, by adding its time to the general non-allowable region set, S„α.
na = tn + na = { tn + S : S €Ξ Sna )
Furthermore, the non-allowable regions to be enforced against a given pulse can be generally defined as:
Figure imgf000033_0001
je l (k)
which states that the time position of pulse k cannot be an element of a union of non- allowable region sets about pulses j, where j ranges over all members of an index set I(k). This general equation allows the index set, I(k), to be any combination of pulses within the pulse train. Example index sets include but are not limited to:
I(k) = {k-1} -^-preceding pulse
I(k) = {k+1} -^succeeding pulse
I(k) = {0, 1 , ... ,k- 1 } - all preceding pulses
I(k) = {k+1,...,kmax} — >all succeeding pulses
With the use of an index set, I(k), the enforcement of non-allowable regions can be considered conditional in that non-allowable regions are only applied to those pulses residing in the index set.
In one embodiment, another form of conditional enforcement could be based on a maximum number of pulse characteristic values that are allowed to reside in a non-allowable region (i.e., after some number of code element values indicate pulse characteristic values which reside in some non-allowable region or regions, no additional code element values are allowed to map to the non-allowable region or regions). This form of conditional enforcement could also be done using an allowable/non-allowable threshold based on a percentage of the pulses. Relative non-allowable regions in a fixed or non-fixed value range layout can be based on statistical values calculated for some subset of pulse characteristic values such as a minimum, maximum, average, mode, or other such quantity. For example, a non-allowable region could be specified relative to an average characteristic value of all preceding pulses.
V. Code Mapping Approaches
A multitude of exemplary code mapping embodiments can be employed in conjunction with pulse characteristic value layouts to accommodate pulse transmission system implementation requirements and to optimize system performance for specific applications. A code specifying pulse characteristic can include elements having, e.g., integer or floating-point numbers. The integer or floating-point numbers can map to characteristic values within defined characteristic layouts. In an exemplary embodiment, the value of each integer code element or the non-fractional part of each floating-point code element value can identify a component, sub-component or smaller component (or even smaller component, calculated ad infinitum) corresponding to a range of characteristic values within a defined layout. Additionally, an integer or floating-point code element can be used to specify multiple pulse characteristics. hi an exemplary embodiment, the numbering scheme used for a code must be consistent with the numbering scheme used for the defined characteristic layout. The use of a consistent numbering scheme can allow mapping of code element values to values within the layout. For example, components within a value range layout or values within a discrete value layout can be numbered beginning with zero, one, or any other number. Components produced by subdividing higher level components, such as, e.g., sub-components or smaller components, can be numbered per higher level component such that sub-component numbering can begin again with each higher level component, or alternatively can be numbered in sequence independent of the higher level component in which they reside. In an exemplary embodiment, once an integer value or non-fractional part of a floating-point value has been used to map to a value range corresponding to, e.g., a component, sub-component, or smaller component (or even a smaller component, ad infinitum), an established offset value can be used to specify the exact characteristic value within the component, sub-component, or smaller component. An absolute offset value can be used to specify an exact characteristic value that is a common value difference (or delta) from the minimum characteristic values of the components, sub-components, or smaller components to which code elements are mapped.
Alternatively, in another exemplary embodiment, a relative position offset value can be used to specify an exact characteristic value that is a fraction of the difference between the minimum and maximum characteristic values of the components, sub-components, or smaller components (or even smaller components, ad infinitum) to which code elements are mapped. For floating-point codes, the fractional part of each floating-point code element can be used to specify the relative offset used to specify an exact characteristic value that is a fraction of the difference between the minimum and maximum characteristic values of the component, sub-component, or smaller component (or even smaller component, calculated ad infinitum) to which the non-fractional part of the floating-point code element is mapped.
Unlike integer codes, where an absolute or relative offset value can be used to specify exact characteristic values in a common manner, the fractional portions of floating-point values can vary per code element. The variance of fractional portions of floating-point values per code element, allows each pulse characteristic value to be established independent of other pulse characteristic values. Figures 10a through Figures lOd below, illustrate an exemplary embodiment of the component numbering and code mapping embodiments involving integer code element values. Figure 10a depicts a diagram 1002 of an exemplary embodiment illustrating pulses
310a-310d mapped to positions within (in the exemplary embodiment) sub-components 212a, 212b, 212c and 212d. Diagram 1002 includes separate sub-components numbered one through nine (1-9), within each component 204a, 204b, 204c and 204d. The numbering of sub-components (1-9) within each component 204a-204d, illustratively contrasts the difference of diagram 1002 of Figure 10a from diagram 1008, described further below with reference to Figure 10b. Diagram 1008 of Figure 10b, by comparison, sequentially numbers all sub-components (numbered 1-36) from all components 204e-204h. Returning to diagram 1002, Figure 10a includes components 204a-204d, numbered one through four (1-4), in time value range layout 202a. Diagram 1002 includes an integer code element 1006a-1006d (collectively labeled 1004a) corresponding to each component 204a-204d. For example, mapped to the position of the numbered sub-components 1-9 of each component 204a-204d. Each integer code element 1006a-1006d is mapped to a corresponding sub-components 212a- 212d, respectively.
Figure 10b depicts diagram 1008 including an exemplary embodiment of the invention illustrating pulses 310e-310h mapped to positions within sub-components (1-36) 212e-212h of components (1-4) 204e-204h. The sub-components 212 are numbered in sequence one through thirty-six (1-36) across a time value range 202b layout, hi both Figures 10a and 10b, the exact positions of the pulses 310a-3 lOh within the sub-components 212a- 212h specified by integer codes 1006a-1006d, and 1006e-1006h (collectively 1004a, 1004b), respectively can be determined using, e.g., an absolute, or a relative position offset value. It should also be noted that Figures 10a and 10b present two different methods for mapping codes to the same locations in the time value range layout, i.e., the position of pulses 310a-310d correspond to the positions of pulses 310e-310h.
It is also important to note that the first sub-component numbering method illustrated in diagram 1002 is component-dependent. The component-dependent numbering method of diagram 1002 maps one pulse position and only one pulse position per component.
A second sub-component numbering method illustrated in diagram 1008, by comparison, is component-independent. The component-independent numbering method of diagram 1008 maps zero, one, or more pulses to a given component.
Figure 10c depicts a diagram 1010 including an exemplary embodiment illustrating code elements 10061-10061 (collectively 1004c) mapped to components (two components are labeled 204, 206) within an amplitude range value layout 314-316. Specifically, an integer code element 1006i- 10061 exists per pulse 318h-318k. In an exemplary embodiment, a common relative offset fraction of 0.5 is used to determine exact amplitude values, i.e., a midpoint amplitude of components 204, 206 can be used to determine the amplitude of the pulse 318.
Figure lOd depicts a diagram 1012 including an exemplary embodiment of the invention illustrating code elements 1006m-1006p (collectively 1004d) mapped to discrete amplitude values 514a-514g within a discrete value layout. In the exemplary embodiment, an integer code element 1006m-1006p exists per pulse 512h-512k. It should be noted that Figures 10c and lOd present two different exemplary embodiments of methods for mapping codes 1004c, 1004d to achieve approximately the same amplitude values.
Figures 11a and 1 lb depict two exemplary embodiments of the invention illustrating methods of mapping pulse 310 positions to components 204 using floating-point values 1104a, 1104b.
Specifically, Figure 11a depicts a diagram 1102 including an exemplary embodiment illustrating each floating-point code element value 1106a-1106d (collectively 1104a) mapping a pulse 31 Oa-31 Od to a position (as shown). The positions to which pulses 310a-31 Od are mapped, are a relative fraction 1103a of the distance 1105a in time between the mimmum and maximum time values of each component 204a-204d.
Figure 1 lb depicts a diagram 1108 including an exemplary embodiment of the present invention illustrating a fractional part 1106e-l 106k of each floating-point code element value of the code 1104b mapping a pulse 310e-310k, respectively, to a position 1103b. The position 1103b is a fraction of the distance 1105b in time between the minimum and time values of the component 204e-204h specified by the non-fractional part 11 lOe-1110k of the floating-point code element values of the code 1104b.
For both of the exemplary floating-point code embodiments illustrated in diagrams 1102 and 1108, it is important to note that pulses 310a-310d, and 310e-310k, respectively, are positioned independently of one another.
In a manner similar to the two integer code exemplary embodiments illustrated in diagrams 1002 and 1008 of Figures 10a and 10b, diagrams 1102 and 1108 are component- dependent, and component-independent, respectively.
Specifically, the first floating-point code method of the exemplary embodiment of diagram 1102 of Figure 1 la is component-dependent. In the exemplary embodiment, diagram 1102 positions one pulse 310a-310d (and only one pulse 310a-d) per component 204a-204d.
The second floating-point code method illustrated in diagram 1108 of Figure 1 lb is component-independent. The component-independence of diagram 1108, in the exemplary embodiment, enables zero, one, or more pulses 310e-310k to be positioned per component 204e-204h. Figures lie and lid depict additional exemplary embodiments of the invention including diagrams 1112 and 1114, respectively, illustrating mapping pulses to components using floating-point values.
Specifically, Figure lie depicts diagram 1112 illustrating non-fractional portions 11101- 111 Oo of each floating-point code element value of the code 1104c mapping a pulse characteristic to components (including the first two components labeled 204, 206) within an amplitude value range layout of 314-316. Diagram 1112 also includes fractional portions 11061-1106o of each floating-point code element specifying the fractional difference between the minimum and maximum amplitude values of each mapped component 204, 206 used to determine the exact amplitude value for a pulse 3181-318o.
Figure lid depicts diagram 1114 illustrating non-fractional part 1110 of each floatingpoint code element value mapped to a discrete amplitude- 514a-514g per a discrete value layout. Diagram 1114 includes fractional portions 1106 of the floating-code element values of the code 1104d mapped to discrete pulse width values 1106p-l 106s per a discrete value layout (not shown) of pulses 512p-512s. Diagram 1114 also includes the sign (i.e., polarity) 1116 of each floating-point code element value mapped to a discrete pulse polarity 1116r (yielding inverted pulse 512r) per a discrete value layout (also not shown).
The exemplary code mapping embodiments shown in Figures 11a through lie can be applied at any component, sub-component, smaller component, even smaller component, ad infinitum, level defined within a value range layout 102.
Figures 12a-12d depict several exemplary least significant bit/most significant bit (LSB/MSB) embodiments that can also be used to map code elements to characteristic values within a layout. With LSB/MSB embodiments,,, a component and an offset value can be specified by subdividing the binary representation 1210 of, e.g., code element values 1206a- 1206g (collectively 1204a) into their most sigmficant bits 1212 and least significant bits
1214. In the exemplary embodiment, one subset of bits (e.g., a non-fractional portion 1216a- 1216g) can specify a component (e.g., components 204a-204d) within an amplitude value range layout 202a and the other subset of bits (e.g., a fractional portion 1218a-1218g) can specify an absolute position offset value or a relative position offset value used to determine the exact characteristic value within the specified component. Figure 12a depicts diagram 1202 including an exemplary embodiment of a LSB/MSB mapping approach. Diagram 1202 includes a decimal value 1208 of each code element value 1206a-1206g (collectively 1204a) as a 16-bit binary word 1210. the exemplary embodiment, the 16-bit binary word 1210 can be subdivided into its eight most significant bits (MSBs) 1212 and into its eight least significant bits (LSBs) 1214. In the exemplary embodiment, the binary value of the MSBs 1212 can be translated into a decimal value 1216 representing the component 204a-204d in which to place pulses 310a-310g. hi the exemplary embodiment, the binary value of the LSBs 1214 can be translated into a decimal value 1218. The decimal value 1218, can then in turn be divided by, e.g., 100, in order to produce a value representing a desired offset fraction. The desired offset fraction can be used to specify the exact position of a pulse 31 Oa-31 Og within the components 204a-204d specified by the translated MSBs 1216. The decimal translated MSB 1216 and decimal translated percentage LSB 1218 values of each code element 1206a-1206g can also be combined into translated code elements 1219a, including non-fractional portions 1216a-1218g and fractional portions 1218a-1218g. Translated code elements 1219a, in the exemplary embodiment, are equivalent to the code elements shown in diagram 1108 of Figure 1 lb.
Figure 12b depicts diagram 1220, similar to diagram 1202 of Figure 12a, except that diagram 1220 demonstrates a slightly more complex bit-group mapping approach. Specifically, diagram 1220 includes an exemplary embodiment illustrating first seven least significant bits (LSBs) 1214, last LSB 1215, decimal translated MSB 1216, and decimal percentage translated first 7 LSBs 1218 ("offset fraction 1218"). The first seven LSBs 1214 can be used to specify the offset fraction 1218 and the last LSB 1215 can be used to specify polarity, i.e., whether or not a pulse 310h-3 lOn is inverted. The translated bit patterns 1216, 1218 (including polarities 1215h, 12151, non-fractional portions 12816h-1216n, and fractional portions 1218h-1218n) can be shown combined into a translated code 1219b. The translated code 1219b is, in the exemplary embodiment, the same as the translated code shown in Figure 12a, except the first and fifth code element values 1215h, 1216h and 1218h, and 12151, 12161 and 12181, are negative to specify that the first and fifth pulses 31 Oh and 3101, respectively, are inverted. Figure 12c depicts diagram 1222 illustrating another exemplary LSB/MSB mapping embodiment. Specifically, Figure 12c in the exemplary embodiment translates a binary value of the MSBs 1212 into a translated decimal MSB value 1216 representing the component (the first two are labeled 204, 206) corresponding to a range of pulse amplitude values from ao 314 to amax 316. The binary value of the LSBs 1214 is translated into a translated decimal LSB value that is then divided by 100 in order to produce a translated decimal LSB percentage value 1218. The translated decimal LSB percentage value 1218 represents the desired offset fraction 1218o-1218u used to calculate the exact amplitude value of pulses 318o-318u, respectively, within the component (e.g., labeled 204, 206) specified by the translated decimal MSBs 1216o-1216u of translated code 1219c.
Figure 12d depicts diagram 1224 illustrating another exemplary embodiment of the invention. Diagram 1224 of Figure 12d is similar to diagram 1222 of Figure 12c, except that diagram 1224 demonstrates a slightly more complex bit-group mapping approach than diagram 1222 of Figure 12c. Specifically, in the exemplary embodiment of diagram 1224, the first seven LSBs 1214 are used to specify a percentage offset fraction 1218 (i.e., 1218v- 1218z, ...) and the last LSB 1215 is used to specify pulse polarity. More particularly, diagram 1224 of Figure 12d combines the translated bit patterns 1216, 1218 into a translated code 1219d. Translated code 1219d is nearly the same as the translated code 1219c shown in Figure 12c, expect that the first and fifth code element values 1216v, 1218v and 1216z, 1218z have a negative sign 1215v, 1215z specifying that the first and fifth pulses 310v and 310z, respectively, be inverted. The LSB/MSB or more complex bit-group mapping methods of the exemplary embodiments of the present invention can be employed using binary word sizes that are various word sizes such as, e.g., 8-bit, 16-bit, 32-bit, or whatever other size is deemed appropriate to encode data describing a pulse train. Given a particular word size, bits can be grouped as appropriate to encode the largest possible value for a given characteristic. For example, to encode offset fraction values with 2-digit precision, a group of 7 data bits can be used to represent integer values from 0 to 100. Similarly, if 1000 components exist in a layout, a group of 10 bits can be used to represent integer values from 1 to 1000.
The LSB MSB or more complex bit-group mapping methods of the exemplary embodiments of the present invention, can also be employed in combination with established absolute or relative offset values, as will be recognized by persons having ordinary skill in the relevant art. VI. Numerical Code Generation
After the characteristic layout and code mapping approach have been established, a code is generated using a numerical code generation technique. One such technique involves generation of a code including pseudorandom numbers. A pseudorandom code can be generated using, e.g., a computer's random number generator, one or more binary shift- registers) mapped to binary words, a chaotic code generation scheme, or another well-known technique.
Computer random number generator functions can in one embodiment employ a linear congruential generation (LCG) method, which generates an n-t random number, x„, from a previous random number, x„.j, using an equation of the general form as follows:
X = Ax + c (mod m ) n n - l where n identifies a given code in the generated code sequence, and the generated sequence is characterized by the multiplier A, the additive constant c, the modulus m, and an initial seed xo. These random number generator functions can be referred to as LCG( ,c,m,Λ:ø), which determines the sequence generated.
Another exemplary embodiment of another method that can be used as a computer random number generator is known as a Additive Lagged-Fibonacci Generator (ALFG) method. The approach can be described by an equation of the form:
Figure imgf000041_0001
where n identifies a given code in the generated code sequence, and j and k represent offsets to previously generated codes. The period of these generators is (2k-l)2"i and they are referred to as ALFG(l,k,m,xo), which determines the sequence generated.
Binary shift-register pseudo-random number generators can be implemented in many different ways, hi an exemplary embodiment, a linear feedback shift register as illustrated in Figure 13a, can be used. Figure 13a illustratively depicts a block diagram 1302 including an exemplary embodiment of an LCG linear feedback shift register, including exclusive OR logic gate 1304 having two inputs 1306, 1308 and one output 1310. Eight bit shift register 1314 (labeled bit 0 1314a through bit 7 1314h includes shift out output 1312 coupled to input 1306 of exclusive OR logic gate 1304. Bit 3 1314d is coupled to input 1308 of exclusive OR logic gate 1308, and output 1310 of exclusive OR logic gate 1304 is coupled as shown to bit 7 1314h.
The linear feedback shift register can be described by an equation of the form:
Figure imgf000042_0001
where n identifies a given code in the' generated code sequence, k is the number of bits in the shift register, α;- is the value of the t-th bit in the shift register. The sequence of bits that is generated depends on the initial shift-register state and which shift-register bit value, at, is fed back into the exclusive-OR device 1304 along with the shifted output 1312. The ALFG method can also be implemented using a shift register and a modulo adder device 1318, as shown in Figure 13b. Figure 13b depicts diagram 1316 including an eight-bit shift register having bit 0 1328a through bit 7 1328h. Diagram 1316 also includes addition modulo 2 device 1318 having two inputs 1320 (coupled to bit 7 1328h) and 1322 (coupled to bit 5 1328f), and an output 1324 which can be outputted and can be fed back into input 1326 of the ALFG shift register at bit 0 1328a.
The ALFG shift register can be described by an equation of the form: x = x . x x j (mod 2 ), / < k n n - j n - k J where n identifies a given code in the generated code sequence, andy and k represent the shift-register bits 1328h, 1328f fed into the modulo adder device 1318. In other exemplary embodiments of the present invention, many other different but related alternative approaches for generating pseudorandom code sequences can also be employed. For example, alternative embodiments include inversive congruential generators, explicit-inversive congruential generators, multiple recursive generators, and combined LCGs. Any of these or other similar traditional methods can be used to generate a pseudorandom code without departing from the scope of the invention, as will be apparent to those skilled in the relevant art.
In addition to the embodiments already described for generating pseudorandom codes, several other exemplary embodiments can be employed including, e.g., chaotic code generators and Optimal Golomb Ruler (OGR) code generators. Any of these, and other alternative methods can also be used to generate a pseudorandom code without departing from the spirit and scope of the invention as will be apparent to those skilled in the relevant art.
Vπ. Mapping Code Elements to Pulse Characteristic Values
After a code has been generated using a numerical code generation technique, the code element values are mapped to pulse characteristic values per the defined value range and/or discrete value layout. If a value range layout was employed, a code element value specifies a component, sub-component, or smaller component having some characteristic value range from a minimum characteristic value to a maximum characteristic value (as previously described). In such cases, an offset value, (i.e., a value amount to be added to the minimum characteristic value) may be used to specify an exact value within the value range of the component to which a given code element maps.
The following description provides a detailed example of the mapping of QC codes to a temporal value range layout such that the specified pulse train has certain desirable correlation properties. It should be noted that the described exemplary code element mapping approach is generally applicable using codes produced by any of the previously described code generation methods to value range and/or discrete value layouts of temporal or non- temporal pulse characteristic values, as will be recognized by persons skilled in the relevant arts. It should also be noted that the value range layout used in the example does not include non-allowable regions. fh
Figure 14 depicts the generation of QC codes 1402a-1402f and the mapping of the 5 code 1402e to a time layout 1404. The code generation equation, y(k) = i k2 mod 7 (1406), is consistent with the general form discussed earlier where a and β have both been assigned a value of 0, and/? has been assigned a value of 7. Six codes 1402a-1402f representing six channels are produced and displayed in matrix form where the darkened squares 1408 represent code element values. Thus for channels i = 1 to 6, the six codes 1402a-1402f presented are {0,1,4,2,2,4,1}, {0,2,1,4,4,1,2}, {0,3,5,6,6,5,3}, {0,4,2,1,1,2,4}, {0,5,6,3,3,6,5}, and {0,6,3,5,5,3,6}. The outlined region 1410 about the 5 code 1402e (i = 5) illustrates how the code 1402e maps to a time layout 1404 consisting of seven components 1412, or frames, where each frame 1412 is subdivided into seven sub-components 1414, or sub-frames. Each column k maps to a frame 1412 and the row y(k) highlighted for each column k represents the sub-frame 1414 y(k) in which to place a pulse. The bottom of the figure illustrates how the time layout repeats. As shown, the last frame 1412 of a preceding time layout 1416 is contiguous with the first frame 1412 of a current time layout 1418 and the last frame 1412 of the current time layout 1418 is contiguous with the first frame 1412 of the following time layout 1420. Thus, whenever the start of a time layout 1418 is shifted in time by some offset, a code wrapping effect occurs.
Figure 15 presents the autocorrelation properties of the 5th code 1402e where the time period layout 1404 shown in Figure 14 is correlated against other instances of the time layout 1404 that are incrementally shifting in time by offsets equal to multiples of the width of a sub-frame 1414. The figure illustrates how the wrapping effect takes place, where with each shift of the correlated time layout 1404, the last sub-frame 1414 is moved or 'wraps' to the front of the time layout 1404. The striped bars 1502 are used to identify the coincidences that occur when the time period is correlated against the shifted instances of itself. Whenever a darkened sub-frame appears behind a striped bar 1502, a coincidence 1504 occurs. Thus it can be seen that when correlated against itself with no time offset, a total of seven coincidences 1504 occur, while for other offsets the number of coincidences 1504 varies from zero to two. Figure 16a plots the number of coincidences 1504 versus the time offset (i.e., number of sub-frames 1414 shifted). Figure 16b plots the same data where the last half of the plot is moved to the front of the plot, which is allowable due to the wrapping effect described previously. This moving and re-plotting of the data produces what is commonly referred to as a 'thumbtack' plot.
Figure 17 presents the cross-correlation of the 5th code 1402e and the 6th code 1402f. In this figure a pulse train produced by mapped the 6th code 1402f is shown correlated against fh instances of the 5 code 1402e that are incrementally shifted in time by offsets equal to multiples of the width of a sub-frame 1414. The striped bars 1702 are used to identify coincidences 1704 that occur when the time period 1404 produced with the 6th code 1402f is correlated against the shifted instances of a time layout 1404 produced with the 5th code 1402e where coincidences 1704 can be seen whenever a darkened sub-frame 1414 appears behind a striped bar 1702. It should be noted that the instances of the 5th code 1402e shown in Figure 17 are the same as those shown in Figure 15. The cross-correlation of these two codes 1402e 1402f is depicted in Figure 18, which shows the maximum number of coincidences 1704 that occurs is three.
Figure 19 depicts the energy spectrum of a pulse train generated using a QC code like those presented in Figure 14. In the figure, spectral density 1902 is plotted versus frequency. For a given TM-UWB application, the maximum and/or average spectral density amplitude within some frequency bandwidth of interest maybe required to be within some limit.
VIII. Evaluating Codes Against Acceptance Criteria
The present invention determines whether or not a code is acceptable for a given TM- UWB application by evaluating the code against predefined acceptance criteria governing spectral properties, correlation properties, code length, number of code family members (i.e., channels), etc. Acceptance criteria pertaining to spectral properties may be established to limit the minimum, maximum or average spectral density at any frequency within some bandwidth of interest. Acceptance criteria pertaining to a correlation property may be established to limit the maximum number of autocorrelation or cross-correlation coincidences (e.g., such as described for the numerical code generation techniques) or limit the average number of autocorrelation or cross-correlation coincidences. Acceptance criteria may also be established to limit the maximum or average ratio of autocorrelation coincidences with some time offset to autocorrelation coincidences without some time offset (commonly referred to as the side lobe to main lobe ratio).
Acceptance criteria can also be established governing properties of a code that has been mapped to a layout of temporal and/or non-temporal characteristic values, which may include one or more non-allowable regions. Acceptance criteria may be established to limit the number of code elements within a code that map to non-allowable regions. For example, if a system requires RESET periods within frames, such periods could be defined as non- allowable regions within a time value range layout. When mapping a code to the layout, a characteristic value specified by a code element that resides within a non-allowable region (i.e., a RESET period) could disqualify a code. Alternatively, a limited number of code elements may be allowed to map to non-allowable regions thereby limiting adjustments that can be made to a code. For example, acceptance criteria may establish a maximum number of non-allowable characteristic values that can be adjusted to the closest values outside non- allowable regions, above which the code is considered unusable, or acceptance criteria may limit the number of pulses that are discarded (e.g., since their time positions are not allowed).
The following description provides a hypothetical example of the application of code acceptance criteria to produce pulse trains that accommodate a given TM-UWB application's requirements, hi one exemplary embodiment of the invention, a family of codes to be used by a frame-based pulse transmission system that transmits at most one pulse per one-hundred nanosecond (100 ns) frame must meet the following eight acceptance criteria to accommodate radio application requirements: 1. The code family must have at least ten members.
2. The number of pulses within each pulse train must be at least 80.
3. The number of code elements within each code cannot exceed 102.
4. The maximum number of autocorrelation coincidences for some time shift cannot exceed two. 5. The maximum number of cross-correlation coincidences between any two codes
(i.e., channels) cannot exceed four.
6. The average number of cross-correlation coincidences must be less than two.
7. Peak spectral density between 1 MHz and 3 GHz frequencies must be less than 50 microwatts per hertz (μW/Hz). 8. Pulses cannot reside within the last ten percent ( 10%) of frames .
To meet correlation-related acceptance criteria, the QC numerical code generation technique is employed because it guarantees a maximum number of autocorrelation coincidences of two (per criteria #4) and a maximum number of cross-correlation coincidences of four (per criteria #5). The prime number eighty-three (83) is selected for input into the QC code generation equation to provide a family of codes with a number of members that is at least 10 (per criteria #1) where each code has a number of code elements that is at least eighty (per criteria #2) and that does not exceed 102 (per criteria #3). Note: As described previously, the QC numerical code generation method requires input of a prime number, ?, and produces a family oϊp-1 codes of length/?. A family of eighty-two (82) codes, each having 83 code elements, is produced using the QC code generation technique. The average number of cross-correlation coincidences is determined for each code against all other members of the code family. Note: Although the QC numerical code generation method guarantees the maximum number of cross-correlation coincidences for any two codes is four or less, there is no guaranteed average number of coincidences. Twenty-two (22) of the 82 codes fail criteria #6 and are discarded. The energy spectrum is calculated for the remaining sixty (60) codes. Twelve of the 60 codes fail criteria #7 and are discarded leaving forty-eight (48) codes that passed the first seven acceptance criteria.
A time value range layout of 83 100 ns frames, subdivided into 83 sub-frames each, is defined where the last ten percent of each frame is defined as a non-allowable region (per criteria #8). The 48 remaining codes are mapped to the defined time layout, where code elements that map to non-allowable regions are ignored (i.e., pulses are not placed). Of the 48 codes, seven codes do not contain code elements that map to non-allowable regions, five codes contain code elements that map to no more than three non-allowable regions, and the remaining thirty-six (36) codes contain code elements that map to four or more non-allowable regions. The 36 codes containing code elements that map to four or more non-allowable regions are discarded since the pulse trains they define would have less than 80 pulses and would, therefore, fail criteria #8. The remaining twelve codes are selected since they pass all acceptance criteria.
A final acceptance "test" could also be conducted to determine the channelization quality of TM-UWB radios employing the selected codes. Twelve radios using the selected codes could be simultaneously operated within a test environment that closely emulates the expected operational environment. Acceptance criteria used for the test might include a minimum signal-to-noise ratio (SNR), minimum bit error rate (BER), etc. Based on test results, the ability of the codes to meet the channelization requirements of the radio application could be determined.
Acceptance criteria may also be applied to a subset of the code elements making up a code. In particular, the average spectral density of a code subset may differ significantly from that of the entire code. For certain applications acceptance criteria pertaining to spectral properties may need to be evaluated against any subset M of a code of length N (e.g., any 10 consecutive code elements of an 83 length code). For example, the seventh acceptance criteria in the previous example could have been evaluated against all possible subsets often pulses (i.e., code elements).
Although the example above pertains to pulse time positioning, someone skilled in the art could similarly apply acceptance criteria to non-temporal characteristics without departing from the scope of the invention.
IX. Non-employment of Unacceptable Codes
If a code does not meet predefined acceptance criteria, the present invention does not employ the code to specify a pulse train, effectively discarding the code, for use with a given application. The method of the present invention of evaluating codes against predefined acceptance criteria can be applied to multiple codes to determine a family of codes that meet requirements of an application.
According to the present invention, characteristics of pulses within a pulse train used by an impulse transmission system are specified by generating one or more codes having one or more code element values. For example, as explained above, floating point code elements may be used to specify both pulse amplitude and pulse width. Similarly, integer code elements can specify multiple pulse characteristics using a bit grouping approach as described above. As such, each code element value could have at least two value components that are associated with one or more pulse characteristics. Furthermore, value components can include two or more value sub-components, which can include further subdivisions to smaller components.
According to the present invention, at least one fixed or non-fixed temporal and/or non-temporal value range and/or discrete value layout is specified, which may include one or more non-allowable regions. The layout approaches specified above allow code element value components to specify value ranges and/or discrete values of pulse characteristics. As described previously, value ranges can have the same or different sizes, and discrete values may be evenly distributed or not. When value components are mapped to a value range layout, an established offset value can be used to specify the precise pulse characteristic value within the value range component to which a code element is mapped. An absolute offset value may be specified defining a fixed value from the minimum value of a component to which a code element is mapped. Alternatively, a relative offset value can be specified defining a fraction of the difference between the minimum and maximum value of a component to which a code element is mapped. Furthermore, the relative offset value can be specified using the fractional part of a floating-point component value.
According to the present invention, one or more non-allowable regions can be defined within fixed and non-fixed temporal and non-temporal pulse characteristic value range layouts, in. a manner described above. For example, as explained above, a non-allowable region maybe defined to prevent generation of unsuitable code elements that specify pulse positions that violate a minimum pulse proximity limit required for system implementation purposes. Codes are then generated by the present invention using code generation techniques that do not permit code element values to map to pulse characteristic values residing in defined non-allowable regions. In one exemplary embodiment, a temporal pulse characteristic may be a pulse position in time. A non-temporal pulse characteristic may for example be a pulse amplitude, width, polarity, and type.
According to the methods of the present invention, a characteristic value layout can be subdivided into components, which can be subdivided into subcomponents, which can be further subdivided, and so on. Components, subcomponents, and smaller components can be of the same size or of different sizes. Defined non-allowable regions may fully or partially include (or overlay) one or more components, subcomponents, or smaller components.
As previously described, a non-allowable region can be defined in many different ways. A non-allowable region may be defined based on a minimum value or maximum value or a component, subcomponent, or smaller component within a characteristic value range layout. Alternatively, a non-allowable region may be defined based on minimum and maximum values within a characteristic value range layout without regard to component minimum and maximum values.
Non-allowable regions may also be defined based on characteristic values of one or more pulses, such as one or more preceding pulses, one or more succeeding pulses, or any other combination of other pulses. Such relative non-allowable regions may establish a minimum difference or maximum value difference from one or more pulse characteristic values or may define non-allowable characteristic values within a minimum and maximum value difference from one or more pulse characteristic values. Alternatively, similar non- allowable regions may be defined based on a minimum, maximum, average, or any other statistical quantity value calculated from the characteristic values of two or more pulses.
According to other methods described for the present invention, non-allowable regions may be conditionally enforced when generating a code. Some of the embodiments include enforcement after some number of other code element values map to a non-allowable ' region or some percentage of code elements map to a non-allowable region.
One or more codes having predefined properties are generated using at least one code generation method. Each code or subset of each code can be evaluated against predefined acceptance criteria, and only those codes that meet the acceptance criteria employed.
A code may be a sequence of symbols, e.g., integers, or a sequence of temporal and/or characteristic values, e.g., time positions in nanoseconds. Acceptance criteria can be applied to the code or to the code as mapped to characteristic values.
As described previously, acceptance criteria may limit the number of temporal characteristic values or non-temporal characteristic values within at least one non-allowable region, where a non-allowable region may be relative to at least one characteristic value of at least one pulse.
According to the present invention, acceptance criteria may pertain to a spectral property. Such acceptance criteria may limit the minimum, maximum, or average spectral density at any frequency within some bandwidth of interest.
Acceptance criteria may pertain to an autocorrelation property. Acceptance criteria may limit the maximum or average number of pulse coincidences of a pulse train when correlated against an instance of itself that is offset in time. Similarly, acceptance criteria may limit the maximum or average ratio of pulse coincidences when correlated against an instance of itself that is offset in time to pulse coincidences when correlated against an instance of itself that is not offset in time.
Acceptance criteria may pertain to a cross-correlation property. Acceptance criteria may limit the maximum or average number of pulse coincidences when correlated against another pulse train that is offset in time. Acceptance criteria may require a code's length to be within a minimum length and a maximum length.
Acceptance criteria may require that a code family have a minimum number of members.
X. Exemplary Transceiver Implementation A. Transmitter
An exemplary embodiment of an impulse radio transmitter 2002 of an impulse radio communication system having one subcarrier channel will now be described with reference to Fig. 20. The transmitter 2002 comprises a time base 2004 that generates a periodic timing signal 2007. The time base 2004 typically comprises a voltage controlled oscillator (VCO), or the like, having a high timing accuracy and low jitter, on the order of picoseconds (ps). The voltage control to adjust the VCO center frequency is set at calibration to the desired center frequency used to define the transmitter's nominal pulse repetition rate. The periodic timing signal 2007 is supplied to a precision timing generator 2008.
The precision timing generator 2008 supplies synchronizing signals 2010 to the code source 2012 and utilizes the code source output 2014 together with an internally generated subcarrier signal (which is optional) and an information signal 2017 to generate a modulated, coded timing signal 2018. The code source 2012 comprises a storage device such as a random access memory
(RAM), read only memory (ROM), or the like, for storing suitable codes and for outputting the codes as a code signal 2014. Alternatively, maximum length shift registers or other computational means can be used to generate the codes.
An information source 2020 supplies the information signal 2017 to the precision timing generator 2008. The information signal 2017 can be any type of intelligence, including digital bits representing voice, data, imagery, or the like, analog signals, or complex signals. A pulse generator 2022 uses the modulated, coded timing signal 2018 as a trigger to generate output pulses. The output pulses are sent to a transmit antenna 2024 via a transmission line 2027 coupled thereto. The output pulses are converted into propagating electromagnetic pulses by the transmit antenna 2024. In the present embodiment, the electromagnetic pulses are called the emitted signal, and propagate to an impulse radio receiver 2102, such as shown in Fig. 21, through a propagation medium, such as air, in a radio frequency embodiment. In a preferred embodiment, the emitted signal is wide-band or ultrawide-band, approaching a monocycle pulse as in Fig. 3 A. However, the emitted signal can be spectrally modified by filtering of the pulses. This filtering will usually cause each monocycle pulse to have more zero crossings (more cycles) in the time domain. In this case, the impulse radio receiver can use a similar waveform as the template signal in the cross correlator for efficient conversion. B. Receiver An exemplary embodiment of an impulse radio receiver 2102 (hereinafter called the receiver) for the impulse radio communication system is now described with reference to Fig. 21. More specifically, the system illustrated in Fig. 21 is for reception of digital data wherein one or more pulses are transmitted for each data bit.
The receiver 2102 comprises a receive antenna 2104 for receiving a propagated impulse radio signal 2107. A received signal 2108 from the receive antenna 2104 is coupled to a cross correlator or sampler 2110 to produce a baseband output 2112. The cross correlator or sampler 2110 includes multiply and integrate functions together with any necessary filters to optimize signal to noise ratio.
The receiver 2102 also includes a precision timing generator 2114, which receives a periodic timing signal 2117 from a receiver time base 2118. This time base 2118 is adjustable and controllable in time, frequency, or phase, as required by the lock loop in order to lock on the received signal 2108. The precision timing generator 2114 provides synchronizing signals 2120 to the code source 2122 and receives a code control signal 2124 from the code source 2122. The precision timing generator 2114 utilizes the periodic timing signal 2117 and code control signal 2124 to produce a coded timing signal 2127. The template generator 2128 is triggered by this coded timing signal 2127 and produces a train of template signal pulses 2130 ideally having waveforms substantially equivalent to each pulse of the received signal 2108. The code for receiving a given signal is the same code utilized by the originating transmitter 2102 to generate the propagated signal 2107. Thus, the timing of the template pulse train 2130 matches the timing of the received signal pulse train 2108, allowing the received signal 2108 to be synchronously sampled in the correlator 2110. The correlator 2110 ideally comprises a multiplier followed by a short term integrator to sum the multiplier product over the pulse interval.
Further examples and details of correlation and sampling processes can be found in commonly owned patents 4,641,317, 4,743,906, 4,813,057, and 4,979,186, which are incorporated herein by reference, and commonly owned and co-pending application
09/356,384, filed July 16, 1999, titled: "Baseband Signal Converter Device for a Wideband
Impulse Radio Receiver," which is incorporated herein by reference in its entirety.
The output of the correlator 2110, also called a baseband signal 2112, is coupled to a subcarrier demodulator 2132, which demodulates the subcarrier information signal from the subcarrier. The purpose of the optional subcarrier process, when used, is to move the information signal away from DC (zero frequency) to improve immunity to low frequency noise and offsets. The output of the subcarrier demodulator 2132 is then filtered or integrated in a pulse summation stage 2134. The pulse summation stage produces an output representative of the sum of a number of pulse signals comprising a single data bit. The output of the pulse summation stage 2134 is then compared with a nominal zero (or reference) signal output in a detector stage 2138 to determine an output signal 2139 representing an estimate of the original information signal 2017.
The baseband signal 2112 is also input to a lowpass filter 2142 (also referred to as lock loop filter 2142). A control loop comprising the lowpass filter 2142, time base 2118, precision timing generator 2114, template generator 2128, and correlator 2110 is used to generate a filtered eπor signal 2144. The filtered error signal 2144 provides adjustments to the adjustable time base 2118 to time position the periodic timing signal 2127 in relation to the position of the received signal 2108.
In a transceiver embodiment, substantial economy can be achieved by sharing part or all of several of the functions of the transmitter 2002 and receiver 2102. Some of these include the time base 2118, precision timing generator 2114, code source 2122, antenna 2104, and the like. XI. Conclusion
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

Claims

WHAT IS CLAIMED:
1. A method for specifying at least one characteristic of at least one pulse, comprising:
generating at least one code having at least one code element value, said at least one code element value having at least two value components; and
associating said at least two value components with at least one pulse characteristic.
2. The method according to claim 1, wherein each of said at least two value components includes at least two value sub-components.
3. The method according to claim 2, wherein each of said value sub-components is further subdivided.
4. The method according to claim 1, further comprising:
laying out said one or more pulse characteristics according to at least one layout parameter.
5. The method according to claim 4, wherein said at least one layout parameter specifies at least one of:
a range of pulse characteristic values; and
a discrete pulse characteristic value.
6. The method according to claim 5, wherein said range of pulse characteristic values is subdivided into at least one of:
components;
sub-components of said components;
smaller components of said sub-components; and
even smaller components of said smaller components.
7. The method according to claim 6, wherein each of said components is at least one of:
a same size, and
a different size than an other of said components;
each of said sub-components is at least one of:
a same size, and
a different size than an other of said sub-components;
each of said smaller components of said sub-components is at least one of:
a same size, and
a different size than an other of said smaller components of said subcomponents; and
each of said even smaller components of said smaller components is at least one of: a same size, and
a different size than an other of said even smaller components of said smaller components.
8. The method according to claim 1, wherein said at least one pulse characteristic include at least one of:
a pulse position characteristic;
a pulse width characteristic;
a pulse polarity characteristic;
a pulse amplitude characteristic; and
a pulse type characteristic.
9. The method according to claim 8, wherein said at least one pulse characteristic corresponds to at least one of:
a component;
a sub-component of said component;
a smaller component of said sub-component; and
an even smaller component of said smaller component;
within a value range layout.
10. The method according to claim 8, wherein said at least one pulse characteristic corresponds to at least one discrete value within a discrete value layout.
11. The method according to claim 8, wherein said at least one pulse characteristic corresponds to at least one of:
a component;
a sub-component of said component;
a smaller component of said sub-component;
an even smaller component of said smaller component; and
at least one discrete value within a combined value range and discrete value layout.
12. The method according to claim 1, wherein said at least one code element value comprises one of:
an integer indicating how said pulse is mapped to said at least one pulse characteristic; and
a floating-point number indicating how said pulse is mapped to said at least one pulse characteristic.
13. The method according to claim 1, wherein said at least one code element value indicates at least one of:
a component;
a sub-component of said component;
a smaller component of said sub-component; and
an even smaller component of said smaller component.
14. The method according to claim 13, wherein an exact value of said at least one pulse characteristic within at least one of:
a component;
a sub-component of said component;
a smaller component of said sub-component; and
an even smaller component of said smaller component;
indicated by said at least one code element value is deteπnined using an established offset value.
15. The method according to claim 14, wherein said established offset value is an absolute offset value specifying a characteristic value equal to a fixed value from a minimum value of at least one of:
said component; and
said sub-component of said component.
16. The method according to claim 14, wherein said established offset value is a relative offset value specifying a characteristic value equal to a fraction of the difference between a minimum value and a maximum value of at least one of:
said component; and
said sub-component of said component.
17. The method according to claim 12, wherein said fractional part of said floating-point number specifies a relative offset value specifying a characteristic value equal to a fraction of the difference between a minimum value and a maximum value of at least one of:
said component, and
said sub-component of said component.
18. The method according to claim 1 , wherein a binary representation of said at least one code element value encodes two or more data values, wherein groups of binary bits are translated into decimal values specifying pulse characteristics.
19. The method according to claim 1, further comprising:
defining at least one non-allowable region within at least one pulse characteristic value range layout.
20. The method according to claim 19, wherein generating at least one code does not permit at least one code element value to map to at least one pulse characteristic value residing in said at least one non-allowable region.
21. The method according to claim 1, wherein generating at least one code satisfies predefined criteria.
22. An impulse transmission system comprising:
a Time Modulated Ultra Wideband Transmitter;
a Time Modulated Ultra Wideband Receiver; and
said Time Modulated Ultra Wideband Transmitter and said Time Modulated Ultra Wideband Receiver employ at least one code having at least one code element value, said at least one code element value having at least two value components; and
at least two of said value components are associated with at least one pulse characteristic.
23. A method for generating at least one code indicating allowable characteristics of at least one pulse, comprising:
defining at least one non-allowable region within at least one pulse characteristic value range layout; and
generating at least one code which does not permit at least one code element value to map to at least one pulse characteristic value residing in said at least one non- allowable region.
24. The method of claim 23 , wherein the characteristic of said pulse corresponds to one of:
a pulse position in time;
a pulse width characteristic; and
a pulse amplitude characteristic.
25. The method of claim 23, wherein said characteristic value layout is subdivided into at least two components of the same size or of different sizes.
26. The method of claim 25, wherein a component is subdivided into at least two subcomponents of the same size or of different sizes.
27. The method of claim 26, wherein said subcomponent is further subdivided into at least two smaller components of the same size or of different sizes, and wherein said smaller components can be further subdivided.
28. The method of claim 23 , wherein a said non-allowable region fully or partially includes any one of:
at least one component;
at least one subcomponent; and
at least one smaller component.
29. The method of claim 23, wherein said non-allowable region is defined based on any one of:
minimum values; and
maximum values,
of any one of:
a component;
a subcomponent; and
any smaller component,
within said characteristic value range layout.
30. The method of claim 23, wherein said non-allowable region is defined based on minimum and maximum values within said characteristic value range layout.
31. The method of claim 23, wherein said non-allowable region is defined based on said at least one characteristic value of at least one pulse.
32. The method of claim 30, wherein said non-allowable region establishes any one of:
a minimum value difference; and
a maximum value difference.
33. The method of claim 23, wherein said non-allowable region is defined based on any one of:
a minimum value;
a maximum value;
an average value;
a variance; and
any other statistical quantity value,
said value being calculated from the characteristic values of at least two said pulses.
34. The method of claim 30, wherein said non-allowable region is bounded by a minimum and maximum value difference.
35. The method of claim 23, wherein said pulse characteristic value range layout specifies any one of:
fixed characteristic values; and
non-fixed characteristic values.
36. The method of claim 23, wherein whether said pulse is prohibited from being placed in said non-allowable region is enforced conditionally.
37. The method of claim 36, wherein whether said pulse is prohibited from being placed in said non-allowable region is enforced based on a subset of said code elements within said code.
38. The method of claim 36, wherein whether said pulse is prohibited from being placed in said non-allowable region is enforced after some subset of said code element values map to characteristic values within said non-allowable region.
39. The method according to claim 23, wherein generating at least one code satisfies predefined criteria.
40. The method according to claim 23, further comprising:
associating at least two value components of said at least one code element value with at least one pulse characteristic.
41. An impulse transmission system comprising:
a Time Modulated Ultra Wideband Transmitter;
a Time Modulated Ultra Wideband Receiver; and
said Time Modulated Ultra Wideband Transmitter and said Time Modulated
Ultra Wideband Receiver employ at least one code indicating at least one allowable characteristic of at least one pulse, wherein said non-allowable region within said pulse characteristic value range layout is defined, and at least one code element value of said code is not permitted to map to at least one pulse characteristic value residing in said at least one non-allowable region.
42. A method for coding at least one characteristic of at least one pulse, comprising the steps of:
specifying at least one of a temporal characteristic and a non-temporal pulse characteristic in accordance with at least one of a temporal characteristic value layout and a non-temporal characteristic value layout having at least one of an allowable region and a non- allowable region;
generating a code having predefined properties; and
generating a pulse train by mapping said code to the specified characteristic value layouts, wherein said code or a subset of said code satisfies predefined criteria.
43. The method of claim 42, wherein said code is a sequence of symbols.
44. The method of claim 42, wherein said code is a sequence of temporal and/or non-temporal characteristic values.
45. The method of claim 42, wherein said predefined criteria limit the number of temporal characteristic values or non-temporal characteristic values within at least one non- allowable region.
46. The method of claim 45, wherein said non-allowable region is relative to at least one characteristic value of at least one pulse.
47. The method of claim 42, wherein said predefined criteria pertain to a spectral property.
48. The method of claim 47, wherein said spectral property limits the minimum spectral density at any frequency within some bandwidth of interest.
49. The method of claim 47, wherein said spectral property limits the maximum spectral density at any frequency within some bandwidth of interest.
50. The method of claim 47, wherein said spectral property limits the average spectral density at any frequency within some bandwidth of interest.
51. The method of claim 42, wherein said predefined criteria pertain to a coπelation property.
52. The method of claim 51 , wherein said correlation property limits the maximum number of pulse coincidences when coπelated against an instance of itself that is offset in time.
53. The method of claim 51 , wherein said coπelation property limits the average number of pulse coincidences when coπelated against an instance of itself that is offset in time.
54. The method of claim 51, wherein said coπelation property limits the maximum ratio of pulse coincidences when coπelated against an instance of itself that is offset in time to pulse coincidences when coπelated against an instance of itself that is not offset in time.
55. The method of claim 51, wherein said coπelation property limits the average ratio of pulse coincidences when coπelated against an instance of itself that is offset in time to pulse coincidences when coπelated against an instance of itself that is not offset in time.
56. The method of claim 51, wherein said coπelation property limits the maximum number of pulse coincidences when coπelated against another pulse train that is offset in time.
57. The method of claim 51 , wherein said coπelation property limits the average number of pulse coincidences when coπelated against another pulse train that is or is not offset in time.
58. The method of claim 42, wherein said predefined criteria require the length of a code to be within a minimum length and a maximum length.
59. The method of claim 42, wherein said predefined criteria require a code family to have a minimum number of members.
60. The method according to claim 42, wherein mapping said code comprises:
associating at least two value components of at least one code element value of said code with at least one pulse characteristic.
61. An impulse transmission system comprising:
a Time Modulated Ultra Wideband Transmitter;
a Time Modulated Ultra Wideband Receiver; and
said Time Modulated Ultra Wideband Transmitter and said Time Modulated
Ultra Wideband Receiver employ a code that specifies at least one of a temporal characteristic in accordance with at least one temporal characteristic value layout and a non- temporal pulse characteristic in accordance with a non-temporal characteristic value layout, wherein said temporal characteristic value layout and said non-temporal characteristic value layout have at least one of an allowable region and a non-allowable region, and said code or a subset of said code satisfies predefined criteria.
PCT/US2001/018795 2000-06-12 2001-06-12 Method for specifying pulse characteristics WO2001097477A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001269784A AU2001269784A1 (en) 2000-06-12 2001-06-12 Method for specifying pulse characteristics using codes

Applications Claiming Priority (20)

Application Number Priority Date Filing Date Title
US59224900A 2000-06-12 2000-06-12
US59224800A 2000-06-12 2000-06-12
US59229000A 2000-06-12 2000-06-12
US09/592,289 2000-06-12
US09/592,288 US6636566B1 (en) 2000-06-12 2000-06-12 Method and apparatus for specifying pulse characteristics using a code that satisfies predefined criteria
US09/592,290 2000-06-12
US09/592,249 2000-06-12
US09/592,289 US6636567B1 (en) 2000-06-12 2000-06-12 Method of specifying non-allowable pulse characteristics
US09/592,248 2000-06-12
US09/592,288 2000-06-12
US63787800A 2000-08-15 2000-08-15
US63815400A 2000-08-15 2000-08-15
US63815300A 2000-08-15 2000-08-15
US63815200A 2000-08-15 2000-08-15
US09/638,154 2000-08-15
US09/638,152 2000-08-15
US09/638,153 2000-08-15
US09/637,878 2000-08-15
US09/638,150 US6959032B1 (en) 2000-06-12 2000-08-15 Method and apparatus for positioning pulses in time
US09/638,150 2000-08-15

Publications (2)

Publication Number Publication Date
WO2001097477A2 true WO2001097477A2 (en) 2001-12-20
WO2001097477A3 WO2001097477A3 (en) 2002-04-18

Family

ID=27581292

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/018795 WO2001097477A2 (en) 2000-06-12 2001-06-12 Method for specifying pulse characteristics

Country Status (2)

Country Link
AU (1) AU2001269784A1 (en)
WO (1) WO2001097477A2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1330031A1 (en) * 2002-01-21 2003-07-23 Mitsubishi Electric Information Technology Centre Europe B.V. Generation of a sequence of pulse trains
US7944978B2 (en) 2007-10-29 2011-05-17 Lightwaves Systems, Inc. High bandwidth data transport system
US7961705B2 (en) 2003-04-30 2011-06-14 Lightwaves Systems, Inc. High bandwidth data transport system
US7983349B2 (en) 2001-03-20 2011-07-19 Lightwaves Systems, Inc. High bandwidth data transport system
US8085813B2 (en) 1999-10-28 2011-12-27 Lightwaves Systems, Inc. Method for routing data packets using an IP address based on geo position
US8766773B2 (en) 2001-03-20 2014-07-01 Lightwaves Systems, Inc. Ultra wideband radio frequency identification system, method, and apparatus
US9710497B2 (en) 1999-10-28 2017-07-18 Lightwaves Systems, Inc. Method of transmitting data including a structured linear database
US9714278B2 (en) 2012-02-22 2017-07-25 The Trustees Of The University Of Pennsylvania Use of ICOS-based CARs to enhance antitumor activity and CAR persistence
US9900734B2 (en) 1999-10-28 2018-02-20 Lightwaves Systems, Inc. Method for routing data packets using an IP address based on geo position

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5610907A (en) * 1994-07-29 1997-03-11 Barrett; Terence W. Ultrafast time hopping CDMA-RF communications: code-as-carrier, multichannel operation, high data rate operation and data rate on demand
US5687169A (en) * 1995-04-27 1997-11-11 Time Domain Systems, Inc. Full duplex ultrawide-band communication system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5610907A (en) * 1994-07-29 1997-03-11 Barrett; Terence W. Ultrafast time hopping CDMA-RF communications: code-as-carrier, multichannel operation, high data rate operation and data rate on demand
US5687169A (en) * 1995-04-27 1997-11-11 Time Domain Systems, Inc. Full duplex ultrawide-band communication system and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WIN M Z ET AL: "ULTRA-WIDE BANDWIDTH TIME-HOPPING SPREAD-SPECTRUM IMPULSE RADIO FORWIRELESS MULTIPLE-ACCESS COMMUNICATIONS" IEEE TRANSACTIONS ON COMMUNICATIONS, IEEE INC. NEW YORK, US, vol. 48, no. 4, April 2000 (2000-04), pages 679-691, XP000932191 ISSN: 0090-6778 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9900734B2 (en) 1999-10-28 2018-02-20 Lightwaves Systems, Inc. Method for routing data packets using an IP address based on geo position
US8085813B2 (en) 1999-10-28 2011-12-27 Lightwaves Systems, Inc. Method for routing data packets using an IP address based on geo position
US9710497B2 (en) 1999-10-28 2017-07-18 Lightwaves Systems, Inc. Method of transmitting data including a structured linear database
US9119143B2 (en) 1999-10-28 2015-08-25 Lightwaves Systems, Inc. Method for routing data packets using an IP address based on geo position
US8681789B2 (en) 1999-10-28 2014-03-25 Lightwaves Systems, Inc. Method for routing data packets using an IP address based on geo position
US8766773B2 (en) 2001-03-20 2014-07-01 Lightwaves Systems, Inc. Ultra wideband radio frequency identification system, method, and apparatus
US7983349B2 (en) 2001-03-20 2011-07-19 Lightwaves Systems, Inc. High bandwidth data transport system
US7209521B2 (en) 2002-01-21 2007-04-24 Mitsubishi Denki Kabushiki Kaisha Generation of a sequence of pulse trains
EP1330031A1 (en) * 2002-01-21 2003-07-23 Mitsubishi Electric Information Technology Centre Europe B.V. Generation of a sequence of pulse trains
US7961705B2 (en) 2003-04-30 2011-06-14 Lightwaves Systems, Inc. High bandwidth data transport system
US8451879B2 (en) 2007-10-29 2013-05-28 Lightwaves Systems, Inc. High bandwidth data transport system
US8345778B2 (en) 2007-10-29 2013-01-01 Lightwaves Systems, Inc. High bandwidth data transport system
US7944978B2 (en) 2007-10-29 2011-05-17 Lightwaves Systems, Inc. High bandwidth data transport system
US9714278B2 (en) 2012-02-22 2017-07-25 The Trustees Of The University Of Pennsylvania Use of ICOS-based CARs to enhance antitumor activity and CAR persistence

Also Published As

Publication number Publication date
WO2001097477A3 (en) 2002-04-18
AU2001269784A1 (en) 2001-12-24

Similar Documents

Publication Publication Date Title
US6636566B1 (en) Method and apparatus for specifying pulse characteristics using a code that satisfies predefined criteria
US6959032B1 (en) Method and apparatus for positioning pulses in time
US6671310B1 (en) Method and apparatus for positioning pulses over time by applying time-hopping codes having pre-defined characteristics
US6636567B1 (en) Method of specifying non-allowable pulse characteristics
US7145954B1 (en) Method and apparatus for mapping pulses to a non-fixed layout
US7711026B2 (en) Method and apparatus for applying codes having pre-defined properties
US6778603B1 (en) Method and apparatus for generating a pulse train with specifiable spectral response characteristics
US6912240B2 (en) Method and apparatus for generating a large number of codes having desirable correlation properties
Ghavami et al. A novel UWB pulse shape modulation system
US5960031A (en) Ultrawide-band communication system and method
US6937639B2 (en) System and method for positioning pulses in time using a code that provides spectral shaping
US7675960B2 (en) Method for generating communication signal sequences having desirable correlation properties and system for using same
EP1486051A1 (en) M-ary orthagonal coded communications method and system
US7248659B2 (en) Method for adjusting acquisition speed in a wireless network
US7184719B2 (en) Method for operating multiple overlapping wireless networks
WO2001097477A2 (en) Method for specifying pulse characteristics
US20030043934A1 (en) System and method for applying delay codes to pulse train signals
US7280601B2 (en) Method for operating multiple overlapping wireless networks
WO2001097395A2 (en) A method and apparatus for applying codes having predefined properties
KR100927641B1 (en) M-Mine Orthogonal Modulation Ultra-Wideband Communication with Narrowband Interference Suppression
Lee et al. Power spectral density of Transmit Reference Doublet trains and Reference Sharing Doublet trains in ultra wideband systems

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP