This invention relates generally to signal processing and, in particular, to filtering of electronic signals.
The design of wireless communication systems often involves simulation of radio propagation characteristics, mainly Rayleigh fading. Successful implementation of wireless products typically requires prototyping and broad field testing. A reliable yet less costly approach is to model the behavior of radio channels on a channel emulator or simulator. With the widespread use of multiple antenna wireless communications systems, it can be necessary to simultaneously emulate multiple propagation channels.
Two major techniques have been widely used for simulating Rayleigh fading channels. In the first approach, the Rayleigh fading process is modeled as a superposition of a plurality of sinusoidal waves. This approach was originally proposed by Clarke [1] and later modified by Jakes [2]. Although during the past decades several modifications have been proposed [3]-[10], generating fading variates with accurate statistics and low complexity remains quite challenging [11], [12] with this technique.
Another approach for channel simulation is to first generate a complex, zero-mean, Gaussian random process with independent samples. The random variates are then passed through a spectrum shaping filter (SSF). In order to generate complex Rayleigh fading variates, the shaping filter has to be designed with a frequency response equal to the square root of the Jakes' power spectral density (PSD). This approach, called the filter-based method, can provide the accurate statistical properties for simulating fading channels [13].
The shaping filter is bandlimited to a relatively small normalized Doppler rate fDTs, where fD denotes the maximum Doppler frequency and Ts is the symbol period. For high symbol transmission rate systems, fDTs can be quite small and thus the bandwidth of the shaping filter becomes much narrower than the bandwidth of the transmitted signal. This in turn increases the minimum required order of the shaping filter that ensures a relatively accurate response. To achieve the desired accuracy with a computationally-feasible low-order filter, it is common to design the shaping filter in a lower sampling frequency and later interpolate the generated signal to achieve the target sampling rate. To reduce the computational complexity of the low-pass filters, interpolation is usually accomplished using a multi-stage interpolator design.
Due to the high computational complexity of these high-precision filters, a parameterizable Rayleigh fading simulator might not be able to fit on one field-programmable gate array (FPGA) device and thus might require multiple devices [14]. For example, the fading simulator in [15] uses a floating point DSP (to implement the random number generator, Doppler spectrum shaping filter, and the first-stage interpolator) combined with an FPGA (to implement the final interpolation stage and other required components) to realize a frequency-selective channel simulator. The design in [14] also uses two 32-bit floating-point DSPs to implement a multipath fading simulator. This problem is even more severe when implementing a multiple-input multiple-output (MIMO) channel with nT transmitter antennas and nR receiving antennas. A MIMO communication system requires nT×nR different Rayleigh fading channels. Similarly, in the case of a frequency-selective channel, typically 6≦Lpath≦48 independent resolvable paths are considered to simulate a frequency-selective channel.
Thus, there remains a need for improved filters and filtering techniques, which could be used in fading channel simulation and/or other applications.
According to an aspect of the invention, a signal filtering apparatus comprises an element having an input and an output, the element being operable to perform a signal filtering operation on a signal received at the input so as to provide a filtered signal at the output, and an interconnection circuit operatively coupled to the element, the interconnection circuit being controllable to switchably couple the input with the output, to thereby enable the element to be used to implement a series of cascaded signal filtering operations.
In some embodiments, the series of cascaded signal filtering operations comprises one or more of: a zero-padding operation, an upsampling operation, and a downsampling operation.
In some embodiments, the element is operable to perform any of a plurality of different signal filtering operations, and the series of cascaded signal filtering operations comprises at least two different-signal filtering operations of the plurality of different signal filtering operations.
In some embodiments, the different signal filtering operations are associated with respective sets of one or more filter parameters, and the element comprises a memory for storing the respective sets of filter parameters.
In some embodiments, the element is controllable to perform a particular signal filtering operation of the plurality of different signal filtering operations by storing to the memory the set of filter parameters associated with the particular signal filtering operation.
In some embodiments, the plurality of different signal filtering operations comprises a first signal filtering operation associated with a spectrum shaping filter (SSF) and a second filtering operation associated with a low-pass filter (LPF).
In some embodiments, a filtering process of the SSF comprises repeating the first filtering operation a number of times, and a filtering process of the LPF comprises repeating the second signal filtering operation a number of times.
In some embodiments, the SSF operates at a sample rate Fs1 and the LPF operates at a sample rate Fs2 that is an integral multiple, I1, of Fs1, and the element is used to perform the second signal filtering operation I1 times for each time the element is used to perform the first signal filtering operation.
In some embodiments, the SSF and the LPF are operable to together provide desired filtering characteristics.
In some embodiments, the element comprises a filter second-order section (SOS) or filter first-order section hardware (FOSH).
In some embodiments, the element and the interconnection circuit are controlled in accordance with software instructions.
In some embodiments, the software instruction comprises a count field and a mode field, the mode field specifying whether or not a wait operation during which a value in the count field is to be counted down to zero is to be executed, and the count field comprising at least one of: an opcode field specifying an operation to be executed when a wait operation is not to be executed, a program counter field specifying a program counter value, a multiplexer select field for specifying multiplexer select lines, a multiplier number identifying a multiplier, a biquad number identifying a biquad, and a filter number identifying a filter.
In some embodiments, the interconnection circuit comprises a multiplexer operatively coupled to receive the filtered signal and an input signal, and to provide the input signal or the filtered signal to the input of the element.
In some embodiments, the apparatus is implemented onto a Field Programmable Gate Array (FPGA).
In some embodiments, a fading communication channel emulator comprises such an apparatus and a Gaussian variate generator (GVG) operatively coupled to the interconnection circuit.
In some embodiments, the fading channel emulator further comprises a low-pass filter operatively coupled to the apparatus, the low-pass filter being operable to further filter an output of the apparatus.
In some embodiments, the low-pass filter comprises a number of zero-order hold filters.
A fading channel emulator may also include an elastic buffer between the apparatus and the low-pass filter.
In some embodiments, a fading channel emulator includes a plurality of low-pass filters operatively coupled together in series and to the apparatus, the plurality of low-pass filters being operable to further filter an output of the apparatus, and a respective elastic buffer operatively coupled to an output of each low-pass filter of the plurality of low-pass filters.
The apparatus and the plurality of low-pass filters exchange handshaking information in some embodiments.
A signal filtering method according to another aspect of the invention involves providing an element that is operable to generate a filtered signal by performing a signal filtering operation on a signal received at an input, and selecting, from a set of signals comprising a filter input signal and the filtered signal, an input to the element, to enable the element to be used to perform a series of cascaded signal filtering operations.
In some embodiments, the set of signals further comprises a zero signal, and the series of cascaded signal filtering operations comprises one or more of: a zero-padding operation, an upsampling operation, and a downsampling operation.
In some embodiments, the element is operable to perform any of a plurality of different signal filtering operations, and the series of cascaded signal filtering operations comprises at least two different signal filtering operations of the plurality of different signal filtering operations.
In some embodiments, the different signal filtering operations are associated with respective sets of one or more filter parameters, and the method further comprises selecting a particular signal filtering operation of the plurality of different signal filtering operations, and providing to the element the set of filter parameters associated with the particular signal filtering operation.
In some embodiments, the plurality of different signal filtering operations comprises a first signal filtering operation associated with an SSF and a second filtering operation associated with an LPF.
In some embodiments, a filtering process of the SSF comprises repeating the first filtering operation a number of times, and a filtering process of the LPF comprises repeating the second signal filtering operation a number of times.
In some embodiments, the element comprises a filter SOS or filter FOSH.
In some embodiments, selecting comprises selecting an input from the set of signals in accordance with a software instruction.
In some embodiments, the filter input signal comprises a series of samples generated by a GVG.
In some embodiments, the method further comprises providing an output of the series of cascaded filtering operations to a low-pass filter.
Another aspect of the invention provides a method comprising designing a signal filter to implement a desired filter frequency response, and performing an iterative optimization procedure on the signal filter to achieve an acceptable level of similarity between an actual frequency response of the signal filter and the desired filter frequency response.
In some embodiments, designing comprises selecting a number of filter sections for the signal filter, and the iterative optimization procedure comprises changing the number of filter sections.
In some embodiments, the signal filter comprises multiple cascaded signal filters, designing comprises selecting a common number of filter sections for each of the multiple filters, and the iterative optimization procedure comprises changing the common number of filter sections.
In some embodiments, the signal filter is associated with filter parameters, and the iterative optimization procedure comprises adjusting the filter parameters.
In some embodiments, adjusting the filter parameters comprises calculating the filter parameters using Algorithm 1 below.
A computer-readable medium storing a data structure is also provided. The data structure comprises a plurality of data fields storing control information for controlling operation of at least one of: an element that is operable to generate a filtered signal at an output by performing a signal filtering operation on a signal received at an input, and an interconnection circuit that is operatively coupled to the element for switchably coupling the input with the output. The data field identifying the element and a data field indicating an operation to be performed by the element.
In some embodiments, the plurality of data fields comprises a data field identifying a component of the interconnection circuit and a data field indicating an operation to be performed by the identified component.
In some embodiments, the plurality of data fields comprises a mode data field, the mode data field indicating how other data fields of the plurality of data fields are to be processed.
A further aspect of the invention provides a signal filtering apparatus comprising an element having an input and an output, the element being operable to perform any of a plurality of signal filtering operations on a signal received at the input, the plurality of signal filtering operations being associated with respective sets of filter parameters, and a controller operatively coupled to the element and operable to control selection of the respective sets of filter parameters for use by the element, to thereby enable the element to be used to implement the plurality of signal filtering operations in respective parallel filtering paths.
The plurality of signal filtering operations and the respective sets of filter parameters may correspond to respective communication signal propagation paths.
The apparatus may also include a memory, operatively coupled to the element and to the controller, for storing the respective sets of filter parameters. The controller may then control selection of the respective sets of filter parameters by controlling addresses in the memory from which filter parameters are provided to the element.
A plurality of elements are operatively coupled together in series in some embodiments. The elements may be operatively coupled together through elastic buffers. In some embodiments, each element of the plurality of elements is operatively coupled to a respective controller, and the controller of an element is operatively coupled to, and exchanges handshaking information with, a controller of each adjacent element.
A signal filtering method according to another aspect of the invention involves providing an element that is operable to perform any of a plurality of signal filtering operations on a signal received at an input, the plurality of signal filtering operations being associated with respective sets of filter parameters, and controlling selection of the respective sets of filter parameters for use by the element, to thereby enable the element to be used to implement the plurality of signal filtering operations in respective parallel filtering paths.
Where the respective sets of filter parameters are stored in a memory, controlling may involve controlling selection of the respective sets of filter parameters by controlling addresses in the memory from which filter parameters are provided to the element.
The operation of providing may involve providing a plurality of elements, including the element, operatively coupled together in a series of stages, in which case the method may also include exchanging handshaking information between the stages. Controlling at each stage following a first stage in the series may then involve controlling selection of the respective sets of filter parameters based on handshaking information received from a preceding stage.
Other aspects and features of embodiments of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description.
Examples of embodiments of the invention will now be described in greater detail with reference to the accompanying drawings.
As described in further detail below, embodiments of the present invention propose new filtering and filter design techniques for such applications as modeling Rayleigh fading channels. Iterative techniques are also proposed for designing minimum phase Infinite Impulse Response (IIR) filters with complex coefficients that can be used, for example, to design spectrum shaping filters in simulation of fading channels with nonisotropic scattering propagation. A specific type of filtering for interpolation can significantly decrease hardware complexity without sacrificing accuracy.
Illustrative examples of flexible and compact filter processors may be used to efficiently implement the shaping filter and interpolation low-pass filters on a small fraction of a single FPGA. A parameterized Rayleigh fading channel simulator can be configured to emulate various radio propagation characteristics. The ability to implement an entire fading channel emulator on a fraction of a single FPGA could be a significant improvement for the prototyping and verification of wireless systems.
In a realistic wireless channel, samples of a Rayleigh process are temporally correlated. The correlation properties depend on the antenna characteristic, propagation environment and, on the Doppler frequency resulting from relative motion between receiver and transmitter. The description below considers the illustrative example of a MIMO system with enough spacing between antennas at both transmit and receiver sides so that the received samples would be spatially uncorrelated. However, introducing spatial correlation between generated samples is straightforward [16].
With no spatial correlation, wireless paths between each pair of transmit and receive antennas experience a fading process independent of other paths. This reduces the simulation of the MIMO wireless channel to generation of nT×nR independent Rayleigh fading processes. We also assume that the delay spread of the wireless channel, τD is much smaller than the sampling time Ts so that the behaviour of the wireless channel can be considered as flat-fading. Extension of frequency-flat channel simulator to frequency-selective channels with Lpath resolvable paths each with propagation delay τl is straightforward. A brief review of the model of a fading channel is presented below, followed by a description of how to design filters in accordance with embodiments of the invention to generate the fading process and/or for other applications.
Multipath propagation is the situation where a received signal contains different faded copies of a transmitted signal. The effect of the multipath fading on a baseband signal can be modeled with a time-variant linear system with the impulse response [13]
where Np is the number of independent paths, μn is the average attenuation of the n-th path, and cn(t) and τn(t) denote the complex gain and delay of the n-th path. In an isotropic scattering Rayleigh fading channel, the path gains can be modeled using a unit-variance zero-mean complex. Gaussian process cn(t)=cnI(t)+jcnQ(t) [17] with the power spectral density (PSD) function
where fDn is the maximum Doppler frequency of the n-th path. In this model, cnI(t) and cnQ(t) are independent stochastic processes that have the same autocorrelation function (ACF) Rc
To simulate a Rayleigh fading channel according to an embodiment of the invention, a sequence of complex path gains {cn(t)} is generated and then delayed replicas of transmitted samples with the given delays {τn(t)} and path attenuation {μn(t)} are superimposed. The path gains with desired statistics may be generated, for example, by passing a stream of independent Gaussian samples through an SSF, as described above. For the case of Rayleigh fading, the SSF has a magnitude response equal to the square root of the magnitude of the Jakes' spectrum given in (2).
When a line-of-sight (LOS) component is present, the channel is called Rician. In Rician propagation, the complex sum of all paths has a nonzero mean path gain that can be divided into two components. The first component is the LOS part with average power |βn|2≦1 and the second component is the random scattering part with average power 1−|βn|2. For the n-th path (possibly between an antenna pair), the Rician factor Kn is defined as
For pure Rayleigh fading channels, βn=0 and hence Kn=0; for Rician channels |βn|>0 and hence Kn>0. To simulate Rician propagation, one can generate {cn(t)} with the PSD given in (2) and then attenuate the samples by √{square root over (1−|βn|2)} to obtain the power of the random scattering component. The total complex path gain can then be obtained by adding the sinusoidal Rician component.
Following the Gaussian wide-sense stationary (WSS) uncorrelated scattering model [17], [18], the fading process is commonly modeled as a complex Gaussian process c(t)=cr(t)+jci(t). The second-order statistics of c(t) are affected by relative motion between transmitter and receiver, antenna characteristics and the propagation geometry. We consider the general case of nonisotropic Rayleigh fading [19] where the angle of arrival (AOA), θ, is distributed with the parametric von Mises distribution
where In(•) is the n-th order modified Bessel function of the first kind [20], θpε[−π,π) is the average direction of AOA, and κ≧0 controls the bandwidth associated with AOA. Note that when κ=0, θ is uniformly distributed over [−π,π) (i.e., isotropic scattering condition) while κ=∞ results in pΘ(θ)=δ(θ−θp), which corresponds to highly nonisotropic scattering (i.e., extremely directional antennas). The autocorrelation function (ACF) of the fading process corresponding to the AOA distribution in Equation 1 is [19]
where Rc
where for the case κ=0, Equation (5) reduces to the well-known U-shaped Jakes' PSD sc(f)=(π2(fD2−f2))−1/2, |f|<fD. It is important to note that when employing directional antennas, the non-uniform distribution of AOA at. the receiver results in a baseband PSD that is not symmetric around f=0 anymore (in baseband). For a Rayleigh fading channel with nonisotropic scattering, it can be shown [21] that the level crossing rate (LCR) is
which for the special case κ=0 reduces to √{square root over (2π)}fDρexp(−ρ2). A method for designing filters to generate the fading process with the above statistical properties is described below.
The fading process is generated in one embodiment by passing the independent samples of a zero-mean complex Gaussian process with unit power through a spectrum shaping filter (SSF) with a magnitude response equal to the square root of the magnitude of Equation (5). In practice, since fD is much smaller than the sample rate Fs, the designed SSF would have an extremely narrow bandwidth and a very sharp cut-off. The complexity of the SSF can be reduced by designing it at a lower sample rate, which also improves the accuracy of the designed filter. Further, the generated samples are interpolated to attain the required sampling frequency. The SSF is designed with an IIR filter in some embodiments, since it results in lower orders than a finite impulse response (FIR) counterpart. Moreover, since only the amplitude response affects the correlation properties and no restrictions are imposed on the phase response, elliptic IIR filters can be used for interpolation stages.
Through numerical simulation, it was found that an SSF with a maximum of 0.5 dB ripple in the passband and a transition band not exceeding seven percent of the maximum Doppler frequency was accurate enough to generate a fading process with desired correlation properties. Also, an SSF with minimum attenuation of 80 dB in the stopband can provide acceptable LCR.
According to embodiments of the invention, the filters are designed in two stages. The first stage is the SSF with the magnitude response
where A is a positive scaling factor, rkejθ
The second stage includes an upsampler and an IIR elliptic low-pass filter (LPF). For practical reasons (reducing the complexity of a filter processor's controller), it would be desirable if the second stage low-pass filter has as many second-order sections as the SSF, although the SSF and LPF need not necessarily have the same number of sections.
In one embodiment, the SSF is designed at the sampling frequency Fs1 and the LPF is designed at the sampling frequency Fs2=I1×Fs1 where I1 is a positive integer. Note that Fs2 could be chosen to be equal to Fs. However, for realistic applications, designing the filters in more than two stages results in significantly lower computational complexity. Accurate statistical properties are maintained by an LPF that provides more than 80 dB attenuation in the stopband and has a total passband ripple not exceeding 0.5 dB. Also, to achieve lower computational complexity, the corner frequency of the interpolation LPF can be selected to be as low as fD.
Low-pass filtering after each stage of upsampling suppresses image frequency components. In conventional fading simulators, this is normally done by using conventional FIR or IIR filters. However, this results in high computational complexity and increase in the hardware size due to excessive use of multiplications. Multiplication-free filters can help to reduce the complexity and increase the efficiency of this stage.
For the cases where the maximum Doppler frequency is much smaller than the sample rate, some embodiments of the present invention use a cascade of lz zero-order hold filters with impulse response dp(n)=[P−1, P−1, . . . , P−1]1×P where P is the upsampling rate. The frequency response of this filter is given by
which has exactly P−1 zeros at image frequencies.
For the case fD/Fs≦0.02, this filter can provide more than 80 dB attenuation on the image signals with lz=2 cascaded sections. Different variations of this filter can be efficiently mapped onto hardware using only addition and shift operations.
It should be appreciated that
According to embodiments of the invention, the SSF and LPF are designed in an iterative fashion. First, the design process starts with an initial small K and the LPF is designed with the corner frequency fD, stop frequency 1.07×fD, maximum passband ripple Rpl, and minimum stopband attenuation of Rsl. Second, the SSF is designed with a maximum passband ripple Rps, and minimum stopband attenuation Rss. Now, if Rp=Rps+Rpl≦0.5 dB and Rs=Rss+Rsl≧80 dB, thereby achieving acceptable similarity between the actual frequency response of the SSF/LPF cascade signal filter and the desired frequency response, it is possible that the design is complete. Otherwise, K can be increased and the process is repeated from the first step.
For the case κ=0 (isotropic scattering), since the PSD of the fading process is symmetric and the SSF filter coefficients are real, one can use the procedure proposed in [23]. It can be more convenient to use an appropriate software package and function. However, these techniques are not appropriate for designing complex filters required for the nonisotropic case. A filter design procedure is proposed herein for minimum-phase and stable complex IIR filters. A weight vector v=[v1, v2, . . . , v2M]T is also introduced to enable emphasis of error minimization on certain frequency bands of a designed filter.
To design the SSF in one embodiment, 2×M frequency points are defined in the interval uiε[−0.5,+0.5] and an attempt is made to fit the frequency response of SSF to the sampled desired response yid=√{square root over (|S(e−2jπu
which includes the error squares in logarithmic scale in addition to the parametric barrier function B(L;t;x). The barrier function B(L;t;x) is added to the main cost function in order to keep the poles and zeros within the unit circle (i.e., stable and minimum phase) and is defined as
In Equation 8, the parameter t is set as an outer boundary for poles and zeros. In addition, L determines how fast the barrier function grows outside of the unit circle. The coefficients of the SSF are found in an iterative fashion. In each iteration, first the optimum scaling factor Ao is calculated as
which is found by differentiating Equation (9) with respect to A and setting it to zero. Further, the gradient vector
is found from
where ωi=2πui and each partial derivative is given by
From here, an iterative algorithm can be used to find the filter coefficients. In one embodiment, we use the Ellipsoid algorithm [24]. Algorithm 1 below summarizes the steps for an illustrative example iterative filter optimization. Other embodiments may use different implementations than explicitly shown below for Algorithm 1.
A weight vector v as well as a vector containing the desired response yd=[yid] are passed to Algorithm 1. In embodiments in which this algorithm works on a logarithmic scale, all of the elements of yd have positive values. The algorithm starts from a random point x0 within the initial ellipsoid matrix E0. The ellipsoid algorithm searches for optimal solution within an ellipsoid of feasible point. This algorithm finds the optimal solution by successively reducing the size of the ellipsoid until it is smaller than a threshold (i.e., the algorithm has converged).
To demonstrate the accuracy of such a filter design procedure, a simulation was performed using a flat Rayleigh fading channel with isotropic scattering, maximum Doppler frequency of fD=100 Hz, and sampling frequency Fs=10 MHz (10 million samples per second). Both SSF and LPF were designed with K=6 second-order sections and barrier function parameters t=0.999 and L=5. The sampling frequencies of SSF and LPF were 625 Hz and 15625 Hz respectively. Further, the signal was upsampled and filtered with a number of multiplication free filters (as described above) with P=5 and P=2 and lz=2 until the signal with the sample rate 10 MHz was attained. For a design to be implemented on FPGAs, for example, all of the computations in the SSF and the first stage LPF could be performed with 32-bit fixed-point arithmetic. Also, the consecutive interpolation stages may operate with 16-bit fixed-point variables.
As
In
As another example, a fading simulator was designed for the case fD=3 KHz. The simulator was designed for both isotropic and nonisotropic scattering with κ=1 and θ=0. Moreover, to design the SSF and the first LPF, K=6 biquads were employed.
In order to implement a fading channel simulator on an FPGA, a complex Gaussian process with independent samples is generated. The generated samples are passed through the SSF and LPF to provide a low sample rate Rayleigh fading process, which is further upsampled and filtered to attain the target sampling rate. As discussed above, for simulating fading channels with nonisotropic scattering, the SSF is implemented with complex-valued coefficients. However, for the isotropic case, these filter coefficients are real. Compared to an SSF with complex-valued coefficients, this results in a reduction of computational complexity of SSF by a factor of two. Since in practice many applications require running filters with real coefficients, an aspect of the invention provides a new structure called a real filter processor (RFP) for running IIR filters, which is indeed capable of generating a Rayleigh fading process for isotropic scattering. Furthermore, later in the present application, a complex filter processor (CFP) which is capable of running IIR filters with complex coefficients is introduced.
The discussion below assumes that the SSF and interpolation LPF have K and P SOSs respectively. The hardware implementation of an SOS is referred to below as a “biquad”. In a conventional implementation of a fading channel simulator on an FPGA, in addition to two instances of Gaussian variate generators (GVGs), K instances of biquads for the SSF, P instances of biquads for the LPF and 2(K+P) multipliers are required to implement γ=1, . . . , Γ IIR filters in a cascaded structure.
The datapath of a biquad in Direct-Form II structure [25] is shown in
Those skilled in the art to which the present application pertains will be familiar with the structures shown in
When designing IIR filters in fixed-point representation, the precision of the filters coefficients and also the precision of intermediate signals of the biquads impact the filter response and thus the statistical properties of the generated fading variates. Fixed-point error analysis has confirmed that a 32-bit fixed-point implementation of a fading channel simulator ensures computation accuracy and filter stability. However, to implement a flexible fading channel simulator that supports different small values of normalized Doppler frequencies fDTs, it becomes more challenging to realize the structure in
To efficiently implement a fading channel emulator according to an aspect of the present invention, an RFP was designed to obtain increased and ideally maximum throughput with a reduced and ideally minimum amount of FPGA resources. In this case, the computation of Γ IIR filters (each using Nγ cascaded biquads) can be distributed among m=1, . . . , Mr RFPs. Since both the SSF and the LPFs are designed using a cascade structure, resource sharing of independent operations of the SSF and LPF offers significant resource reduction in implementation of computationally-intensive fading channel emulator. The throughput of a fading channel emulator depends on the binding of the SOSs to the RFPs. The sample rate of a digital filter implementation on FPGA is high enough that the throughput reduction of a time-multiplexed scheme compared to a direct instantiation of cascade biquads did not impact the maximum target sampling rate.
In the RFP 60, the biquad 62 is an example of an element that has an input and an output and is operable to perform a signal filtering operation on a signal received at the input to provide a filtered signal at the output. The MUXs 85, 87, 89 are part of an interconnection circuit that is operatively coupled to the biquad 62, and provide for control of the interconnection circuit to switchably couple the input of the biquad with its output to enable the biquad to be used to implement a series of cascaded signal filtering operations, as described in further detail below. Multiplexers 85, 87 and 89 act as routing switches that selectively connect appropriate inputs to the desired outputs to support time-multiplexed operation of filters. Registers 72, 74, store intermediate variables between successive stages of each filter. Registers 76, 78 store the intermediate data from the input.
It should thus be apparent that the interconnection circuit can select an input for the biquad 62 from a set of signals. In the example shown in
Implementation of a control structure for controlling execution of cascaded SSFs and LPFs in an implementation such as shown in
Rather than designing a control unit using random logic circuitry, an RFP controller may use a microprogramming approach. A code generator written in a high-level programming language, such as C for example, might receive the specification of designed filters and their interconnections as inputs and generate a sequence of microinstructions (microcode) to be executed by an RFP architecture such as 60. This microprogram could be stored in an instruction ROM and addressed by a program counter (PC), for instance. To minimize the resource usage of hardware, the random logic of an instruction decoder could be eliminated by utilizing a horizontal microcode in which every control bit in a microinstruction is used as a control line in an RFP datapath.
An exemplary 32-bit microinstruction format is shown in
The “Mul#” field 96 effectively exploits the commutative properties of computing cascaded second-order sections. The SOS operations can be re-ordered in such a way that a multiplication can be performed simultaneously with a biquad operation. This out-of-order scheduling scheme reduces the required number of clock cycles to execute N cascaded second-order sections from 2N in a sequential scheme down to N.
One important decision to make is how to bind operations of the structure in
Implementation of a CFP is similar to that of an RFP. In one embodiment of a CFP, the main difference is that, in a CFP instead of a biquad, FOS hardware (FOSH) is instantiated and in each iteration one FOS is executed.
Other than the slight difference in core components, the example RFP and CFP shown in
In terms of processing speeds and capabilities, an RFP can run an IIR filter with real coefficients two times faster than a CFP, but a CFP is capable of running IIR filters with complex coefficients.
To implement the datapath shown in
On the same FPGA, one example implementation of the biquad datapath shown in
The signal outputs of an RFP or CFP processor may be further fed to upsamplers and multiplication-free filters introduced above. For one example system with fD=100 Hz and isotropic propagation, five expansion stages were used with interpolation factors {5,4,4,4,2} to get the sample rate to 10 MHz. With 16-bit precision, these 5 stages can be implemented on one commercially available FPGA to altogether utilize 1% of configurable slices and operate at 200 MHz.
It is important to note that utilizing the special filters introduced above, it is possible to attain higher sample rates by adding additional interpolation stages with slight increase in complexity in terms of hardware resources. For example, by adding two interpolation stages with factors 5 and 4, it is possible to generate 200 million samples per second which only requires 0.7% more of available configurable slices.
In some embodiments, an SSF and the first of two stages of interpolation filters are designed in two steps. In the first step, both the SSF and the first interpolation LPF are designed to meet desired characteristics, and in a second step, the filters are optimized to reduce their hardware complexity. Since only signal amplitudes impact correlation properties, no limitations necessarily need to be imposed on the phase of the target signal. Considering the greater computational efficiency of IIR filters, the Jakes' PSD can be approximated with a rational filter using the least pth-norm approximation [27]. This could be achieved, for example, by utilizing a software function that allows one to specify a weight vector to emphasize error minimization in certain frequency bands. Since the signal has a narrow bandwidth, low-order IIR interpolation low-pass filters (ILPFs) can be used in interpolation stages. In one embodiment, inverse-Chebychev low-pass filters are used for interpolation.
In the next step, the filters can be changed to be mapped onto hardware more efficiently. Since the shaping and first stage interpolation low-pass filters operate at relatively low sampling rates in some embodiments, it can be advantageous to reuse hardware to implement both filters. Employing the cascaded SOS form of IIR filters for both an SSF and an ILPF simplifies hardware sharing. In fact, a biquad can be shared to perform the processing of different SOS parts in the shaping and the first low-pass filter. However, to simplify the control unit, it may be preferable for the two filters to have the same number of SOSs.
To minimize the total number of SOSs in the shaping and the first-stage ILPF, these filters can be optimized together to meet design requirements. For example, in a “discrete” design, the SSF might ideally have a frequency response matched to the Jakes' PSD in the range |f|<4 KHz, and a zero response elsewhere. Also, the first ILPF might ideally pass the signal within the range |f|<10 KHz where the sample rate of the SSF is 20 KHz.
However, with small out-of-band attenuation, the desired statistics of target Rayleigh fading samples might not be met. In particular, the LCR of the envelope of the fading samples is sensitive to the out-of-band attenuation. Designing these two filters “together” may minimize the error in the pass band |f|<4 KHz while maximizing the attenuation in the stopband 4<|f|50 KHz.
To find optimal filters to meet the desired characteristics, a genetic search algorithm [28], for example, can be employed. Weights computed by a software function and the low-pass filter parameters were used as the search variables in one embodiment.
A second-stage ILPF can be designed using a similar technique. This allows the second-stage ILPF to further increase the attenuation over the stopband where the shaping filter and the first-stage ILPF might not provide enough attenuation. Since the second-stage ILPF may run at a higher frequency, minimizing the filter order may significantly decrease processing time.
Also, to maintain accuracy, the fixed-point format of intermediate signals may be chosen based on numerical analysis that determines the impact of different precisions on the statistical properties of generated fading variates.
As shown in
A time-multiplexed resource sharing approach as described above can be used to improve performance of an SSF and multi-stage interpolation. In this technique, the SSF is time-shared with the initial stages of ILPFs. The throughput of a fading simulator depends on the binding of second-order sections to the shared resources. The sampling rate of hardware-based digital filters on conventional FPGAs can be high enough that the throughput reduction of a time-multiplexed scheme, compared to a direct instantiation approach, does not impact the maximum target sampling rate.
In one embodiment, due to the relatively slow rate of SSF and initial stages of ILPFs, the shaping filter and the first ILPF are implemented using one shared biquad. The second ILPF is mapped to a separate set of configurable resources, on an FPGA, for example, to achieve the target sampling rate.
A state machine controller implementing the control flow 140 starts in reset state “Rst” 142, where “gShp1” to “gShpk”, which may be stored in further registers (not shown) in some embodiments, are initialized with K scaling factors of the spectral shaping filter, and “gInp1” to “gInpP”, which may similarly be stored in further registers (not shown) in some embodiments, are initialized with P1 scaling factors of the first ILPF. Intermediate registers, such as “shpR1” and “shpRQ” 164, 162, are cleared to zero. In the next state, “GVG” 144, two Gaussian variates are generated per clock cycle. State “MShp” 146 denotes a multiplier state of the shaping filter and state “MInp” 150 denotes a multiplier state of the first-stage interpolator. At the “ShpF” (“InpF”) state 148 (152), one of the K (P1) sections of the shaping filter (first-stage ILPF) is executed. For every execution of the “ShpF” state 148, states “MInp” 150 and “InpF” 152 will be executed I1 times, to perform an interpolation or upsampling operation. After K executions of state “ShpF” 148 (and thus KI1 executions of the “MInp” and “InpF” states 150, 152), “InpF” 152 goes back to state “MShp” 146 to multiply the previously generated Gaussian variates with one of the shaping filter scaling factors. In some embodiments, a downsampling operation may be implemented instead of an upsampling operation.
Due to the slower operating rate of the shaping filter compared to the interpolator, only one GVG core 180 might be used to generate both I and Q samples. The registers of the datapath and the K+P1 scaling factors can be implemented using configurable slices while 4(K+P1) registers (note that each biquad has four intermediate delay registers) and 4(K+P1) coefficients of K+P1 SOSs can be implemented using dual-port memory blocks. The datapath in
An important property of this proposed scheme is that the complexity of the filter implementation only impacts the rate of fading variate generation rate and has almost no effect on hardware resource utilization. For example, even though the shaping filter and the ILPF might be designed to emulate mobile channels sampled at 10 MHz, the fading channel simulator could be running at a high clock frequency, such as 50 MHz. In this case, the simulator operates 1.25 times faster than the target sample rate. The simulator can, however, be slowed down to emulate a wide variety of different channel characteristics over bandwidths of up to 12.5 MHz. To further speed up the fading sample generation rate, commutative properties of computing the cascaded SOSs can be exploited so as to re-order the operations in such a way that the multiplication state “MShp” 146 (“MInp” 150) can be performed simultaneously with the “ShpF” 148 (InpF” 152) state.
Denoting Ri as the output register of the i-th multiplier and BRi as the register at the output of the i-th biquad in the cascade structure of
A clock frequency of 20 MHz generates 10 Msamples/sec. When the fading channel simulator operates at 50 MHz, this approach provides 2.5 times speed up to generate fading variates up to 25 Msamples/sec. Increasing the sample generation throughput in this way uses N=K+P1+P2 times the number of registers compared to the sequential approach, as given in Table I. An important point to note from Table I is that allocating a physical register for every instance can lead to an inefficient register allocation while a register can be re-used after its lifetime (when its value is no longer needed). Consider the fact that Ri can be re-used after Biqi reads its content, and BRi can be re-used after multiplication by g1+1 where gi+1 is the scaling factor of the Biqi+1. The scheduling of operations after re-using the registers is given in Table II where only one register is utilized for the output of multiplier operations.
A Hardware description language (HDL) model of the datapath of
A communication system with 4-PSK and 16-QAM modulations and zero-forcing equalization at a receiver was also simulated to show the performance of the new fading simulator with fixed point arithmetic in
According to another embodiment, transformation-based filter designs are used to provide spectral shaping for a rational implementation.
As shown in
To implement the Jakes' PSD, this embodiment uses as the shaping filter 214 an IIR elliptic filter that has the sharpest transition from the passband to the stopband among different classical IIR filters for a given order [25]. An elliptic filter designed using the cascade of Direct-Form II second-order sections (biquads) is more robust under quantization than the Direct-Form structure [25]. A typical assumption that the Doppler spectrum for mobile speeds of interest is less than 2 KHz wide was also used. In one embodiment, 10 samples/period of the highest frequency of an analog signal were used, so Fch=10fD=20K samples/sec. For a fixed maximum discrete Doppler rate fDTs=0.1, K=5 cascaded biquads were used to realize the Jakes' PSD.
As shown in
In order to design a P-stage interpolator, the assumption was made that the WSS channel model can be used for the urban mobile radio channel having bandwidths of up to 10 MHz [22], [30]. The interpolation factor of this example system therefore can be up to I=[Fs/Fch]=500.
As an alternative, smaller-degree low-pass IIR filters that provide almost linear phase response in the passband may be used as ILPFs. In one embodiment, a two-stage interpolator uses two low-pass Chebyshev Type II IIR filters, one for I1=5 and one for I2=100. The ILPFs have a maximum of 0.01 dB attenuation in the passband and a minimum of 100 dB attenuation in the stopband in one embodiment.
To implement the fading channel simulator with fixed-point arithmetic, the stability of the designed IIR filters after quantization was ensured by keeping all poles within the unit circle on the z-plane. Also, to ensure computational accuracy, the fixed-point format of intermediate signals was chosen based on numerical analysis with different precisions.
Rather than implementing different instances of second-order sections, a time-multiplexed resource sharing scheme can again be used to achieve the maximum performance with a minimum amount of FPGA resources, leading to an efficient hardware-based implementation of a fading channel simulator. In this technique, resource sharing of independent operations of the shaping filter and the ILPFs can offer significant resource reduction in the implementation of the fading simulator.
For example, it is possible to bind the operation of the shaping filter and the first ILPF to be performed by only one shared biquad. The second ILPF can use a separate set of configurable resources to achieve the target throughput.
The second-stage ILPF cascaded after the SSF and first-stage ILPF datapath of
The filter coefficients and the biquad registers may be stored in on-chip memory blocks, as described above. The complete fading channel simulator in this example utilizes 4% of slices, 19% of dedicated multipliers, and 2% of memory blocks in one FPGA implementation.
As above, the complexity of the filter implementation impacts only the fading variate generation rate and has almost no effect on the hardware resource utilization, whereas in the direct instantiation of biquads, the resource utilization becomes critical as filter order increases.
As noted above, in the design of the SSF, since no constraints are imposed on the phase response, IIR filters, which are typically much smaller than their FIR counterparts, can be used. In one embodiment, the desired magnitude response of the l-th SSF is approximated with an IIR filter of order 2NQ. The magnitude response of the SSF is
which is equivalent to the magnitude response of NQ cascaded second-order canonic sections (biquads). In (19), b1,l,q, b2,l,q, a1,l,q and a2,l,q denote the real-valued coefficients and gl,q denotes the scaling factor of the q-th biquad of the l-th SSF.
The GNG 262 may be implemented, for example, using 12 uniformly distributed random variables uiδ[−0.5,0.5). Since the fading samples are strongly correlated, generating the uniform samples with a simple linear feedback shift register (LFSR) structure does not change the correlation properties significantly. Also, from the central limit theorem, filtering the input process with the SSF and the EILPF will help to improve the Gaussian distribution of the fading samples. Other Gaussian variate generators may instead be used where greater accuracy is desired [26].
Example implementations of the SSF 264 and the filters 268, 272, 276 are described in further detail below.
Gaussian samples are generated in the GNG 262 at F1 samples per second and sent to the SSF 264. The output of the SSF 264 is then up-sampled I1 times at 266 in the elliptic interpolation lowpass filter (EILPF) 268, which generates F2=I1×F1 samples per second. Next the samples are further up-sampled and interpolated several times using fading-specific interpolation lowpass filters (SILPFs) 272, 276 to obtain the desired output sample rate Fs.
Without loss of generality, we consider filter design for the random scattering component of the n-th path assuming the maximum Doppler frequency fD=fDn. An example SSF is designed at a sampling frequency F1, where 4fD<F1<8fD. Choosing F1 in this fashion satisfies the minimum Nyquist rate while keeping the computational complexity low. In addition, this provides the opportunity to exploit power-of-2 interpolation factors to further reduce hardware complexity and simplify filter design.
Given a desired frequency response Sc1/2(f)=(π2(fd2−f2))−1/4, |f|<fD, the filter coefficients can be found. Optimal values might be calculated, for example, by minimizing the p-norm. After the initial filter design, the filter can be tested with fixed-point variables, and scaling factors gl,q can be determined to sufficiently limit the magnitude of the generated samples to keep them within a representable range.
The generated samples from the SSF 264 are upsampled at 266 I1=16 times in one embodiment by the EILPF 268. The samples are passed through Tg successive SILPFs, two of which are shown in the example simulator 260. The i-th SILPF interpolates the signal 2k
Thus, F1=2−(4+s
is an integer value within the range log2(Fs/fD)−7≦Sg<log2(Fs/fD)−6. Based on a maximum interpolation factor 2K
f
D
min=2−(T
In a biquad implementation, the maximum Doppler frequency may be dictated by the biquad processor that performs the SSF operations. If the biquad processor requires Cbq clock cycles to perform the biquad operations, it can be verified that the maximum Doppler frequency is
where fCLK is the biquad processor clock frequency, Nf is the number of filters, and NB(l) denotes the number of biquads in the l-th filter.
A generated stream of Gaussian samples is interpolated to reach to the target output sample rate Fs. Let P denote the integer upsampling factor. Interpolation of the signal {x[n]} is performed by inserting P−1 zeros between each two successive samples of {x[n]} and then passing the resulting stream through a lowpass filter with cut-off frequency π/P radian/sec. Although lowpass filtering is often done using conventional FIR or IIR filters, it may be more efficient if the interpolation filters were realized with multiplication-free filters (see [32] for example).
For application to fading simulation, when fD/Fi<<1, where is the sample rate at the i-th stage, a multiplication-free filter with the frequency response in (8) may be used. This is equivalent to the frequency response of a cascade of lz multiplication-free filters
The frequency response of such a filter is shown and
The simulator 280 can generate Np=Nf=4 independent fading processes that can be configured with different path gains. The multiple paths can be used to model, for example, frequency-selective channels or fading channels in MIMO systems. The generated Gaussian samples from the GVG 282 are buffered at 284 and passed to the first shared filter processor 286, which runs the designed SSF from (19) in one embodiment, in four parallel and independent threads. Each thread of data is buffered at 292, upsampled 16 times at 294, buffered at 296, and passed through an EILPF at 298 that can be implemented using the same or another shared filter processor. Each stream of data is then passed to a subsequent interpolation filter (IF). Each IF includes four configurable SILPFs, represented at 304, that are interconnected with buffers 302, which are elastic buffers in one embodiment. Each IF also contains a terminal buffer 306, which may also be an elastic buffer, for interfacing to external hardware.
A fixed-point processor is used to perform the operations of the SSF and the EILPF in some embodiments.
The main datapath element in the processor 310 is a multiplier-accumulator (MAC), including the multiplier 336 and the adder 338. The multiplier 336 multiplies in-phase and quadrature data components by coefficients, and the adder 338 accumulates the resultant products.
The output of the biquad processor 310, provided by the adder 338, is written into RAM d 314, which holds intermediate results. The RAM m1 316 and the RAM m2 318 store the complex contents of the biquad memories. The biquad coefficients are stored in RAM a1 320, RAM a2 322, RAM b1 328, RAM b2 326, and RAM g 324. The biquad processor 310 can also add a bias value from RAM β 330, in the case of simulating Rician fading.
The control sequence for running cascaded biquads is generally quite straightforward. As described above, multiple stages of a cascade could potentially use the same biquad. Data output by a biquad may be returned to its inputs, through the multiplexer 332, which is another example of an interconnecting circuit that enables one biquad to be used in implementing a cascade.
When simulating multiple paths, where each path could have different filter specifications and different sample rates, flexible implementation of the control unit 312 may be more challenging. In addition, a fading simulator might generate samples for more than one external system with different clocks. To improve the robustness of the biquad processor 310 in a multi-path or multiple thread implementation, one or more flags, two in the example shown in
It should be noted that flag-based control may be useful, for example, between different filters. According to embodiments of the invention, a filter may include multiple cascaded operations, which can be implemented using one biquad. The biquad processor 310 also supports another type of biquad re-use, between different threads or paths in a multi-path implementation. Flags may or may not be used for controlling data flow within one filter. In some embodiments, a biquad-implemented filter is one of a series of filters in a multi-stage interpolator. The flags may be used to control data flow between those filters.
The biquad processor 310 represents one example of a signal filtering apparatus including an element that has an input and an output and is operable to perform any of multiple signal filtering operations on a signal received at the input. The signal filtering operations are associated with respective sets of filter parameters stored at 320, 322, 324, 326, 328, 330. A controller, in the form of the control unit 312, is operatively coupled to the element and is operable to control selection of the respective sets of filter parameters for use by the element. In one embodiment, the control unit 312 controls selection of the respective sets of filter parameters by controlling addresses in the RAMs 320, 322, 324, 326, 328, 330 from which filter parameters are provided to the element. This enables the element to be used to implement the signal filtering operations in respective parallel filtering paths, such as shown in
As will be apparent from the foregoing, the signal filtering operations and the respective sets of filter parameters, and thus the parallel filtering paths, may correspond to respective communication signal propagation paths.
A series of biquad processors may be provided in a multi-stage filtering path. As shown in
Considering a filter having the frequency response in (8) as an example, the filter impulse response is triangular:
h
P,k=2−k×[1, 2, . . . , P−1, P, P−1, . . . . , 2, 1]. (23)
For the special case of P=2k/2, h2
In the example simulator 280 (
If an output signal x(t) is sampled out at Fs′ samples per second, it can be approximated as the sampled signal x′(t)≈x(ηt), where η=Fs′/Fs. The ACF of x′(t) is Rx′(τ)=Jo(2π(ηfD)τ). Using five elastic buffers in addition to Tg=4 SILPFs in each IF, for example, enables a minimum Doppler frequency fD≧2−22Fs to be simulated.
The data signal x[n] is stored in a buffer of length Δ0 in the dual-port RAM 372. The output of the first buffer is passed to the second buffer of length Δ1 in the dual-port RAM 374. In other embodiments where fading on more than three paths is being simulated, additional buffers are provided. In the delay generator 370, Δ0 represents the relative delay of the second path compared to the first path, and Δ1 is the relative delay of the third path compared to the second path. The delayed copies of the input signal are multiplied at 382, 386, 392 by generated fading samples ci[n], weighted at 384, 388, 394 by scaling factors μi[n] representing the power-delay profile, and then added together at 390, 398 to simulate the multipath fading.
It should be apparent that the fading samples ci[n] may be generated using a three-path version of the simulator 280 of
What has been described is merely illustrative of the application of principles of embodiments of the invention. Other arrangements and methods can be implemented by those skilled in the art without departing from the scope of the present invention.
For example, the contents of the drawings are shown solely for illustrative purposes. Embodiments of the invention may be implemented using further, fewer, or different components, with similar or different interconnections, than specifically shown. Multiple implementations of filter components, in hardware, software, firmware, and/or combinations thereof, are also contemplated.
The various plots, the example microinstruction format, and the example control flow-graph shown in the drawings are also not intended to limit the scope of the invention. Similar or different operating conditions may result in different simulation or actual observed results, for instance. It is also expected that those skilled in the art could develop other instruction formats and/or control schemes. If a series of cascaded signal filtering operations includes zero-padding, upsampling, and/or downsampling operations, for example, control information or instructions might include, in addition to filter coefficients and possibly scaling factors, other parameters such as zero-padding rates, upsampling rates, and/or downsampling rates. Like filter coefficients and scaling factors, these additional parameters could also be stored in memory elements in some implementations.
References to filter coefficients, scaling factors, and other quantities are also intended to be non-limiting. Any or all of such quantities may be considered examples of filter parameters that characterize filtering operations and that may be stored in memory, for example.
Simulation of Rayleigh fading in isotropic and nonisotropic scattering environments have been described above. A novel technique for accurate simulation of Rayleigh fading channels was proposed. Since the available filter design tools are not appropriate for designing complex filters, a new method for designing minimum phase complex IIR filters was also proposed. In addition, a specific multiplication-free filtering procedure was proposed to be utilized with fading simulators. Fixed-point numerical analysis were conducted and showed a close match between generated results and expected theoretical statistics. Two new multipurpose filter processors for baseband simulation of Rayleigh fading channels were proposed. The new processors, RFP and CFP, can be used to perform IIR filtering operations, illustratively to simulate flat-fading channels in single and multiple antenna wireless systems for isotropic and nonisotropic scattering propagation channels.
In one embodiment, a single RFP is capable of multiplication, interpolation, decimation, and performing the operations of 32 time-multiplexed filters each with up to 16 second-order sections of IIR filters or possible concatenation of IIR filters with 32-bit precision. A similar implementation of a CFP can perform the operations of 32 IIR filters with complex coefficients each with up to 16 first-order sections. One example fixed-point implementation of an RFP on a commercially available FPGA utilizes only 2% of configurable slices, 9% of dedicated multipliers and, 3.6% of available memory blocks, runs at 50 MHz, and performs the operations of one SOS in each clock cycle. With an additional 2% of configurable slices utilized for interpolation and filtering, a fading simulator can be used to generate more than 200 million samples of a Rayleigh fading process each second. Also, a parameterized mobile channel simulator can be reconfigured in some embodiments to accurately simulate a wide variety of different channel characteristics.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US08/01601 | 2/7/2008 | WO | 00 | 11/29/2010 |
Number | Date | Country | |
---|---|---|---|
60888630 | Feb 2007 | US |