WO2001017128A2 - Synchronous delay generator - Google Patents

Synchronous delay generator Download PDF

Info

Publication number
WO2001017128A2
WO2001017128A2 PCT/US2000/023951 US0023951W WO0117128A2 WO 2001017128 A2 WO2001017128 A2 WO 2001017128A2 US 0023951 W US0023951 W US 0023951W WO 0117128 A2 WO0117128 A2 WO 0117128A2
Authority
WO
WIPO (PCT)
Prior art keywords
delay
samples
sample
signal
clock
Prior art date
Application number
PCT/US2000/023951
Other languages
French (fr)
Other versions
WO2001017128A3 (en
Inventor
Maurizio Di Veroli
Ayal Bar-David
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Priority to AU70966/00A priority Critical patent/AU7096600A/en
Publication of WO2001017128A2 publication Critical patent/WO2001017128A2/en
Publication of WO2001017128A3 publication Critical patent/WO2001017128A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/002Arrangements for synchronising receiver with transmitter correction of synchronization errors correction by interpolation
    • H04L7/0029Arrangements for synchronising receiver with transmitter correction of synchronization errors correction by interpolation interpolation of received data signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/14Relay systems
    • H04B7/15Active relay systems
    • H04B7/204Multiple access
    • H04B7/212Time-division multiple access [TDMA]
    • H04B7/2125Synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/0033Correction by delay
    • H04L7/0041Delay of data signal

Definitions

  • the present invention relates generally to signal processing systems, and specifically to devices for generating signal delays of controlled, variable duration.
  • a communication system may include an array of satellites which serve as relay stations.
  • a simulator which simulates the operation of the array of satellites.
  • a major component of such a simulator is a delay generator which accurately delays signals for calculated periods. Due to simulated motion of the satellites, the delay varies dynamically over time.
  • a standard delay generator receives as input samples of an input signal and provides the samples as an output after their respective delays. Since the delay may be different for each sample, the output samples are not synchronized with each other or with the input. The lack of synchronization imposes constraints on apparatus receiving the output samples for further processing, for example, on a digital-to-analog converter or other circuits operating on a fixed, synchronous clock.
  • U.S. patent 4,907,247, to Miyake et al. which is incorporated herein by reference, describes a satellite simulation system in which multiple digital satellite communication terminals are interconnectable over multiple channels.
  • the equipment includes a single satellite delay simulator intervening between transmit communication terminals and receive communication terminals.
  • the delay simulator is implemented by a satellite delay circuit accommodating multiple channels and clock matching circuits.
  • the communication terminals are individually connectable to the delay circuit via the clock matching circuits.
  • a delay generator receives samples of an input signal which have been sampled at a constant clock rate and calculates for each sample the required time it is to be delayed. Rather than delaying each sample by the required delay time, however, the samples are actually delayed so as to remain in synchronization with the clock rate. The values of the delayed samples are corrected to compensate for the difference between the actual delay time and the required delay time, which difference is evaluated to a resolution substantially greater than the clock rate, typically by orders of magnitude. Adjusting the delayed samples to be in synchronization with the input samples, and using the difference to evaluate the delayed sample, significantly simplifies construction and operation of other processing circuitry associated with the delay generator.
  • the required time by which each sample is to be delayed is calculated by integration.
  • an actual delay, and a first differential of the actual delay are calculated and are loaded into respective registers of an integrator.
  • new precalculated values of the differential are loaded into its register at predetermined times during the simulation.
  • the integrator iteratively calculates new values of the actual delay, and updates the appropriate register.
  • the delay generator comprises a first-in first-out (FIFO) unit which provides the actual delay, and an interpolation filter which corrects the values of the samples.
  • the FIFO unit preferably provides the delay to a sample by writing the sample into a memory and reading the sample from the memory after an integral number of cycles of the clock driving the FIFO unit.
  • the period of the clock driving the FIFO unit is referred to herein as a delay step.
  • the compensated value for a particular input sample is calculated by interpolation between a number of input samples, so as to correct for the difference between the precise, required delay time and the actual delay time defined in clock cycle steps.
  • the value of the corrected sample is interpolated based on four neighboring samples.
  • the filter handles I and Q samples separately due to their phase difference.
  • the required delay is a continuous function which changes slowly relative to the delay step.
  • a sequence of samples are written into the memory at consecutive addresses and are read from consecutive addresses in the memory.
  • the samples are read from the memory at a constant rate while the samples are written into the memory at a rate which depends on changes in the number of delay steps required from the FIFO unit.
  • beginning read and write addresses are assigned to the memory and they are thereafter updated consecutively with each read and write operation, respectively.
  • the required delay remains substantially constant, read and write operations are performed at the same rate. However, when the required delay increases by an amount greater than the size of the delay step, two write operations are performed in the time a single read is performed. Conversely, when the required delay decreases by an amount greater than the size of the delay step, a cycle without a write operation is performed.
  • the delay generator is used in order to simulate the transmission of the samples from a base station, via a satellite, to a receiver.
  • the delay generator forms part of a multichannel simulation system as described in a U.S. Patent application entitled “Satellite Motion Simulator,” filed on even date, which is assigned to the assignee of the present patent application and whose disclosure is incorporated herein by reference.
  • a method for generating a variable delay of a signal including: providing a clock indicating a sequence of sample times at regular intervals; receiving a sequence of input samples representing input values of the signal at respective sample times indicated by the clock; determining the delay with a temporal resolution substantially finer than the clock interval to be applied to the signal at each of the respective sample times; and for each of the sample times, responsive to the respectively-determined delay, processing one or more of the input samples so as to generate a corresponding output sample representing a delayed output value of the signal at the sample time.
  • the method includes outputting the samples at the regular intervals indicated by the clock.
  • determining the delay includes calculating a delay responsive to a parameter that varies over time, most preferably by calculating a delay that varies from one sample to the next.
  • determining the delay includes determining a delay induced by transmission of the signal through a communications link.
  • determining the delay includes utilizing a process of integration to determine the delay, most preferably utilizing a precalculated differential of the delay based on a model of motion of an object with which the delay is associated.
  • processing the input samples includes dividing the delay into a coarse and a fine component.
  • processing the input samples includes interpolating between the samples to compute the output sample responsive to the fine component.
  • interpolating between the samples includes assigning respective predetermined coefficients to the one or more input samples, wherein the predetermined coefficients are selected responsive to a magnitude of the fine delay component relative to the clock interval.
  • processing the input samples includes writing the samples to a write address in a memory and reading the samples from a read address therein, wherein the read and write addresses are separated by a difference responsive to a magnitude of the coarse component of the delay.
  • writing the samples includes writing a sample twice in the time of a single read operation when the delay increases.
  • writing the samples includes not writing a sample in the time of a read operation when the delay decreases.
  • variable delay generator which receives as input a sequence of samples of a signal at sample times indicated by a sample clock having a predetermined clock period, and which includes: a delay controller, which determines a variable delay having a temporal resolution substantially finer than the clock interval to be applied to the signal at each of the respective sample times; and a delay line which receives the input sequence of samples and outputs a synchronous stream of output samples at the sample times, each output sample representing a respective value of the signal following the delay determined by the delay controller.
  • the delay controller divides the delay into a coarse and a fine component.
  • the delay line includes an interpolation filter which interpolates among the input samples to generate a value of the output sample dependent on the fine component.
  • the interpolation filter selects interpolation coefficients from among a plurality of predetermined coefficients, which are respectively assigned to the sequence of input samples.
  • the delay unit includes a coarse delay unit which delays the output samples by the coarse component.
  • the coarse delay unit includes a first-in first-out memory device, wherein the samples are written to a write address therein and wherein the samples are read from a read address therein, wherein the read and write addresses are separated by a difference responsive to the delay.
  • the delay controller iteratively calculates the delay.
  • the delay controller includes an integrator to determine the variable delay for each of the samples based on a precalculated differential of the delay.
  • Fig. 1 is a schematic block diagram of a satellite communication system and a corresponding delay generator, in accordance with a preferred embodiment of the present invention
  • Fig. 2 is a schematic block diagram of a delay generator, in accordance with a preferred embodiment of the present invention.
  • Fig. 3 is a schematic block diagram of a delay controller, in accordance with a preferred embodiment of the present invention.
  • Fig. 4 is a timing diagram that schematically illustrates operation of an interpolation filter, in accordance with a preferred embodiment of the present invention
  • Fig. 5 is a schematic block diagram of the interpolation filter referred to in Fig. 4, in accordance with a preferred embodiment of the present invention
  • Fig. 6 is a timing diagram that schematically illustrates calculation of values in a coefficient look up table, in accordance with a preferred embodiment of the present invention
  • Fig. 7 is a schematic block diagram of a delay unit, in accordance with a preferred embodiment of the present invention.
  • Fig. 8 is a schematic block diagram of a FIFO control circuit in the delay unit of Fig. 7, in accordance with a preferred embodiment of the present invention.
  • Fig. 9 is a schematic timing diagram of the delay unit of Fig. 7, in accordance with a preferred embodiment of the present invention.
  • Fig. 1 is a schematic block diagram of a satellite communication system 20 and a corresponding simulation system 27, in accordance with a preferred embodiment of the present invention.
  • a handset 22 communicates with a base station 24 via a satellite 26 which, for example, belongs to a low-earth orbit (LEO) satellite array, such as the Globalstar system.
  • LEO low-earth orbit
  • simulation system 27 is connected between RF ports 30 of base station 24 and handset 22.
  • System 27 processes the signals passing between base station 24 and handset 22 as if the signals were passing along a path 31 via satellite 26, wherein the signals undergo varying delays.
  • System 27 preferably comprises a delay generator 28 which delays the signals from base station 24 according to the calculated position of satellite 26.
  • Other elements, such as a noise generator and a Doppler shift generator are preferably also included in system 27. These elements may be implemented entirely separately from delay generator 28, or partly combined with the delay generator.
  • system 27 further comprises an A/D converter 32 which samples and digitizes the RF signals from base station 24.
  • the delayed sampled signals are preferably converted back to analog form by a D/A converter 34.
  • generator 28 and converters 32 and 34, as well as the other elements of system 27, operate at the same clock rate using synchronous clock signals so as to simplify the operation of the system.
  • differing clock rates are referred to as being based on a basic "chip" rate and multiples thereof.
  • a chipx4 rate corresponds to a rate four times faster than the basic chip rate.
  • a single period of the chip rate clock is preferably of the order of 800 ns.
  • delay generator 28 is typically on the order of delay times for signals transmitted via satellite 26, i.e., in the range of 9 - 23 ms. It will be understood, however, that delay generator 28, which is described further hereinbelow, may be used over a wide range of different delay times and in various applications not limited to the simulation application described herein.
  • Fig. 2 is a schematic block diagram of delay generator 28, in accordance with a preferred embodiment of the present invention.
  • generator 28 receives an intermediate frequency (IF) signal on a "data in" line 41 at a chipxl ⁇ rate, and translates the signal to separate interlaced I and Q digital samples, each at a chipx ⁇ rate, where the terms I and Q are well known as to representing In- Phase and Quadrature Phase signals.
  • the samples are preferably between 8 and 12 bits wide.
  • generator 28 provides the delayed I and Q samples, at a rate of chipx4. That is, delay generator 28 decimates the samples in addition to delaying them. This feature is useful in a particular implementation of simulation system 27, although it is not material to the principles of the present invention.
  • Generator 28 preferably comprises a coarse delay unit 40, which delays each of the incoming samples for a period which is equal to a respective, integral number of delay steps for each sample. Preferably, the delay step is equal to the period of a chipx4 cycle.
  • Generator 28 also includes an interpolation filter 42 which separately alters the values of each of the I and Q samples entering delay unit 40 in order to correct for inaccuracies introduced by the coarse delay of unit 40. Interpolation filter 42 and delay unit 40 together form a delay line.
  • interpolation filter 42 corrects for the inaccuracies by calculating a value of a virtual sample (I or Q) which is then input to unit 40. The process followed by interpolation filter 42 is explained in more detail hereinbelow with reference to Fig.
  • generator 28 further comprises a processor 44 which calculates a theoretical delay for each sample transmitted from base station 24 to handset 22 due to path 31.
  • a processor 44 which calculates a theoretical delay for each sample transmitted from base station 24 to handset 22 due to path 31.
  • an array of values of the theoretical delay of the samples is calculated at the beginning of a simulation session and stored for use during the simulation, either by processor 44 or by an external processor, which downloads the results to processor 44.
  • the stored values, and first differentials of the stored values are then used for simulation initiation and at later points in the simulation, as described hereinbelow.
  • Generator 28 also comprises a delay controller 46 which iteratively calculates, during the simulation session, an actual delay to be applied to each sample.
  • controller 46 operates as an integrator, which uses a first time differential of the actual delay, in order to calculate a new actual delay.
  • Fig. 3 is a schematic block diagram of delay controller 46, in accordance with a preferred embodiment of the present invention.
  • processor 44 stores an initial actual delay and an initial first differential of the actual delay, i.e., an initial delay change rate, in an actual delay register 154 and a first differential register 152 respectively.
  • the initial actual delay is entered into actual delay register 154 via a multiplexer 158.
  • an adder 162 iteratively integrates the actual delay at a chipx4 rate, using the first differential stored in register 152, and stores the result in register 154.
  • the value of the first differential stored in register 152 is updated at a rate of once every 125 ms, from values calculated by processor 44.
  • Register 154 thus contains a continuously updated value of the actual delay.
  • a coarse delay comprising an integral number of delay steps imposed by unit 40
  • a fine delay which is compensated for by filter 42.
  • the coarse delay is preferably calculated by dividing the actual delay by the delay step of unit 40 (the period of the chipx4 signal), and setting the quotient of the division to be equal to the number of delay steps. The remainder of the division is the fine delay value.
  • the fine delay value is evaluated as an integral number of parts, preferably 512 parts, of a delay step, wherein the integral number is any integer from 0 to 511.
  • processor 44 sets a starting read address and a starting write address which are separated by the coarse delay for an initial sample.
  • the starting read and write addresses are passed to delay unit 40.
  • the fine delay value of the initial sample is stored in a fine delay register 47.
  • the fine delay value is used by filter 42 in altering the respective values of the data-in samples, as described hereinbelow.
  • Delay controller 46 also generates control signals on a line 49 when the fine delay value reaches its maximum (corresponding to one complete delay step) or minimum value (zero delay steps). At this point, delay controller 46 generates a signal that changes the length of the coarse delay introduced by unit 40.
  • fine delay register 47 accepts a fixed range of integer values, for example, values between 0-511.
  • fine delay value exceeds 511, it is reset to zero (i.e., reduced by the maximum value), and an overflow signal is output from control 46 to line 49.
  • an overflow signal is provided.
  • the underflow and overflow signals are provided both to delay unit 40 and to filter 42.
  • Unit 40 uses the underflow signal to decrease the coarse delay by one complete delay step, and uses the overflow signal to increase the coarse delay by one complete delay step.
  • filter 42 generates an additional sample to be written into a coarse delay unit memory comprised in unit 40.
  • the additional sample is written during an additional write operation performed during a single coarse delay unit cycle that is needed to increase the delay by one delay step, as described in more detail below.
  • filter 42 skips the next sample writing cycle, so as to decrease the delay by one delay step.
  • LUT 48 The fine delay value in register 47 is used as an index to a double look up table (LUT) 48 which provides interpolation coefficients to filter 42 for I and Q samples separately.
  • LUT 48 is preferably implemented by two 2K x 16 bits PROM memories, although any other suitable memory unit may be used.
  • a clock 50 provides clock signals to unit 40 and filter 42 at a rate of chipxl ⁇ .
  • samples are input on line 41 every clock period of clock 50, and an I and a Q sample are output from simulator 28 on lines 43 every four clock periods.
  • Fig. 4 is a schematic timing diagram showing signals associated with interpolation filter 42, in accordance with a preferred embodiment of the present invention.
  • a chipxl ⁇ signal 200 illustrates the chipxl ⁇ clock signal regulating the operation of delay simulator 28.
  • Signal 200 is formed of a sequence of chipxl ⁇ periods 201, formed of a high period 202 and a low period 203.
  • Interpolation filter 42 alternately extracts uncorrected input I samples 210 and uncorrected input Q samples 212 from line 41 at fixed times at a total rate of chipxl ⁇ .
  • the I samples may be extracted at odd chipxl ⁇ periods, and the Q samples may be extracted at even chipxl ⁇ periods.
  • Filter 42 provides delay unit 40 with corrected I samples 220 and corrected Q samples 230. To correct the value of incoming samples, filter 42 generates a corrected I sample 214, and outputs it as a sample 214' at a next available chipx4 time, with a value as if it were sampled from the source signal of base station 24 at time 218.
  • the time 218 is determined such that the period 222 between time 218 and the closest output sample 220 is equal to the fine delay value held by delay register 47.
  • Time 218 may be located anywhere between two adjacent output samples 220. Typically, time 218 will shift gradually relative to the times of samples 220, due to gradual change in the total delay time. When the required delay slowly increases, time 218 moves to the left. When time 218 substantially coincides with the sample 220 on its left, the delay provided by filter 42 is maximal and an overflow signal is generated. Conversely, when time 218 coincides with the sample 220 on its right, the delay provided by filter 42 is minimal, and an underflow signal is generated.
  • Sample 214 is preferably interpolated from a set 224 of four input I samples 210A, 210B, 210C, and 210D, using a suitable interpolation method, preferably finite impulse response (FIR) filtering, wherein each of the input I samples is multiplied by a respective coefficient and the products are summed.
  • FIR finite impulse response
  • a set of suitable coefficients for each fine delay value from 0 to 511 is stored in LUT 48 and used in the calculation, as described further hereinbelow.
  • any other number of samples 210 may be used in interpolation.
  • corrected Q sample 216 output as a sample 216' at a next available chipx4 time, is prepared by interpolation of a set 226 of four Q samples 212A, 212B, 212C, and 212D. The interpolation is performed separately because of the time difference between the I and Q input samples.
  • Fig. 5 is a schematic block diagram of interpolation filter 42, in accordance with a preferred embodiment of the present invention.
  • Filter 42 comprises a separator 60 which receives samples from line 41 and separates the incoming samples to I and Q samples, as is known in the art.
  • Separator 60 receives input samples at a rate of chipxl ⁇ and provides interlaced I and Q samples, each at a rate of chipx ⁇ , to respective lines 64 and 66.
  • the I samples are passed on line 64 on odd chipxl ⁇ periods and are held in four registers 62A, 62B, 62C and 62D (referred to also as registers 62) which store the four most recent samples, corresponding to 210A, 210B, 210C, and 210D referred to in Fig. 4.
  • registers 62 Each sample first enters register 62A and upon the next odd chipxl ⁇ period passes to register 62B. At the next two odd chipxl6 periods the sample is passed to registers 62C and 62D and thereafter it is discarded.
  • the Q samples are passed on line 66 to four registers 68A, 68B, 68C and 68D (referred to also as registers 68), on even chipxl ⁇ periods.
  • filter 42 calculates an interpolated I output sample based on the four input samples in registers 62.
  • the four input samples comprise two new samples in registers 62A and 62B, and two samples which had been in registers 62A and 62B during the previous chipx4 period, and which have been transferred to registers 62C and 62D.
  • the four input samples thus comprise two new samples, and two "old" samples.
  • a multiplexer 70 passes one of the samples in registers 62 into a multiplier 72 which multiplies each of the samples from registers 62 by a respective coefficient from a register 76, providing a weighted sample.
  • the coefficient in register 76 is preferably received from LUT 48 according to the value of the fine delay in register 47 and according to which of the four samples is being multiplied.
  • An adder 74 sums up the four weighted samples to form the interpolated
  • multiplier 72 and adder 74 comprise a single multiplier-accumulator chip, as is known in the art.
  • filter 42 calculates an interpolated Q output sample provided on a line 88, based on the four input samples in registers 68.
  • the interpolation is performed in a similar manner to that described above, using a multiplexer 80, a multiplier 82, an adder 84 and a Q-coefficient register 86.
  • Control logic blocks 94 and 96 are used to clear adders 74 and 84 respectively, at a chipx4 rate, after each set of four input samples has been utilized to generate an interpolated value.
  • LUT 48 contains different sets of values for coefficient registers 76 and 86, due to the phase difference (one chipxl ⁇ period) between the I and Q samples.
  • each set of values includes four coefficients for each of the values of fine delay register 47.
  • register 47 may receive 512 values, LUT 48 stores
  • coefficients are preferably chosen so that they weight the four samples to which they are applied so as to form a linear average, although any other sets of coefficients may be used, as is known in the art.
  • Fig. 6 is a schematic timing diagram illustrating how LUT 48 is used, in accordance with a preferred embodiment of the present invention.
  • filter 42 calculates the value of a virtual I sample taken at time 218, based on samples 210A, 210B, 210C, and 210D, of set 224.
  • each of the samples in set 224 is multiplied by a respective coefficient ⁇ , ⁇ , ⁇ or ⁇ , which coefficients are based respectively on time intervals 228A, 228B, 228C, and 228D between time 218 and the respective sample of set 224.
  • the value Y of the virtual sample is given by:
  • I ⁇ , 1Q, and IQ are respective values of samples 210A, 210B, 210C, and 210D.
  • a similar process is used by filter 42 to calculate the value of an imaginary
  • Q sample based on samples 212A, 212B, 212C, and 212D, of set 226, and respective coefficients 230A, 230B, 230C, and 230D.
  • the coefficients are chosen according to any other suitable interpolation method.
  • filter 42 provides I and Q interpolated samples every chipx4 period.
  • the provided interpolated samples are preferably output through multiplexers 90.
  • filter 42 provides a sample as usual, but no write signal is generated for that chipx4 period.
  • filter 42 provides two samples: an interpolated sample, as in every other cycle, and one of the samples stored in filter 42 (registers 62 for I samples and registers 68 for Q). Two write signals are then generated during a single chipx4 period.
  • Control logic blocks 94 and 96 receive signals from delay controller 46 indicating when two samples are to be provided, and pass an appropriate signal to multiplexers 90.
  • the first interpolated sample is provided as in every normal chipx4 period, preferably during the first chipxl ⁇ period of the chipx4 period.
  • the second sample is provided thereafter, preferably during the second chipxl ⁇ period of the chipx4 period.
  • the second sample is provided along lines 92 and selected by multiplexers 90. Lines 92 provide the contents of registers 62 and 68, respectively, which contain the values of samples 210 and 212, respectively.
  • Fig. 7 is a schematic block diagram of delay unit 40, in accordance with a preferred embodiment of the present invention.
  • Delay unit 40 comprises two memory units 102 and 104 which delay the I and Q samples, respectively.
  • Memory units 102 and 104 preferably comprise standard SRAM chips. Most preferably, each of the units comprises two 128K x 8 bit chips.
  • Memory units 102 and 104 receive the samples from filter 42 and output the samples on lines 43.
  • the operation of memory units 102 and 104 is controlled by a controller 106, which operates the SRAM as a first-in first-out (FIFO) memory by managing the read and write addresses of memory units 102 and 104 and their control signals, e.g., chip select CS, read enable RD and write enable WR.
  • FIFO first-in first-out
  • Fig. 8 is a schematic block diagram of controller 106, in accordance with a preferred embodiment of the present invention.
  • Controller 106 comprises a counter 120 which stores a common read address for both of memory units 102 and 104, and two additional counters 122 and 124 which store the write addresses of memory units 102 and 104, respectively.
  • controller 106 includes an ISA or other suitable address bus 126 and an ISA or other suitable data bus 128 used for loading initial data at the beginning of the simulation session and for debugging.
  • Two multiplexers 132 and 134 determine the source of the address passed to memory units 102 and 104, respectively.
  • a control block 130 receives the control signals from line 49 and a clock signal from clock 50, and accordingly generates appropriate control signals output to memory units 102 and 104, as well as to counters 120, 122 and 124 and multiplexers 132 and 134.
  • a 17 bit comparator 136 signals if the read and Q write values in counters 120 and 124 are the same, and is used as an error warning generator.
  • Fig. 9 is a schematic timing diagram relating to coarse delay unit 40, in accordance with a preferred embodiment of the present invention.
  • memory units 102 and 104 provide a delayed sample every chipx4 period, and a read pointer is incremented accordingly.
  • each of memory units 102 and 104 also receives a single interpolated sample from filter 42, i.e., a sample is written to each of the memory units during a chipxl ⁇ period marked WR, when a write SRAM signal is set at respective times 258 and 260.
  • a write pointer counter 262 of each memory unit increments once in a chipx4 period, when a write pointer counter enable signal is set at respective times, for example, at times 264 and 266.
  • the numbers 12904, 12905, etc. represent dummy values of the write pointer.
  • a no-write chipx4 period 256 in chipx4 periods in which an underflow control signal is received on line 49 (Fig. 2), a no-write signal is set at time 268, and no sample is written into the memory unit (either 102 or 104) for which the underflow signal is received.
  • memory units 102 and 104 provide output samples as usual and increment the read pointer, and, thus, the delay provided by the underflowed memory unit is increased, since the write pointer is not incremented.
  • a double write enable signal is set at time 270.
  • two samples are written into the memory unit for which the overflow signal is received when the write SRAM signal is set at respective times 272 and 274.
  • the delay provided by the overflowed memory unit is shortened, since write pointer counter 262 is incremented twice in a chipx4 period.

Abstract

A method for generating a variable delay of a signal (28), including: providing a clock (50) indicating a sequence of sample times at regular intervals and receiving a sequence of input samples (41) representing input values of the signal at respective sample times indicated by the clock. The method further includes determining the delay (40, 46) with a temporal resolution substantially finer than the clock interval to be applied to the signal at each of the respective sample times. For each of the sample times, responsive to the respectively-determined delay, one or more of the input samples are processed so as to generate a corresponding output sample (43) representing a delayed output value of the signal at the sample time.

Description

SYNCHRONOUS DELAY GENERATOR
BACKGROUND OF THE INVENTION
I. Field of the Invention
The present invention relates generally to signal processing systems, and specifically to devices for generating signal delays of controlled, variable duration.
II. Related Art
The sophistication of communication systems is rapidly increasing. For example, a communication system may include an array of satellites which serve as relay stations. In developing apparatus which uses the array of satellites, it is desirable to test the apparatus during development without placing the satellites in orbit. In such a case it is desirable to have a simulator which simulates the operation of the array of satellites. A major component of such a simulator is a delay generator which accurately delays signals for calculated periods. Due to simulated motion of the satellites, the delay varies dynamically over time.
A standard delay generator receives as input samples of an input signal and provides the samples as an output after their respective delays. Since the delay may be different for each sample, the output samples are not synchronized with each other or with the input. The lack of synchronization imposes constraints on apparatus receiving the output samples for further processing, for example, on a digital-to-analog converter or other circuits operating on a fixed, synchronous clock.
U.S. patent 4,907,247, to Miyake et al., which is incorporated herein by reference, describes a satellite simulation system in which multiple digital satellite communication terminals are interconnectable over multiple channels. The equipment includes a single satellite delay simulator intervening between transmit communication terminals and receive communication terminals. The delay simulator is implemented by a satellite delay circuit accommodating multiple channels and clock matching circuits. The communication terminals are individually connectable to the delay circuit via the clock matching circuits.
SUMMARY OF THE INVENTION
It is an object of some aspects of the present invention to provide a delay generator which provides a synchronized output.
It is another object of some aspects of the present invention to provide methods and apparatus for delaying signals for a predetermined period and providing the delayed signals synchronously.
It is still another object of some aspects of the present invention to provide a delay generator whose output is synchronized with its input.
In preferred embodiments of the present invention, a delay generator receives samples of an input signal which have been sampled at a constant clock rate and calculates for each sample the required time it is to be delayed. Rather than delaying each sample by the required delay time, however, the samples are actually delayed so as to remain in synchronization with the clock rate. The values of the delayed samples are corrected to compensate for the difference between the actual delay time and the required delay time, which difference is evaluated to a resolution substantially greater than the clock rate, typically by orders of magnitude. Adjusting the delayed samples to be in synchronization with the input samples, and using the difference to evaluate the delayed sample, significantly simplifies construction and operation of other processing circuitry associated with the delay generator. In some preferred embodiments of the present invention, the required time by which each sample is to be delayed is calculated by integration. At the beginning of a simulation session an actual delay, and a first differential of the actual delay, are calculated and are loaded into respective registers of an integrator. Preferably, new precalculated values of the differential are loaded into its register at predetermined times during the simulation. During the simulation, the integrator iteratively calculates new values of the actual delay, and updates the appropriate register.
In some preferred embodiments of the present invention, the delay generator comprises a first-in first-out (FIFO) unit which provides the actual delay, and an interpolation filter which corrects the values of the samples. The FIFO unit preferably provides the delay to a sample by writing the sample into a memory and reading the sample from the memory after an integral number of cycles of the clock driving the FIFO unit. The period of the clock driving the FIFO unit is referred to herein as a delay step. Preferably, the compensated value for a particular input sample is calculated by interpolation between a number of input samples, so as to correct for the difference between the precise, required delay time and the actual delay time defined in clock cycle steps. Most preferably, the value of the corrected sample is interpolated based on four neighboring samples. Further preferably, the filter handles I and Q samples separately due to their phase difference.
In some preferred embodiments of the present invention, the required delay is a continuous function which changes slowly relative to the delay step. Preferably, a sequence of samples are written into the memory at consecutive addresses and are read from consecutive addresses in the memory. Further preferably, the samples are read from the memory at a constant rate while the samples are written into the memory at a rate which depends on changes in the number of delay steps required from the FIFO unit. Preferably, when a simulation period is started, beginning read and write addresses are assigned to the memory and they are thereafter updated consecutively with each read and write operation, respectively. When the required delay remains substantially constant, read and write operations are performed at the same rate. However, when the required delay increases by an amount greater than the size of the delay step, two write operations are performed in the time a single read is performed. Conversely, when the required delay decreases by an amount greater than the size of the delay step, a cycle without a write operation is performed.
In a preferred embodiment of the present invention, the delay generator is used in order to simulate the transmission of the samples from a base station, via a satellite, to a receiver. Preferably, the delay generator forms part of a multichannel simulation system as described in a U.S. Patent application entitled "Satellite Motion Simulator," filed on even date, which is assigned to the assignee of the present patent application and whose disclosure is incorporated herein by reference. There is therefore provided, in accordance with a preferred embodiment of the present invention, a method for generating a variable delay of a signal, including: providing a clock indicating a sequence of sample times at regular intervals; receiving a sequence of input samples representing input values of the signal at respective sample times indicated by the clock; determining the delay with a temporal resolution substantially finer than the clock interval to be applied to the signal at each of the respective sample times; and for each of the sample times, responsive to the respectively-determined delay, processing one or more of the input samples so as to generate a corresponding output sample representing a delayed output value of the signal at the sample time.
Preferably, the method includes outputting the samples at the regular intervals indicated by the clock.
Preferably, determining the delay includes calculating a delay responsive to a parameter that varies over time, most preferably by calculating a delay that varies from one sample to the next.
Preferably, determining the delay includes determining a delay induced by transmission of the signal through a communications link.
Preferably, determining the delay includes utilizing a process of integration to determine the delay, most preferably utilizing a precalculated differential of the delay based on a model of motion of an object with which the delay is associated.
Preferably, processing the input samples includes dividing the delay into a coarse and a fine component.
Preferably, the coarse component includes the largest number of clock intervals by which the determined delay can be divided, and the fine component includes the remainder of the division. Preferably, processing the input samples includes interpolating between the samples to compute the output sample responsive to the fine component. Most preferably, interpolating between the samples includes assigning respective predetermined coefficients to the one or more input samples, wherein the predetermined coefficients are selected responsive to a magnitude of the fine delay component relative to the clock interval.
Preferably, processing the input samples includes writing the samples to a write address in a memory and reading the samples from a read address therein, wherein the read and write addresses are separated by a difference responsive to a magnitude of the coarse component of the delay.
Preferably, writing the samples includes writing a sample twice in the time of a single read operation when the delay increases. Preferably, writing the samples includes not writing a sample in the time of a read operation when the delay decreases.
There is further provided, in accordance with a preferred embodiment of the present invention, a variable delay generator, which receives as input a sequence of samples of a signal at sample times indicated by a sample clock having a predetermined clock period, and which includes: a delay controller, which determines a variable delay having a temporal resolution substantially finer than the clock interval to be applied to the signal at each of the respective sample times; and a delay line which receives the input sequence of samples and outputs a synchronous stream of output samples at the sample times, each output sample representing a respective value of the signal following the delay determined by the delay controller.
Preferably, the delay controller divides the delay into a coarse and a fine component.
Preferably, the delay line includes an interpolation filter which interpolates among the input samples to generate a value of the output sample dependent on the fine component. Most preferably, the interpolation filter selects interpolation coefficients from among a plurality of predetermined coefficients, which are respectively assigned to the sequence of input samples.
Preferably, the delay unit includes a coarse delay unit which delays the output samples by the coarse component. Preferably, the coarse delay unit includes a first-in first-out memory device, wherein the samples are written to a write address therein and wherein the samples are read from a read address therein, wherein the read and write addresses are separated by a difference responsive to the delay. Preferably, the delay controller iteratively calculates the delay. Most preferably, the delay controller includes an integrator to determine the variable delay for each of the samples based on a precalculated differential of the delay. BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be more fully understood from the following detailed description of the preferred embodiments thereof, taken together with the drawings, in which:
Fig. 1 is a schematic block diagram of a satellite communication system and a corresponding delay generator, in accordance with a preferred embodiment of the present invention;
Fig. 2 is a schematic block diagram of a delay generator, in accordance with a preferred embodiment of the present invention;
Fig. 3 is a schematic block diagram of a delay controller, in accordance with a preferred embodiment of the present invention.
Fig. 4 is a timing diagram that schematically illustrates operation of an interpolation filter, in accordance with a preferred embodiment of the present invention;
Fig. 5 is a schematic block diagram of the interpolation filter referred to in Fig. 4, in accordance with a preferred embodiment of the present invention;
Fig. 6 is a timing diagram that schematically illustrates calculation of values in a coefficient look up table, in accordance with a preferred embodiment of the present invention;
Fig. 7 is a schematic block diagram of a delay unit, in accordance with a preferred embodiment of the present invention;
Fig. 8 is a schematic block diagram of a FIFO control circuit in the delay unit of Fig. 7, in accordance with a preferred embodiment of the present invention; and
Fig. 9 is a schematic timing diagram of the delay unit of Fig. 7, in accordance with a preferred embodiment of the present invention.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
Fig. 1 is a schematic block diagram of a satellite communication system 20 and a corresponding simulation system 27, in accordance with a preferred embodiment of the present invention. A handset 22 communicates with a base station 24 via a satellite 26 which, for example, belongs to a low-earth orbit (LEO) satellite array, such as the Globalstar system.
In order to test the operation of base station 24 and handset 22 without going through satellite 26, simulation system 27 is connected between RF ports 30 of base station 24 and handset 22. System 27 processes the signals passing between base station 24 and handset 22 as if the signals were passing along a path 31 via satellite 26, wherein the signals undergo varying delays. System 27 preferably comprises a delay generator 28 which delays the signals from base station 24 according to the calculated position of satellite 26. Other elements, such as a noise generator and a Doppler shift generator (not shown) are preferably also included in system 27. These elements may be implemented entirely separately from delay generator 28, or partly combined with the delay generator.
Preferably, system 27 further comprises an A/D converter 32 which samples and digitizes the RF signals from base station 24. The delayed sampled signals are preferably converted back to analog form by a D/A converter 34. Preferably, generator 28 and converters 32 and 34, as well as the other elements of system 27, operate at the same clock rate using synchronous clock signals so as to simplify the operation of the system. In the following description, differing clock rates are referred to as being based on a basic "chip" rate and multiples thereof. For example, a chipx4 rate corresponds to a rate four times faster than the basic chip rate. In system 27, a single period of the chip rate clock is preferably of the order of 800 ns. The delay imposed by delay generator 28 is typically on the order of delay times for signals transmitted via satellite 26, i.e., in the range of 9 - 23 ms. It will be understood, however, that delay generator 28, which is described further hereinbelow, may be used over a wide range of different delay times and in various applications not limited to the simulation application described herein.
Fig. 2 is a schematic block diagram of delay generator 28, in accordance with a preferred embodiment of the present invention. Preferably, generator 28 receives an intermediate frequency (IF) signal on a "data in" line 41 at a chipxlό rate, and translates the signal to separate interlaced I and Q digital samples, each at a chipxδ rate, where the terms I and Q are well known as to representing In- Phase and Quadrature Phase signals. The samples are preferably between 8 and 12 bits wide. On two "data out" lines 43, generator 28 provides the delayed I and Q samples, at a rate of chipx4. That is, delay generator 28 decimates the samples in addition to delaying them. This feature is useful in a particular implementation of simulation system 27, although it is not material to the principles of the present invention.
Generator 28 preferably comprises a coarse delay unit 40, which delays each of the incoming samples for a period which is equal to a respective, integral number of delay steps for each sample. Preferably, the delay step is equal to the period of a chipx4 cycle. Generator 28 also includes an interpolation filter 42 which separately alters the values of each of the I and Q samples entering delay unit 40 in order to correct for inaccuracies introduced by the coarse delay of unit 40. Interpolation filter 42 and delay unit 40 together form a delay line. Preferably, interpolation filter 42 corrects for the inaccuracies by calculating a value of a virtual sample (I or Q) which is then input to unit 40. The process followed by interpolation filter 42 is explained in more detail hereinbelow with reference to Fig. 4 and Fig. 5. Although the following description and the drawings show filter 42 at the input to delay unit 40, those skilled in the art will be able to perform any necessary changes in order to position filter 42 at the output of unit 40. Preferably, generator 28 further comprises a processor 44 which calculates a theoretical delay for each sample transmitted from base station 24 to handset 22 due to path 31. Preferably, an array of values of the theoretical delay of the samples is calculated at the beginning of a simulation session and stored for use during the simulation, either by processor 44 or by an external processor, which downloads the results to processor 44. The stored values, and first differentials of the stored values, are then used for simulation initiation and at later points in the simulation, as described hereinbelow.
Generator 28 also comprises a delay controller 46 which iteratively calculates, during the simulation session, an actual delay to be applied to each sample. During the simulation session, controller 46 operates as an integrator, which uses a first time differential of the actual delay, in order to calculate a new actual delay.
Fig. 3 is a schematic block diagram of delay controller 46, in accordance with a preferred embodiment of the present invention. Preferably, before the start of the simulation session, processor 44 stores an initial actual delay and an initial first differential of the actual delay, i.e., an initial delay change rate, in an actual delay register 154 and a first differential register 152 respectively. The initial actual delay is entered into actual delay register 154 via a multiplexer 158. During the simulation session an adder 162 iteratively integrates the actual delay at a chipx4 rate, using the first differential stored in register 152, and stores the result in register 154. Preferably, the value of the first differential stored in register 152 is updated at a rate of once every 125 ms, from values calculated by processor 44. Register 154 thus contains a continuously updated value of the actual delay.
Returning to Fig. 2, for each sample the actual delay calculated as described above by controller 46 is divided into two parts: a coarse delay comprising an integral number of delay steps imposed by unit 40, and a fine delay, which is compensated for by filter 42. The coarse delay is preferably calculated by dividing the actual delay by the delay step of unit 40 (the period of the chipx4 signal), and setting the quotient of the division to be equal to the number of delay steps. The remainder of the division is the fine delay value. The fine delay value is evaluated as an integral number of parts, preferably 512 parts, of a delay step, wherein the integral number is any integer from 0 to 511. Preferably, at the beginning of the simulation session, processor 44 sets a starting read address and a starting write address which are separated by the coarse delay for an initial sample. The starting read and write addresses are passed to delay unit 40. The fine delay value of the initial sample is stored in a fine delay register 47. The fine delay value is used by filter 42 in altering the respective values of the data-in samples, as described hereinbelow. Delay controller 46 also generates control signals on a line 49 when the fine delay value reaches its maximum (corresponding to one complete delay step) or minimum value (zero delay steps). At this point, delay controller 46 generates a signal that changes the length of the coarse delay introduced by unit 40.
Preferably, fine delay register 47 accepts a fixed range of integer values, for example, values between 0-511. When the fine delay value exceeds 511, it is reset to zero (i.e., reduced by the maximum value), and an overflow signal is output from control 46 to line 49. Likewise, when the fine delay value goes below 0, 511 is added to the value in register 46, and an underflow signal is provided. The underflow and overflow signals are provided both to delay unit 40 and to filter 42. Unit 40 uses the underflow signal to decrease the coarse delay by one complete delay step, and uses the overflow signal to increase the coarse delay by one complete delay step. In the overflow case, filter 42 generates an additional sample to be written into a coarse delay unit memory comprised in unit 40. The additional sample is written during an additional write operation performed during a single coarse delay unit cycle that is needed to increase the delay by one delay step, as described in more detail below. In the underflow case, filter 42 skips the next sample writing cycle, so as to decrease the delay by one delay step.
The fine delay value in register 47 is used as an index to a double look up table (LUT) 48 which provides interpolation coefficients to filter 42 for I and Q samples separately. LUT 48 is preferably implemented by two 2K x 16 bits PROM memories, although any other suitable memory unit may be used.
A clock 50 provides clock signals to unit 40 and filter 42 at a rate of chipxlό. Thus, samples are input on line 41 every clock period of clock 50, and an I and a Q sample are output from simulator 28 on lines 43 every four clock periods. Fig. 4 is a schematic timing diagram showing signals associated with interpolation filter 42, in accordance with a preferred embodiment of the present invention. A chipxlό signal 200 illustrates the chipxlό clock signal regulating the operation of delay simulator 28. Signal 200 is formed of a sequence of chipxlό periods 201, formed of a high period 202 and a low period 203. Interpolation filter 42 alternately extracts uncorrected input I samples 210 and uncorrected input Q samples 212 from line 41 at fixed times at a total rate of chipxlό. For example, the I samples may be extracted at odd chipxlό periods, and the Q samples may be extracted at even chipxlό periods. Filter 42 provides delay unit 40 with corrected I samples 220 and corrected Q samples 230. To correct the value of incoming samples, filter 42 generates a corrected I sample 214, and outputs it as a sample 214' at a next available chipx4 time, with a value as if it were sampled from the source signal of base station 24 at time 218. The time 218 is determined such that the period 222 between time 218 and the closest output sample 220 is equal to the fine delay value held by delay register 47. Time 218 may be located anywhere between two adjacent output samples 220. Typically, time 218 will shift gradually relative to the times of samples 220, due to gradual change in the total delay time. When the required delay slowly increases, time 218 moves to the left. When time 218 substantially coincides with the sample 220 on its left, the delay provided by filter 42 is maximal and an overflow signal is generated. Conversely, when time 218 coincides with the sample 220 on its right, the delay provided by filter 42 is minimal, and an underflow signal is generated.
Sample 214 is preferably interpolated from a set 224 of four input I samples 210A, 210B, 210C, and 210D, using a suitable interpolation method, preferably finite impulse response (FIR) filtering, wherein each of the input I samples is multiplied by a respective coefficient and the products are summed. A set of suitable coefficients for each fine delay value from 0 to 511 is stored in LUT 48 and used in the calculation, as described further hereinbelow. Alternatively or additionally, any other number of samples 210 may be used in interpolation.
Similarly, corrected Q sample 216, output as a sample 216' at a next available chipx4 time, is prepared by interpolation of a set 226 of four Q samples 212A, 212B, 212C, and 212D. The interpolation is performed separately because of the time difference between the I and Q input samples.
Fig. 5 is a schematic block diagram of interpolation filter 42, in accordance with a preferred embodiment of the present invention. Filter 42 comprises a separator 60 which receives samples from line 41 and separates the incoming samples to I and Q samples, as is known in the art. Separator 60 receives input samples at a rate of chipxlό and provides interlaced I and Q samples, each at a rate of chipxδ, to respective lines 64 and 66.
The I samples are passed on line 64 on odd chipxlό periods and are held in four registers 62A, 62B, 62C and 62D (referred to also as registers 62) which store the four most recent samples, corresponding to 210A, 210B, 210C, and 210D referred to in Fig. 4. Each sample first enters register 62A and upon the next odd chipxlό period passes to register 62B. At the next two odd chipxl6 periods the sample is passed to registers 62C and 62D and thereafter it is discarded. Similarly, the Q samples are passed on line 66 to four registers 68A, 68B, 68C and 68D (referred to also as registers 68), on even chipxlό periods. Preferably, during four chipxlό periods (at a rate of chipx4), filter 42 calculates an interpolated I output sample based on the four input samples in registers 62. During any specific chipx4 period, the four input samples comprise two new samples in registers 62A and 62B, and two samples which had been in registers 62A and 62B during the previous chipx4 period, and which have been transferred to registers 62C and 62D. The four input samples thus comprise two new samples, and two "old" samples. At each chipxlό period, a multiplexer 70 passes one of the samples in registers 62 into a multiplier 72 which multiplies each of the samples from registers 62 by a respective coefficient from a register 76, providing a weighted sample. The coefficient in register 76 is preferably received from LUT 48 according to the value of the fine delay in register 47 and according to which of the four samples is being multiplied.
An adder 74 sums up the four weighted samples to form the interpolated
1 output sample on a line 78. Preferably, multiplier 72 and adder 74 comprise a single multiplier-accumulator chip, as is known in the art. In a similar manner to that of the I samples, filter 42 calculates an interpolated Q output sample provided on a line 88, based on the four input samples in registers 68.
Preferably, the interpolation is performed in a similar manner to that described above, using a multiplexer 80, a multiplier 82, an adder 84 and a Q-coefficient register 86. Control logic blocks 94 and 96 are used to clear adders 74 and 84 respectively, at a chipx4 rate, after each set of four input samples has been utilized to generate an interpolated value.
LUT 48 contains different sets of values for coefficient registers 76 and 86, due to the phase difference (one chipxlό period) between the I and Q samples. Preferably, each set of values includes four coefficients for each of the values of fine delay register 47. Thus, if register 47 may receive 512 values, LUT 48 stores
2 x 4 x 512 coefficients. Values of the coefficients are preferably chosen so that they weight the four samples to which they are applied so as to form a linear average, although any other sets of coefficients may be used, as is known in the art.
Fig. 6 is a schematic timing diagram illustrating how LUT 48 is used, in accordance with a preferred embodiment of the present invention. As described with reference to Fig. 4, filter 42 calculates the value of a virtual I sample taken at time 218, based on samples 210A, 210B, 210C, and 210D, of set 224. Preferably, each of the samples in set 224 is multiplied by a respective coefficient α, β, γ or δ, which coefficients are based respectively on time intervals 228A, 228B, 228C, and 228D between time 218 and the respective sample of set 224. The value Y of the virtual sample is given by:
F = IAαn + IBβn + ICγn + IDδn 0 < n < 511,
where Iβ, 1Q, and IQ are respective values of samples 210A, 210B, 210C, and 210D. A similar process is used by filter 42 to calculate the value of an imaginary
Q sample, based on samples 212A, 212B, 212C, and 212D, of set 226, and respective coefficients 230A, 230B, 230C, and 230D. Alternatively, the coefficients are chosen according to any other suitable interpolation method.
Referring back to Fig. 4 and Fig. 5, in normal operation, filter 42 provides I and Q interpolated samples every chipx4 period. The provided interpolated samples are preferably output through multiplexers 90. However, when delay controller 46 generates an underflow control signal which indicates that the delay incurred by unit 40 must be decreased, filter 42 provides a sample as usual, but no write signal is generated for that chipx4 period. Conversely, when delay controller 46 generates an overflow control signal which indicates that the delay incurred by unit 40 must be increased, filter 42 provides two samples: an interpolated sample, as in every other cycle, and one of the samples stored in filter 42 (registers 62 for I samples and registers 68 for Q). Two write signals are then generated during a single chipx4 period. Control logic blocks 94 and 96 receive signals from delay controller 46 indicating when two samples are to be provided, and pass an appropriate signal to multiplexers 90. The first interpolated sample is provided as in every normal chipx4 period, preferably during the first chipxlό period of the chipx4 period. The second sample is provided thereafter, preferably during the second chipxlό period of the chipx4 period. The second sample is provided along lines 92 and selected by multiplexers 90. Lines 92 provide the contents of registers 62 and 68, respectively, which contain the values of samples 210 and 212, respectively.
Fig. 7 is a schematic block diagram of delay unit 40, in accordance with a preferred embodiment of the present invention. Delay unit 40 comprises two memory units 102 and 104 which delay the I and Q samples, respectively. Memory units 102 and 104 preferably comprise standard SRAM chips. Most preferably, each of the units comprises two 128K x 8 bit chips. Memory units 102 and 104 receive the samples from filter 42 and output the samples on lines 43. The operation of memory units 102 and 104 is controlled by a controller 106, which operates the SRAM as a first-in first-out (FIFO) memory by managing the read and write addresses of memory units 102 and 104 and their control signals, e.g., chip select CS, read enable RD and write enable WR.
Fig. 8 is a schematic block diagram of controller 106, in accordance with a preferred embodiment of the present invention. Controller 106 comprises a counter 120 which stores a common read address for both of memory units 102 and 104, and two additional counters 122 and 124 which store the write addresses of memory units 102 and 104, respectively. Preferably, controller 106 includes an ISA or other suitable address bus 126 and an ISA or other suitable data bus 128 used for loading initial data at the beginning of the simulation session and for debugging. Two multiplexers 132 and 134 determine the source of the address passed to memory units 102 and 104, respectively. A control block 130 receives the control signals from line 49 and a clock signal from clock 50, and accordingly generates appropriate control signals output to memory units 102 and 104, as well as to counters 120, 122 and 124 and multiplexers 132 and 134. A 17 bit comparator 136 signals if the read and Q write values in counters 120 and 124 are the same, and is used as an error warning generator.
Fig. 9 is a schematic timing diagram relating to coarse delay unit 40, in accordance with a preferred embodiment of the present invention. During the simulation session, memory units 102 and 104 provide a delayed sample every chipx4 period, and a read pointer is incremented accordingly. Normally, as shown for chipx4 periods 250 and 254, during each chipx4 period, each of memory units 102 and 104 also receives a single interpolated sample from filter 42, i.e., a sample is written to each of the memory units during a chipxlό period marked WR, when a write SRAM signal is set at respective times 258 and 260. During these periods, a write pointer counter 262 of each memory unit increments once in a chipx4 period, when a write pointer counter enable signal is set at respective times, for example, at times 264 and 266. (The numbers 12904, 12905, etc., represent dummy values of the write pointer.) However, as shown for a no-write chipx4 period 256, in chipx4 periods in which an underflow control signal is received on line 49 (Fig. 2), a no-write signal is set at time 268, and no sample is written into the memory unit (either 102 or 104) for which the underflow signal is received. During the underflow chipx4 period, memory units 102 and 104 provide output samples as usual and increment the read pointer, and, thus, the delay provided by the underflowed memory unit is increased, since the write pointer is not incremented.
In a chipx4 period 252, when an overflow signal is received on line 49, a double write enable signal is set at time 270. As a result, two samples are written into the memory unit for which the overflow signal is received when the write SRAM signal is set at respective times 272 and 274. In this case, the delay provided by the overflowed memory unit is shortened, since write pointer counter 262 is incremented twice in a chipx4 period.
Although the above-described preferred embodiments relate generally to a satellite communications simulator, those skilled in the art will appreciate that the principles of the present invention may be applied to produce variable delay generators for use in other applications, as well. It will thus be understood that the preferred embodiments described above are cited by way of example, and the full scope of the invention is limited only by the claims.
We claim:

Claims

1. A method for generating a variable delay of a signal, comprising: providing a clock indicating a sequence of sample times at regular intervals; receiving a sequence of input samples representing input values of the signal at respective sample times indicated by the clock; determining the delay with a temporal resolution substantially finer than the clock interval to be applied to the signal at each of the respective sample times; and for each of the sample times, responsive to the respectively-determined delay, processing one or more of the input samples so as to generate a corresponding output sample representing a delayed output value of the signal at the sample time.
2. A method according to claim 1, and comprising outputting the samples at the regular intervals indicated by the clock.
3. A method according to claim 1, wherein determining the delay comprises calculating a delay responsive to a parameter that varies over time.
4. A method according to claim 1, wherein determining the delay comprises calculating a delay that varies from one sample to the next.
5. A method according to claim 1, wherein determining the delay comprises determining a delay induced by transmission of the signal through a communications link.
6. A method according to claim 1, wherein determining the delay comprises utilizing a process of integration to determine the delay.
7. A method according to claim 6, wherein utilizing the process of integration comprises utilizing a precalculated differential of the delay based on a model of motion of an object with which the delay is associated.
8. A method according to claim 1, wherein processing the input samples comprises dividing the delay into a coarse and a fine component.
9. A method according to claim 8, wherein the coarse component comprises the largest number of clock intervals by which the determined delay can be divided.
10. A method according to claim 9, wherein the fine component comprises the remainder of the division.
11. A method according to claim 8, wherein processing the input samples comprises interpolating between the samples to compute the output sample responsive to the fine component.
12. A method according to claim 11, wherein interpolating between the samples comprises assigning respective predetermined coefficients to the one or more input samples.
13. A method according to claim 12, wherein assigning the predetermined coefficients comprises selecting coefficients responsive to a magnitude of the fine delay component relative to the clock interval.
14. A method according to claim 8, wherein processing the input samples comprises writing the samples to a write address in a memory and reading the samples from a read address therein, wherein the read and write addresses are separated by a difference responsive to the coarse component of the delay.
15. A method according to claim 14, wherein writing the samples comprises writing a sample twice in the time of a single read operation when the delay increases.
16. A method according to claim 14, wherein writing the samples comprises not writing a sample in the time of a read operation when the delay decreases.
17. A variable delay generator, which receives as input a sequence of samples of a signal at sample times indicated by a sample clock having a predetermined clock period, and which comprises: a delay controller, which determines a variable delay having a temporal resolution substantially finer than the clock interval to be applied to the signal at each of the respective sample times; and a delay line which receives the input sequence of samples and outputs a synchronous stream of output samples at the sample times, each output sample representing a respective value of the signal following the delay determined by the delay controller.
18. A generator according to claim 17, wherein the delay controller divides the delay into a coarse and a fine component.
19. A generator according to claim 18, wherein the delay line comprises an interpolation filter which interpolates among the input samples to generate a value of the output sample dependent on the fine component.
20. A generator according to claim 19, wherein the interpolation filter selects interpolation coefficients from among a plurality of predetermined coefficients, which are respectively assigned to the sequence of input samples.
21. A generator according to claim 20, wherein the coefficients are selected responsive to a magnitude of the fine delay component relative to the clock interval.
22. A generator according to claim 18, wherein the delay unit comprises a coarse delay unit which delays the output samples by the coarse component.
23. A generator according to claim 22, wherein the coarse delay unit comprises a first-in first-out memory device, wherein the samples are written to a write address therein and wherein the samples are read from a read address therein, wherein the read and write addresses are separated by a difference responsive to a magnitude of the coarse component of the delay.
24. A generator according to claim 18, wherein the delay controller iteratively calculates the delay.
25. A generator according to claim 24, wherein the delay controller comprises an integrator to determine the variable delay for each of the samples based on a precalculated differential of the delay.
PCT/US2000/023951 1999-08-31 2000-08-30 Synchronous delay generator WO2001017128A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU70966/00A AU7096600A (en) 1999-08-31 2000-08-30 Synchronous delay generator

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US38714099A 1999-08-31 1999-08-31
US09/387,140 1999-08-31

Publications (2)

Publication Number Publication Date
WO2001017128A2 true WO2001017128A2 (en) 2001-03-08
WO2001017128A3 WO2001017128A3 (en) 2001-09-07

Family

ID=23528643

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/023951 WO2001017128A2 (en) 1999-08-31 2000-08-30 Synchronous delay generator

Country Status (2)

Country Link
AU (1) AU7096600A (en)
WO (1) WO2001017128A2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3997772A (en) * 1975-09-05 1976-12-14 Bell Telephone Laboratories, Incorporated Digital phase shifter
US4907247A (en) * 1988-02-23 1990-03-06 Nec Corporation Satellite delay simulation system
JPH04288747A (en) * 1990-12-28 1992-10-13 Sony Corp Delay simulator for digital line
EP0639347A1 (en) * 1992-01-14 1995-02-22 Yokogawa Medical Systems, Ltd Digital phase shifter

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3997772A (en) * 1975-09-05 1976-12-14 Bell Telephone Laboratories, Incorporated Digital phase shifter
US4907247A (en) * 1988-02-23 1990-03-06 Nec Corporation Satellite delay simulation system
JPH04288747A (en) * 1990-12-28 1992-10-13 Sony Corp Delay simulator for digital line
EP0639347A1 (en) * 1992-01-14 1995-02-22 Yokogawa Medical Systems, Ltd Digital phase shifter

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LIU G -S ET AL: "PROGRAMMABLE FRACTIONAL SAMPLE DELAY FILTER WITH LAGRANGE INTERPOLATION" ELECTRONICS LETTERS,GB,IEE STEVENAGE, vol. 26, no. 19, 13 September 1990 (1990-09-13), pages 1608-1610, XP000106903 ISSN: 0013-5194 *
MURPHY N P ET AL: "IMPLEMENTATION OF WIDEBAND INTEGER AND FRACTIONAL DELAY ELEMENT" ELECTRONICS LETTERS,GB,IEE STEVENAGE, vol. 30, no. 20, 29 September 1994 (1994-09-29), pages 1658-1659, XP000474909 ISSN: 0013-5194 *
PATENT ABSTRACTS OF JAPAN vol. 017, no. 097 (E-1326), 25 February 1993 (1993-02-25) -& JP 04 288747 A (SONY CORP), 13 October 1992 (1992-10-13) *

Also Published As

Publication number Publication date
AU7096600A (en) 2001-03-26
WO2001017128A3 (en) 2001-09-07

Similar Documents

Publication Publication Date Title
EP0344326B1 (en) Fir digital filter device
US20020049798A1 (en) Adder-saving implementation of digital interpolation/decimation fir filter
US7450633B2 (en) Wander generator, and digital line tester and phase noise transfer characteristic analyzer using the same
KR0185594B1 (en) Sampling rate converter
KR900701117A (en) TV virtual eraser
US7619546B2 (en) Asynchronous sample rate conversion using a digital simulation of an analog filter
JPH06188686A (en) Dynamic adaptability equalizer system and method
EP0575071A2 (en) A/D converter
JPH10126218A (en) Sampling frequency converting device
US5515402A (en) Quadrature filter with real conversion
US8787513B2 (en) Digital re-sampling apparatus using fractional delay generator
US4237463A (en) Directional coupler
US5369606A (en) Reduced state fir filter
JP2008124593A (en) Decimation filter
US6532273B1 (en) Efficient polyphase decimation filter
EP0639347B1 (en) Digital phase shifter
US6549051B1 (en) Synchronous delay generator
US5490511A (en) Digital phase shifting apparatus
JPH07177388A (en) Ghost erasing circuit
WO2001017128A2 (en) Synchronous delay generator
US4626217A (en) Broadband doppler simulator
IE47419B1 (en) Self-adapting equaliser
KR960004127B1 (en) Transversal filter
EP0426296B1 (en) Apparatus having modular interpolation architecture
EP0426294A2 (en) Decimation-interpolation circuits

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

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

AL Designated countries for regional patents

Kind code of ref document: A2

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

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

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

AL Designated countries for regional patents

Kind code of ref document: A3

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

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

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

Ref country code: JP