Generation of high-rate sinusoidal sequences

09772972 · 2017-09-26

Assignee

Inventors

Cpc classification

International classification

Abstract

Provided are, among other things, systems, apparatuses methods and techniques for generating discrete-time sinusoidal sequences. One such apparatus includes a plurality of parallel processing branches, with each of the parallel processing branches operating at a subsampled rate and utilizing a recursive filter to generate sub-rate samples which represent a different subsampling phase of a complete signal that is output by the apparatus.

Claims

1. An apparatus for generating discrete-time samples of a complex-valued sinusoidal waveform, comprising: a system output for providing real and imaginary output samples of a complex-valued sinusoid, said output samples being discrete in time and in value and collectively representing the complex-valued sinusoid at a desired full sampling rate; and a plurality of processing branches coupled to the system output, each of said processing branches including a recursive digital filter that operates at a subsampled rate, relative to the desired full sampling rate, and comprises: (a) a first multiplier having: a first input coupled to a first frequency value that establishes a frequency of the complex-valued sinusoid, a second input, and an output; (b) a second multiplier having: a first input coupled to a second frequency value that establishes the frequency of the complex-valued sinusoid, a second input, and an output; (c) a first writeable delay register having: a first input coupled to the output of the first multiplier, a second input that receives a first initial value for establishing a phase of said processing branch, and an output coupled to the system output and also coupled to the second input of the second multiplier; and (d) a second writeable delay register having: a first input coupled to the output of the second multiplier, a second input that receives a second initial value for establishing the phase of said processing branch, and an output coupled to the system output and also coupled to the second input of the first multiplier, wherein each of said recursive digital filters includes a first stage for generating real samples of the complex-valued sinusoid as an in-phase component, and a second stage for generating imaginary samples of the complex valued sinusoid as a quadrature component, wherein each of said processing branches operates at the subsampled rate and generates an output sequence at said subsampled rate that represents a different subsampling phase of the complex-valued sinusoid at the desired full sampling rate, and wherein said recursive digital filter within each said processing branch operates independently of the recursive digital filter within the other processing branches and produces each subsampled output via a linear combination of exactly one immediately prior real output sample and exactly one immediately prior imaginary output sample generated the recursive digital filter within said processing branch.

2. An apparatus according to claim 1, further comprising a multiplexer with inputs that are coupled to outputs of said parallel processing branches and which combines multiple, sub-rate inputs into a single, full-rate output.

3. An apparatus according to claim 1, wherein the frequency of the complex-valued sinusoid is established by a programmable coefficient within the recursive digital filter.

4. An apparatus according to claim 1, wherein the initial state of the recursive digital filter in at least one of the processing branches is established by the first and second writeable registers within said recursive digital filter.

5. An apparatus according to claim 1, wherein the transfer function of the recursive digital filter in at least one of said processing branches represents a recursive form of angle sum and difference formulas for trigonometric functions.

6. An apparatus according to claim 1, wherein the system output includes a first line that provides the real output samples and a second line that provides the imaginary output samples.

7. An apparatus according to claim 1, wherein the recursive digital filter in at least one of said processing branches has exactly 2 multipliers in the first stage and also has exactly 2 multipliers in the second stage, for a total of exactly 4 multipliers.

8. An apparatus according to claim 7, wherein the exactly 2 multipliers in each of the first stage and the second stage have inputs of cos (m−ω.Math.T.sub.S) and sin (m.Math.ω.Math.T.sub.S) for establishing the frequency of the complex-valued sinusoid, where: m is a total number of said processing branches, frequency f=ω/2π, is the frequency of the complex-valued sinusoid, and T.sub.S is the sampling period of the complex-valued sinusoid at the desired full sampling rate.

9. An apparatus according to claim 1, wherein the recursive digital filter in said at least one of said processing branches implements the difference equations:
x.sub.n=cos(m.Math.ω.Math.T.sub.S).Math.x.sub.n−m−sin(m.Math.ω.Math.T.sub.S).Math.y.sub.n−m and
y.sub.n=sin(m.Math.ω.Math.T.sub.S).Math.x.sub.n−m+cos(m.Math.ω.Math.T.sub.S).Math.y.sub.n−m, where m is a total number of said processing branches, frequency f=ω/2π is the frequency of the complex-valued sinusoid, x.sub.n are the real samples of the complex-valued sinusoid, y.sub.n, are the imaginary samples of the complex-valued sinusoid, and T.sub.S is the sampling period of the complex-valued sinusoid at the desired full sampling rate.

10. An apparatus according to claim 1, wherein the recursive digital filter in at least one of said processing branches utilizes exactly 3 multipliers.

11. An apparatus according to claim 10, wherein the exactly 3 multipliers have inputs of α+β=sin (m.Math.ω.Math.T.sub.S)+cos(m.Math.ω—T.sub.S), α−β=sin (m.Math.ω.Math.T.sub.S)−cos (m.Math.ω.Math.T.sub.S), and β=cos (m.Math.ω.Math.T.sub.S) for establishing the frequency of the complex-valued sinusoid, where: m is a total number of said processing branches, frequency f=ω/2π is the frequency of the complex-valued sinusoid, and T.sub.S is the sampling period of the complex-valued sinusoid at the desired full sampling rate.

12. An apparatus according to claim 10, wherein the recursive digital filter in said at least one of said processing branches utilizes exactly 3 writeable delay registers.

13. An apparatus according to claim 10, wherein the recursive digital filter in said at least one of said processing branches implements the difference equations:
x.sub.n=Cos(m.Math.ω.Math.T.sub.S).Math.(x.sub.n−m+y.sub.n−m)−(Sin(m.Math.ω.Math.T.sub.S)+Cos(m.Math.ω.Math.T.sub.s)).Math.y.sub.n−m and
y.sub.n=cos(m.Math.ω.Math.T.sub.S).Math.(x.sub.n−m+y.sub.n−m)+(sin(m.Math.ω.Math.T.sub.S)−cos(m.Math.ω.Math.T.sub.S)).Math.x.sub.n−m, where m is a total number of said processing branches, frequency f=ω/2π is the frequency of the complex-valued sinusoid, x.sub.n are the real samples of the complex-valued sinusoid, y.sub.n are the imaginary samples of the complex-valued sinusoid, and T.sub.S is the sampling period of the complex-valued sinusoid at the desired full sampling rate.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) In the following disclosure, the invention is described with reference to the attached drawings. However, it should be understood that the drawings merely depict certain representative and/or exemplary embodiments and features of the present invention and are not intended to limit the scope of the invention in any manner. The following is a brief description of each of the attached drawings.

(2) FIG. 1 is a block diagram of a conventional discrete-time oscillator which utilizes a digital phase accumulator and a sine lookup table to generate a sinusoidal output sequence.

(3) FIG. 2 is a block diagram of a conventional discrete-time oscillator which utilizes an adder, a multiplier, and delay registers to generate current sinusoidal output samples from prior sinusoidal output samples, in accordance with a single trigonometric recursion formula.

(4) FIG. 3A is a block diagram of a conventional discrete-time oscillator which utilizes adders, multipliers, and registers to generate current quadrature sinusoidal outputs based on prior quadrature outputs, in accordance with a pair of trigonometric recursion formulas; FIG. 3B is a block diagram of a conventional discrete-time oscillator which uses a recursive structure comprising adders, multipliers, and registers to generate sinusoidal output samples having two distinct frequency components; and FIG. 3C is a block diagram of a conventional discrete-time oscillator which uses a recursive structure comprising adders, multipliers, and registers to generate sinusoidal output samples that are frequency modulated.

(5) FIG. 4 is a block diagram of a discrete-time oscillator which uses conventional polyphase decomposition to realize an effective sampling rate which is twice as high as the operating rate of its constituent circuitry, but which results in recursive structures that are not independent and are unstable.

(6) FIG. 5A is a block diagram of an exemplary implementation of a discrete-time oscillator which uses an output multiplexer, and two parallel processing branches with recursive filters and writable registers, to realize an effective sampling rate which is twice as high as the operating rate of a processing branch; FIG. 5B is a block diagram of an exemplary implementation of a discrete-time oscillator which uses an output multiplexer, and a number m of parallel processing branches with recursive filters and writable registers, to produce a real-valued sinusoid and realize an effective sampling rate which is m-times greater than the operating rate of a processing branch; FIG. 5C is a block diagram of an exemplary implementation of a discrete-time oscillator, which produces a complex-valued sinusoid using a parallel arrangement of m recursive filters, each of which includes four multipliers, two adders, and two writable registers; and FIG. 5D is a block diagram of an exemplary implementation of a discrete-time oscillator, which produces a complex-valued sinusoid using a parallel arrangement of m recursive filters, each of which includes three multipliers, three adders, and three writable registers.

(7) FIG. 6A is a block diagram of an exemplary implementation of a discrete-time oscillator which uses an output multiplexer, and two parallel processing branches with writable accumulators and a sine lookup tables, to realize an effective sampling rate which is twice as high as the operating rate of a processing branch; and FIG. 6B is a block diagram of an exemplary implementation of a discrete-time oscillator which uses an output multiplexer, and two parallel processing branches with phase-offset adders and sine lookup tables, to realize an effective sampling rate which is twice as high as the operating rate of a processing branch.

DESCRIPTION OF THE PREFERRED EMBODIMENT(S)

(8) The present inventor recognized that the sampling rate of the sinusoidal sequences produced by conventional means is limited by the maximum operating rates (i.e., the maximum clocking frequency) of the circuit components which comprise the generating apparatus. One might contemplate a solution to this problem based on conventional polyphase decomposition methods to arrive at circuit 50, illustrated in FIG. 4, for a polyphase decomposition factor of m=2. According to conventional polyphase decomposition methods, the processing for circuit 50 is derived by iterating the recursion relation for the direct-form recursive oscillator (i.e., two iterations for a polyphase decomposition factor of m=2), to obtain
x.sub.2n=(4.Math.cos.sup.2(θ)−1).Math.x.sub.2n−2−2.Math.cos(θ).Math.x.sub.2n−3 and
x.sub.2n+1=(4.Math.cos.sup.2(θ).sup.−1).Math.x.sub.2n−1−2.Math.cos(θ).Math.x.sub.2n−2,
such that a pair of current outputs (e.g., x.sub.2n and x.sub.2n+1) are simultaneously calculated from previous outputs which have been delayed by at least two sampling clock periods. It should be noted that conventional polyphase decomposition results in an oscillator structure having multiple parallel processing branches (e.g., a first processing branch to produce output x.sub.2n and a second processing branch to produce output x.sub.2n+1) which do not operate independently, since the current output of one processing branch depends on delayed outputs from other processing branches (e.g., current output x.sub.2n of a first processing branch depends on delayed output x.sub.2n−3 from a second processing branch). The present inventor has discovered, however, that the resulting recursive filter structures are unstable, and that the number of bits required to represent the filter coefficients grows geometrically with polyphase decomposition factor m (i.e., grows geometrically with the number of iterations on the recursion relation for the direct-form recursive oscillator). Although modern digital signal processors use methods, such as parallel processing, to overcome limitations in the clocking rates of constituent components, these methods have not been adapted for use in discrete-time oscillators. Therefore, the present invention provides novel architectures that allow sinusoidal sequences to be generated at effective sampling rates which are higher than the maximum clocking rates of the constituent components.

(9) A discrete-time oscillator circuit 100 that uses parallel processing branches to generate sinusoidal sequences with an effective sampling rate, f.sub.S, that is higher than the operating rate of each parallel branch, is shown in FIG. 5A. Referring to the exemplary embodiment illustrated in FIG. 5A, circuit 100 incorporates m=2 parallel processing branches (e.g., branches 110 and 120), with each branch containing a recursive digital filter comprised of an adder (e.g., adder 17A or 17B), a multiplier (e.g., multiplier 16A or 16B), and writable registers (e.g., registers 15A&B or 15C&D). Each of registers 15A-D introduces a delay τ equal to two full-rate periods (i.e., τ=2.Math.T.sub.S=2/f.sub.S), and each register is preferably implemented as a single-stage register clocked at a half-rate of ½.Math.f.sub.S, rather than as a two-stage register clocked at a full-rate of f.sub.S. Regardless of register implementation, however, the multiply-accumulate function performed by adder 17A or 17B with multiplier 16A or 16B, respectively, occurs at one-half rate. The recursive digital filter in each processing branch 110 or 120, implements the difference equation:
y.sub.n=2.Math.cos(2.Math.ω.Math.T.sub.S).Math.y.sub.n−2−y.sub.n−4,
with corresponding discrete-time transfer function,

(10) H ( z ) = 1 1 - 2 .Math. cos ( 2 .Math. ω .Math. T S ) .Math. z - 2 + z - 4 ,
where the z-transform variable z represents a unit delay of one full-rate period T.sub.S. The present inventor has discovered that a discrete-time oscillator that implements the above difference equation and corresponding transfer function, generates an output sequence which is subsampled by a factor of two, such that the output sequence represents every other value of a sampled sine wave with frequency f=ω/2π (i.e., the output sequence represents subsamples of a full-rate sinusoidal sequence). In the preferred embodiments, the frequency of the sampled (full-rate) sine wave is controlled by programming the filter coefficient represented by the 2.Math.cos(2.Math.ω.Math.T.sub.S) term in the above difference equation, and a common filter coefficient is used within each processing branch. At a clocking rate of f.sub.S, each subsample occurs twice (i.e., each output sample is replicated two times), and at a clocking rate of ½.Math.f.sub.S, each subsample occurs only once (i.e., output subsamples are not replicated). In the preferred embodiments, therefore, the clocking rate of each processing branch is ½.Math.f.sub.S, when the number of processing branches m is equal to two, and each subsample appears only once at the output of the recursive filter within each of the processing branches. The inventor has also discovered that the phase of the subsampled output sequence (i.e., the offset with which the full-rate sequence is effectively subsampled) depends on the initial condition of the recursive filter in each processing branch. For an initial condition of
y.sub.n−2(t.sub.0)=cos(2.Math.ω.Math.T.sub.S) and y.sub.n−4(t.sub.0)=cos(4.Math.ω.Math.T.sub.S),
the phase φ of the subsampled output sequence is zero (i.e., subsampling begins with the first full-rate sample), and for an initial condition of
y.sub.n−2(t.sub.0)=cos(ω.Math.T.sub.S) and y.sub.n−4(t.sub.0)=cos(3.Math.ω.Math.T.sub.S),
the phase φ of the subsampled output sequence is one (i.e., subsampling begins with the second full rate sample). For this reason, in the preferred embodiments the initial conditions (i.e., the initial state) of the recursive filter in each of the processing branches are established, so that in combination, the subsampled sequences produced by the various processing branches provide all the samples of a complete, full-rate sequence. In the exemplary embodiment of circuit 100, in FIG. 5A, such an initial filter state is provided by writable filter registers 15A-D, having both write enable (e.g., WE) and data (e.g., D0a, D1a, D0b, and D1b) inputs.

(11) In the exemplary embodiment of circuit 100, the subsampled outputs of the recursive digital filter within each processing branch (e.g., output 111 of branch 110 and output 121 of branch 120) are combined into a full-rate sequence (i.e., at output 3C) using 2:1 multiplexer 18A. Multiplexer 18A has two inputs that operate at a subsampling rate of ½.Math.f.sub.S, and a single output that operates at the full sampling rate of f.sub.S. The operation of multiplexer 18A is such that samples at the multiplexer input appear in sequential order at the multiplexer output. Referring to circuit 100 in FIG. 5A, the subsampled output of the first processing branch (i.e., output 111 of branch 110) is given by
x.sub.2n=x.sub.0,x.sub.2,x.sub.4,x.sub.6,x.sub.8,
and the subsampled output of the second processing branch (i.e., output 121 of branch 120) is given by
x.sub.2n+1=x.sub.1,x.sub.3,x.sub.5,x.sub.7,x.sub.9,

(12) Consequently, the full-rate output (i.e., output 3C) of multiplexer 18A is given by
x.sub.n=x.sub.0,x.sub.1,x.sub.2,x.sub.3,x.sub.4,x.sub.5,x.sub.6,x.sub.7,x.sub.8,x.sub.9,

(13) In alternate embodiments, such as those where, for post-processing purposes, multiple sub-rate outputs are preferable to a single full-rate output, the multiplexer operation is absent.

(14) More generally, a discrete-time oscillator circuit according to the preferred embodiments of the invention has m parallel processing branches, as illustrated by circuit 200A in FIG. 5B. The recursive digital filter in each of the processing branches (e.g., branches 110A through 130A), implements the difference equation:
y.sub.n=2.Math.cos(m.Math.ω.Math.T.sub.S).Math.y.sub.n−m−y.sub.n−2m,
with corresponding discrete-time transfer function,

(15) H ( z ) = 1 1 - 2 .Math. cos ( m .Math. ω .Math. T S ) .Math. z - m + z - 2 m ,
where, as before, the z-transform variable z represents a unit delay of one full-rate period T.sub.S. A discrete-time oscillator that implements the above difference equation and corresponding transfer function, generates an output sequence which is subsampled by a factor of m, such that in the preferred embodiments, the clocking rate of each processing branch is 1/m.Math.f.sub.S and each subsample appears only once at the output of the recursive filter within each of the processing branches. The phase φε{0, 1, 2, . . . , m−1} of the subsampled output sequence (i.e., the offset with which the full-rate sequence is effectively subsampled) depends on the initial state (i.e., the initial register values) of the recursive filter in each processing branch, according to
y.sub.n−2m(t.sub.0)=cos((m−φ).Math.ω.Math.T.sub.S) and y.sub.n−4m(t.sub.0)=cos((2m−φ).Math.ω.Math.T.sub.S).

(16) It can be readily appreciated by those skilled in the art, that the initial state defined by the above equations results in a cosine waveform, and that alternatively, a sine waveform is generated for an initial state given by)
y.sub.n−2m(t.sub.0)=−sin((m−φ).Math.ω.Math.T.sub.S) and y.sub.n−4m(t.sub.0)=−sin((2m−φ).Math.ω.Math.T.sub.S).

(17) Therefore, a different initial state preferably is established for the recursive filter in each of the processing branches (e.g., using writeable filter registers as shown in FIG. 5B), so that in combination, the subsampled sequences produced by the m processing branches provide all the samples of a complete, full-rate sequence (i.e., together the processing branches provide subsequences at all the subsampling phases). In addition, in the preferred embodiments the frequency of the output sequence is controlled, e.g., by setting the filter coefficient represented by the 2.Math.cos(m.Math.ω.Math.T.sub.S) term in the above difference equation as shown in FIG. 5B. Also, in the exemplary embodiment of circuit 200, the subsampled outputs of the recursive digital filter within each of the m processing branches are combined into a full-rate sequence (i.e., at output 3D) using m:1 multiplexer 18B. In alternate embodiments, however, the multiplexer operation is absent and post-processing takes place on multiple sub-rate outputs. If present, multiplexer 18B has m inputs that operate at a subsampling rate of 1/m.Math.f.sub.S, and a single output that operates at the full sampling rate of f.sub.S. The operation of multiplexer 18B is such that samples at the multiplexer input appear in sequential order at the multiplexer output.

(18) The exemplary embodiment of circuit 200A, in FIG. 5B, produces a real-valued sinusoid using parallel processing branches which comprise a single-stage recursive filter (i.e., the recursive filter consisting of multiplier 16A and adder 17A). In alternate embodiments, however, each processing branch utilizes a multi-stage recursive filter to produce complex-valued, multi-tone, and/or frequency-modulated waveforms. Each processing branch (e.g., branches 110B through 130B) of exemplary oscillator 200B, shown in FIG. 5C, produces a subsampled sequence (subsequence) that is complex-valued by means of a two-stage recursive filter (e.g., a first stage that includes multipliers 16B&C and adder 17B, and a second stage that includes multipliers 16D&E and adder 17C), which is comparable in structure to a conventional quadrature oscillator (e.g., circuit 30 of FIG. 3A). In the preferred embodiments, the complex-valued outputs of each processing branch are provided as separate real (cosine) and imaginary (sine) parts, where a first filter stage generates an in-phase component (e.g., real outputs x that are coupled to line 4A in FIG. 5C) and a second filter stage generates a quadrature component (e.g., imaginary outputs y that are coupled to line 5A in FIG. 5C), such that each component is offset in phase by 90 degrees. More specifically, the two-stage recursive filter in each processing branch (e.g., branches 110B, 120B and 130B) of exemplary quadrature oscillator 200B, implements the difference equations:
x.sub.n=cos(m.Math.ω.Math.T.sub.S).Math.x.sub.n−m−sin(m.Math.ω.Math.T.sub.S).Math.y.sub.n−m and
y.sub.n=sin(m.Math.ω.Math.T.sub.S).Math.x.sub.n−m+cos(m.Math.ω.Math.T.sub.S).Math.y.sub.n−m,
where m is the number of processing branches. The frequency f=ω/2π of the full-rate output sequence, is controlled by programming the recursive filter coefficients, which preferably, are the same for each processing branch and are given by cos(m.Math.ω.Math.T.sub.S) and sin(m.Math.ω.Math.T.sub.S) in FIG. 5C (e.g., as inputs to multipliers 16B&E and multipliers 16C&D, respectively). The phase φε{0, 1, 2, . . . , m−1} of a subsampled output sequence (i.e., the offset with which each processing branch effectively subsamples the full-rate sequence) depends on the initial value x.sub.n(t.sub.0) of register 15C, and the initial value y.sub.n(t.sub.0) of register 15D, according to
x.sub.n(t.sub.0)=cos((m−φ).Math.ω.Math.T.sub.S) and y.sub.n(t.sub.0)=−sin((m−φ).Math.ω.Math.T.sub.S)
(i.e., the subsampling phase depends on the initial state of the recursive filter in each processing branch). Therefore, a different initial state preferably is established for the two-stage recursive filter in each of the processing branches (e.g., using writeable filter registers as shown in FIG. 5C), such that in combination, the complex-valued subsequences produced by the m processing branches provide all the complex-valued samples of a complete, full-rate sequence (i.e., together the processing branches provide subsequences at all the subsampling phases). In the embodiment of circuit 200B, the subsampled sequences are combined within m:1 multiplexer 18C, which receives m complex-valued inputs at a subsampling rate of 1/m.Math.f.sub.S, and generates a single, complex-valued output at a full sampling rate of f.sub.S (e.g., as the real sequence of samples on line 4A and the imaginary sequence of samples on line 5A). It can be readily appreciated by those skilled in the art, that the present invention can be adapted to produce other waveform types, for example, using parallel processing branches which incorporate other recursive filter structures, including structures like those conventionally utilized to generate multi-tone waveforms (e.g., conventional oscillator 35 of FIG. 3B) and/or to generate frequency-modulated waveforms (e.g., conventional oscillator 40 of FIG. 3C). The alternate embodiments resulting from such adaptations should also be considered within the scope of the invention. Also, in the present embodiment the output provided by multiplexer 18C includes two lines, one for the real output samples and one for the imaginary output samples. In alternate embodiments, both such samples are multiplexed onto a single output line.

(19) Exemplary oscillator 200C, shown in FIG. 5D, is an alternative embodiment for generating complex-valued, multi-tone, and/or frequency-modulated waveforms. Like exemplary oscillator 200B, each processing branch of exemplary oscillator 200C (e.g., branches 110C through 130C) utilizes a multi-stage recursive filter to produce a subsampled sequence (subsequence) that is complex-valued. In the preferred embodiments, this complex-valued subsequence is provided as separate real (cosine) and imaginary (sine) parts. Exemplary quadrature oscillator 200C differs from exemplary oscillator 200B, however, in that the recursive filter in each processing branch of oscillator 200C implements the difference equations:
x.sub.n=cos(m.Math.ω.Math.T.sub.S).Math.(x.sub.n−m+y.sub.n−m)−(sin(m.Math.ω.Math.T.sub.S)+cos(m.Math.ω.Math.T.sub.S)).Math.y.sub.n−m and
y.sub.n=cos(m.Math.ω.Math.T.sub.S).Math.(x.sub.n−m+y.sub.n−m)+(sin(m.Math.ω.Math.T.sub.S)−cos(m.Math.ω.Math.T.sub.S)).Math.x.sub.n−m,
where: 1) m is the number of processing branches; 2) x.sub.n are samples representing the real part of a complex-valued output; and 3) y.sub.n are samples representing the imaginary part of a complex-valued output. In accordance with the above difference equations, therefore, recursive filtering within each processing branch of exemplary oscillator 200C involves only three multiplication operations (e.g., multipliers 16F-H), compared to four multiplication operations for the recursive filtering within each processing branch of oscillator 200B (e.g., multipliers 16B-E). Generally, an implementation with fewer multipliers is preferred because multipliers are more complex circuits than adders and registers. Besides the three multiplication operations, recursive filtering within each processing branch of oscillator 200C includes three addition operations (e.g., adders 17D-F) and three registering operations (e.g., writeable registers 15E-G). The frequency f=ω/2π of the full-rate output sequence is controlled by programming the recursive filter coefficients, which preferably, are the same for each processing branch and are given by α+β=sin(m.Math.ω.Math.T.sub.S)+cos(m.Math.ω.Math.T.sub.S), α−β=sin(m.Math.ω.Math.T.sub.S)−cos(m.Math.ω.Math.T.sub.S), and β=cos(m.Math.ω.Math.T.sub.S) in FIG. 5D (e.g., as inputs to multipliers 16F-H, respectively). The phase φε{0, 1, 2, . . . , m−1} of a subsampled output sequence (i.e., the offset with which each processing branch effectively subsamples the full-rate sequence) depends on the initial value x.sub.n(t.sub.0) of register 15E, the initial value x.sub.n(t.sub.0)+y.sub.n(t.sub.0) of register 15F, and the initial value y.sub.n(t.sub.0) of register 15G, where
x.sub.n(t.sub.0)=cos((m−φ).Math.ω.Math.T.sub.S) and y.sub.n(t.sub.0)=−sin((m−φ).Math.ω.Math.T.sub.S)
(i.e., the subsampling phase depends on the initial state of the recursive filter in each processing branch). In the preferred embodiments of oscillator 200C, the recursive filter within each of the m processing branches is set to a different initial state (e.g., using writeable filter registers as shown in FIG. 5D), such that in combination, the complex-valued subsequences produced by the processing branches, provide all the subsampling phases for reconstructing a complete, full-rate sequence. Preferably, these complex-valued subsequences are provided to an m:1 multiplexer (e.g., multiplexer 18D) at a subsampling rate of 1/m.Math.f.sub.S, and the multiplexer sequentially selects from its various inputs to produce a complete sequence at an output sampling rate of f.sub.S (e.g., as the real sequence of samples on line 4B and the imaginary sequence of samples on line 5B). In alternate embodiments, however, such as those where subsequent parallel processing occurs, the complex-valued subsequences can retain their separate identities.

(20) Although in the preferred embodiments, the parallel processing branches contain recursive digital filters, in alternate embodiments, the parallel processing branches use other approaches to generate a set of subsampled sinusoidal sequences that can be combined to form a full-rate sinusoidal sequence. Exemplary discrete-time oscillator circuits 300A&B, shown in FIGS. 6A&B, generate subsampled sinusoidal sequences using parallel processing branches that contain phase accumulators and sine lookup tables. Referring to the exemplary embodiment illustrated in FIG. 6A, circuit 300A incorporates m=2 parallel processing branches (e.g., branches 115 and 125), with each branch containing a phase accumulator comprised of an adder (e.g., adder 27A or 27B) and a writable register (e.g., register 25A or 25B). Each of registers 25A&B introduces a delay r equal to two full-rate periods (i.e., τ=2.Math.T.sub.S=2/f.sub.S), and each register preferably is implemented as a single-stage register clocked at a half-rate of ½.Math.f.sub.S, rather than as a two-stage register clocked at a full-rate of f.sub.S. Regardless of register implementation, however, the phase accumulation function performed by adder 27A or 27B with register 25A or 25B, occurs at one-half rate. Therefore, the phase accumulator in each processing branch 115 or 125 implements the difference equation:
φ.sub.n=2.Math.θ+φ.sub.n−2,
with corresponding discrete-time transfer function,

(21) H ( z ) = 2 1 - z - 2 ,
where the z-transform variable z represents a unit delay of one full-rate period T.sub.S. The present inventor has discovered that a discrete-time oscillator that implements the above difference equation and corresponding transfer function, accumulates phase at a rate of 2.Math.θ.Math.(½.Math.f.sub.S). And at a clocking rate of ½.Math.f.sub.S, the discrete-time oscillator generates an output sequence representing every other value of a sampled sine wave with frequency f=θ/2π.Math.f.sub.S (i.e., the output sequence represents subsampling, without replication, by a factor of 2 on a full-rate sequence). In the preferred embodiments, therefore, the clocking rate of each processing branch is ½.Math.f.sub.S, when the number of processing branches m is equal to two, and is more generally equal to 1/m.Math.f.sub.S for subsampling by a factor of m. In addition, in the preferred embodiments the frequency of the output sequence is controlled by setting the phase-step value θ that appears in the above difference equation, e.g., as shown in FIG. 6A.

(22) In addition, the inventor has discovered that the phase of the subsampled output sequence (i.e., the offset with which the full-rate sequence is subsampled) depends on the initial condition of the phase accumulator within each processing branch. For an initial condition of
φ.sub.n−2(t.sub.0)=0,
the phase φ of the subsampled output sequence is zero (i.e., subsampling begins with the first full-rate sample), and for an initial condition of
φ.sub.n−2(t.sub.0)=1,
the phase φ of the subsampled output sequence is one (i.e., subsampling begins with the second full rate sample). In general, the initial condition of the phase accumulation preferably is
φ.sub.n−2(t.sub.0)=φ,
for a subsampling phase equal to φ. In the preferred embodiments, the subsampling phase of each processing branch is established so that, in combination, the subsampled sequences produced by the different processing branches collectively provide all the samples of a complete, full-rate sequence. In exemplary circuit 300A, a phase accumulator with writeable registers (e.g., a registers 25A&D having both write enable and data inputs) is used to establish the subsampling phase of each processing branch. In the alternative embodiment of circuit 300B, shown in FIG. 6B, the subsampling phase is established using an adder (e.g., adder 24A or 24B), which couples the output of the phase accumulator (e.g., the output of register 26A or 26B, respectively) to the sine lookup table (e.g., lookup table 29A or 29B, respectively), and offsets the accumulator output by an amount equal to φ. In the exemplary embodiments of circuits 300A&B, the subsampled outputs of the parallel processing branches are combined into a full-rate sequence (i.e., at output 3E or 3F) using 2:1 multiplexer 18A. In alternate embodiments, however, the multiplexer operation is absent and post-processing takes place on multiple sub-rate outputs.

ADDITIONAL CONSIDERATIONS

(23) As used herein, the term “coupled”, or any other form of the word, is intended to mean either directly connected or connected through one or more other elements or processing blocks.

(24) Several different embodiments of the present invention are described above, with each such embodiment described as including certain features. However, it is intended that the features described in connection with the discussion of any single embodiment are not limited to that embodiment but may be included and/or arranged in various combinations in any of the other embodiments as well, as will be understood by those skilled in the art.

(25) Similarly, in the discussion above, functionality sometimes is ascribed to a particular module or component. However, functionality generally may be redistributed as desired among any different modules or components, in some cases completely obviating the need for a particular component or module and/or requiring the addition of new components or modules. The precise distribution of functionality preferably is made according to known engineering tradeoffs, with reference to the specific embodiment of the invention, as will be understood by those skilled in the art.

(26) Thus, although the present invention has been described in detail with regard to the exemplary embodiments thereof and accompanying drawings, it should be apparent to those skilled in the art that various adaptations and modifications of the present invention may be accomplished without departing from the spirit and the scope of the invention. Accordingly, the invention is not limited to the precise embodiments shown in the drawings and described above. Rather, it is intended that all such variations not departing from the spirit of the invention be considered as within the scope thereof as limited solely by the claims appended hereto.