Patent Publication Number: US-2012041745-A1

Title: Playback pipeline for testing wireless devices

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation-in-part of U.S. patent application Ser. No. 12/505,634, titled CONFIGURING A SIMULATOR FOR TESTING WIRELESS DEVICES, filed Jul. 20, 2009, which is incorporated by reference. 
    
    
     FIELD OF THE INVENTION 
     This invention is generally related to test equipment, and more particularly to test equipment for evaluating wireless devices. 
     BACKGROUND OF THE INVENTION 
     Cellular networks and Wireless Local Area Networks (“WLANs”) enable communications between mobile wireless devices such as mobile phones and portable computers and fixed location wireless devices such as access points and base stations. It is naturally desirable to test the performance of such devices under different conditions. However, testing wireless devices in an open environment is notoriously difficult because wireless communications can be affected by ambient sources of interference. It is now relatively common to use simulators to perform wireless device testing in a closed environment. One type of simulator includes a separate container for each wireless device to shield against external electromagnetic interference (EMI). Communications are converted from wireless radio frequency (RF) to wired signals, and the containers are placed in communication via wired connections. A channel emulator connected between the containers subjects the communications to simulated physical environmental effects. The communication link between each two devices is called a “channel,” and the simulated physical environmental effects created by the channel emulator are called the “channel conditions.” Channel conditions are described by “channel models,” each of which includes a single set of parameters which describe the statistical characteristics of the channel conditions. The process whereby the channel emulator recreates the statistical properties of the channel model on the channel between the two devices is known as “playing” the channel model. 
     A typical playback test pipeline of operations is illustrated in  FIG. 1 . A playback file provided by the user is compiled  100  and then loaded onto the channel emulator  102 . The compilation process verifies the values contained within the playback file are valid, and generates a new compiled playback file which is ready to be loaded onto the channel emulator. The channel emulator is then calibrated  104  in order to accurately receive the RF signals transmitted from one connected device, and in turn apply the desired channel conditions to those signals before retransmitting those signals to a second connected device. Typically this input power calibration involves ‘leveling’ the power setting on all RF inputs of the channel emulator. After this calibration is performed, any signal input to the channel emulator at the same power that was measured during the ‘leveling’ process will be output from the channel emulator at the desired power level specified in the playback file. If the transmit power level of a connected device changes from the calibrated level, the output power from the channel emulator will be offset from the desired power level specified in the playback file by the amount of the change. This introduces a ‘tracking error’ which can typically only be corrected by stopping the test and performing a new calibration. Once the playback file is compiled it can be loaded onto the channel emulator for playback. Typically the channel emulator must have enough free space in memory or local disk storage inside the channel emulator device to hold the entire playback file. Consequently, the maximum size of the playback file will be limited to the amount of memory/storage space locally on the channel emulator. After the entire file has been loaded onto the channel emulator it will start playing back the file  106 , thereby generating the channel conditions. 
     SUMMARY OF THE INVENTION 
     According to an aspect of the invention, a computer program product comprises a non-transitory computer usable medium having a computer readable program code embodied therein, said computer readable program code executed to implement a method for evaluating a device under test comprising the steps of: validating a playback file; compensating for external loss; compiling the playback file; streaming playback file data to a channel emulator; and performing playback by the channel emulator. 
     According to another aspect of the invention, apparatus for evaluating a device under test comprises: a playback file generator including a processor and non-transitory computer usable medium having a computer readable program code embodied therein, said computer readable program code validating a playback file, compensating for external loss, compiling the playback file, and streaming playback file data; and a channel emulator which simulates channel conditions for the device under test in response to the streamed playback file data. 
     According to another aspect of the invention, a method for evaluating a device under test comprises the steps of: using a playback file generator including a non-transitory computer usable medium having a computer readable program code embodied therein, validating a playback file, compensating for external loss, compiling the playback file, and streaming playback file data; and simulating channel conditions for the device under test in response to the streamed playback file data using a channel emulator. 
     An advantage of at least one embodiment of the invention is enhanced playback file validation and error correction. Validation is performed by operating directly on the user&#39;s editable playback file. The user is then informed of any syntax or range errors in the playback file. Any required corrections can be made more quickly and easily than was previously possible because no compilation of the playback file is required for validation. 
     Another advantage of at least one embodiment of the invention is enhanced external loss compensation. Typical prior art systems do not provide any facility to compensate for external losses so external loss compensation has been done manually by the user. For example, the user would edit the playback file and adjust each value within the file by the necessary amount. Whenever external losses change, and for each separate channel emulator on which the test is to be run, the user must create a new playback file and manually re-adjust the values within the file to compensate for the new external losses. This is both time consuming and error prone. In accordance with an embodiment of the invention the user inputs values indicative of the levels of external losses separately from the playback file. The specified values are stored in non-transient memory and provided as inputs to a just-in-time compilation module. The just-in-time compilation module automatically adjusts the corresponding values in the playback file by the specified amount before the playback data is relayed to the channel emulator. 
     Another advantage of at least one embodiment of the invention is the ability to apply post processing changes to the playback file. Typical prior art systems do not provide any facility to add or replace data in the file other than editing the file manually. At least one embodiment of the invention allows the user to specify parameters that can replace or augment playback data from the original playback file. These parameters can include but are not limited to Doppler rate, noise power density, power delay profile, spatial correlation output power, and other channel conditions. The specified values are stored in non-transient memory and provided as inputs to a just-in-time compilation module. This allows the user to quickly adjust a playback file without requiring the steps of editing and revalidating the original playback file. Furthermore, this also allows the user to conduct several different tests using the same starting playback file. 
     Another advantage of at least one embodiment of the invention is just-in-time compilation. Typical prior art systems compile the entire playback file before starting playback. In contrast, at least one embodiment of the invention compiles the playback file sequentially as the data is consumed by the channel emulator. The playback file&#39;s data can be adjusted dynamically by the external loss compensation and post processing data. Further, the user-editable playback file is compiled into a more efficient binary representation of the data in order to reduce the amount of data which must be transferred to the channel emulator. This simplifies the channel emulator logic required to parse the playback file and advantageously allows for playback to start sooner, particularly for larger playback files. 
     Another advantage of at least one embodiment of the invention is real-time streaming of playback instructions. Typical prior art systems store-and-play the entire set of playback instructions within local memory of the channel emulator, which means the memory requirement to store the set of playback instructions increases linearly with the number of playback instructions. Real-time streaming allows an unlimited number of playback instructions to be processed within a fixed memory footprint. Further, the real-time streaming architecture allows playback to start more quickly because playback can begin as soon as the first instruction is received by the channel emulator. 
     Another advantage of at least one embodiment of the invention is input power tracking. Typical prior art systems suffer from “tracking error” due to changes in the transmit power of devices connected to the channel emulator after the initial input power calibration process is completed. At least one embodiment of the invention includes a power tracking loop which runs continuously during playback to detect changes in the transmit power level of a connected device. The invention applies a control law to determine when the emulator must be adjusted. For instance, in a control law based on a step size, it could be determined that if the measured power has changed by a step size from the last measurement, the emulator must be adjusted to meet the new power. Further, the channel emulator is automatically adjusted to account for an increase or decrease in the transmit power of the connected device. This allows the power levels specified in the playback file to be more accurately produced by the channel emulator regardless of large or small changes in the connected devices transmit power over time. 
     Other aspects, features and advantages of embodiments of the invention will be apparent from the figures and detailed description. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG. 1  illustrates a typical prior art playback test pipeline. 
         FIG. 2  is a block diagram of a wireless network simulator. 
         FIG. 3  illustrates an improved playback test pipeline. 
         FIG. 4  illustrates playback file validation. 
         FIG. 5  illustrates external loss compensation and post processing data storage. 
         FIG. 6  illustrates just-in-time compilation. 
         FIG. 7  illustrates real-time streaming. 
         FIG. 8  illustrates the input power tracking algorithm. 
     
    
    
     DETAILED DESCRIPTION 
     Various aspects of the invention may be implemented by computer program code that is stored in non-transitory memory. The computer program code may be used by processing hardware to accomplish steps and functions such as those described below to facilitate evaluating wireless devices. 
       FIG. 2  illustrates a channel emulator  200 . The channel emulator is operable to interconnect a set of two or more wireless devices in order to simulate effects on communications between the devices by using various shared resources. The wireless devices may include, without limitation, mobile stations  202  such as wireless phones and portable computers, and base stations  204  such as access points and cellular base stations. The wireless devices are disposed in first and second housings, respectively, which provide shielding from external electromagnetic interference (EMI). External cabling  206  is employed by the user in place of the antennas to connect the wireless devices to ports on the channel emulator. In the illustrated example, each port  208  is associated with a particular antenna port of the base station  204  to which it is connected by a cable, and each port  210  is associated with a particular antenna port of the mobile station  202  to which it is connected by a cable. The signals transmitted between devices are selectively modified by the channel emulator in order to simulate effects such as multipath reflections, delay spread, angle of arrival, power angular spread, angle of departure, antenna spacing, uniform linear array for both TX and RX side, Doppler due to fluorescent light effects, Doppler from moving vehicle, Doppler from changing environments, path loss, shadow fading effects, reflections in clusters and external interference such as radar signals, microwave oven emissions, phone transmission and other wireless signals or noise. 
       FIG. 3  illustrates an improved playback test pipeline for use with the channel emulator of  FIG. 2  or other suitable channel emulators. The pipeline includes functions associated with the transfer of data to the channel emulator from the supermodel configuration interface described in the parent application. Aspects of the playback test pipeline may be implemented using computer program code which is stored in non-transient computer-readable memory and utilized by a microprocessor to implement one or more steps or sub-steps. An initial step  300  in the pipeline is to validate the playback file. The next step  302  is external loss compensation. External loss compensation is followed by just-in-time compilation  304 , Real-time streaming  306 , input power tracking  308 , and playing the file  310 . These steps are described in greater detail below. 
       FIG. 4  illustrates playback file validation  300  ( FIG. 3 ) in greater detail. The validation step is an initial step which is implemented at the beginning of the playback process to inform the user of any syntax or range errors in their playback file. After a playback file  400  is received at step  402  it is checked for syntax errors at step  404 . If any syntax errors are found then an error notice is generated at step  406  and provided to the user to prompt update of the playback file at step  408  and rechecking for syntax errors  404 . When no syntax errors are found the playback file is checked for range errors in step  410 . Validation is performed directly on the user&#39;s playback file. If any range errors are found then an error notice is generated  406  and provided to the user to prompt update  408  of the playback file and rechecking for range errors. When no range errors are found the validated playback file  401  is outputted to memory in step  412 . External loss compensation  302  ( FIG. 3 ) is initiated after validation is complete. Checking is performed directly on the user&#39;s playback file. Advantageously, no compilation is required. 
       FIG. 5  illustrates external loss compensation  302  ( FIG. 3 ) and post processing data storage in greater detail. RF devices are connected to a channel emulator through conductive cabling, and RF components such as splitters, combiners, duplexers, isolators, and circulators may be used to achieve desired network connectivity. These cables and other RF components attenuate the signal and can introduce significant unwanted “external losses” between the two or more devices which are being connected. In accordance with an embodiment of the invention the user inputs values  500  indicative of the level of external losses separately from the playback file  400 . In accordance with another embodiment of the invention, the user is able to specify post processing values  502  that can augment or replace existing playback file values. Both sets of values and the playback file are stored in non-transient memory  504  and provided as inputs to a module which performs just-in-time compilation  304 . Just-in-time compilation adjusts the corresponding values in the playback file by the specified amount before the playback data is relayed to the channel emulator. 
       FIG. 6  illustrates just-in-time compilation  304  in greater detail. Just-in-time compilation includes adjustment of the playback file  400  based on the external loss values  500  and postprocessing values  502 . External Loss is the loss between the ACE and the UE, which is measured by the user. Compensating for external loss may be considered a subset of post processing changes because the data is being changed. In the case of compensating for external loss this can include measuring the external loss, calculating it based on the difference between desired/actual output power, and then applying it. However, post-processing changes can include new data that was not included in the original playback file. The adjusted user-editable playback file  400  is compiled into a more efficient binary representation of the data in order to reduce the amount of data which must be transferred to the channel emulator. This also simplifies the channel emulator logic required to parse the playback file. While existing systems compile the entire playback file before starting playback, just-in-time compilation compiles the playback file sequentially as the data is consumed by the channel emulator. This advantageously allows for playback to start sooner, particularly for larger playback files. The result is binary data stream  602 . 
       FIG. 7  illustrates real-time streaming  306  ( FIG. 3 ) in greater detail. Player software operated by the user may reside on the same or a physically distinct device as the channel emulator  200 . When the user specifies that playback should begin, the playback software begins streaming playback data onto the channel emulator. The channel emulator maintains a FIFO buffer  700  of playback data which is received from the player software. Playback data is compiled by the just-in-time compilation  600  into a binary data stream of instructions  702  which include (1) an activation time when the instruction should be executed, (2) an identifier specifying the type of action which should be taken by the channel emulator, and (3) action specific payload. The channel emulator can begin playback as soon as at least one playback instruction is present in the FIFO buffer, and continues playback indefinitely until either (1) a playback instruction is received whose activation time is prior to the current run-time, or (2) a playback instruction is received which indicates playback should stop. 
       FIG. 8  illustrates input power tracking  308  ( FIG. 3 ) in greater detail. A power tracking loop runs continuously during playback  310  ( FIG. 3 ) and responds to changes in the transmit power level of a connected device. More particularly, the power tracking loop adjusts the channel emulator to account for unplanned changes (an increase or decrease) in the connected device&#39;s transmit power in order to maintain a currently desired power level. This allows the power levels specified in the playback file  400  ( FIG. 6 ) to be more accurately produced by the channel emulator regardless of large or small unplanned changes in the connected devices transmit power over time. Transmit power of the connected device is measured in step  800 . A control law  802  is used to determine when and how much to adjust the power levels based on the measured power. The illustrated control law is a non-limiting example in which the power level is not adjusted if measured power change from a previous measurement (e.g., most recent measurement) is not greater than a minimum step size as indicated in step  804 . If measured power change is greater than the minimum step size then the control law decides a delta by which to adjust power as indicated by step  806 . The channel emulator is then adjusted to maintain power level as indicated by step  810 . 
     While the invention is described through the above exemplary embodiments, it will be understood by those of ordinary skill in the art that modifications and variations may be made without departing from the inventive concepts. Further, while the embodiments are described in connection with various illustrative structures, one skilled in the art will recognize that the system may be embodied in connection with other structures. Accordingly, the invention should not be viewed as limited except by the scope and spirit of the appended claims.