For adaptive compressive sensing(cs),the sensing matrix is related to the input signal.
For example, in rakeness-based(cs), the sensing matrix is obtained by solving an optimization problem which maximizes the correlation between the input signal and the sensing matrix,meanwhile minimizing the coherence between the columns of the sensing matrix.
I know that the operations at the sensing node should be minimized, to minimize the energy consumption.

Where is this optimization problem performed ? At the sensing node ?? If so, how can this rakeness- based approach implemented in a wireless body area network without consuming much energy??


There are two optimisation problems here:

  1. To get the sensing matrix $\mathcal{A}$
  2. To recover the signal by $y = \mathcal{A} x$

Out of these two problems, the first one is the one that is solved off-line to obtain a sensing matrix $\mathcal{A}$ that appears to be more "suitable" to a particular family of signals.

The second optimisation problem is the standard compressive sensing recovery and this is the bit that might take more CPU effort to be solved.

For an indication about the kind of effort required, you might want to have a look at this page, the code it provides and specifically the Optimization/l1eq_pd.m file.

This is the entry point to a generic CS "solver" that then calls other optimisation algorithms contained in Optimization/.

If you take a look in there you can see that you can expect matrix multiplications, matrix inversion, point to point multiplications of sequences and other less intensive operations.

All of these also depend on the amount of data captured, so you might have to do some experimentation with realistic signals from the domain you are dealing with to get a more accurate idea of how much computational effort is required and therefore how much power to solve these problems.

It certainly looks more like a problem for a Raspberry Pi Zero rather than an Arduino type of CPU, if you are considering a mobile / wearable application.

Hope this helps.

  • $\begingroup$ The first optimization problem is solved off-line to obtain the sensing matrix. What do you mean by solving offline? Doesn't solving offline consume energy at the sensing node? @A_A $\endgroup$ Nov 13 '18 at 11:45
  • $\begingroup$ You solve the first problem for a family of signals that share more or less the same characteristics. This gives you a matrix $\mathcal{A}$ that in subsequent use you assume as static. It does not change, it is the same for reconstructing a family of signals. But reconstructing a signal from a given set of measurements is the step that has to be done at a sensing node. @MohamedAly $\endgroup$
    – A_A
    Nov 13 '18 at 11:53
  • $\begingroup$ It is still unclear for me the meaning of offline. I know that the sensing matrix is obtained only once. But to obtain it, I need the input signal to be captured from the human body using a sensor, right?? If so, how this operation is not performed at the sensing node? @ِA_A $\endgroup$ Nov 13 '18 at 12:06
  • $\begingroup$ @MohamedAly You take a very large set of signals and you use them to find an optimal $\mathcal{A}$. You don't have to do this every time you capture a signal. This is done once and it is done "offline", in other words, not during the operation of the system that requires to reconstruct some $y$. This is #1. Every time you need to reconstruct a $y$, you use the pre-caculated $\mathcal{A}$ but you still have to solve the standard CS minimisation problem. This is #2. You cannot avoid #2 if you want to reconstruct $y$ from sparse $x$. $\endgroup$
    – A_A
    Nov 13 '18 at 15:25

Not the answer you're looking for? Browse other questions tagged or ask your own question.