text:
A pulse code modulation (PCM) modem system employs a relatively white training signal to optimize the adaptive filter coefficients in the receiver equalizers. During the training mode, any line coding or equivalent spectral shaping is disabled to provide a training signal sequence having a substantially even spectral content. The presence of DC within the training signal reduces the likelihood that the error function of the equalizers will settle at a local minimum. Following the training interval, the encoder enables the line coder to condition the digital input sequences, introduce DC nulls, and reduce the detrimental effects of baseline wander.
1. A method for transmitting data in a pulse code modulation (PCM) modem system, said method comprising the steps of:
initializing a training mode characterized by a training interval;
adjusting spectral shaping in a transmit modem during at least a portion of said training interval to thereby reduce color in the spectrum of transmit signals, relative to signals transmitted by said transmit modem during a normal data mode;
transmitting a predetermined training sequence from said transmit modem during said training interval;
readjusting spectral shaping in said transmit modem to thereby increase color in the spectrum of signals transmitted after said training interval, relative to signals transmitted by said transmit modem during said training interval; and
transmitting data symbols in accordance with a PCM protocol.
2. A method according to claim 1, further comprising the step of adaptively adjusting at least one equalizer located in a receive modem in response to said training sequence.
3. A method according to claim 1, wherein said adjusting step comprises the step of disabling a line coder located in said transmit modem and said readjusting step comprises the step of enabling said line coder.
4. A method according to claim 1, wherein said training sequence is characterized by a substantially white spectrum over a predetermined bandwidth.
5. A training method for use with a pulse code modulation (PCM) modem system, said method comprising the steps of:
initializing a training mode for a PCM transmitter modem configured to transmit colored transmit signals during a data mode and a PCM receiver modem configured to receive and process said colored transmit signals during said data mode;
transmitting a predetermined training sequence from said PCM transmitter modem to said PCM receiver modem during said training mode, said training sequence having a less-colored spectrum, relative to said colored transmit signals, over a limited bandwidth;
adaptively adjusting the transfer function of at least one equalizer resident at said PCM receiver modem during said training mode; and
switching said PCM transmit modem from said training mode to said data mode following said training mode.
6. A method according to claim 5, further comprising the steps of:
disabling a spectral shaping function at said PCM transmit modem during said training mode, said spectral shaping function providing a DC null in the spectrum of signals transmitted by said PCM transmit modem; and
enabling said spectral shaping function at said PCM transmit modem after said training mode to thereby facilitate transmission of colored signals by said PCM transmit modem.
7. A method according to claim 6, wherein said spectral shaping function comprises line coding.
8. A pulse code modulation (PCM) modem comprising:
means for shaping the spectrum of a PCM transmit signal, said means for shaping reducing spectral components near DC in said PCM transmit signal;
a logic circuit element configured to generate a predetermined training sequence having at least a first portion characterized by a substantially white spectrum over a predetermined bandwidth;
means for selecting an output from one of said means for shaping and said logic circuit element; wherein
said means for selecting selects output associated with said logic circuit element during a training mode; and
said means for selecting selects output associated with said means for shaping during a data mode.
9. A PCM modem according to claim 8, wherein said means for shaping comprises a line coder.
10. A PCM modem according to claim 8, wherein said transmit signal exhibits spectral nulls near DC caused, by said means for shaping.
This is a Continuation of U.S. patent application Ser. No. 08/874,316 filed Jun. 13, 1997, currently pending.
The present invention relates generally to adaptive linear equalizers employed in a pulse code modulation (PCM) modem application. More specifically, the present invention relates to an apparatus for training an adaptive linear equalizer where a DC null is normally present in the channel as well as in the transmitted data signals.
A number of modem devices and their associated data communication protocols are well known in the prior art. The rapid increase in internet access and the undesirably long downloading times typically associated with current internet use has spawned the development of new high speed modems that can transmit data files at theoretical speeds of up to 56 kilobits per second (kbps). The typical 56 kbps solution combines pulse code modulation (PCM) techniques with several existing features set forth in the standard V.34 data communications protocol. Although such a solution can lead to an increased data rate, the "combined" technology can present several technical problems that require consideration. Some of these problems are addressed in the following United States patent applications, which are incorporated herein by reference: "Spectral Shaping in Signal-Point Limited Transmission System," Ser. No. 08/746,731, filed Nov. 15, 1996; "System for Controlling and Shaping the Spectrum and Redundancy of Signal Point Limited Transmission," Ser. No. 08/756,383; and "Method and Apparatus for Implementing Shell Mapping Techniques in the Context of a PCM-based Modem Communications System," Ser. No. 08/760,646, filed Dec. 4, 1996.
Linear equalizers are adaptive filters that are routinely utilized to compensate for intersymbol interference (ISI), which is a common practical impairment found in many transmission systems, e.g., voiceband and digital data modems. The severity of ISI depends upon the characteristics of the particular communication channel. For example, most data communication and modem systems use a single channel to transmit several symbols in succession. Unfortunately, an inherent effect of most communication channels is that a received message or symbol can be corrupted with interference from a neighboring (with respect to time) message or symbol. For a more detailed treatment of adaptive filters, see Simon Haykin, ADAPTIVE FILTER THEORY, ch. 4, 5, 8, and 9 (3d ed., Prentice Hall 1996), the subject matter of which is incorporated by reference herein.
Since ISI can be modeled as a linear pulse spread in time, it can be compensated for by a linear filter which "inverts" the pulse spreading by detecting the content of each message spread over time at the receiver. ISI can also be considered in the frequency domain; if a signal is subject to an uneven frequency attenuation, then ISI is introduced. Viewed in this manner, the equalizer corrects for the uneven frequency response by making the combined channel and equalizer response as flat as possible.
Adaptive linear equalizers may be subjected to training procedures that seek to optimize the equalizer transfer functions prior to the transmission of the actual data. Typically, equalizer training is accomplished by transmitting a known data sequence to the receiver, which utilizes the same data sequence as an input to an adaptation circuit A correction signal may be used to adjust one or more filter taps resident in the linear equalizers.
In baseband systems, such as PCM modems, AC coupling inherent in the transmission channel can cause a form of ISI known as baseline wander. Baseline wander is proportional to the running digital sum (RDS) of the line code employed by the transmission system. Accordingly, conventional PCM modems often utilize line codes that minimize or regulate the upper limit of the RDS, thus controlling the detrimental effects of baseline wander. Such line codes tend to color the spectrum of the transmitted signal by reducing the DC content of the transmitted signal. For a general discussion of spectral control techniques, line codes, and related filtering, see Edward A. Lee & David G. Messerschmitt, DIGITAL COMMUNICATION, ch. 12 (2d ed., Kluwer Academic Publishers 1994), the subject matter of which is incorporated by reference herein
Unfortunately, the use of line codes may adversely affect the performance of the linear equalizers employed by the receive modem. For example, the use of a colored training signal in a receiver that utilizes a decision feedback equalizer (DFE) may cause the DFE to settle at a local, rather than the global, minimum with respect to the optimum settings of the associated filter taps. In addition, a colored training signal generally results in smaller eigenvalues in the receive signal autocorrelation matrix. Accordingly, the use of a colored training signal, e.g., a training signal subject to line coding, can result in poorly adjusted linear equalizers at the modem receiver. Less than optimum initial settings can adversely affect the performance of the modem during actual data transmission.
Accordingly, it is an advantage of the present invention that an improved training procedure for a PCM modem is provided.
Another advantage of the present invention is that an adaptive linear equalizer can be suitably optimized during a training procedure while maintaining an adequate reduction in baseline wander in a PCM modem during data transmission.
A further advantage is that the present invention employs a training sequence having a substantially even spectrum that provides excitation to the linear equalizer at or near DC.
The above and other advantages of the present invention are carried out in one form by a training method for use with a PCM modem system. The method involves initializing a training mode between a PCM transmitter modem configured to transmit colored transmit signals during a transmit mode and a PCM receiver modem configured to receive and process the colored transmit signals during a receive mode, transmitting a predetermined training sequence from the PCM transmitter modem to the PCM receiver modem during the training mode, adaptively adjusting the transfer function of at least one equalizer resident at the PCM receiver modem during the training mode, and switching the PCM transmit modem from the training mode to the transmit mode. In a preferred embodiment, the training sequence exhibits a less-colored spectrum, relative to the colored transmit signals, over a limited bandwidth.
A more complete understanding of the present invention may be derived by referring to the detailed description and claims when considered in connection with the Figures, where like reference numbers refer to similar elements throughout the Figures, and:
FIG. 1 is a block diagram representation of an exemplary PCM modem environment in which the present invention may operate;
FIG. 2 is a block diagram representation of the encoder shown in FIG. 1;
FIG. 3 is a block diagram representation of a portion of a PCM receiver including two linear equalizers;
FIG. 4 is a block diagram representation of a basic feed-forward equalizer; and
FIG. 5 is a flow diagram of a data transmission process carried out by a PCM modem system.
FIG. 1 depicts an exemplary PCM environment in which a preferred embodiment of the present invention may operate. Those skilled in the art will appreciate that although FIG. 1 only illustrates a downstream data transmission path, a complete PCM environment may include any number of downstream channels, and any number of cooperating upstream channels. Furthermore, for the sake of clarity, conventional PCM and other operating elements are not shown or described herein. An exemplary PCM data transmission system 10 generally includes an encoder 12, which may be located at an internet service provider (ISP), a public switched telephone network (PSTN) 14, a central office 16, and a user modem 18. Encoder 12 is described in more detail below.
Current modem theory assumes that PSTN 14 is a fully digital network capable of receiving and transmitting digital data from encoder 12; this realization opens the path toward downstream data rates of up to 56 kbps. Central office 16 typically includes a D/A converter 20 and a hybrid 22 for coupling the transmitter to the local loop transmission media 24. The analog signal transmitted over transmission media 24 is eventually received by modem 18 and coupled to receiver components (not shown) via hybrid 26. Modem 18 may also include an A/D converter 28 having an output connected to an equalizer/slicer block 30. Equalizer/slicer block 30 will be described in more detail below. The output of equalizer/slicer block 30 is preferably configured as a series of discrete amplitudes, each representing a u-law signal point. Decoder 32 reverses the role of encoder 12 to map the discrete amplitudes into corresponding digital bits that (ideally) represent the digital data processed by encoder 12.
FIG. 2 is a more detailed representation of encoder 12, which may be an integral element of a transmit modem (not shown). Those skilled in the art will appreciate that the individual elements of encoder 12 may be realized by any number of discrete semiconductor chips and/or processing elements carried out by software instructions contained in a suitable microprocessor. Of course, encoder 12 may include additional elements known to those skilled in the art; such elements are not shown or described herein. Encoder 12 preferably includes at least a logic circuit 8 for generating a predetermined training sequence, a line coder 11, a switch element 9, and a signal mapper 13. Signal mapper 13 receives an input sequence of digital information and maps the input sequence into a signal point sequence having magnitudes selected from a signal point constellation compatible with PSTN 14. Switch element 9 selects an output from either line coder 11 or logic circuit 8, depending upon whether the transmit modem is operating in a data mode or a training mode, respectively. It should be noted that the present invention may utilize any suitable device for selecting between these two input sources.
Line coder 11 is one example of a means for shaping the spectrum of a PCM transmit signal. Alternatively, any number of suitable spectral shaping techniques may be utilized in encoder 12. Line coder 11 adds redundant bits to the sequence of input bits to reduce spectral components near DC. In the exemplary embodiment shown in FIG. 2, line coder 11 utilizes past outputs from signal mapper 13 to determine the redundant bits The particular form of line coding and the amount of DC suppression may vary from application to application. Line coding has traditionally been utilized in a modem context to reduce the negative effect of baseline wander. In the preferred embodiment, switch element 9 communicates with line coder 11 in the data mode, during which data is transmitted to modem 18.
The training sequence generated by logic circuit 8 is preferably configured such that the equalizers in equalizer/slicer block 30 can be optimized (described below). To this end, the training sequence is preferably characterized by a substantially white spectrum over the particular transmitting bandwidth. In other words, the training sequence is configured to have a substantially even frequency spectrum, including energy present at or near DC. This spectral characteristic reduces the likelihood that the equalizer taps will settle to less than optimum values. The use of a less-colored training sequence, relative to the transmitted data signals, balances the need for equalizer optimization with the reduction of baseline wander, which typically requires the addition of a DC null into the transmit signals. In the context of this specification, a "white" signal means a signal having a substantially even or flat spectrum over the desired bandwidth and a "colored" signal means a signal lacking spectral content at one or more frequencies in the desired bandwidth.
It should be appreciated that the benefits of the present invention may be realized by a training signal that merely includes less DC suppression than that exhibited by a normal transmit signal. In other words, adequate equalizer training may be obtained even if the training signal has some attenuation at or near DC (or at other frequencies within the subject frequency band). Such attenuation may be introduced by applying a weak line code to the training signal or by formatting the training signal to emulate a weak line code having some amount of DC suppression.
In an alternate embodiment, the training signal may be configured such that a first portion of the sequence is substantially white and a second portion of the sequence is colored. For example, the second portion of the training sequence may be configured to emulate a transmit sequence subjected to line coder 11. Such "two-stage" training may be desirable to enable PCM system 10 to easily transition from the training mode to the data mode. It should be noted that the training signal need not be limited to any specific sequence of bits; optimization of the receiver equalizers depends more on the spectrum of the training sequence rather than the actual data conveyed by the training sequence.
Referring now to FIG. 3, equalizer/slicer block 30 is illustrated in more detail. It should be appreciated that FIG. 3 shows an exemplary configuration of equalizer/slicer block 30; in practice, equalizer/slicer block 30 may include additional components known in the art. Equalizer/slicer block 30 may include a feed-forward equalizer 34, a feedback equalizer 36, and a slicer 38. In the preferred embodiment, a predetermined training sequence d(n) formed from a pseudorandom sequence of symbols is applied to the input of feedback equalizer 36 during a training interval that precedes the transmission of digital data. As described above in connection with FIG. 2, the training sequence is preferably the same as that generated by encoder 12.
During the training interval, the coefficients of feed-forward equalizer 34 and/or feedback equalizer 36 are adjusted according to known processes to minimize the error squared function associated with feed-forward equalizer 34 and feedback equalizer 36. Following the training interval, the filter taps of equalizers 34 and 36 are ideally optimized and further processing and updating is performed during the data mode to recalculate the associated error and further adjust the filter coefficients to compensate for continuous changes in channel characteristics. In the preferred embodiment, any updating subsequent to the initial training period is performed at a slower rate, ie., the step size coefficients of the relevant update algorithms are reduced.
As shown in FIG. 3, feedback equalizer 36 monitors past decisions (or known symbols) to estimate their contribution to the ISI present in the current symbol. This estimated contribution is subtracted from the output of feed-forward equalizer 34 before the next decision is made. Although feedback equalizer 36 is desirable to reduce ISI from past symbols, it may introduce propagated errors to the system via the feedback loop. Such propagated errors may cause modem 18 to function in a wholly improper manner.
Unlike feedback equalizer 36, feed-forward equalizer 34 is not a source of error propagation. Error decisions are not performed or utilized by feed-forward equalizer 34, thus a coding technique with delay, e.g., Trellis coding, may be implemented. Unfortunately, noise enhancing can be problematic with respect to feed-forward equalizer 34 because sharp spectral nulls present in the transmit channel of PCM system 10 may cause a peak in the equalizer response at that frequency location, which enhances the noise in that particular band.
FIG. 4 is a block diagram representation of feed-forward equalizer 34. Feed-forward equalizer 34 may be represented by the following relationship:
W(z)=SUM FROM{k=0}TO{N-1}wSUB{k}zSUP{-k}
As described above, the equalizer taps are preferably adjusted to minimize the error associated with the particular equalizer. Those skilled in the art will recognize that the tap-weight vector w(n) may be visualized as a bowl-shaped surface having a unique minimum. An ideal adaptive equalizer continuously adjusts the equalizer coefficients in an attempt to reach the global minimum of this surface. With respect to a decision feedback equalizer (such as feedback equalizer 36), the error performance surface may be characterized by several local minimums rather than one unique minimum. Accordingly, an effective adaptive feedback equalizer should continue to update its filter taps rather than settle at a local minimum.
The optimum set of coefficients, w0, may be found using the optimization method known as the method of steepest descent. The method of steepest descent involves the following steps:
(1) assuming an initial value w(0) of the tap-weight vector,
(2) applying w(0) to calculate the complex gradient vector of the error squared function J(n) with respect to the real and imaginary parts of w(n);
(3) updating w(n) by making a change in the current estimate in a direction opposite to that of the gradient vector; and
(4) repeating steps (2) and (3) to optimize w(n).
The above steps are equivalent to the following update algorithm, where μ is the step size coefficient:
w(n+1)=w(n)+μE u(n)e*(n)!;
u(n)= u(n), u(n-1), . . . , u(n-N+1)!T.
In a typical application, real-time estimates are employed rather than the real E u(n)e*(n)! component. Accordingly, the above relationships may be used to derive the well known LMS algorithm:
u(n)= u(n), u(n-1), . . . , u(n-N+1)!T.
Considering the LMS algorithm, the update equations for feed-forward equalizer 34 and feedback equalizer 36 may be set forth:
wk (n+1)=wk (n)+μr(n-k)e(n);k=0, . . . ,NFF -1
bk (n+1)=bk (n)-μd(n-k)e(n);k=1, . . . ,NFB
During the initial training period, the step size μ is periodically decreased; when modem 18 switches to a data receive mode, it further decreases the value of the step size μ. Thus, subsequent updating of feed-forward equalizer 34 and feedback equalizer 36 is performed in a gradual manner.
The use of hybrid 22 to implement the AC coupled transmission channel results in the output waveform having a zero average value. Furthermore, depending upon the configuration of the transmitted symbols, the AC coupling may be the cause of another form of ISI commonly known as baseline or DC wander. As discussed above, the prior art has addressed this problem related to baseline wander by employing a line code that will keep the RDS (Running digital sum) bounded. This technique ensures that the RDS and the DC wander remains bounded; the associated ISI is regulated in this manner. However, the prior art approach does not contemplate the adverse affects that such line codes may have on the training of the receiver equalizers.
The relationship between the spectrum of the training signal and the optimization of feed-forward equalizer 34 may be described with continued reference to FIG. 3. Assuming that R is the N�N correlation matrix of the input values and p denotes the N�1 cross-correlation vector between the inputs and the desired response, then:
R=E u(n)uH (n)!;
p=E u(n)d*(n)!; and
u(n)= u(n),u(n-1), . . . , u(n-N+1)!T.
The optimum set of filter taps for feed-forward equalizer 34 satisfies the following relationship: Rw0 =p. A basic formulation of perturbation theory states that if the matrix R and the vector p are perturbed by a small amount R and p, respectively, and if R/R and p/p are both on the order of some and <<1, then w/w (R), where w is the change produced in w, and (R) is the condition number of the matrix R with respect to inversion. The condition number is so called because it describes the ill condition or bad behavior of matrix R quantitatively. Specifically, the condition matrix is defined as: (R)=R R-1, where R is the norm of the matrix R. There are several ways of defining the norm R but it is common in adaptive filter theory to use the spectral norm defined as: Rs =(largest eigenvalue of RH R)1/2. Now it can be shown that Rs =max, and R-1 s =1/min. This ratio is commonly referred to as the eigenvalue spread or the eigenvalue ratio of the correlation matrix. Note that (R) 1 and for white input sequences (R) is close to 1. On the other hand, for colored input sequences such as transmit signals having a DC null, (R) becomes large and the corresponding correlation matrix R is not adequately conditioned. This behavior may cause problems in solving a system of equations involving R-1. Thus, small perturbations in R and p result in much large perturbation in w. In practice this relates to high variance in the equalizer taps w, ie., they fail to settle to optimum value and performance degrades.
Referring back to FIG. 1, the AC coupling performed by the transformer in hybrid 22 causes the channel to have a spectral null at or around DC. As such, it is difficult, if not impossible, to obtain a white signal at modem 18 during the training interval. The lack of DC caused by transformer coupling colors the transmit signal spectrum.
In prior art systems, additional attenuation in the received signal near DC may be caused by the use of a line code (employed to reduce baseline wander effects). Accordingly, a signal having no line code (or a relatively weaker line code) provides the strongest signal near DC at modem 18. Such DC excitation of feed-forward equalizer 34 and feedback equalizer 36 is desirable for effective training (as described above). Although such DC stimulation may appear counterintuitive, the temporary excitation during the training interval can more than compensate for the negative side effects related to baseline wander and nonlinearities. As described above, if a colored training signal is employed, then feedback equalizer 36 may settle at a local minimum, rather than the global minimum, of the error performance surface of the equalizer.
With reference to FIG. 5, an exemplary data transmission process 40 in accordance with the preferred embodiment of the present invention is illustrated. Process 40 may begin with a task 42, which initializes PCM system 10. During task 42, the ISP modem (of which encoder 12 may be an integral component) may establish initial communication with modem 18. It should be noted that task 42 may involve conventional handshaking techniques and signaling protocols known to those skilled in the art. Following task 42, process 40 may lead to a task 44, which causes encoder 12 (or any suitable control element within the transmit portion of the ISP modem) to temporarily disable line coder 11, which is normally employed during data transmission. In the preferred embodiment, task 44 may be accomplished by causing switching element 9 to switch to the training mode (see FIG. 2).
In accordance with an alternate embodiment of the present invention, task 44 may instead cause encoder 12 to utilize a secondary line code (not shown) that causes the training signal to have greater spectral content at DC than the line code utilized during the normal data transmit mode. In other words, the benefits of the present invention may be realized by changing the line code to increase or decrease spectral components at or near DC without completely disabling line coder 11. Furthermore, those skilled in the art should appreciate that any spectral shaping methodology (other than line coding) may be implemented by the particular PCM application. Accordingly, the present invention may be alternatively configured to suppress or disable any applicable spectral shaping feature in addition to (or instead of) line codes.
Following task 44, a task 46 is performed to transmit the encoded training signal to modem 18. Preferably, the spectrum of the training signal includes DC content and "even" spectral shaping over the entire applicable bandwidth. Of course, an ideally white signal may not be achievable in view of practical limitations of the physical components and/or the electrical characteristics of the transmit channel. Nonetheless, the training signal is configured to adequately excite feed-forward equalizer 34 and feedback equalizer 36 at frequencies near DC. The precise sequence of data transmitted during the training interval is not critical to the successful optimization of equalizers 34 and 36. Rather, the spectral content and DC energy of the training sequence is determined under the assumption that little or no spectral shaping will be employed during the training interval.
During the training interval, a task 48 is performed at modem 18 to optimize equalizers 34 and 36. As described above, task 48 compares past symbols and decisions to generate a suitable error signal that controls the adjustment of the associated filter taps. In an exemplary embodiment, 32,000 symbols are transmitted during the training interval. According to current standards, 8,000 symbols are transmitted through PSTN 14 each second. Thus, the current preferred training interval is 4.0 seconds. Conventional handshaking protocols ensure that the ISP modem and modem 18 operate in a synchronous manner such that they effectively cooperate during the training interval. Due to the limited period during which equalizers 34 and 36 are subject to the training signal, total optimization may not be obtainable. However, the adaptive nature of equalizers 34 and 36 provide for continuous updating even after the training interval lapses.
When the filter taps of feed-forward equalizer 34 have been optimized, the product of the input signal associated with feed-forward equalizer 34 and the error e(n) should be almost white (see FIGS. 3 and 4). Unfortunately, this does not occur when the spectrum of the reference training signal is colored. Accordingly, configuring the reference training signal to be as white as possible during training aids equalizers 34 and 36 in obtaining their global minimums.
Following task 48, a task 50 causes encoder 12 to enable line coder 11 (or any suitable spectral shaping component) for use during normal data transmission. As described above, switch element 9 preferably switches to the data mode during task 50. However, the enabling/disabling of the line code feature may be realized through any number of known switching or control techniques. In addition to task 50, a task 52 may cause modem 18 to switch from the training mode to a normal receive mode. For example, as shown in FIG. 3, equalizer/slicer block 30 may switch from the internal training signal d(n) to the output of slicer 38. Following tasks 50 and 52, PCM system 10 is preferably in a condition to transmit and receive data.
During task 54, encoded and processed data symbols are transmitted over transmission media 24 according to the protocols implemented by PCM system 10. The transmitted data symbols are preferably subjected to line coding to reduce the adverse effects of baseline wander; in other words, the transmit signal may have DC nulls or otherwise have a colored spectrum. Modem 18 receives, equalizes, and decodes the data symbols according to the particular protocols used by PCM system 10. Ideally, the training mode has adequately conditioned feed-forward equalizer 34 and feedback equalizer 36 such that data errors are minimized or at least tolerable for purposes of establishing initial data transfer.
A task 56 occurs in a continuous or periodic manner during the data mode. During task 56, modem 18 performs adaptive equalization as described above. In response to the shift from the training mode to the data mode, modem 18 preferably reduces the step size coefficients in the equalizer update algorithm to slow the adaptive response of equalizers 34 and 36. Those skilled in the art should recognize that any number of adaptive equalization techniques may be implemented in the present invention; such known techniques will not be described in detail herein. Following task 56, data transmission process 40 ends.
In summary, the present invention provides an improved training procedure for a PCM modem system. Adaptive linear equalizers employed by the PCM modem system can be suitably optimized during a training procedure while the PCM modem system maintains an adequate reduction in baseline wander during data transmission. The training sequence preferably has an even spectrum that provides excitation to the linear equalizer at or near DC to better optimize the equalizer coefficients.
The present invention has been described above with reference to a preferred embodiment. However, those skilled in the art will recognize that changes and modifications may be made to the preferred embodiment without departing from the scope of the present invention. For example, the block diagram representations are used for illustrative purposes, and any practical realization of a PCM modem system will necessarily be more complex. In addition, the processes described herein may be embedded in a larger processing environment, and some of the process tasks set forth herein may be performed in a different order or eliminated in certain applications. These and other changes or modifications are intended to be included within the scope of the present invention, as expressed in the following claims.
Patent Citations
Referenced by
Legal Events
Original Image


text:
Marketing disability insurance to women
By Daniel Steenerson
Disability Insurance Services
We all remember the 1990s classic, "Men Are from Mars, Women Are from Venus." Written by American author and relationship counselor John Gray, its central thesis is that the most common relationship problems between men and women are the result of fundamental psychological differences and the distinct way each gender responds to situations. It's no different when it comes to paycheck protection.
When it comes to financial planning, Americans can be fickle. And there are fundamental differences in how men and women approach it. Women perceive their risks differently and have different priorities, habits and needs than men, so connecting with them requires a different approach. That's the first reason why you need to know how to market to women.
The other reasons are even more compelling. For example, did you know that the "protection gap" caused by not having paycheck protection is even more significant for women than it is for men? That's because women are both more likely than men to become disabled and less likely to have disability insurance.
Whether they're single, married, working, or stay-at-home moms, women are more physically and financially at risk of a disability. Many take time away from careers for caregiving, adding to their financial vulnerability. And when you consider that women also have a longer life expectancy than men, higher lifetime health care costs, and greater dependence on Social Security and other safety nets later in life, the need for disability insurance becomes clear.
Another compelling reason to offer paycheck protection to women is that they are playing a more prominent financial role in their households. The 2012-2013 MacroMonitor reports that in 65 percent of households, women are the primary financial decision makers. So they — and their households — have more to lose than ever before.
Considering these kinds of facts and statistics, you'd think women would be lining up to protect themselves with DI. But surprisingly, that's just not the case.
Why? It goes back to the fundamental differences between men and women. Women just don't approach financial planning with the same mindset as men. For example:
- Although women are concerned about the consequences of disability, only 37 percent of women have discussed it with their financial advisors, compared with 52 percent of men, according to a 2012 study by The American College State Farm Center for Women and Financial Services.
- For men, retirement planning is about growing wealth. For women, it's more about how they can spend their golden years doing what they want. Their decisions about things such as DI are more likely to focus on family security rather than building wealth.
- A study by the Insured Retirement Institute (IRI) shows that only 30 percent of women have saved at least $200,000 for retirement, compared to 50 percent of men.
If you want to be successful at selling DI to women, you have to first be successful at meeting them on their terms. And that can be as simple as 1-2-3:
1. Understand their unique approach to retirement planning.
2. Focus on building long-term relationships and fostering their trust.
3. Provide them with clear, straightforward advice and information about the financial products that fit their unique needs and lifestyle.
Have you been successful with marketing paycheck protection to women? Post a comment below.

subset: commoncrawl


text:
Corpus Christi man takes plea deal in 2012 fatal shooting case
CORPUS CHRISTI - A 30-year-old man took a plea deal Monday in connection with the shooting death of a man with the same name last year.
Subscribe to the Caller-Times
Ready to subscribe to the Caller-Times? Choose between a Premium or Digital subscription below.
Need Help? Call us at 1-800-566-8098.
Monday-Friday: 6am-3pm / Saturday: 7am-11am / Sunday: 7am-11am


text:
A system and method is provided for learning data values over time as they are entered by a user on a form such as a web page form. An Internet web browser can be modified to suggest previously used data values for any form field that is the same as or similar to a previously used form field. Application programs that use the web browser can gain access to previously used form field values even if they have no knowledge of the field names. Software in a web browser associates field names across different Universal Resource Locators (URLs), so that when a user enters a value into a field (e.g., username) at a first web site, that same value can be automatically suggested when the user displays a different form on a different web site that uses the same field name.
1. A computer-implemented method of entering information, comprising the steps of:
(1) displaying on a computer screen a form comprising a plurality of fields, each field having a field identifier and a data entry region into which a data value can be written;
(2) determining that a user has selected one of the plurality of fields;
(3) comparing the field identifier of the selected field to previously stored field identifiers and, upon finding a match, displaying a list of suggested data values previously stored in response to one or more different forms previously filled in by the user;
(4) in response to the user selecting one of the suggested data values, copying the selected one data value into the data entry region of the selected field; and
(5) in response to the user entering a non-suggested data value, storing the non-suggested data value into a data storage area for future use,
further comprising the step of performing numerical processing on the field to determine whether the field represents a credit card number and, in response thereto, suppressing suggestions.
2. A computer-implemented method of entering information at a user's computer, comprising the steps of:
(1) displaying on the user's computer a first form comprising a first plurality of text fields each comprising a field identifier and a data entry region into which a data value can be written;
(2) entering a data value into one of the first plurality of text fields and storing the entered data value into a local storage area on the user's computer;
(3) displaying on the user's computer a second form comprising a second plurality of text fields each comprising a field identifier and a data entry region into which a data value can be written, wherein the second plurality of text fields comprise field identifiers that are different from those in the first form;
(4) detecting that one of the text fields on the second form is correlated with one of the text fields on the first form despite having a different field identifier, said detecting comprising the use of Bayesian inference techniques, and, in response thereto, retrieving a corresponding previously stored data value from the local storage area; and
(5) suggesting the data value retrieved in step (4) to the user as a possible value to be entered into the second form.
3. A computer-readable medium having computer-executable instructions for performing steps comprising:
(1) displaying on a computer screen a form comprising a plurality of fields, each field having a field identifier and a data entry region into which a data value can be written;
(2) determining that a user has selected one of the plurality of fields;
(3) comparing the field identifier of the selected field to previously stored field identifiers and, upon finding a match, displaying a list of suggested data values previously stored in response to one or more different forms previously filled in by the user;
(4) in response to the user selecting one of the suggested data values, copying the selected one data value into the data entry region of the selected field; and
(5) in response to the user entering a non-suggested data value, storing the non-suggested data value into a data storage area for future use,
wherein the computer-executable instructions perform the step of performing numerical processing on the field to determine whether the field represents a valid credit card number and, in response thereto, inhibiting suggestions for the field.
This invention relates generally to computer-implemented processing of data entry forms, such as Internet web pages containing form fields. More particularly, the invention provides a method and apparatus for automatically populating data fields in forms across different applications and web sites using data values previously entered by a user.
Computer systems conventionally display forms with fields into which a user enters information such as a name, birth date, password, and the like. Modern Internet browsers display forms by rendering Hyper Text Markup Language (HTML) on web pages to generate fields that can be populated by a user. Web sites that accept shopping orders from on-line customers, for example, generate forms requiring that a customer enter the customer's name, address, telephone number, and credit card information. Usually, the user must repeatedly enter this information each time the site is visited. Although information entered by the user is stored on the web site, the form does not retain the information for future use if the web site is revisited.
Some web sites can recognize previous customers and thus avoid re-prompting for the same information on a subsequent visit. Nonetheless, if the user visits a new web site that he or she has never before visited, the same information must be re-entered on a different form generated by the different web site. Much of the information requested on these forms is redundant or readily available from other sources (e.g., name, address, date of birth), yet the creators of different forms generally have no easy way to share information previously entered by the user on an earlier form. Privacy issues have thwarted many potential solutions to this problem, and it is cumbersome for web site designers to include special logic on their web site to recognize previous visitors to the site.
So-called "cookies" (small data files stored by a web site on the user's local computer) are sometimes used to retain information locally that can be recalled later by a web site that the user has previously visited. Such "cookies," however, vary widely from site to site, and require cumbersome programming logic on each web site to implement them. Moreover, users can block the storage of these cookies, and users may be generally suspicious of their use by untrusted web sites. In addition, conventional web browsers will not transmit a given cookie to web servers with different secondary domains (e.g., a cookie written by a.com will not be shared with a server from b.com).
One attempt to solve some of these problems was a prior art feature embedded in the Microsoft Internet Explorer 4.0 product known as a "profile assistant." This feature made it easier for web sites to retrieve registration and demographic information from users who had previously provided that information. Frequently used information such as user name, address, and the like was stored securely in protected storage on the client computer. Web servers could request to read this information, but it was shared only if users gave their consent in a pop-up request box each time a site was visited.
While the profile assistant provided a potential solution to the aforementioned problems, in practice it has not enjoyed widespread success. For example, it required that each web site write script to request information from the user's stored information. If the user declined to grant permission to share the information, the solution was effectively thwarted. Moreover, the solution was limited to certain predefined fields that were commonly used across different web sites, with no easy way to add new fields. It was also inconvenient and time consuming for the user to complete a full profile and store it on the user's machine. Finally, some users viewed the function as intrusive because it required immediate user input to confirm that the feature should be enabled each time a web site was visited.
A prior art data schema known as the "vCard" schema has been used for certain frequently referenced data fields across application programs. This schema established certain standardized field identifiers that were to be used for the same data fields, and was intended to facilitate the transfer of personal profile information among applications. For example, the following is an example of a vCard:
n:Doe, John
tel;cell:415 555 1212
tel;fax:415 555 1212
tel;work:415 555 1212
org:One & Co.
adr;quoted-printable:;;247 4th St. #105=0D=0A;Oakland;Ca.;94607;USA
fn: John
Using this schema, specific fields can be identified regardless of the form or application program into which the user's name was to be entered. (The user would most likely only see a label such as "First Name.") This schema does not, however, solve the aforementioned problems. As one example, it is difficult to force millions of web sites to conform to standard field identifiers or to retrofit existing web pages to the existing schema. Moreover, as new fields are introduced, universal agreement must be reached on what those fields represent and what their identifiers will be.
The prior art provides tools to suggest previously used values to a computer user when prompting the user for information. For example, some e-mail programs suggest possible recipient names in the "to" field which match previously stored user names. When the user types the first character of a recipient's name, a possible choice that matches the first character appears in the field. As another example, well-known Internet browsers provide a user with a pull-down menu of choices in an Internet browser address field, such that the user can review previously used web site addresses in order to select an address.
These conventional techniques, however, suffer from many of the same disadvantages as the aforementioned solutions. The application program itself (i.e., the e-mail program) must be specially modified to support the feature, and previously used field values cannot be shared among other application programs on the same computer unless those applications are also modified. Moreover, all application programs would need to adopt standard field identifiers in order for the scheme to work properly.
Internet web pages containing form fields create special problems, because each web site defines the format and behavior of its own forms, and there is no easy way to share or suggest previously entered data values across different web sites or servers. Moreover, because of privacy concerns, sharing previously entered form values for different web sites may be undesirable or even impossible in many cases.
In summary, user interfaces such as those provided by application programs and web-based forms frequently request the same or similar information from a user. Challenges posed by this problem include: (a) determining how to decrease redundant data entry across form fields (whether the same form or a different form containing a common field); (b) decreasing the redundant data entry without requiring changes to the forms themselves; (c) encouraging the adoption of standard field descriptors across applications, web sites and web pages; and (d) preventing unauthorized access to information that has been entered by a user.
The present invention overcomes many of the foregoing problems by providing a method and apparatus for learning data values from a user over time as the user enters values into fields on a form such as a web page form. In one embodiment, an Internet web browser includes code that that suggests previously used data values for any form text field that is the same as or similar to a previously used form text field. This feature can take advantage of the fact that web page authors frequently use the same or similar names for fields when prompting for the same information (e.g., "phone" when requesting a telephone number). Any browser-based application program (or any form retrieved from a web site using the browser) can gain limited access to previously used field values without compromising security or privacy. The invention can be implemented without modifying any of the application programs or web sites that contain forms.
In one embodiment, software in a web browser associates field names across different Universal Resource Locators (URLs), so that when a user enters a value into a field (e.g., username) at a first web site, that same value can be automatically suggested when the user displays a different form on a different web site that uses the same field name. The more web sites that are visited by the user, the more the software learns field values and is able to suggest likely choices for field values. For security reasons, field values are preferably not stored in the application program or on the target web site, but are instead stored locally on the client computer or at a trusted web site known to the browser.
Some embodiments of the invention prevent web sites from surreptitiously discovering suggested values by forcing the user to initiate some action (e.g., hitting a key or clicking a mouse) before a data value for a field is suggested, and by only writing data into the field when the user has selected one of the suggested values. Certain field values (e.g., passwords and credit card numbers) can be treated differently for even more security.
Heuristics can be used to identify and suggest values for fields. For example, a "most frequently used" value for a particular field can be suggested as a first choice rather than the last used value. Additionally, synonyms can be provided to correlate similar field names (e.g., "name," "username," "your name," etc.) across different forms. Bayesian inference functions can also be used to help match previously entered data values across different field names.
The principles of the invention can also be used to share data across browser-compatible applications. For example, the user of a newly created application that requires entry of a zip code would automatically be provided with a suggested zip code that was previously used with a totally different application weeks earlier, even though the newly created application had no knowledge or special code to handle previously entered values.
The invention can also be made compatible with the existing vCard schema standard, such that standard fields in that schema (e.g., vCard.Email) are correlated with fields on different forms. Previously used form field values can be stored in a protected storage area to protect them from snooping. In one embodiment, previously used field values can be can stored at a predetermined trusted web site, such that a user could access the previously used values even when using a different computer (e.g., a home computer instead of the office computer).
A basic input/output system 160 (BIOS), containing the basic routines that help to transfer information between elements within the computer 100, such as during start-up, is stored in ROM 140. Computer 100 also includes a hard disk drive 170 for reading from and writing to a hard disk (not shown), a magnetic disk drive 180 for reading from or writing to a removable magnetic disk 190, and an optical disk drive 191 for reading from or writing to a removable optical disk 192 such as a CD ROM or other optical media. The hard disk drive 170, magnetic disk drive 180, and optical disk drive 191 are connected to the system bus 130 by a hard disk drive interface 192, a magnetic disk drive interface 193, and an optical disk drive interface 194, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for the personal computer 100. It will be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), read only memories (ROMs), and the like, may also be used in the exemplary operating environment.
A number of program modules can be stored on the hard disk, magnetic disk 190, optical disk 192, ROM 140 or RAM 150, including an operating system 195, one or more application programs 196, other program modules 197, and program data 198. Any of the inventive principles described herein can be implemented in software and stored on any of the aforementioned storage devices.
A user can enter commands and information into the computer 100 through input devices such as a keyboard 101 and pointing device 102. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 110 through a serial port interface 106 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port or a universal serial bus (USB). A monitor 107 or other type of display device is also connected to the system bus 130 via an interface, such as a video adapter 108. In addition to the monitor, personal computers typically include other peripheral output devices (not shown), such as speakers and printers.
The computer 100 can operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 109. Remote computer 109 can be a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer 100, although only a memory storage device 111 has been illustrated in
When used in a LAN networking environment, the computer 100 is connected to the local network 112 through a network interface or adapter 114. When used in a WAN networking environment, the personal computer 100 typically includes a modem 115 or other means for establishing a communications over the wide area network 113, such as the Internet. The modem 115, which may be internal or external, is connected to the system bus 130 via the serial port interface 106. In a networked environment, program modules depicted relative to the personal computer 100, or portions thereof, may be stored in the remote memory storage device.
It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers can be used. The existence of any of various well-known protocols such as TCP/IP, Ethernet, FTP, HTTP and the like is presumed, and the system can be operated in a client-server configuration to permit a user to retrieve web pages from a web-based server. Any of various conventional web browsers can be used to display and manipulate data on web pages.
As shown in
One type of web page permits data to be entered using form fields. As shown in
As shown in
In accordance with one aspect of the present invention, data values entered by the user are extracted and stored for future use with different forms having fields with the same or similar identifiers. For example, the first time that the user of client computer 204 visits web site 201 and enters his name, address, and telephone number into form 250, modified web browser 206 associates the values entered by the user with the field identifiers and the URL for the web site and stores them into a data structure 207 for future use. Consequently, when the user visits different web site 202 and displays form 260, modified web browser 206 recognizes that some of the field identifiers used in form 260 are the same as or similar to field identifiers associated with a previously used form, and the values associated with those fields are retrieved and suggested to the user at the time he or she begins to fill out form 260.
Various techniques for prompting the user with suggested form field values are possible, and the invention is not intended to be limited to any particular approach. As shown in
As shown in
Modified web browser 206 may comprise any of a number of presently available web browsers that are modified in accordance with the inventive principles described herein. Many different approaches are of course possible, depending on the type of web browser and the design features available for the browser. One possible set of functions in the modified browser includes a field matching function 206 a, heuristics function 206 b, and a prompter and extraction function 206 c.
Briefly, field matching function 206 a searches through data store 207 when a field is selected to locate matching (identical or closely related) field identifiers, corresponding URLs, and previously used field values according to one or more heuristics determined by heuristics function 206 b. (Matching by URLs may not be necessary or desirable in all cases, as explained below). After the user has entered a value for a field or selected a previously used value, field matching function 206 a stores the value into data store 207 for future use, along with the URL and field identifier.
Heuristics function 206 b can be employed to generate suggestion lists according to various heuristics that can optionally be user-controlled. For example, suggestions can be displayed in priority order based on the source from which they were obtained; by most-recently-used values; by similarity of field name or URL; or any other measure desired. Various heuristics are described in more detail with reference to
Prompter and extraction function 206 c generates and displays prompt list 205 b according to the first letter typed in by the user, and stores values entered by the user into data store 207. One reason for requiring that the user type a first letter (or click a mouse button or make some similar user input) before any data values are released to the form (e.g., copied into data entry region 205 a) is that a nefarious web site operator may be able to extract data values from data entry region 205 a as soon as data is present in the region, which might cause suggested values (e.g., a telephone number) to be surreptitiously captured even if the user chooses not to enter a value into the field. For example, script on a web page could insert a character, wait for a change notification, and try to discern what suggested values were provided. Nonetheless, it is not necessary to implement the feature in this manner and it is of course within the scope of the invention to provide a suggestion list or suggested value without input at all by the user. Other variations on this approach are described in more detail below. Requiring a mouse click or key press would not require that the user navigate through the form using the mouse.
The values in data store 207 can be stored in encrypted form in a protected area in client computer 204. As explained in more detail herein, the values can be correlated or combined with data from other sources, such as values used by the profile assistant, an entry for the user in an operating system address book, commonly used field identifiers, or field names from the vCard schema.
Instead of storing data values in area 207, previously used form data values can be stored on a trusted web site known to browser 206 or selected by the user. As shown in
Reference will now be made to
In step 301, processing begins when the user hits a key, such as typing the first character of a field value, or by hitting the space bar or down arrow. For example, if the field is "name" and the user's proper name is "Joseph," the user could hit the "J" key on the keyboard. Upon detecting a keystroke, software identifies the field in which the cursor is active (step 302). In step 303, a determination is made as to whether the field is one of a special category, such as passwords, credit card numbers, and the like. If so, then special handling is performed in step 304, which may cause some or all of the remaining steps to be skipped for that field. (See detailed description below with reference to
Assuming that no special handling is required for the field, then in step 305 the field identifier for the field in which the cursor is active is matched to previously stored values for the same or a heuristically similar field to identify a list of one or more potential matches. As explained previously, this field matching step may encompass identifying the most recently used value for an identically named field or a similarly named field, and may generate one or more values used for different web sites, as illustrated in
In step 306, a list of possible choices is displayed to the user, preferably but not necessarily in a pop-down menu list of the type shown in
In step 307, the user selects a value from the list of choices by indicating that the suggested value is correct, or by navigating down the list of choices using a mouse, up/down arrow, or other similar technique. (If none of the suggested choices is correct, the user will enter a new value into the data entry region 205 a). Or, the user could continue typing, with the list being refreshed after each pause in the user's keystrokes. (Although not specifically shown in
It will be appreciated that there are many different ways of implementing the steps described above. For example, it is not necessary to require that the user hit a key before suggesting possible choices and inserting a data value into the field. However, as explained previously, requiring such a keystroke or other user-initiated action (such as voice input or the like) to prevent script on the page from impersonating the user may provide better security. Moreover, there are many ways of permitting the user to select choices and navigate among fields, such as using a tab key, up/down arrows, mouse clicks, and the like. Moreover, it may be desirable to give the user additional choices, such as affirmatively indicating whether a particular field value should be stored for future use.
Beginning with
A corner resizing tab 405 can be used to expand the displayable area of the list beyond the three choices shown in
In one embodiment, drop-down list 403 appears after the user enters the first character of a data value in form data area 402. The user will then have the opportunity to review the possible choices, which may be limited to previously used values for that field that begin with the same character. Alternatively, instead of typing the first letter, the user can press the "down" arrow key, which will cause the pop-down list to appear with suggestions for that field. With this approach, the user can, for example, fill out a zip code field without typing a single number (i.e., merely hitting the down arrow key will cause a list with the person's previously used zip code to appear). In one embodiment, the pop-down list feature may be limited to single-line edit boxes to prevent matching on such fields as e-mail messages.
Various methods of navigating through the list are also possible. The user can begin typing, causing the list to be narrowed down to those choices that continue to match the succeeding characters entered. Alternatively, the user can click the down arrow to view a list of all likely choices for that particular field. Another approach is to display the pop-down list if the user clicks on the field entry area 402 with the mouse. Once the list is shown, the user can use the mouse to select an entry or use the arrow keys to navigate through the list. To select the item from the keyboard, the user can hit return or tab. The tab key can also be used to advance to the next field. Once the user has finished the form, hitting return while in a field data entry area box will submit the form and store any form values entered for future use.
The escape key can be used to make the drop-down list disappear (if it is shown) and clear any values in the data entry field. Hitting the escape key while the cursor is in the data entry area can delete the text, or the delete key (or backspace key) can be used to erase one character at a time. Using the delete/backspace keys can cause the list to update as the user types, since the text in the field changes.
Various methods of controlling the drop-down list and specifying choices are possible, with the following illustrating one method of displaying and controlling the various choices in the drop-down list:
It may be desirable to provide indications to the user that the suggested choices are retrieved from the user's own computer rather than from the web sites visited. To that end, displaying a checkbox 404 (
A function can be provided which permits the user to delete items from the list of suggestions. For example, if the user types in "J", a suggestion list of "Jane", "John", and "Joe" might appear. If the user highlights and deletes "John", that choice would not longer appear on the list of suggestions.
The order in which entries are displayed in a pop-down list can be varied as desired. For example, if there is a previously stored field identifier that exactly matches a field on a form that the user is currently viewing, any data value associated with the previously stored field identifier can be suggested as a first choice. (If multiple data values are stored, they can be matched by URL, such that values from a previously visited web site would be displayed first). Alternatively, if a field identifier is not found in any previously stored data, the field identifier can be compared to one of a predetermined set of "common names" (e.g., name, address, telephone, phone, or similar subcombinations thereof such as addr) for which a known value exists. Similarly, a field identifier can be compared to a user profile stored on the client computer to find a match.
Another possible approach is to increment a one-up counter every time a previously stored field value is re-used, such that if there are several possible choices for a field, values will be suggested in the order of most frequent use. Alternatively, field values can be suggested in order of most-recently-used values.
Similarly, when the user visits a new web site not previously visited, any fields on that site having field identifiers of "name" or "firm" could be associated with the stored values from the earlier visited web sites, and heuristics function 601 could suggest any of the values previously stored from those web sites. Where multiple values were previously stored, they can be displayed in order of most-frequently-used, last-used, alphabetical, or any other order.
Additionally, where an exact match is not available, synonyms or close matches can be provided. Thus, for example, if a field identified as "username" is encountered, heuristics function 601 can determine that the field is similar to field identifier "name" in HISTORY, and the previously entered values for that field can thus be suggested. After the user selects a suggested value or enters a new value, history file HISTORY is updated to reflect the new information. (If the user had selected "do not store" for that field, however, this function would be bypassed).
The principles of the present invention can be implemented in conjunction with many different types of field information, including previously stored USER PROFILE information (such as might have been previously entered using the profile assistant); commonly used names file COMMON NAMES (e.g., a list based on commonly used field identifiers found on Internet web pages); and the conventional VCARD SCHEMA, which identifies specific fields that conform to the vCard standard. (The vCard field identifiers in
As shown in
Similarly, a web site that generates a form with the field identifier "firm_name" would generate a pop-down list automatically suggesting previously used values "Acme" and "Big Co." in HISTORY as follows: "firm_name" appears in COMMON NAMES, and is statically linked to field identifier "company" in USER PROFILE, which contains value "Acme" and is also linked to three fields in HISTORY. The linkages between field identifier "firm" in HISTORY and the field identifier "company" in USER PROFILE (and thereafter to "firm_name" in COMMON NAMES) could be created by noting that the value "ACME" appears as a field value in both files. Alternatively, the linkages could be determined by noting that the field identifier "firm" in HISTORY is similar to the field identifier "firm_name" in COMMON NAMES.
In one embodiment, heuristics function 601 suggests a previously used value based on priority of data source. In this embodiment, a high priority can be associated with file HISTORY, such that a field identifier that matches a previously used field identifier appearing in the history file is suggested first. Different priority levels can be associated with the other data stores, so that matches from those files can be suggested if there are no matches at the higher priority levels. Alternatively, all possible matches can be suggested from any of the data files, arranged in priority order. Where multiple matches exist in HISTORY, a previously stored field value that is from the same URL would normally be suggested as a first choice over matches from different URLs.
Few web sites currently use the vCard schema, and it is unlikely that all text boxes on most web sites can be easily changed to refer to the vCard fields. In order to achieve various benefits of the invention while minimizing the effort involved, an additional attribute can be added to the input tag for a form field to identify the field as follows:
<input type="text" name="email" VCARD_NAME="vCard.email">
In this manner, the site can simply add the VCARD_NAME attribute to gain the functionality of the present invention without re-coding. For example, assume an existing form has an input field <input type="text" name="email">. One way to exploit the automatic suggestion feature would be to change the coding of the input field to: <input type="text" name="vCard.email">. Unfortunately, this change may also require changes to script on the page and on the server, which assumes that the field is still named "email". One variation of the inventive approach introduces a new attribute VCARD_NAME which allows the author to explicitly express the mapping of the field to the standard vCard naming without requiring recoding of logic that depends on the "name" attribute. In effect, the VCARD attribute provides a "union" function, so that the set of possible completion values can come not only from the set of values previously stored for the field, but also from an explicit set of values reference by the attribute. Two fields that have different names can be "forced" to be correlated for suggestion purposes by adding the same vCard attribute to each of them.
Field values can also be associated across different fields by context through the use of data file FIELD CORRELATORS. For example, if a user fills out an on-line catalog order specifying his name, address, and zip code on a single form, an indicator can be set indicating that those values are probably related (i.e., they were supplied on the same form). As shown in
One technique for correlating field identifiers to previously used field values is through the use of Bayesian inference techniques. The well-known Bayes' theorem states that the probability that an event A occurs given that another event B has already occurred is equal to the probability that the event B occurs given that A has already occurred multiplied by the probability of occurrence of event A and divided by the probability of occurrence of event B. Using such techniques, inferences can be drawn regarding fields that frequency appear together on a form. As one example, suppose that field identifiers for username, password, and e-mail fields frequently appear together on a form, and generally appear in that relative order on a web page. (This can be detected either automatically or pre-set by a human programmer). Then, suppose that a new form is presented that contains field identifiers "username", "password", and "mail." Using Bayesian techniques, one could infer that the third field "mail" is the same as the e-mail field on the other forms, and could suggest previously used e-mail values for the "mail" field.
There are many different ways of storing previously used field values and mappings among values. When a form is submitted to a web site, the field identifier, time, and field value can be stored, indexed by the field identifier. A secondary data store, indexed by URL, can also be updated. The data store is preferably encrypted and stored in a protected area on the client computer. In addition to those files shown in
As with any feature that "remembers" user input, there may be security issues to consider when implementing the principles of the invention. These include (1) ensuring that web sites can't collect the stored data values entered by the user; (2) making it difficult for outsiders to get at saved user data; and (3) ensuring that users will perceive that their data is secure.
As to the first issue, it may be desirable to ensure that any site will have no way to see the information stored. While the user will see the proposed choices in the pop-down list, it may be desirable to inhibit storage of any suggested values into the form field data entry region except as initiated by user action (i.e., pressing a key, hitting the down arrow, or clicking in the field). A second-click mechanism could also be provided whereby if the user clicks on a field once, the focus shifts to the field, and a second click shows all completions for what's in the field. (The second click would not be necessary if the field already had focus, such as if the tab key had been used). One benefit of this is that a user can fill in forms without ever touching a key on the keyboard, yet it still requires physical input so that a web site can't circumvent the feature.
Stored data can be encrypted and stored in protected storage. If the user is logged into the operating system, the user's password can be used to encrypt the data. If the user has not logged into the operating system, then a unique key per machine can be used to encrypt data in the protected storage area.
It may be desirable to avoid storing for later suggestion purely numeric data values, such as credit card numbers, PINs or account numbers (the latter examples are typically stored as text but represent numeric-only values). It is of course within the scope of the invention to suggest such values.
Several measures can be taken to ensure that users will perceive their data as secure. Administrators can restrict the use of the features through a browser administration configuration tool. Additionally, each user can be given a global choice to activate or deactivate the autosuggestion feature, so that field values are never stored when the feature is deactivated (see
It may be desirable to provide web sites with a mechanism for disabling the autosuggestion feature via script. Some web sites, for example, may perceive it as detrimental to the operation of their web sites to have field values automatically suggested by a web browser. An attribute can be set aside to turn off the autosuggestion feature for a particular field or for an entire form (e.g., <INPUT name="first name" AUTOCOMPLETE="off">).
For security reasons, it may be desirable to avoid automatically storing fields containing numbers, except for those within the vCard schema or those common names mapped to the schema (e.g., zip codes, and telephone numbers). This is because there is a chance that a field could represent a credit card number, social security number, bank routing number, or the like. Numbers probably make up some of the most sensitive data the user enters in on the web.
Passwords may also require special attention, and can be handled by password processing function 603. In one embodiment, passwords can be suggested only after a known username is selected from the drop-down menu. Thus, it may be desirable to remember the login password of each username on a per-domain basis. The function would consider what fields exist on a form. If there were a regular edit field and a single password field, it is probably a login page. When the user enters a username and password, he can be prompted by the browser to store or not store the password (see
In one embodiment, when a user selects a suggested item for a username field, password processing function 603 automatically and immediately fills in the associated password field with the password that was last used (and stored) with that username on that specific form. (The latter feature can also be implemented by associating the password value with the username without matching on the specific form). Requiring a match on the specific form (identified by the URL) can prevent an unscrupulous web site operator from stealing the user's password via a "trojan horse" attack; i.e., impersonating the legitimate site which requires a username and password and waiting for the user to fill in their username, which would thus fill in a passsword field (possibly hidden), which is then available to the imposter site. Matching on the specific form ensures that the password is automatically filled in only on the legitimate site. As described previously, it is contemplated (but not critical) that passwords are hidden with asterisks or the like, such that a list of passwords cannot be easily viewed. Due to security issues with remembering passwords, a preferred embodiment requires user confirmation before remembering and associating a password with a particular username and form.
In addition, a checkbox can be provided to avoid prompting again for this feature. The action that results from the various combinations of inputs are:
Yes, unchecked: Remember password for this login (based on URL) and ask again in the future about passwords.
No, unchecked: Do not remember password for this login (this is the default action), but ask again in the future.
Yes, checked: Remember password for this URL but don't show this window again.
No, checked: Do not remember and don't ask again. (However, any previously remembered passwords will still be filled in automatically)
Unless the user checks the "don't ask again" choice, the window will appear for each new login encountered. This includes a new user logging in to the same URL. For security reasons, it may be desirable to avoid having a "Yes to all" counterpart, since that would indicate that passwords are stored without warning, and unknowing users could compromise their passwords without even knowing it.
When passwords are changed, additional processing may be required. In one embodiment, software can detect when a different password has been entered for a username already in the database. The user will be prompted if they want this password changed via a dialog, such as: "The password you entered is different from the one previously stored; would you like the new password to be stored for future use?"
Additional precautions can be provided to protect passwords against "spoofing," such as might occur if a web site attempted to spoof a login page and extract a password after a user name is selected from the drop-down list. In one embodiment, a URL match is required, such that if the URL does not match, no passwords will be suggested. Additionally, passwords are preferably encrypted and stored in protected storage, such that someone with physical access to the machine cannot gain access to them. Moreover, when filling in a password from a suggestion list, it may be desirable to hide the password with asterisks or a similar mechanism.
A password can be stored in the name-indexed data store in pages where the user completes a field with the <input=password> tag. In addition to linking that password to an URL in the data store, the password can also be linked to form information in the base URL (i.e., in addition to storing form information for the page www.amazon.com/exec/obidos/order2/002-7097885-2828235, also link to the base URL, www.amazon.com/. These URLs may be accessed via a secure http address). That URL should be checked for passwords. Also, a check should be made to determine whether the user has decided not to save encrypted pages to the cache.
Where there are multiple users, it may be desirable to prevent one person from using another's passwords. One approach is to require each user to only remember a single password, and that password would give the user access to all the passwords they use while browsing the web. When a page is first loaded with a tag <input type=password>, a "login" dialog can be presented. Once the user has logged in, the user has been identified and all further data fields can be automatically suggested. When the user exits the browser, login information is lost and the user would need to log in again. A global login procedure could also be provided for the feature (e.g., explicitly login to the browser to turn on the feature).
Credit card information may also be subjected to special handling. A malicious web site could generate an input field with an innocuous name like "FirstName" while labeling it "Credit Card Number." An unknowing user may then enter their credit card number, which would then be saved and offered for autosuggestion whenever an input field named "FirstName" is encountered. This could critically affect the perceived privacy of the inventive principles. To prevent this, a checksum can be performed on field values that are integers. One possible checksum algorithm is as follows:
For a card with an even number of digits, double every odd numbered digit and subtract 9 if the product is greater than 9. Add up all the even digits as well as the doubled odd digits, and the result must be a multiple of 10 or it's not a valid card. If a card has an odd number of digits, perform the same addition, doubling the even numbered digits instead.
Since cards can have varying numbers of digits (i.e. Visa has 13 or 16, Amex 15, and MC 16), the fields can be filtered on a minimum of 10 digits. This will prevent the software from catching zip codes with the checksum. If the field value is a credit card number, then storage of the field for future use can be suppressed.
The foregoing explanation includes many variations and embodiments, and the invention is not intended to be limited to the specific details disclosed herein. Consequently, the invention is limited only by the claims appended hereto.
Patent Citations
Non-Patent Citations
Referenced by
Legal Events
Original Image


text:
Your legs are your engine, and the Strada Cadence is your tachometer. This sleek CatEye cycle computer delivers the essential functions of the Strada plus pedal cadence. The Strada Cadence boasts the largest screen and numbers in its class. With the new ClickTec™ interface, you can switch among eight modes by simply pressing the bottom of the computer face. Your selected mode (cadence, average speed, etc.) displays at the bottom of the screen, while your current speed always appears at the top in huge, easy-to-read numerals. An up/down arrow tells you whether you're above or below your average speed. The innovative FlexTight™ bracket mounts quickly, securely and without tools to virtually any handlebar or stem. The new tool-free speed and cadence sensor mounts effortlessly to any standard (non-elevated) chain stay. Are you spinning or grinding? Guess no more.
Buy Cateye Accessories from Chain Reaction Cycles, the World's Largest Online Bike Store.
Black - Red
When Buying Computers, , Also Consider...
Sign me up!


text:
Obermeyer Funshine Hoodie (Toddler Girls')
Product Details
Style: 27540
The Obermeyer Funshine Hoodie is a super-soft furry fleece that she'll reach for every day. This fleece jacket zips up the front making it easy for little girls to get bundled up. The Funshine is made with OberFur, a fuzzy plush fleece that's soft to the touch. Kangaroo pockets give her a warm place to stick her hands, or even to stash her favorite snacks.
- 100% polyester OberFur fleece fabric
- Fuzzy plush fleece is ultra soft
- Full-zip style for easy on and off
- Attached hood to keep her head warm
- Kangaroo pockets to keep her hands warm
- Heavy-duty zippers for durability
- Chapstick pocket on right kangaroo pocket
- Fun flower and heart details
Questions and Answers
ASK A QUESTION Got questions about this product? Ask them here. Got questions about anything else? Please see our FAQ.
User Reviews
There are no reviews yet for this product.
More Like This
Our Price 19.99
Available Sizes:L, M, S, XL, XS
Our Price 29.99
Available Sizes:L, M, S, XL, XS
Our Price 24.99
Available Sizes:XS
Our Price 24.99
Available Sizes:XS
Our Price 24.99
Available Sizes:S, XS


text:
Scolnik House of the Depression Era
Editor's Review
Muskegon's Hackley and Hume houses reveal how the town's wealthy residents lived at the best of times during the lumber boom. At the Scolnik House, though, visitors see how ordinary Muskegonites lived during the toughest of times—the Great Depression.
In 2007, the Scolnik House joined the Lakeshore Museum Center as one of Muskegon's newest historical sites. The modest home re-creates life as it was in the Depression era via period artifacts, such as a Monopoly game, roll-up mattresses for stragglers to use, and a kitchen kitted out with 1930s appliances and furnished with shelves of home-canned fruits and vegetables.
Unlike most historical homes that are open for touring, everything in the Scolnik House is fair game to touch and handle. Intrigued by the canned goods? Pick them up to examine them most closely. (They're made of unbreakable acrylic.) Think Monopoly sounds fun? Sit down and play a game. Interested in the old Muskegon Chronicle? Settle onto the couch and read it. No worries about keeping curious little hands off, this is one site where you can feel good about bringing the kids.


text:
Viewers: in countries Watching now:
In Motion 4 Essential Training, Ian Robinson shows how to start building outstanding motion graphics and animations for video production. He demonstrates how to build custom text animations with the new Adjust Glyph tool and explores Motion's amazing real-time 3D tools. Ian highlights working in the 3D space, creating depth with lights and shadows, and using reflections to add realism. He gives practical advice on how to integrate Motion into a professional video workflow, round-tripping with Final Cut Pro and sending a final project to Compressor. Exercise files accompany this course.
Generators in Motion do exactly what their name implies, they generate, they generate something out of nothing. And to see exactly what I'm talking about, let's go to the Library tab in the utility window. Click on Library and go down to Generators. If you're coming from Motion 3, you'll notice we have a new category called Text Generators, which we'll get to in another video. But for now, let's just look at the main set of generators. If you click on the generator at the bottom of the utility window, you'll notice you get the preview up here just like with filters or behaviors.
So what I'd like to do in this project is use a generator to actually add some light and texture to this title animation. Go and click through some of the generators, so you can see some of the different things we can create. Let's go ahead and apply this Spirals generator to the title. Now we can click the Apply button, but since there's a title on here and some background video, let's press F5 and actually check out the project. So sure enough, we have two groups, Title and Background_Video. Since I want this spiral to go in between the two, I'll click the Plus button while I've highlighted the background video to add a layer.
Let's drag the behavior directly into the newly created group and double-click it and we'll just call this Generator. Now select the behavior and let's go to the Inspector tab. If you hit the Play button, you'll notice the only thing animating right now is the text. It's very faint in there. But by default, this specific generator doesn't animate at all. Since this isn't blending with the background at all, let's change the colors. Ctrl-click in color well 1 and let's change it to a dark green.
Let's do the same Ctrl-click with color well 2 and choose kind of a light green. Still not blending very well, so let's open the HUD and you notice we have an option here for Blend Mode. So let's change this to Overlay. This is looking a lot better and a lot closer to what I was looking for. It's still a little sharp on the edges though, so let's see if we can fix that. Notice as you drag Tightness, you can make the Spiral really tight, really loose. Let's go ahead and get it really kind of loose like this. That's perfect! We can also adjust the Contrast, so let's blow that out a little bit.
So we sort of soften this up. Now if you click-and-drag on Rotation, you'll notice it's kind of spinning in. Now, I still don't like how dark this is, so we'll Ctrl-click right back on the green and just bring it up to a slightly more saturated lighter version. There we go. That's a lot better. So now in order to get Rotation to constantly spin, we'll just add a parameter behavior. Ctrl-click on the word Rotation and choose Rate. Now, we can drag the Rate up or we can drag the Rate down.
Let's click Play so we can see what direction we're going. I'd actually like this to radiate out from the title, so let's drag it to the left. And there we have it. We've just created a generator and animated it using a parameter behavior. You notice we've used this to just create a type of lighting effect. So we've applied our first generator and integrated into a clip. As you can see, generators are great way to add texture and interest to your motion graphics.
Find answers to the most frequently asked questions about Motion 4 Essential Training .
Here are the FAQs that matched your search "" :
Sorry, there are no matches for your search "" —to search again, type in another word or phrase and click search.
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.


text:
ACCS Introduction
ACCS is a 3 year training programme that normally follows Foundation Year 2. It is the only core training programme for trainees wishing to enter higher specialty training in Emergency Medicine and is an alternative core training programme for trainees wishing to enter higher specialty training in General Internal Medicine (GIM), Acute Internal Medicine (AIM) or Anaesthesia. The first two years are spent rotating through Emergency Medicine (EM), General Internal Medicine, Anaesthetics and Intensive Care Medicine (ICM). The third year is spent providing training that will ensure the trainee meets the minimum requirements for entry into higher specialty training in their parent specialty (EM, GIM/AIM, Anaesthetics and also ICM). The components of training in ACCS are:
- 1 year emergency medicine + general internal medicine: acute (usually 6 months each)
- 1 year anaesthesia + intensive care (minimum of 3 months in each)
- 1 further year within chosen parent speciality *
* For trainees beginning ACCS training from 2010. (Acute Medicine ACCS trainees starting prior to 2010 are likely to have been appointed to a two year training programme encompassing the first two years of ACCS only)
Aims of ACCS
The aim of ACCS training is to produce multi-competent junior doctors able to recognise and manage the sick patient and who have the complementary specialty training required for higher specialist training in emergency medicine, acute medicine, anaesthesia and intensive care medicine.
Within the overall aim, each parent specialty has a specific objective for their own ACCS trainees:
- Acute Medicine: ACCS is one of the training options available for delivering the core competences required for a CCT in GIM, AIM or one of the acute medical specialties in a pre-planned and structured manner. The first two years of ACCS training (GIM (Acute), EM, Anaesthetics and ICM) are followed by a further year in GIM (Acute). The trainee should take part in at least 4 shifts of acute medical take per month during the 6 month period of training in medicine. This three year training programme fulfils the requirements for progression to higher training in GIM, AIM or an acute medical specialty.
- Emergency Medicine: ACCS constitutes the first three years of the CCT in EM in a pre-planned and structured manner. The first two years of ACCS training (EM, GIM(Acute), Anaesthetics and ICM) are followed by a further year gaining additional competences in adult EM (including musculoskeletal emergencies) and Paediatric Emergency Medicine; thus fulfilling the requirements to progress to higher training in EM.
- Anaesthesia: Anaesthetics offers career opportunities in a wide range of subspecialty areas all of which can be achieved by direct entry to an Anaesthetic CCT programme. However, those Anaesthetic trainees with an interest in the 'acute' end of the Anaesthetic spectrum will find ACCS an ideal career starting point. It provides trainees with more widely based experience than is available solely within the Anaesthetic CCT programme. The first two years of ACCS training (GIM (Acute), EM, Anaesthetics and ICM) are followed by a year of Anaesthetic experience at CT2 level.
- Intensive Care Medicine: ACCS allows trainees who wish to obtain dual CCT in Acute Medicine & ICM, Anaesthetics & ICM or Emergency Medicine & ICM, to obtain the competences of the complementary specialties in a pre-planned and structured manner.
- ACCS and the academic trainee: Trainees joining the ACCS programme may wish to pursue an academic career and have the opportunity to compete for Academic training posts. This gives the successful trainee the opportunity to undertake an additional year of training specifically to prepare them for research. This will enable them to submit a research proposal which, if successful, will provide the funding to support their research before they enter higher specialist training. When this year is undertaken will be determined locally and will typically involve attendance at taught courses covering such areas as critical analysis of scientific literature, information management, study design, basic statistical analysis, fraud, ethics and plagiarism, presentation skills, scientific writing and publishing skills. Trainees may have the opportunity to complete a Masters programme in research. The three years of clinical training within the ACCS programme has to be completed by these trainees. The clinical component is demanding and experience has shown that trainees need all this time to gain the knowledge skills and attitudes required and to be successful in the summative assessments. The overall clinical training time for these trainees should not be shortened.
During the ACCS programme, you must complete a portfolio of evidence in support your achievement of the curriculum. As well as work place assessments this should include a clinical log book, a record of educational, management, audit and clinical governance activities, relevant continuing professional development activities and a written record of your supervisors meetings and personal development plan. Details of these can be found across the relevant webpage's.