www.spawar.navy.mil
( 1 of 1 )
United States Patent
7,623,410
Rubin
November 24, 2009
Hard real-time adaptive waveform synthesis and evolution
Abstract
A method for hard real-time adaptive wave modulation, comprising: populating a case base with waveform pairs, each waveform pair comprising a primary waveform, and a secondary waveform, wherein the primary waveform induces the secondary waveform; synthesizing a known target waveform s(t) by selecting waveform pairs from the case base such that the expression .parallel.s(t)-g.parallel..sub.2 is minimized, where g is the secondary waveform; and mutating the primary waveforms for each waveform pair based on a normal distribution until .parallel.s(t)-g'.parallel..sub.2<.parallel.s(t)-g.parallel..sub.2 where g' is a new secondary waveform induced by the mutated primary waveform.
Inventors:
Rubin; Stuart Harvey (San Diego, CA)
Assignee:
United States of American as represented by the Secretary of the Navy (Washington, DC)
Appl. No.:
11/691,080
Filed:
March 26, 2007
Current U.S. Class:
367/7
Current International Class:
G03B 42/06 (20060101)
Field of Search:
367/7,92,95,137
References Cited [Referenced By]
U.S. Patent Documents
4603408
July 1986
Singhal et al.
2007/0274152
November 2007
Rees
Primary Examiner: Berhane; Adolf Attorney, Agent or Firm: Eppele; Kyle Anderson; J. Eric
Government Interests
FEDERALLY-SPONSORED RESEARCH AND DEVELOPMENT This invention was developed with federal funds and is assigned to the United States Government. Licensing and technical inquiries may be directed to the Office of Patent Counsel, Space and Naval Warfare Systems Center, San Diego, Code 20012, San Diego, Calif., 92152; telephone (619) 553-3001, facsimile (619) 553-3821, email: T2@spawar.navy.mil. Reference Navy Case No. 96128.
Claims
I claim:1. A method for hard real-time adaptive wave modulation, comprising the following steps: populating a case base with waveform pairs, each waveform pair comprising a primary waveform, and a secondary waveform, wherein the primary waveform induces the secondary waveform; synthesizing a known target waveform s(t) by selecting waveform pairs from the case base such that the expression .parallel.s(t)-g.parallel..sub.2 is minimized, where g is the secondary waveform; and mutating the primary waveforms for each waveform pair based on a normal distribution until .parallel.s(t)-g'.parallel..sub.2<.parallel.s(t)-g.parallel..sub.2 where g' is a new secondary waveform induced by the mutated primary waveform. 2. The method of claim 1, wherein the step of populating the case base further comprises: a. inducing the secondary waveform by randomly generating a continuous primary waveform; b. generating a normally distributed mutation of the primary waveform and repeating steps a-b, if the primary waveform is already in the case base; c. if the primary waveform is not in the case base, determining whether .parallel.s(t)-g.parallel..sub.2.gtoreq..delta. where .delta. is an experimentally obtained threshold constant; d. repeating steps a-d if .parallel.s(t)-g.parallel..sub.2.gtoreq..delta.; e. if .parallel.s(t)-g.parallel..sub.2<.delta., saving the primary, and secondary waveforms as a pair in the case base; and f. repeating steps a-e. 3. The method of claim 2, wherein the step of mutating the primary waveform further comprises: g. initializing the primary waveform to a random continuous waveform if the case base is empty; h. if the case base is not empty, selecting a best primary waveform w.sub.best from the case base that has the smallest .parallel.s(t)-g.parallel..sub.2 of all the waveform pairs in the case base; i. setting a normal distribution d.sub.i to the flattest distribution available d.sub.0, where i is an index; j. generating a temporary primary waveform w.sub.temp by varying each defining coordinate in w.sub.best according to d.sub.i; k. testing the secondary waveform associated with w.sub.temp according to the equation: f(g')=.parallel.s(t)-g'.parallel..sub.2; l. replacing w.sub.best with w.sub.temp if f(w.sub.temp)
BACKGROUND OF THE INVENTION Electromagnetic radiation traveling through Earth's upper atmosphere is subject to distortion due to a host of constantly changing conditions such as the ionosphere, solar radiation, solar wind, other electrical disturbances, and temperature variations, to name a few. These changing conditions cause frequency drift in radio transmissions, and ambient noise in communications. Implementing signal processing techniques in hard real-time has proven challenging. Accounting for and modeling the exact ways a signal will be altered as it travels through the atmosphere is beyond the reach of current science. A method is needed for allowing adaptive waveform synthesis and evolution in hard real-time (.about.60 microseconds). BRIEF DESCRIPTION OF THE DRAWINGS Throughout the several views, like elements are referenced using like references. FIG. 1 is a flowchart showing a method for hard real-time adaptive wave modulation. FIG. 2 is a flowchart showing conceptual evolutionary acquisition of primary-secondary waveform pairings. FIG. 3 is a flowchart showing how a processor determines when to evolve waveforms in a case base. FIG. 4 is a flowchart showing how a co-processor evolves waveforms in a case base. DETAILED DESCRIPTION OF EMBODIMENTS This method for adaptive waveform synthesis and evolution in hard real-time allows one to make real-time adjustments to a signal to compensate for upper atmospheric disturbances. This is accomplished by generating an initial signal, carefully monitoring any secondary harmonics resulting from modulation of the ionosphere, and making real-time changes to the initial signal until the actual modulated signal more accurately approximates the desired/target signal. This method combines hard real-time adaptive methods with evolutionary programs, which are capable of modifying and/or augmenting a case base in near real-time through the use of one or more co-processors. FIG. 1 depicts a method for hard real-time adaptive wave modulation. In step 1, a case base 10 is populated with waveform pairs 20. Each waveform pair 20 comprises a primary waveform 30, and a secondary waveform 40, which are saved as an array in the case base 10. The use of the case base 10 serves to enhance performance and allows the method to be performed in real-time. The primary waveform 30 induces the secondary waveform 40. In other words, the secondary waveform 40 is the atmospherically distorted primary waveform 30. For example, the primary waveform 30 may correspond to a transmitted low frequency radio signal and the secondary waveform 40 would correspond to the same radio signal only after it has been distorted by the atmosphere. Changing the primary waveform 30 necessarily causes a change in the secondary waveform 40. The relationship between the primary waveform 30 and the secondary waveform 40 may be expressed as f(t).fwdarw.g(t), where f(t) is the primary waveform 30 at time t, and g(t) is the secondary waveform 40 at time t. The inverse waveform, g.sup.-1(t) gives f(t) and is stored in the case base 10. In one embodiment, the primary waveform 30 is of strictly positive amplitude, and there is a direct relation between the period of the primary waveform 30 and the amplitude of the secondary waveform 40. Step 2 involves synthesizing a known target waveform 50 by selecting waveform pairs 20 from the case base 10 such that the two-norm 60 of .parallel.s(t)-g.parallel..sub.2 minimized, where g is the secondary waveform 40, and s(t) is the target waveform 50 at time t. In other words, the target waveform 50 is the pattern to which one tries to match the secondary waveform 40. The target waveform 50 may be any periodic trigonometric function, such as a simple sine wave. To illustrate, suppose that while a processor 70 is monitoring the secondary waveform 40, the processor 70 notices that the secondary waveform 40 is starting to stray from the target waveform 50. In this case, the processor 70 would then select and generate another primary waveform 30 from the case base 10 to correct the perceived difference between the secondary waveform 40 and the target waveform 50. As a result, the secondary waveform 40 will have delayed leading and trailing edges and expanded rise and fall times when compared to the target waveform 50. Different memory management schemes may be used to randomize the representation of the primary waveform 30, while accounting for an associated de-convolution penalty. In one example embodiment, Denning's cache concept may be used whereby the most frequently used primary waveforms 30 are retrieved in their de-convolved form. Less frequently used primary waveforms 30 are stored in the case base 10 in a hierarchy of convolved forms and are de-convolved (one level) upon reference. The basis for "aging" the case base 10 is an assigned penalty function for de-convolution. The penalty function may be determined by the cost or metric for the inconvenience of having asynchronous discontinuities (spikes) in the target waveform 50. The use of sparse matrix techniques for convolving the primary waveform 30, while providing for much better utilization of the memory space in case base 10, will slow the process down in view of the need for additional address calculations (de-convolution). The use of numerical quadratures, such as trigonometric functions or collocating polynomials, would be similar. The response time of a system utilizing this process may be minimized where all primary waveforms 30 are discretized and stored in the form of array-based cases, such as the case base 10. To explain further, in an exemplary discretized grid, the mesh size is governed by the memory requirements as well as the tolerance for error. That is, the less the tolerance for error, the finer the mesh size and the greater the memory requirements. The use of a finer mesh size implies that a greater number of array references will be needed to retrieve a primary waveform 30 of the same duration. This can be mitigated through the use of anticipatory caching; whereby, a limited number of primary waveforms 30 are pre-retrieved and cached for a coarser mesh size in anticipation of being referenced. The best mesh size is hardware dependent and must be chosen experimentally. Referring back to FIG. 1, step 3 involves mutating the primary waveforms 30 for each waveform pair 20 based on a normal distribution until .parallel.s(t)-g'.parallel..sub.2<.parallel.s(t)-g.parallel..sub.2 where g' is a new secondary waveform 40 induced by the mutated primary waveform 30. This step is accomplished by initializing the primary waveform 30 to a random configuration and thereafter continuously varying the primary waveform 30 based on a normal distribution around the current definition. The distribution is used to determine such parameters as pulse width, amplitude, and rates of rise and fall on the leading and trailing edges of the primary waveform 30. The waveform pairs 20 may be automatically acquired through a random exploration and feedback loop as described below in regards to FIG. 2. The synthesis of the target waveform 50 may be accomplished with a processor 70. At least one co-processor 80 may be used to perform other steps in the method such as effecting Gaussian mutations of the primary waveform 30, evolving a new best primary waveform 30, and saving the new best primary waveform 30 in the case base 10 whenever the value of .delta. is exceeded by all other waveform pairs 20 in the case base 10. The processor 70 and at least one co-processor 80 work together to interlace the synthesis of the target waveform 50 with a synchronized test of a secondary waveform 40 induced by a mutated primary waveform 30. FIG. 2 shows how the case base 10 may be filled with waveform groups 20. First, a continuous primary waveform 30 is randomly generated to induce the secondary waveform 40, indicated by reference character a in FIG. 1. If the primary waveform 30 is not already in the case base (reference c), the secondary waveform 40 that is induced by the primary waveform 30 is used to determine whether the two-norm 60 is greater than or equal to .delta.. The variable .delta. is an experimentally obtained threshold constant. If the two-norm is less than this constant (reference e), then the primary, and secondary waveforms 30 and 40 are saved as a waveform pair 20 in the case base 10. If the two-norm is greater than or equal to .delta. (reference d), or if the primary waveform 30 is already in the case base 10 (reference b), then a normally distributed mutation of the primary waveform 30 is generated to induce g'--a new secondary waveform 30 (reference f). The process then repeats itself with the new waveform pair 20. If the constant .delta. is chosen to be too close to zero, then the case base 10 will grow to be too large and either not cover the desired primary waveform 30 space, or require excessive memory. Conversely, if the constant .delta. is chosen to be too large, then the case base 10 may still cover the desired primary waveform 30 space, but it will necessarily be limited in the number of basis waveforms that it can acquire. As a consequence, the secondary waveform 40 will inaccurately match the target waveform 50 with spikes above the target waveform 50, followed by spikes below it. The value of the constant .delta. depends on the accuracy requirements and the hardware limitations of a given application. FIG. 3 is a flowchart showing how the processor 70 determines when to evolve the primary waveforms 30 in the case base 10. In step g, the primary waveform 30 is initialized to a random continuous waveform if the case base 10 is empty. Next, in step h, a best primary waveform 30 w.sub.best may be created by initializing the primary waveform 30 to a configuration having a minimal two-norm 60. Then, in step i, the normal distribution d.sub.i is set to the flattest distribution available d.sub.0. In step j, a temporary primary waveform 30 w.sub.temp may be created by varying each defining coordinate in w.sub.best according to the current distribution. Then, in step k, w.sub.temp is then tested according to the equation: f(g')=.parallel.s(t)-g'.parallel..sub.2. In step 1, w.sub.temp becomes the new w.sub.best if f(w.sub.temp)
No comments:
Post a Comment