Method and apparatus for normalising components of a complex signal

Abstract: Apparatus for processing digital signals to normalize multi-bit digital words representing the I₁ and Q₁ components of a complex signal of the form I₁ + jQ₁ to produce corresponding components I₃ and Q₃, such that the square root of the sum of the squares of I₃ and Q₃ is equal to 1, comprising: means (10) for performing a coarse normalization of I₁ and Q₁ to produce components I₂ and Q₂ respectively, means (20) for calculating a value A equal to the sum of the squares of I₂ and Q₂ so that A is constrained to be equal to or greater than a minimum value R and less than a maximum value S, means (28) for iteratively adjusting the value of a digital word K, until K²A=R means (33) for producing the components I₃ and Q₃, where I₃=G(KI₂) and Q₃=G(KQ₂).

Description: This invention relates to digital signal processing and more particularly to a method and apparatus for normalising a complex signal. The invention has particular application in receivers that process frequency modulated signals. Prior art communication receivers use digital signal processing (DSP) for many of the basic receiver functions such as frequency translation, filtering, and demodulation. See for example, U. S. Patent No. 4,592,074 which uses DSP for frequency translation and filtering. In general, DSP permits receivers to be designed with higher performance, accuracy, and flexibility. Figure 1 is a block diagram of a prior art FM receiver, with signal demodulation and other functions performed by DSP. Analog front end circuitry processes the signal received at the antenna and inputs the processed analog signal to an analog-to-digital converter (A/D), which digitises the signal. The analog processing may include gain, frequency translation, and filtering. The digital output of the A/D converter is processed by DSP circuitry that may perform gain, frequency translation and filtering functions in the digital domain to isolate the signal in the desired receiver channel. The desired signal is then input to the FM demodulator, which outputs the baseband signal, which is the FM composite signal for standard FM broadcast. FM can be described mathematically as phase modulation of a carrier by the integral of the modulating (or baseband) signal, as discussed in Solid State Radio Engineering , by Krauss, Bostian, and Raab, published by John Wiley and Sons, 1980. Thus, the demodulation process for FM can be described as the derivative of the phase of the modulated carrier. It is common in DSP-based receivers to process the receive signal in complex from, i.e. with real (in-phase or I) and imaginary (quadrature-phase or Q) components. In general, using a complex representation has advantages in frequency translation and demodulation, and allows sample rates to be reduced. A single carrier in complex form can be represented diagrammatically as a single phasor in the real-imaginary signal plane, with the real and imaginary coordinates of the phasor's tip equal to I and Q respectively, as shown in Figure 2. The magnitude M of the carrier is the length of the phasor, and the phase of the carrier is the angle P from the real axis, as shown. Thus, one prior art FM demodulation scheme is to calculate the phase equal to the arctangent of Q divided by I, then take the derivative of the phase to obtain the baseband signal. This scheme has two problems: calculation of arctangent is difficult, and the arctangent function in general gives a result that is discontinuous due to wrap around from +pi to -pi and vice-versa. It can be easily shown using standard derivative tables that the derivative of the arctangent of Q divided by I can be simplified to the following function. S ( t ) = I ( t ) dQ ( t ) dt - Q ( t ) dI ( t ) dt I ( t ) 2 + Q ( t ) 2 where S(t) = desired baseband signal, I(t) = in-phase carrier component, Q(t) = quadrature-phase carrier component. The denominator of (1) is the square of the magnitude of the carrier phasor. The magnitude of the phasor is the square-root of the sum of the squares of I(t) and Q(t), and can also be considered the norm of the vector [I(t) Q(t)]. If K is defined as the inverse of the magnitude, and if I 1 (t) = K I (t) and Q 1 (t) = KQ(t), then (1) can be re-written as follows. S ( t ) = I 1 ( t ) dQ 1 dt - Q 1 ( t ) dI 1 ( t ) dt Equation (2) can be viewed as the modified demodulator. The magnitude of the phasor formed by I 1 (t) and Q 1 (t) is exactly 1 due to the value of K. Thus, multiplying I(t) and Q(t) by K to obtain I 1 (t) and Q 1 (t) in effect "normalizes" the phasor to magnitude 1. This removes any amplitude variation of the carrier phasor, and thus performs the same function as a limiter in an analog FM demodulator. The demodulation process thus consists of normalising the complex signal, then using the modified demodulator to demodulate the normalised signal, as shown in Figure 3. Normalisation is performed by calculating K as defined above, and then multiplying I and Q by K. The derivatives in (2) (as well as in (1)), can be calculated using known methods, such as FIR or IIR filter structures. K can be calculated from a polynomial function of I 2 + Q 2 . However, many terms, and thus multiplications, are needed for high accuracy of K. Alternatively, the square root of (I 2 + Q 2 ) can be calculated using a square-root algorithm, such as a polynomial algorithm or Booth's algorithm. Then K can be calculated using a 1/x function, such as binary long division. Still another method is to use Newton-Raphson iteration. In terms of hardware or software implementations, all of these approaches require an excessive amount of processing power to obtain K. EP-A-0 429 948 discloses a demodulator system for demodulating first and second digital signals. The system has a limiter and a demodulator. The limiter includes a synthesizer to obtain a synthesized wave from an I signal and a Q signal. Two scalers apply an amplitude limitation to the I and Q signals under the control of a controller responsive to the output of the synthesizer. The demodulator has two differentiators to differentiate the I and Q signals, two polarity detectors, two polarity inverters and a subtracting circuit to obtain the difference between outputs of the polarity inverters. US-A-4 675 882 discloses a digital FM demodulator for processing sampled input vectors of a quadrature FM digital signal. The sampled input vectors are quantised to lie within a predetermined magnitude range and the quantised vectors are coupled to a phase accumulator to generate a coarse phase value. A vector rotation means rotates the input vector to a predetermined quadrant to determine a fine phase value which is summed with the coarse phase value to produce a composite phase value. The composite phase value is subtracted from the previous composite phase value to produce a demodulated message sample. In accordance with the present invention a method and apparatus is provided which arrives at a value of K in an iterative manner, which in relation to the prior art requires a smaller amount of processing power, thus reducing the cost of implementing the function. The invention will now be described further, by way of example, with reference to the accompanying drawings, in which: Figure 1 is a block diagram of a prior art FM receiver using digital signal processing; Figure 2 is a phase diagram showing the real and imaginary components of a carrier; Figure 3 is a block diagram of a portion of an FM receiver utilising the normaliser of the present invention; Figures 4a and 4b form a detailed block diagram of one embodiment of the normaliser of the present invention; and Figures 5a and 5b form a detailed block diagram of a second embodiment of the normaliser of the present invention. Referring now to Figures 4a and 4b and initially to Figure 4a, a first embodiment of the normaliser of the present invention is shown. It should be understood in the following discussion that the values of the range limits of signals in the system are dependent on the number system selected to represent the signals. However, selection of a particular number system does not change the operation of the method, but only how signals are represented mathematically. A well-known number system is the 2's complement, fixed-point fractional number system. When this system is used, the range of numbers that can be represented is -1.0 to 1.0 - α, where α is the value of the least-significant-bit (LSB) of the number represented. In the following description, it is assumed that fixed-point, 2's complement, fractional hardware is used. Thus, operations are performed in certain ways to limit all variables and coefficients to the range ≥ -1.0 and < +1.0. The normaliser comprises a first stage generally designated 10 that performs a coarse normalisation on the inputs I 1 and Q 1 to produce I 2 and Q 2 so that the absolute value of at least one of the outputs is equal to or greater than 0.25 and the absolute value of each output is less than 0.5. The digital multi-bit words I 1 and Q 1 are parallel loaded into shift registers 12 and 14 respectively under the control of load signal LD1 at a rate of f1, where f1 is the sample rate of the system. The shift control logic 15 shifts the bits in the registers 12 and 14 under control of clock signals CLK2 and also performs the logic necessary to detect the intermediate shifted values of I 1 and Q 1 and stop shifting when the absolute value of the I 1 and Q 1 meet the condition set out above. The results of this shifting operation are loaded into registers 16 and 18 at rate f1, by a clock signal CLK1. If I 1 <> 0 or Q 1 <>0, I 1 and Q 1 are shifted left or right a bit at a time until: L 2 ≤ I 2 , or L 2 ≤ Q 2 , and I 2 < L , and Q 2 < L . If I 1 =0 and Q 1 =0, no shifting is required, so that I 2 =0 and Q 2 =0. The limits in (3) to (6) are integer powers of 2. This allows the range checking associated with the coarse normalisation to be performed by directly checking the three most significant bits (MSBs) of I 2 and Q 2 . Arbitrary limits could be used, but absolute-value functions and full comparators would be needed in that case. Also, if the maximum limit of each of I 2 and Q 2 is less than L (up to but not including L), then at least one of these two signals will be ≥ L/2, due to the fact that the coarse normalisation is performed by bit shifting. The value of L should be a power of 0.5 to allow the simple range checking indicated above. A value of L=0.5 is preferred for this number system. Registers 16 and 18 are provided to store I 2 and Q 2 respectively, to insure that I 2 and Q 2 are available to subsequent processing for the full length of the sample period 1/f1. If I 1 and Q 1 each have N1 bits resolution, no more than N1 - 1 shifts will be needed. In a second stage generally designated 20, the outputs of the first stage I 2 and Q 2 are respectively squared by multipliers 22 and 24 and summed in adder 26. The output of the adder 26 is expressed as: A = I 2 2 + Q 2 2 . In view of the coarse normalization performed by stage 10, and a value of L = 0.5, the output A of the adder 26 will be: 0.0625 ≤ A < 0.5, or A = 0. The range in (8) is a mathematical result of the range on I 2 and Q 2 , and the number system used. In a 2's complement number system, if the upper limit of each of I 2 and Q 2 is L-α, then the upper limit of A occurs when both I 2 and Q 2 are at their upper limit, so the upper limit of A is 2(L-α) 2 . The lower limit of A occurs when one of I 2 or Q 2 is at its lower limit L/2, and the other signal is 0, so the lower limit of A is (L/2) 2 . Note, if L = 1.0, then A can exceed 1.0, which is outside the limits of the number system. However, if L = 0.5 as stated above, A will not exceed 1.0. With L = 0.5, the maximum value of A is 2(0.5-α) 2 , or just below 0.5. Also, with L = 0.5, at least one of I 2 and Q 2 will be ≥ 0.25, and thus A will be at least 0.0625. Similar relationships will be present for any number system selected. The digital multi-bit word A is input to a third stage generally designated 28 shown in Figure 4b. In stage 28, an iterative process is performed, one bit at a time, to find a multi-bit word of value K in a register 30 such that: K 2 A = 0.0625. The K register has NK bits, numbered from NK-1 (MSB) to 0 (LSB). From the equations above, 0 < K ≤ 1. However, if A = 0.0625, then to keep K < 1.0, as required in fractional representation, K is forced to the largest fractional value available. Since K is known to be positive, no sign-bit need be present in K. The details of the iterative process will be described hereinafter in detail. The final value of K is clocked into register 32, so that it is available for one complete sample period. In a fourth stage (Figure 4a) generally designated 33, the final outputs I 3 and Q 3 are calculated, as follows, and with the indicated order of operations to limit all numbers to within the number system. I 3 = 4 ( KI 2 ), and Q 3 = 4 ( KQ 2 ). By using (7) and (10) to (12), it can be shown that I 3 and Q 3 are such that: I 2 3 + Q 2 3 = 1.0. Registers 34, 36, 38, and 40 are for time alignment of I 2 and Q 2 with the K output from Register 32. Registers 42 and 44 provide storage for the results of multipliers 46 and 48 respectively. The multiply by 4 operation, in (17) and (18) is performed by taking the proper bits from the intermediate values KI 2 and KQ 2 as provided at the outputs of multipliers 46 and 48. To accommodate the special case where KI 2 = 0.25, circuitry is included at the input of register 42 to compare the output of the multiplier 46 with the value 0.25 and if equal thereto, to load the value 1.0 - α into the register 42, as required for the number system. An identical process is used with multiplier 48 and register 44. Returning to the third stage 28 in Figure 4b, the iteration process determines the correct value of K one bit at a time, beginning with the most significant bit. The initial value of K in the register 30 is 0. For each iteration, (K 2 )A is calculated in an indirect manner that does not require multiplication. The value of K that is used assumes that the bit being determined in the iteration is equal to logic 1. Then, if (K 2 )A is ≤ 0.0625, the bit in question in register 30 is actually set, otherwise, the bit is left clear. Define: X = KA , Y = ( K 2 ) A, and Define: J as the current iteration, with J running from 0 to NK-1. Then, for every iteration, X temp = K 1 A = [ K + 2 -J -1 ] A = KA + [2 -J -1 ] A = X old + A shr ( J +1) Y temp = K 2 1 A = {[ K + 2 -J -1 ] 2 } A = K 2 A + 2 K [2 -J -1 ] A + {[2 -J -1 ] 2 } A = Y old + X[2 -J ] + A [2 -2 J -2 ] = Y old + ( X shr J ) + ( A shr (2 J +2)). where shr M indicates a shift right operation by M bits, which in effect multiplies the affected value by 0.5 M . The logic 28 implements equations (17) and (18). The multi-bit word A is loaded into registers 50 and 52 when the load input LD is enabled by the timing signal LD2. After loading register 50 with A, it's content is shifted one bit to the right by CLK3. The clock signal CLK3 is preferable K times the frequency of CLK1 so that one iteration occurs each CLK3 pulse. A J counter 58, clocked from CLK3, counts the number of iteration performed, counting from 0 to NK-1. The content of the register 50, after being shifted right by one bit position for each iteration, provides one of the multi-bit inputs to an adder 54 which outputs X temp . The other input to the adder 54 is the output of an X register 56 which stores a previous output of the adder 54 as will be explained hereinafter. The output of the register 52, after being shifted right by two bit positions for each iteration by CLK3, provides one of the multi-bit inputs to an adder 60. The connections from the inputs of the adder 60 to the register 52 are offset by two bit positions to achieve a further multiplication of value A prior to addition to output of a barrel shifter 62, which provides the other input to the adder 60. The barrel shifter 62 receives and shifts the contents of X register 56 to the right by a number of bit positions equal to the value of the J counter 58. The output of the adder 60 provides one input to an adder 66 which outputs Y temp . The other input to the adder 66 is the output of a Y register 68. The Y register 68 is loaded with the output of the adder 66 and the X register 56 is loaded with the output of the adder 54 by a timing signal CLKxy. CLKxy is derived from CLK3 through an AND gate 70 which is enabled whenever the output of the adder 66 is ≤0.0625 as determined by the comparator 72. If the output of the adder 66 is ≤0.0625, the X register 56 and the Y register 68 are updated with X temp and Y temp respectively from the adders 54 and 66, and the bit NK-J-1 is set in the K register 30 through bit set control logic 74. If the output of adder 66 is greater than 0.0625 no update of the registers 56 and 68 occurs and the bit in bit position NK-J-1 is not set. When the iterative process begins the X register 56 and Y register 68 are cleared, the J counter 58 is set to 0 and the K register 30 is set to 0. If for example the K register 30 is a 16 bit register then during the first iteration the value calculated by the adder 66 is checked and the most significant bit of the K register 30, i.e. the 15th bit position, is set if the output of the adder 66 is ≤0.0625. On the second iteration the J counter 58 is incremented and the 14th bit position is either set or cleared depending on the value of the adder 66. The value of the constant used in comparator 72, namely 0.0625, is a result of the number system used. It is desired to obtain K such that K 2 A equals some known value W. This makes the magnitude of the complex signal composed of KI 2 and KQ 2 equal to the square root of W. Since this value is also known, KI 2 and KQ 2 can be adjusted accordingly to obtain the final desired normalised result. In a 2's complement, fractional, fixed-point number system, K is less than 1. Therefore, K 2 A must be less than 0.0625. Consequently, the value determined by the adder 66, namely K 2 A, is compared to the value 0.0625 (W = 0.0625) in comparator 72. This allows K to have a value up to but not including 1. The special case of K = 1 can also be allowed by detecting if A is exactly 0.0625, in which case multipliers 46 and 48 are forced to pass I 2 and Q 2 (equivalent to multiplying each by K = 1). The steps performed in stage 28 may be summarised as follows: 1. Clear X and Y Registers. 2. Set J Counter = 0. 3. Calculate the new value of Y. 4. Calculate the new value of X. 5. If the output of adder 66 is ≤ 0.0625: update the X and Y registers, and set bit NK - J in the K Register. 6. Increment the J Counter. 7. Repeat steps 3 to 6 until the J Counter = NK. Steps 3 to 6 are executed every CLK3 pulse. 8. Clock the resulting K into pipeline register 32 to complete the process. If the output of adder 66 is > 0.0625, then the X and Y registers are not updated and bit NK-J-1 is not set. Referring now to Figures 5a and 5b, a second embodiment of the invention is shown. Corresponding components from Figures 4a and 4b are designated with prime numbers in Figure 5a and 5b. The method of Figure 5 adds an extra stage of computation to shift A up one bit at a time to obtain A2, where 0.5 ≤ A2 < 1.0. This allow the elements in the iteration stage 28' to have less bits. The shifting of A means that I 2 and Q 2 must be adjusted accordingly. The logic for coarse normalisation of A to produce A2 is generally designated 76 and includes a range detect block 78 which select the proper number of bit position shifts in a multiplexer 80 needed to bring A into the desired A2 range. A2 is obtained by passing A unmodified if A = 0, or by shifting A left one to three bit positions if A > 0. The rules for this operation are: A2 = A, for A = 0 (Case 1) A2 = A shifted left 1 bit = 2A, for 0.25 ≤ A < 0.5 (Case 2) A2 = A shifted left 2 bits = 4A, for 0.125 ≤ A < 0.25 (Case 3) A2 = A shifted left 3 bits = 8A, for 0.0 < A < 0.125 (Case 4). The two bit code is stored in register 82 and is used to select the proper input for the multiplexer 84 to apply as a multiplier input to the multipliers 86 and 88 to adjust I 2 and Q 2 . These inputs are 0.5 for Case 2, 0.5 sqrt(2) for Case 3 and 1 for Case 4. Registers 34' and 36' provide time alignment with the two bit value in the register 82. Registers 38' and 40' store the results of multipliers 86 and 88 for use by multipliers 46' and 48' and also provide time alignment with the K output from register 32. In stage 28', an iterative process is performed, one bit at a time, to find K, for Cases 1-4, such that: KA 2 = 0.5. The final outputs I 3 and Q 3 are calculated, as follows, and with the indicated order of operations to keep all numbers in fraction range: I 3 = 4 ( K ( CI 2 )), and Q 3 = 4 ( K ( CQ 2 )), where C = 0.0 ( for Case 1), C = 0.5 ( for Case 2), C = 0.5 2 ( for Case 3), C = 1.0 ( for Case 4). The multiply by 4 operations in (20) and (21) are performed by taking the proper bits from the intermediate values K(CI 2 ) and K(CQ 2 ). By using the correct value of C in (20) and (21), and using (7), (19), and the rules for obtaining A2, it can be easily shown that I 3 and Q 3 as given by (20) and (21) are such that: I 2 3 + Q 2 3 = 1.0. With the exception of I 1 , Q 1 , I 2 , Q 2 , I 3 , and Q 3 , all quantities are always ≥ 0, and thus hardware that is holding these quantities do not need sign-bits. Furthermore, since C and K are always >0, the multipliers 46, 48, 86, and 88 have one input that is always >0, which may allow further hardware simplification.

Claims: A method of processing digital signals to normalize multi-bit digital words representing the I 1 and Q 1 components of a complex signal of the form I 1 + jQ 1 to produce corresponding components I 3 and Q 3 , such that the square root of the sum of the squares of I 3 and Q 3 is equal to 1, comprising the steps of: a. performing a coarse normalization of I 1 and Q 1 to produce components I 2 and Q 2 respectively, b. calculating a value A equal to the sum of the squares of I 2 and Q 2 so that A is constrained to be equal to or greater than a minimum value R and less than a maximum value S, c. iteratively adjusting the value of a digital word K, until K 2 A=R d. producing the components I 3 and Q 3 , where I 3 = G(KI 2 ) and Q 3 =G(KQ 2 ), G being a proportionality factor. A method as claimed in Claim 1, wherein R=0.0625, S=0.5, and G=4. A method as claimed in Claim 1, wherein A is coarse normalized to produce a value A2 by shifting A left by 1, 2, or 3 bit positions to accomplish a multiplication of 2, 4 or 8 respectively such that R=0.5 and S=1 and G=4, and multiplying each of I 2 and Q 2 by 0.5, 0.5√2 or 1.0 prior to performing step (d). Apparatus for processing digital signals to normalize multi-bit digital words representing the I 1 and Q 1 components of a complex signal of the form I 1 + jQ 1 to produce corresponding components I 3 and Q 3 , such that the square root of the sum of the squares of I 3 and Q 3 is equal to 1, comprising: means (10) for performing a coarse normalization of I 1 and Q 1 to produce components I 2 and Q 2 respectively, means (20) for calculating a value A equal to the sum of the squares of I 2 and Q 2 so that A is constrained to be equal to or greater than a minimum value R and less than a maximum value S, means (28) for iteratively adjusting the value of a digital word K, until K 2 A = R means (33) for producing the components I 3 and Q 3 , where I 3 =G(KI 2 ) and Q 3 = G(KQ 2 ), G being a proportionality factor. An apparatus as claimed in claim 4, wherein R = 0.0625, S = 0.5, and G = 4. An apparatus as claimed in claim 4, further comprising means for coarse normalising A by shifting A left by 1, 2, or 3 bit positions to accomplish a multiplication of 2, 4 or 8 respectively such that R = 0.5, S = 1, and G = 4 and means for multiplying each of I 2 and Q 2 by 0.5 when A is shifted by 1 bit position, by 0.5√2 when A is shifted by 2 bit positions, and by 1.0 when A is shifted by 3 bit positions. A method as claimed in claim 1, wherein the step of performing a coarse normalisation of the components I 1 and Q 1 produces components I 2 and Q 2 each of which is less than 0.5 and I 2 and/or Q 2 is equal to or greater than 0.25. A method as claimed in claim 7, wherein the value A is multiplied by a value of 2, 4, or 8 such that A is equal to or greater than 0.5 and less than 1, and wherein the value of K is such that K 2 A = 0.5, and further wherein the component I 3 = 4(K(CI 2 )) and Q 3 = 4(K(CQ 2 )) and where C = 0.5 if A is multiplied by 2, C = 0.5 2 if A is multiplied by 4, and C = 1 if A is multiplied by 8.

Inventors: WHIKEHART J WILLIAM, WHIKEHART, J. WILLIAM
Applicants: FORD MOTOR CO, FORD MOTOR COMPANY
Application year: 1994
Main classification: H03D3
IPC codes: H04B1, G06F17, H03D3, H03H17