DSPRelated.com
Forums

Source separation problem.

Started by Alex August 4, 2009
Hi all,

I'm new in this newsgroup and I thank you in advance for your help.

My problem is the following. I have a couple of signals (X, Y) and I 
want to separate the two sources that compose it (X1,Y1) and (X2,Y2).

I know that (X1,Y1) has low frequencies from 0 to ~3500Hz and that 
(X2,Y2) has frequencies in between 3000Hz and 7000Hz.

I already tried filtering the original signals using Butterworth and 
Chebyshev filters which work quite well although the sources are not as 
clean as I expected. I guess because of the overlap of the two of them.

I know that the source (X1,Y1) has a curious property, the norm of 
every couple of values of this source is always 1, so X1 and Y1 are not 
independent.

My questions is the following. Is it possible to design a new filter 
that takes into account this curious property and separates the sources 
as a whole system where X and Y are not completely independent.

Thank you very much,

Alex

On 5 Aug, 00:58, Alex <alex.reche+comp....@gmail.com> wrote:
> Hi all, > > I'm new in this newsgroup and I thank you in advance for your help. > > My problem is the following. I have a couple of signals (X, Y) and I > want to separate the two sources that compose it (X1,Y1) and (X2,Y2). > > I know that (X1,Y1) has low frequencies from 0 to ~3500Hz and that > (X2,Y2) has frequencies in between 3000Hz and 7000Hz. > > I already tried filtering the original signals using Butterworth and > Chebyshev filters which work quite well although the sources are not as > clean as I expected. I guess because of the overlap of the two of them.
Probably.
> I know that the source (X1,Y1) has a curious property, the norm of > every couple of values of this source is always 1, so X1 and Y1 are not > independent. > > My questions is the following. Is it possible to design a new filter > that takes into account this curious property and separates the sources > as a whole system where X and Y are not completely independent.
There is far too little information here. What kinds of signals are these? What do you try to achieve? Why? Is there a real problem that the signals are not completely separated? Or is it just that the filtering did not work quite as well as you had hoped? There is no need to go on, if the present results are usable as is. Rune
On 2009-08-05 08:54:53 +0200, Rune Allnor <allnor@tele.ntnu.no> said:

> On 5 Aug, 00:58, Alex <alex.reche+comp....@gmail.com> wrote: >> Hi all, >> >> I'm new in this newsgroup and I thank you in advance for your help. >> >> My problem is the following. I have a couple of signals (X, Y) and I >> want to separate the two sources that compose it (X1,Y1) and (X2,Y2). >> >> I know that (X1,Y1) has low frequencies from 0 to ~3500Hz and that >> (X2,Y2) has frequencies in between 3000Hz and 7000Hz. >> >> I already tried filtering the original signals using Butterworth and >> Chebyshev filters which work quite well although the sources are not as >> clean as I expected. I guess because of the overlap of the two of them. > > Probably. > >> I know that the source (X1,Y1) has a curious property, the norm of >> every couple of values of this source is always 1, so X1 and Y1 are not >> independent. >> >> My questions is the following. Is it possible to design a new filter >> that takes into account this curious property and separates the sources >> as a whole system where X and Y are not completely independent. > > There is far too little information here. What kinds > of signals are these? What do you try to achieve? > Why? Is there a real problem that the signals are not > completely separated? Or is it just that the filtering > did not work quite as well as you had hoped? There is no > need to go on, if the present results are usable as is. > > Rune
Thanks for the answer Rune. What kind of signal are these? Here is some extra information: All my signals are a 40kHz. X, Y, X2 and Y2 have values that can go from -inf to +inf. X1 and Y1 have values that can go from -1 to +1 and each couple of values x1,y1 have this property: sqrt(x1*x1+y1*y1) = 1. What do you try to achieve? I want to completelly separate the signal to find the two original sources. Why? Because I need the two original sources. :-D Is there a real problem that the signals are not completely separated? Actually yes, today the separated signals are not usable, that's why I'm looking for a better filtering process... a process that takes into account the knowledge I have about one of the resulting source's signal. Alex
On 5 Aug, 09:34, Alex wrote:
> On 2009-08-05 08:54:53 +0200, Rune Allnor <all...@tele.ntnu.no> said: > > > > > > > On 5 Aug, 00:58, Alex <alex.reche+comp....@gmail.com> wrote: > >> Hi all, > > >> I'm new in this newsgroup and I thank you in advance for your help. > > >> My problem is the following. I have a couple of signals (X, Y) and I > >> want to separate the two sources that compose it (X1,Y1) and (X2,Y2). > > >> I know that (X1,Y1) has low frequencies from 0 to ~3500Hz and that > >> (X2,Y2) has frequencies in between 3000Hz and 7000Hz. > > >> I already tried filtering the original signals using Butterworth and > >> Chebyshev filters which work quite well although the sources are not as > >> clean as I expected. I guess because of the overlap of the two of them. > > > Probably. > > >> I know that the source (X1,Y1) has a curious property, the norm of > >> every couple of values of this source is always 1, so X1 and Y1 are not > >> independent. > > >> My questions is the following. Is it possible to design a new filter > >> that takes into account this curious property and separates the sources > >> as a whole system where X and Y are not completely independent. > > > There is far too little information here. What kinds > > of signals are these? What do you try to achieve? > > Why? Is there a real problem that the signals are not > > completely separated? Or is it just that the filtering > > did not work quite as well as you had hoped? There is no > > need to go on, if the present results are usable as is. > > > Rune > > Thanks for the answer Rune. > > What kind of signal are these? Here is some extra information: > > All my signals are a 40kHz. > X, Y, X2 and Y2 have values that can go from -inf to +inf. > X1 and Y1 have values that can go from -1 to +1 and each couple of > values x1,y1 have this property: > sqrt(x1*x1+y1*y1) = 1. > > What do you try to achieve? I want to completelly separate the signal > to find the two original sources. > > Why? Because I need the two original sources. :-D > > Is there a real problem that the signals are not completely separated? > Actually yes, today the separated signals are not usable, that's why > I'm looking for a better filtering process... a process that takes into > account the knowledge I have about one of the resulting source's signal.
This is bullshit, as pure and as piled as I've ever seen it. Everybody *want* perfect results. No one ever gets them. That's life. If you want any help here at all, explain *exactly* what it is you are up to: - Are these signals measurements or simulations? - What kinds of systems generate them? - What do you want to achieve by doing the analysis? - Why aren't your present results good enough? So instead of naging about hwat you *want*, come up with *substantiated* *specifics* about what you have tried and why the results aren't useful. Rune
Alex wrote:

   ...

> What kind of signal are these? Here is some extra information: > > All my signals are a 40kHz. > X, Y, X2 and Y2 have values that can go from -inf to +inf.
Ah! I see the problem! How are these limits represented in your data? Can you distinguish between inf and inf/2? Get real. ... Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
On 2009-08-05 13:56:15 +0200, Jerry Avins <jya@ieee.org> said:

> Alex wrote: > > ... > >> What kind of signal are these? Here is some extra information: >> >> All my signals are a 40kHz. >> X, Y, X2 and Y2 have values that can go from -inf to +inf. > > Ah! I see the problem! How are these limits represented in your data? > Can you distinguish between inf and inf/2? > > Get real. > > ... > > Jerry
+inf and -inf was only a way of speaking to say that the signals are not feeted in a range. The signal is comming in real time from a sensor that could give really high values, but in practice it rarelly go over +10 and -10. That helps? I just want to know if there are any techniques to filter a signal using knowledge of the original sources, other than a range of frequencies. I have a very strong condition for the output signal and the dependency of X and Y and I know I could have a better result if my filter could take it into account. I'm not asking for a solution, but for some tips about where to look. Alex
Alex wrote:
> On 2009-08-05 13:56:15 +0200, Jerry Avins <jya@ieee.org> said: > >> Alex wrote: >> >> ... >> >>> What kind of signal are these? Here is some extra information: >>> >>> All my signals are a 40kHz. >>> X, Y, X2 and Y2 have values that can go from -inf to +inf. >> >> Ah! I see the problem! How are these limits represented in your data? >> Can you distinguish between inf and inf/2? >> >> Get real. >> >> ... >> >> Jerry > > +inf and -inf was only a way of speaking to say that the signals are not > feeted in a range.
"Feeted"? I can't decode that.
> The signal is comming in real time from a sensor that could give really > high values, but in practice it rarelly go over +10 and -10. > > That helps?
It helps to know that when you write one thing, you might well mean another. All sensors have bounded outputs.
> I just want to know if there are any techniques to filter a signal using > knowledge of the original sources, other than a range of frequencies.
I'm sure there are, but those methods must be specific to characteristics of the signal that you haven't yet made clear. What do you mean by "the norm of every couple of values"? That condition appears to apply to the sources conjointly. How so?
> I have a very strong condition for the output signal and the dependency > of X and Y and I know I could have a better result if my filter could > take it into account.
> I'm not asking for a solution, but for some tips about where to look.
You haven't given enough specifics about what the situation really is. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
On 2009-08-05 15:33:29 +0200, Jerry Avins <jya@ieee.org> said:

> Alex wrote: >> On 2009-08-05 13:56:15 +0200, Jerry Avins <jya@ieee.org> said: >> >>> Alex wrote: >>> >>> ... >>> >>>> What kind of signal are these? Here is some extra information: >>>> >>>> All my signals are a 40kHz. >>>> X, Y, X2 and Y2 have values that can go from -inf to +inf. >>> >>> Ah! I see the problem! How are these limits represented in your data? >>> Can you distinguish between inf and inf/2? >>> >>> Get real. >>> >>> ... >>> >>> Jerry >> >> +inf and -inf was only a way of speaking to say that the signals are >> not feeted in a range. > > "Feeted"? I can't decode that.
I meant fitted... sorry for that. :-)
> >> The signal is comming in real time from a sensor that could give really >> high values, but in practice it rarelly go over +10 and -10. >> >> That helps? > > It helps to know that when you write one thing, you might well mean > another. All sensors have bounded outputs. > >> I just want to know if there are any techniques to filter a signal >> using knowledge of the original sources, other than a range of >> frequencies. > > I'm sure there are, but those methods must be specific to > characteristics of the signal that you haven't yet made clear. What do > you mean by "the norm of every couple of values"? That condition > appears to apply to the sources conjointly. How so?
What I mean by "the norm of every couple of values" is that: X1 and Y1 are a the couple of source signals I'm mainly looking for. After the source separation X1 is a series of values {x11, x12, x13, etc... } and Y1 is another series of values {y11, y12, y13, etc... } If we take a sample of X1 and another of Y1 at the same time, lets say x13 and y13, these two values represent a vector (x13,y13) whose norm is 1. In other words: SquareRoot(x13 * x13 + y13 * y13) = 1 That also means that we can find the ideal value of x13 using a suposed rigth y13 in this way: x13 = SquareRoot(1 - y13*y13) and vice versa.
> >> I have a very strong condition for the output signal and the dependency >> of X and Y and I know I could have a better result if my filter could >> take it into account. > > >> I'm not asking for a solution, but for some tips about where to look. > > You haven't given enough specifics about what the situation really is.
What else I can say? All the signals are 1D, the sensor gives float values but I do not know the precision of each sample. I'm a PhD in Computer Graphics, but just a beginner in DSP, so please tell me what else you will need to know and I'll do my best to be specific considering that I cannot talk a lot about the device I'm using. :-/
> > Jerry
In any case, thaks a lot for your help. Alex
On 5 Aug, 16:23, Alex wrote:

> I'm a PhD in Computer Graphics, but just a beginner in DSP, so please > tell me what else you will need to know and I'll do my best to be > specific considering that I cannot talk a lot about the device I'm > using. :-/
Then talk with your boss. If you can't say more than this, there nothing anybody outside your project can help you with. Rune
Rune Allnor wrote:
> On 5 Aug, 16:23, Alex wrote: > >> I'm a PhD in Computer Graphics, but just a beginner in DSP, so please >> tell me what else you will need to know and I'll do my best to be >> specific considering that I cannot talk a lot about the device I'm >> using. :-/ > > Then talk with your boss. If you can't say more > than this, there nothing anybody outside your > project can help you with.
There's a lot that hasn't made sense here. Since this is about *D*SP, the signals are sampled and digitized. For our purposes, they don't exist between samples. The sources are combined in the sampling. There is no need to separate them otherwise. You wrote "SquareRoot(x13 * x13 + y13 * y13) = 1". It follows that (x13 * x13 + y13 * y13) = 1. (1^2 = 1) Since each collected sample is the sum of x[n] and y[n], are all samples uniformly unity? That is what you wrote, but you also wrote that x and y have different dominant frequencies, so it seems unlikely. I conclude once again that you write one thing and intend another. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;