I have a signal as the below figure. I am looking for some schemes to approximate the signal. I have found some ways for that task:

  1. Using basis function (polynomial) to approximate the signal
  2. Divide the signal to many subrange, and assume that the signal in the range is constant.

Could you suggest to me the other way to approximate the signal? Thanks

enter image description here

  • $\begingroup$ Why do you want to approximate the signal? And what features do you need to preserve? $\endgroup$ – Jazzmaniac Dec 20 '15 at 13:15
  • $\begingroup$ The signal drawn from image intensity which contains bias. I want to remove bias, so I need to approximate it. I want to preserve edge feature $\endgroup$ – user3051460 Dec 20 '15 at 14:10
  • $\begingroup$ it seems to me that you want to model the signal rather than approximate it. Eventhough one of their end results will be the same (such as producing an approximation of the signal waveform), they have quite different approaches to get that result. Therefore you need to find a "model" that produces a best approximation of the waveform as an AC + DC term... $\endgroup$ – Fat32 Dec 20 '15 at 19:23
  • $\begingroup$ Right, Could you suggest to me for that task? $\endgroup$ – user3051460 Dec 21 '15 at 0:55
  • $\begingroup$ If you are interested in just removing the bias, and you could assume the bias is fixed for wide range of samples than: you could do an FFT, delete the 0 frequency term and do an inverse FFT. $\endgroup$ – Moti Dec 21 '15 at 1:48

Assuming you want to remove the DC bias from your signal, a few thoughts come to mind. Your signal sequence looks like a noisy periodic wave riding on a DC bias. And the bias is trending upward in value from the beginning to the end of your sequence. Computing the average value of your signal sequence, a single value, and subtracting that value from your sequence will produce a sequence whose average value is very close to zero. But the upward bias trend will remain in your new sequence.

A process called "DC blocking" will remove both the average bias and the upward bias trend from your signal. If you have Matlab software, then use Matlab's detrend() command to implement DC blocking. If you don't have Matlab available then have a look at the following DC blocking networks (copied from Chapter 13 of my DSP book).

enter image description here

Other than different DC gains those above networks have the same frequency response. (Variable $\alpha$ is in the range of just greater than zero -to- one.) Note, those networks have very nonlinear phase response near zero Hz. If linear phase DC blocking is what you want then have a look at: http://www.dsprelated.com/showarticle/58.php


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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