This invention relates generally to telecommunications, and more specifically relates to a system and method to determine loop characteristics.
Research and development in telecommunications applications have been expanding to meet the increasing popularity in the Internet. One particular application relates to digital subscriber line (DSL) technologies, including symmetric DSL (SDSL) and asymmetric DSL (ADSL) and high data rate DSL (HDSL), to name a few. DSL can employ a variety of possible information rates and protocols depending on the type of DSL being implemented. DSL is a modem technology that converts existing telephone lines into access paths for multimedia and high speed data communications. DSL utilizes advanced digital signal processing and creative algorithms to provide greater amounts of information through twisted-pair telephone lines than was conventionally feasible. Accordingly, a person can employ DSL modems to communicate with a local Internet Service Provider (ISP), and the person still can be able to talk on the phone. For example, in an ADSL loop, a central office line driver drives the DSL signal onto telephone lines. The ADSL signal includes data streams that are carried over tones that are amplitude, phase modulated and frequency separated by about 4 KHz.
Conventional DSL modem designs include circuitry referred to as analog front ends in which operations, such as digital-to-analog and analog-to-digital conversion, amplification/attenuation and filtering, are performed. The analog front ends transmit and receive data to and from associated telephone lines (subscriber loops). During normal operation when a modem exists at both ends, the configuration and characteristics of the loop are generally known. Service providers also maintain records of subscriber loops, such as defining their length, configuration, and location. However, field staff may change the subscriber loop configuration and not fully update these records. Also, loop characteristics can change, such as when malfunctions occur somewhere in the loop. Accordingly, there is an impetus in the industry to make loop qualification or testing a more routine practice by DSL service providers.
One approach to perform qualification is to employ separate dedicated measurement hardware, which can be expensive and, therefore, unattractive. Another more attractive approach is to design DSL chips to monitor and provide performance parameters to the management system. The performance data could be read periodically (perhaps once a month) for all deployed lines from which a database of real measurements could be constructed. Then when a potential new customer requests DSL service, the operator could more easily decide whether that request could be granted. Qualification and testing can also be performed to determine information about physical properties or operation of the line.
The present invention relates generally a system and method to determine loop characteristics. One aspect of the present invention provides a system to determine at least one characteristic associated with a subscriber loop. The system includes memory that stores data indicative of signal responses and loop characteristics for a plurality of loop configurations. A processor is programmed to ascertain at least one loop characteristic associated with the subscriber loop based on evaluation of data associated with a signal response received via the subscriber loop relative to at least a portion of the data indicative of signal responses stored in the memory.
Still another aspect of the present invention provides a system to determine at least one characteristic of a communications medium. The system may include a measurement component that determines an indication of a response received from the communications medium in response to a test signal transmitted over the communications medium. A data structure (e.g., stored in memory) includes signal response data for a signal response associated with each of a plurality of known configurations of the communications medium. The data structure includes data indicative of at least one characteristic associated with each of the plurality of known configurations of the communications medium. An evaluator evaluates the indication of the response received from the communications medium relative to the signal response data of the data structure to determine the at least one characteristic of the communications medium. The communications medium can be subscriber loop of a DSL system, with the characteristics including, but not limited to one or more of loop length, gauge, and termination type of the communications medium.
Yet another aspect of the present invention provides a system to determine at least one characteristic associated with a subscriber loop. The system includes means for providing an indication of a signal response during a test mode in response to a test signal transmitted over the subscriber loop. The system also includes means for identifying the at least one loop characteristic based on comparing the indication of the signal response relative to a plurality of expected responses associated with known loop configurations.
Still another aspect of the present invention provides a method that includes transmitting at least one test signal over a subscriber loop and receiving a signal response to the at least one test signal. An actual response associated with the subscriber loop is determined based on the received signal response. The actual response is compared relative to stored response data for at least one expected response for at least one predetermined loop configuration, and at least one characteristic of the subscriber loop it identified based on the comparison.
The system 10 can be implemented within a modem 14 that includes a processor (e.g., a digital signal processor (DSP)) that is operative to control associated circuitry for communicating signals through an analog front end (AFE)/hybrid system 18. Those skilled in the art will understand and appreciate various types of modulation schemes and encoders that can be utilized to transmit data (e.g., including voice data, information data, video data or a combination of voice, video, and information data) through the AFE/hybrid 18 and over the loop 12. The modem 14 can be located at a central office, a remote terminal site, or, alternatively, it can be located at a consumer premises.
The processor 16 implements a single ended loop testing (SELT) algorithm 22 that controls a process to determine characteristics or parameters associated with the loop 12. SELT is an automated way of testing a DSL loop from one end of the line, either from the central office (CO), the remote terminal (RT) or from the subscriber's end. Unlike dual-ended loop testing (DELT), where someone, usually the operator's technician, must install a DSL modem or some sort of test device at the consumer's end of the line, SELT does not require a technician or any equipment at both ends. Accordingly, SELT can be performed from the network side without physically accessing the subscriber site.
The processors 16 can be utilized in conjunction with a plurality of modems (e.g., operating a multi-port modem), AFE/hybrids and associated communications circuitry for ascertaining loop characteristics for any number of one or more loops 12. For purposes of brevity and not by way of limitation, the modem 14 is described as a single port modem that communicates over a single loop 12.
The modem 14 can include memory 20 programmed with data indicative of responses for one or more loop configurations and with data that describes one or more characteristics or parameters associated with each of the loop configurations. For example, the data can be stored as a table, although other forms of data structures can be employed for storing the data. The characteristics of the subscriber loops for which the response data is stored in the memory 20 are known so that the processor 16 can employ the SELT algorithm 22 relative to the data in the memory to determine one or more loop characteristics for the loop 12 based on the data in the memory 20. As parts of a testing process, the processor 16 causes a signal to be transmitted-through the AFE/hybrid 18 over the loop 12. For example, the signal can be transmitted on a set of frequency bands (or tones) that exist in both the frequency bands employed in transmitter and receiver portions of the modem. As used herein, a “tone” corresponds to the frequency inputs to an inverse fast Fourier transform that defines the tone, defining a separate frequency band in the time domain. For instance, in ADSL, data can be communicated over a loop according to a frequency division multiplexing scheme that employs a plurality of tones. A response to the signal transmission is received by the modem 14 and is communicated to the processor 16 after employing some pre-processing, including conversion through the AFE/hybrid 18.
The SELT algorithm 22 is programmed to ascertain the one or more loop characteristics associated with the loop 12 based on the signal response data relative to at least some of the data stored in the memory 20. As mentioned above the data stored in the memory 20 includes response data for known loop configurations based on which the processor 16 can determine one or more characteristics of the loop 12. The type of response data stored in the memory 20 corresponds to the same type of responses being measured and analyzed by the SELT algorithm 22. For example, the response data in the memory 20 can correspond to a signal response or echo response and can be in the time domain, frequency domain or a combination of time domain and frequency domain.
To reduce overhead requirements for implementing the SELT algorithm 22, response data for different loops can be stored for each loop as a set of coefficients selected to represent at least a portion of the responses for a plurality of loop configurations having known loop characteristics. The loop characteristics for each loop can also be stored in the memory 20 associated with a respective set of coefficients for a given loop configuration. By storing coefficients associated with the responses for different loop configurations in the memory 20, memory requirements for implementing the table in the memory 20 can be significantly reduced. When coefficients are stored in the memory to represent responses for different loop configurations, the processor 16 can be programmed to convert coefficients for a given response for different loop configurations to a corresponding portion of a response that can be compared relative to corresponding portions of the response for the received signal. Alternatively, the processor 16 can be programmed to convert the response for a given received signal response to a set of corresponding coefficients that can be evaluated relative to the stored coefficients to determine corresponding characteristics of the loop 12 that is being evaluated.
As an example, the processor 16 can implement the SELT algorithm 22 to perform the comparison between the received signal response and the response data stored in the memory 20. For instance, circuitry in the modem 14 can convert the received signal response to an echo frequency response by dividing out the transmitted test signal in the frequency domain. The processor 16 can employ the SELT algorithm 22 to convert the stored coefficients to corresponding echo frequency response data and compare the echo frequency response relative to the corresponding echo frequency response data for at least some of the loop configurations. The stored response data that produces a minimum error (e.g., mean square error as well as other statistical or non-statistical methods) between the received echo frequency response and the converted echo frequency response data can be employed to identify loop characteristics for the loop as matching those associated with the stored response. Those skilled in the art will understand and appreciate that other types of signal responses, including both echo and transmitted portions of the received signal can be utilized to ascertain loop characteristics. Additionally, the evaluation and analysis of the received signal can be performed on a time domain or frequency domain representation thereof, with the memory 20 being programmed accordingly.
The system 10 further can include an interface (or bus) 24 that enables a computer 26 to communicate with the modem system 14. The computer 26, for example, can correspond to a central control computer (e.g., a work station or a personal computer) in a central office of a service provider. The computer 26 can communicate via the interface 24 to a plurality of modems similar to the modem 14 to implement the desired testing for loop characteristics of a plurality of loops. The computer 26 can be local or remote relative to the modem system 14, such as located in a control station. A user can employ the computer 26 via the corresponding user interface 28, such as including a graphical and/or text-based human-machine interface. The user can also manually initiate the SELT algorithm via the user (e.g., human-machine) interface 28. Alternatively, the computer 26 can be programmed to initiate the SELT algorithm periodically or after certain events occur. The computer 26 can also be employed to control one or more aspects of SELT by providing instructions (e.g., network management functions, such as by using Operations Administration and Maintenance (OAM)) to the modem system 14 via the interface 24. The modem 14 can also provide the computer 26 with information describing the loop characteristics for the loop 12 based on the determination of loop characteristics, such as described herein. The computer 26 can in turn provide an indication of the loop characteristics to one or more output devices (e.g., a monitor, a printer and the like) indicated at 30.
The system 50 includes a DSP 54 that is programmed and configured to implement a single ended loop testing (SELT) algorithm. As part of the SELT algorithm, the DSP 54 is operative to control hardware as well as associated software for communicating test signals over the loop 52. In the example of
The loop 52 is coupled to the AFE 60 for propagating data to a subscriber's equipment associated with the loop. When data is transmitted over the loop 52 from the AFE 60, a response associated therewith can be returned to system 50 through the AFE 60. The AFE 60 provides the response to an averaging function 62 that is operative to obtain an average of the response to the sample signals transmitted by the IFFT 58 over the loop 52. For example, the averaging function 62 averages the responses over time for the same test signal transmitted multiple times. The average function 62 provides an average indication of the received signal to an FFT block 64. The FFT block 64 is operative to convert the time domain data from the average block 62 to a corresponding frequency domain representation. The frequency domain representation can be provided to additional hardware and software, which is represented in
The FFT block 64 also provides the frequency domain representation to the DSP 54 for processing in accordance with an aspect of the present inventions. The DSP 54 includes a division function 70 that is operative to divide the frequency domain representation of the received signal by the frequency domain representation of the transmit signal to generate a corresponding echo frequency response 72. The echo frequency response 72 can be a complex echo response or it can be a magnitude echo response to reduce memory requirements. Those skilled in the art will understand and appreciate that the received signal can also be processed by the DSP 54 to ascertain characteristics or parameters associated with the loop 52. For example, the FFT block 64 can provide the frequency response for the receive signal directly to an analysis block 74, as indicated by the dashed line 76. As another alternative, some or all of the processing can be performed on a time domain representation of the response for the receive signal (e.g., provided to the analysis block 74 from the averaging function 62—not shown).
In the example of
To reduce data storage requirements associated with implementing the SELT algorithm in the DSP 54, the response data stored in the loop table 78 for each loop configuration can be stored as coefficients that represent the echo frequency responses determined for loops having known parameters. The loop characteristic table 78 can be programmed based on computer simulations performed on loop models. Additionally or alternatively, the loop characteristic table 78 can be programmed based on actual and empirical testing performed over a plurality of loops having differing characteristics as well as for a plurality of different AFEs for each loop configuration. By programming the table 78 testing over a plurality of AFEs, the response data stored in the loop characteristic table 78 can accommodate process variations associated with the AFEs and other chipset variations.
An interface 80 can be utilized to control and configure the SELT process, such as by a computer (or other input device) that is communicatively coupled to the DSP 54 via the interface 80. For instance, an operator at a central office can control the SELT algorithm implemented by the system 50 by entering instructions through the interface 80. As a further example, the interface 80 can be utilized to input a priori information for one or more known parameters of the loop 52 that is being tested. Based on such a priori information, for example, the analysis block 74 can reduce the table 78 to a subset of the entries in the table 78 that include the a priori information provided to the interface 80. Additionally, an operator or other user can send an appropriate start command to the DSP to initiate SELT through the interface 80. The system 50 can also provide the results of SELT performed by the analysis block 74 over the interface 80, including an identification of one or more loop characteristics for the loop 52 based on the results of the analysis between the received echo response 72 and the stored loop characteristic and response data in the table 78, such as described herein.
The SELT algorithm 102 includes a SELT control block 106 that is operative to control the SELT algorithm 102. The SELT control block 106 includes a measurement block 108 that is operative to ascertain an indication of a receive signal response for an associated loop (not shown). The measurement block 108 can determine the receive signal response based on a receive signal (RX) or based on a transmit signal (TX) and the RX signal. The measurement block 108 can provide the receive signal response data to an evaluate component 110. The response data can be provided in the time domain or the frequency domain. For purposes of simplicity of explanation and consistency, the SELT algorithm 102 will be described in
The evaluate block 110 is operative to evaluate the signal response based upon predetermined response characteristics stored in the loop table 104. The evaluate block 110 is programmed and/or configured to include an error function 112 that is operative to determine an error value (e.g., a mean squared error) between the measured echo frequency response and a response based on corresponding echo response data stored in the loop table 104.
In the example of
The loop table 104 can also include a coefficient entry 116. The coefficient entry 116 corresponds to coefficients of a polynomial expression which has been determined to approximate an echo frequency loop configuration. Start and stop entries 118 and 120, respectively, are associated with each set of coefficients to identify a tone range over which the coefficients 116 apply in the polynomial to provide the echo frequency response. Associated with each ID entry 114 are also loop configuration data. The loop configuration data can include a loop length field 122, a gauge field 124, termination type field 126 as well as one or more other SELT parameter fields, indicated at 128. Each of the loop configuration fields 122, 124, 126 and 128 collectively corresponds to a loop configuration for each indexed entry 114 and is associated with a set of coefficients 116 that define a corresponding signal response.
The SELT control block 116 controls a selection component 130 to obtain coefficients 116 and start and stop data 118 and 120, respectively, for a given indexed entry in the loop table 104. The selection component 130 provides the coefficients and start/stop information 116, 118 and 120 to a conversion block 132 that converts the coefficients to a corresponding polynomial curve corresponding to an echo frequency response (e.g., an echo magnitude frequency response) for the tone range defined by the start and stop tones 118 and 120.
For each selected entry, the conversion block 132 provides a corresponding signal response within the start and stop tone range to the evaluate block 110. The error function 112 thus computes the corresponding error between the measured response provided by the measurement block 108 and the converted response for a given entry of the loop table 104 to determine a corresponding error value. The error function 112 determines which entry has a minimum error value and then provides the entry ID information to the SELT control block 106. The selection component 130 can in turn access the loop table 104 and obtain corresponding loop configuration data 122, 124, 126 and 128 and provide such information to a corresponding memory 136, such as a predefined output register. Alternatively, the SELT control block 106 can provide the resulting loop configuration data 122, 124, 126 and 128 through the interface 134 to an associated device, such as a control console or a computer in a central office.
If one or more of the loop characteristics, such as loop gauge or termination type, are known, a user can enter such information as a priori information into the SELT algorithm 102 to facilitate analysis via the interface 134. The selection component 130 can employ this a priori information to implement a table mask to exclude certain indexed entries 114 from the SELT algorithm 102. The interface 134, for example, can receive input data from an associated computer or user entry device that defines certain known loop configuration characteristics or other a priori information associated with the loop being tested. The SELT control block 106 can employ the a priori information to cause the selection component 130 to exclude from consideration entries in the loop table 104 that do not include the known types of data. For instance, where a given loop is known to have a particular gauge wire, all loop table entries that have different gauges can be excluded from the SELT algorithm 102, thereby greatly simplifying the algorithm as well as improving accuracy. Those skilled in the art will understand and appreciate that any type of a priori information about the loop characteristic can be utilized to generate an appropriate mask by the selection block 160.
The a priori loop configuration should be entered by a user prior to initiating the SELT algorithm 102. For instance, a user can enter information to identify a known loop gauge, a known loop termination as well as whether the SELT algorithm is to be implemented with or without calibration. If no a priori loop configuration information is entered, the SELT algorithm can be performed against all possible loop configurations, including loop gauges and terminations in the table 104. As an example, the input information, including a priori loop configuration information, can be provided via the interface 134 as a six byte entry having a format as set forth in the following Table 1.
The loop table generation system 150 also includes a test mode control 158 that is operative to control the process of obtaining and processing data for use in generating the corresponding table 160. The test mode control 158 is loaded with loop data 162 corresponding to known characteristics associated with the loop 156. The loop data 162, for example, can include the length of the loop 156, the gauge of the wire for the loop, the type of loop termination as well as other characteristics, including whether calibration is to be implemented. Those skilled in the art will understand and appreciate that the loop table 160 can be programmed and generated to include a variety of loop parameters data that can be employed to characterize an associated loop 156.
The test mode control 158 provides a test signal (e.g., a REVERB signal) to a constellation encoding block 164. The constellation encoding block 164 encodes the test signal as data on appropriate carriers and subcarriers and provides the encoded data to an IFFT block 166. The IFFT block 166 in turn provides a corresponding time domain signal to the analog front end 154. The analog front end 154 in turn transmits a corresponding analog signal over the loop 156. Signals are received by the AFE 154 and are provided to a FFT block 168. The FFT block 168 converts the received time domain signal to a frequency domain representation thereof, which is provided to a divide component 170. Averaging can also be performed so that the frequency domain signal includes an average symbol response over a plurality of samples. The divide component 170 divides the transmitted frequency domain signal by the received frequency domain signal provided by the FFT component 168 to generate a corresponding echo frequency response. By performing the division, the divide block 170 is capable for providing a corresponding echo response associated with the AFE 154 and loop 156 based on the transmitted signal. Those skilled in the art will understand and appreciate that alternatively, a time domain signal could be utilized to generate the corresponding table. Alternatively, the measured signal response received from the loop (in a time domain or a frequency domain) can be utilized to generate the table 160 in the absence of generating an echo response from the transmitted signal.
The sample component 172 stores a block of samples for each symbol in the echo response 172. As an example, the sample block 172 can collect data for about 4,000 (e.g., 4096) symbols over a plurality of samples (e.g., 128 samples). The sample block 172 can include an averaging function 176 that sums the symbols for each of the respective samples and obtains an average symbol value for each of the plurality of samples. The sample component 174 can also include a tone range component 178 that is operative to define a relevant tone range for the respective average sample that was obtained. The tone range component 178 determines the relevant tone range to reduce storage requirements for generating the respective table 160. For example, the tone range can be selected for a range of tones in the signal response that maximizes the distinguishing characteristics for each loop configuration. Those skilled in the art will understand and appreciate that the particular tone ranges can be determined for a given loop configuration based on experimentation or experience of the designer.
The sample system 174 provides an average sample echo response over a corresponding tone range (e.g., start and stop tones determined by the tone range component 178) to a curve fitting function 180. The curve fitting function 180, for example, can include polynomial fitting for an averaged frequency response data over the selected tone range to a corresponding polynomial. The order of the polynomial should be selected to distinguish adequately between signal responses for different loop characteristics. Different orders of polynomials further can also be employed for different loop configurations. As an example, a fourth order or fifth order polynomial can be used to approximate the signal response over a given tone range for most existing loop configurations, although a higher order polynomial can be employed for improved accuracy.
The curve fitting function 180 provides an indication of the respective polynomial approximation to a coefficient generator 182. The coefficient generator 182 is operative to extract corresponding coefficients for the polynomial defined by the curve fitting function 180. The coefficient generator 182 in turn provides the respective coefficients for the polynomial that approximates the echo response provided by the sampling function 174 to a table generator 184. The table generator 184 in turn generates the corresponding loop table 160 by populating the table with the known a priori loop data provided at 162, with the coefficients generated by the coefficient generator 182 as well as an indication of the start and stop tones for the tone range over which the polynomial represents the signal response. The test mode control 158 further can identify whether calibration was implemented in conjunction with obtaining the signal response and configuration data for a given entry in the loop table 160.
By way of further example, a data structure can be defined to store entries for the loop table 160. The polynomial coefficients can be stored as an integer entry having a predetermined number of bits (e.g., 32 bits). The start and stop tone entries can be defined by a byte or other number of bits to identify a respective tone in the available signal spectrum (e.g., 64 tones) in which data is transmitted. The type of data can vary depending on the type of response data being obtained for a given loop configuration. The loop length information can be stored in each table entry as a 16 bit integer value, which can be stored in corresponding units, such as feet or meters. A 16 bit value can be used to store the loop gauge information in the entry, such as can be bit mapped as in the table below. One or more bits (e.g., bits 8-15) can be used to define user-defined gauge types.
A loop termination field can be represented as a byte, such that different terminations are mapped as set forth below in TABLE 3.
During normal operation (e.g., a normal operating mode), the relays 208 are configured to couple each port 206 to its associated loop 204. As used herein, the relay 208 can include any switching or routing system capable of altering the path of a signal being communicated relative to a respective modem system 202. During a calibration mode for a given modem 202, the associated relay 208 couples a respective port 206 with an associated test bus 214. The digital portion 210 or other entity (e.g., the SELT algorithm) of the modem system 202 can control the relay 208 to provide a desired communications path for the modem, which path can vary based on the operating mode of the modem system. While a single test bus 214 is depicted in
The digital portion 210 includes a calibration function 216 that can be employed for calibrating an associated SELT algorithm also implemented by the digital portion, such as according to any of the approaches described herein (see, e.g.,
By way of example, S-parameter calibration can correspond to the types of calibration that is commonly used in network analyzers where a probe (or circuit) is used to connect to the device under test (DUT). For instance, during calibration the relay 208 operates to remove the loop 204 and couple the port 206 with one or more known test loads 218, indicated at Z1 through ZP, where P is a positive integer denoting the number of test loads being employed during calibration. In one implementation, the modem system 202 can control the test bus 214 of the calibration process to sequentially couple the port 206 with a selected one of the test loads 218 during different phases of calibration. For example, the test bus 218 can be implemented as including a relay or other switching system operative to selectively couple one (or more) of the test loads 218 with the relay 208. For purpose of S-parameter calibration, the DUT corresponds to the loop 204 and the probe corresponds to the analog portion 212 of the modem system. The test loads 218, for example, can include a short circuit path (e.g., 0 Ohm or other low resistance), an open circuit path, and a 100 Ohm load or other test loads representative of normal operating conditions. The modem system 202 takes measurements with each of these loads, such as based on transmitting a REVERB signal and then uses the results to determine the two-port S-parameters (e.g., S11, S12, S21 and S22) of the analog portion 212. Thus, when the associated loop 204 is reconnected, the modem system 202 can accurately ascertain only the properties of the loop 204 since the properties of the analog portion 212, having been determined during the calibration process, can be effectively removed from the measurement data.
In practice, the calibration function 216 can operate to disconnect the loop and computing the echo response sequentially for “open”, “short” and “100 ohm” (or other “normal”) test load conditions associated with the phases of calibration. Referring to these three measurements as S11, S110 and S11L respectively, the S-parameters for the analog portion 212 can be computed as follows:
If the echo response measurement with the actual loop attached is S11M, then S11 for the loop itself can be computed as follows:
S11 rather than the raw echo response can then used by the analysis system of a loop testing system to estimate loop parameters during implementation of SELT. When using calibration measurements, the computed response is computed as S11 according to computed calibration measurements. The calibration can be performed just prior to implementing SELT to help ensure that accurate conditions exist for the calibration as compared to normal operation when the loop 204 is connected. If calibration is employed during SELT, the response table should also be programmed by employing calibration.
At 360, a response is generated based on the samples for the received signals. The response can correspond to an echo magnitude response of the received signals according to the averaging performed relative to the samples of symbols that were aggregated at 340. The echo response can be generated by dividing out the transmitted portion of the reverb signal that was sent over the loop configuration under test at 310.
At 390, a tone range is determined. The tone range can include a start tone and a stop tone for the averaged response generated at 380. The tone range can differ for each loop configuration for which a table entry is being generated so that the portion of the frequency response can facilitate distinguishing between responses of other loop configurations. Additionally, by selecting a portion of the frequency response within the tone range, memory requirements for storing a representation of the echo response can be reduced.
At 400, curve fitting is performed relative to the portion of the echo response defined by the tone range determined at 390. The curve fitting, for example, can correspond to a polynomial fit, such as can be performed by any curve fitting tool (e.g., the curve fitting toolbox in MATLAB® software from Mathworks, Inc. or other commercially available or proprietary tool). At 410, coefficients can be generated based on the curve fitting at 400. For instance, where a fourth order polynomial is determined to fit the frequency response for the given tone range, five corresponding coefficients will typically be generated at 400. Those skilled in the art will appreciate that any suitable order polynomial can be used to describe the frequency response, and that different order functions can exist for different responses.
At 370, a determination is made whether any additional AFEs exist for which corresponding responses are to be generated. As described herein, responses can be generated for a plurality of different AFEs so that component and performance variations across a sufficient sample of hardware can be considered. In this way, the response data can be better approximate a range of AFEs that might be encountered in modem systems employing SELT. If additional AFEs do exist (YES), the method returns to 300 to repeat the foregoing process for each respective AFE. At 400, after corresponding responses and coefficients have been generated for each of the AFEs (NO), the method can proceed to 380. At 380, an averaging is performed for the respective responses generated at 360 for each AFE to provide an average indication of the frequency response over a plurality of AFEs. As an alternative to averaging responses, it will be appreciated that other representations can be averaged or other functions performed to describe signal responses for the plurality of AFEs and the given loop configuration.
At 420, a determination is made as to whether any additional loop configurations exist for which data is to be generated for populating a table. If additional loop configurations do exist at 420 (YES), the method returns to 300 to repeat the method for the next loop configuration. After corresponding data has been generated for each of the loop configurations (NO), the method proceeds from 420 to 430. At 430, a corresponding table is generated. The table can include a set of coefficients that define a received signal response (e.g., an echo magnitude response in the frequency domain) for a given loop configuration over a defined tone range. The table can also include the known characteristics associated with the response for each loop configuration. Those skilled in the art will understand and appreciate various types of data structures (e.g., linear array of elements, linked list, records, etc.) that can be employed to store the data for use in implementing SELT.
At 510, a REVERB signal is transmitted over a set of tones. The set of tones can include a set of frequencies that overlap between the transmit and receive paths of the DSL system. At 520, a response to the transmitted signal is received. An average of the response is determined at 530 over a set of symbols (e.g., about 4000 symbols), such as for symbols in each of a plurality of samples. At 540, an actual response is computed. The actual response can be computed in the time domain or the frequency domain. For example, an echo magnitude response can be computed in the frequency domain by dividing out the transmitted portion of the signal from the response received at 520.
At 550, a determination is made as to whether any a priori information has been entered for the loop being tested (e.g., entered at 500 in connection with instructions to initiate SELT). For example, the a priori information can include one or more characteristics known about the loop being tested, such as gauge of line, termination type and the like. If a priori information has been entered (YES), the method proceeds to 560 in which a table mask is generated based on the a priori information. The table mask is employed to exclude entries from the table that do not comport with the a priori information. Thus, only those entries that match the characteristics entered as a priori information need to be utilized for subsequent analysis. If no a priori information has been entered for the loop (NO), the method proceeds from 550 to 570 without generating a mask, such that all entries are considered during subsequent analysis. Also, from 560, the method proceeds to 570.
At 570, selected data for a given entry in the table is converted to an expected response, such as a corresponding echo frequency response for a known loop configuration. The selected data can correspond to a set of coefficients that define a polynomial over a range of tones associated with the loop configuration for which the expected response was generated. At 580, the actual response generated at 540 is compared to the expected response from the table. The comparison, for example, can include a mean square error or other minimization function operative to ascertain an indication of the difference between the actual response and the expected response. At 590, the results of the comparison (at 580) are stored, such as can include an error value. Thus, the response that provides the minimum error value (or at least means for accessing loop configuration data associated with such response) can be stored at 580. Alternatively, all results and an identification of the expected response for a respective loop configuration can be stored at 580.
At 600, a determination is made as to whether any additional entries exist in the table for evaluation relative to the actual response. If additional entries do exist (YES), the proceeds to 610 to access the next entry in the table, and the method returns to 570 to evaluate and compare the expected response for this next entry. It will be appreciated that if a priori information was entered, one or more entries can be removed from consideration so that the method can implement more quickly. The accuracy of the SELT can also be improved, as there will be a reduced likelihood of false positive results if some of the entries are removed from consideration. If no additional entries exist at 600 (NO), the method proceeds from 600 to 620 in which a loop configuration for the loop being tested is identified. The identification, for example, can be made based on the results stored at 590, such as corresponding to the loop configuration that provides a minimum error.
What have been described above are examples of the present invention. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the present invention, but one of ordinary skill in the art will recognize that many further combinations and permutations of the present invention are possible. For example, while the systems and methods herein have generally been described in the context of modems for digital subscriber lines, the systems and methods can be applied to various other types of wired communication systems where line testing may be desired. Accordingly, the present invention is intended to embrace all such alterations, modifications, and variations that fall within the spirit and scope of the appended claims.