Post date: Jan 19, 2015 12:43:1 AM
I have been recently investigating on modulated wideband converters (MWCs). In this post, I have attached two MATLAB codes in order to demonstrate the behavioral model of MWC. The first code (MWC.m) exemplifies that the results of theoretical model of MWC matches with that of the behavioral model. The second code (MWC_recovery.m) shows the signal recovery using the infinite measurement vector (IMV) structure. My simulations are based on "From Theory to Practice: Sub-Nyquist Sampling of Sparse Wideband Analog Signals" by Moshe Mishali and Yonina Eldar. I think it is one of the fundamental papers on compressed sensing and gives the crucial parts on MWC clearly.
Let's start with the theory of MWC. The key point of the theory of MWC is the domain of analysis, i.e., frequency domain. It is very nice to see that although the analysis is done in frequency domain, the implementation will be in time domain. I think this part is a little bit counterintuitive, but at the same time, it is exciting.
The MWC has three main parts. The first part is the RF filter, common in any sensing/sampling device. It is a low- or band- pass filter and suppresses the signals beyond our interest. The second part consists of several mixers which operate in parallel. This part is different than conventional structures. In the conventional structures, e.g. IQ demodulators, this part may have sine and cosine components. For MWC, those signals are periodic and generated based on pre-defined sequences. For the sake of notation, the period of those signals is Tp, the amplitude of those signals is either +1 or -1, and the chirp rate is M/Tp, where M is the length of sequences. The aim of those sequence-based signals is essentially for aliasing the input signal. Since each branch have different sequence, each branch will yield different form of aliasing. This will turn to an advantage when we consider the sparse recovery latter. The third part of MWC is the sampling. Intentionally, we filter the signal with an aliasing filter and allow only certain part to pass. The good news is that the cut-off frequency of aliasing filter is very small, compared to the bandwidth of our interest. In other word, we have multiple branches that operate under the Nyquist rate, which provide significant relaxation on the sampling part (i.e., ADC). The rest of MWC is about processing the samples obtained from each branch, properly, and signal recovery by exploiting the sparsity of spectrum utilization, which also reduces the required number of branches, remarkably.
In the following slide, I have provided the expressions of signals on the MWC structure:
In matrix form, the same expressions can be written as follows:
If we go further, we can express the dictionary A by calculating the Fourier coefficients of periodic sequences:
Here is the output of MATLAB code (MWC.m). It demonstrates that theoretical results (i.e., dictionary) match with that of the behavioral model). So, we know what the dictionary is now. We are ready to recovery the sparse signal.
For sparse recovery, let's start with the discussion of the strategy for recovering the input signal.
I think the following part is quite nice since it explains how to implement MWC in practice.
Here is the output of MATLAB code (MWC_recovery.m). I adopted the orthogonal matching pursuit (OMP) code for multiple measurement vectors given in http://tx.technion.ac.il/~moshiko/software.html. Note that I follow the circular convolution of an ideal aliasing filter with the mixer outputs as in M. Mishali's code. However, for a causal system, there will be latency between recovered and original signal. In addition, the aliasing filter wouldn't be ideal. Have fun!