Signal-to-Noise Ratio (SNR) needed to discern two superimposed signals

Say I am trying to measure a exponentially decaying signal ($S_y$), that constitutes a portion $\gamma$ (about 5% so $\gamma=\frac{1}{20}$) of total signal measured($S=S_y+S_b$ and $S_b=S_0 \beta e^{\frac{-t}{C_b}}$ and $S_y=S_0 \gamma e^{\frac{-t}{C_y}}$). Where $\gamma+\beta=1$ and $C_Y$ is about $\frac{1}{4}$ of $C_b$. I want to determine the least Signal-to-Noise Ratio (SNR) needed to be able to discern that signal. The noise in our signal is additive white noise. Should the SNR be $>\gamma=\frac{1}{20}$ or is there a better more formal way to decide the SNR limit? $$S(t)=S_0(\gamma e^{\frac{-t}{C_y}}+\beta e^{\frac{-t}{C_b}}) + n(t)$$

So my question is how do I determine the minimal SNR when I measure signal $S$ over time $t$, but the thing I am interested in is fluctuation (max 10%) in $S_y$. All constants are known to me, however i only know the mean of $C_y$, as it fluctuates and so $S_y$ does too. Thanks for any help. If I need to clarify any details please tell me and I will do so.

• Do you know anything about the noise in your signal? Is it Gaussian? White? Additive? Multiplicative? Aug 20 '13 at 13:05
• Do you mean: $S(t)=S_0(\frac{1}{20}e^{\frac{-t}{C_y}} + \frac{19}{20}e^{\frac{-t}{C_x}})$ (i.e. $+$ rather than multiply) ?
– Peter K.
Aug 20 '13 at 21:04
• @Jason: Its white noise
– Leo
Aug 21 '13 at 8:06
• @Peter: Indeed you are right, I meant +. I will correct my original post for both Peters and Jasons comments. thanks
– Leo
Aug 21 '13 at 8:07
• I am trying to measure $S_y$ which is $\frac{1}{20}$ of the signal. I measure signal $S$ over time $t$ and all constants are known to me. However I need to be able to measure fluctuations in $S_y$ so my SNR needs to be low enough. My question is how to determine the appropriate SNR to be able to measure differences in $S_y$, which constitutes 5% of $S$. A rough estimate of fluctuation in $S_y$ is about 10%.
– Leo
Aug 21 '13 at 13:38

First, I'm assuming that you know the magnitudes of your decaying exponentials, but you don't know their time constants (either $C_x$ or $C_y$) or your signal level $S_0$.

Second, you say that there is Gaussian noise, but not whether it's additive. I'm going to assume it's additive. That means your signal is really:

$$S(t)=S_0(\frac{1}{20}e^{\frac{-t}{C_y}}+\frac{19}{20}e^{\frac{-t}{C_x}}) + n(t)$$

where $n(t)$ is additive, white, Gaussian noise with zero mean and variance $\sigma^2$.

Then, to set up the problem, we need to postulate the estimated values of $\hat{C}_x$, $\hat{C}_y$, $\hat{S}_0$, and $\sigma^2$ in $\hat{S}(t)$:

$$\hat{S}(t; \hat{C}_x, \hat{C}_y, \hat{S}_0)=\hat{S}_0(\frac{1}{20}e^{\frac{-t}{\hat{C}_y}}+\frac{19}{20}e^{\frac{-t}{\hat{C}_x}})$$

Then a least squares approach to solving it would define the error, $E$, as:

$$E(\hat{C}_x, \hat{C}_y, \hat{S}_0) = \int_{I} \left| S(t) - \hat{S(t)}\right|^2 dt$$

where $I$ is your time interval of interest, and minimize this with respect to $\hat{C}_x$, $\hat{C}_y$, and $\hat{S}_0$.

I interpret your question as asking: what value $\frac{S_0^2}{\sigma^2}$ does this work over?

The answer is: it depends on what you mean by "work". You can get an estimate for any noise level. The question is, what error can you tolerate in that estimate. Also, it will depend somewhat on your integration length ($I$).

EDIT

OK, I see you've changed notation so it's $C_b$ and $C_y$ now.

I've written a short scilab script to try to see how things change with noise level. I've assumed EVERYTHING is precisely known except the $C_y$ parameter.

The error in estimating the parameter versus the value of $\sigma$ is shown in the plot below. Code below generates it.

 S0 = 1;
Cb = 201;
Cy = 100;
sigma = 0.1;
mb = 1/20;
my = 19/20;

T=1000;
t=[0:T-1];
Sb = mb*exp(-t/Cb);
Sy = my*exp(-t/Cy);

clf
subplot(311)
plot(Sb)
plot(Sy,'g')
plot(S,'r')

ERRORS = [];
sigmaRange = [0.0 0.1 0.2 0.5 1 2 5 10];
for sigma=sigmaRange,
CyhatRange = 90:.01:110;
estimates=[]
NRuns = 100;
for n=1:NRuns
S = S0*(Sb + Sy) + sigma*rand(1,T,'normal');

ERR= [];
for Cyhat = CyhatRange,
S_hat = S0*(Sb + my*exp(-t/Cyhat))

ERR = [ERR; sum((S-S_hat).^2)];
end

[mx,ix] = min(ERR);

CyhatEst = CyhatRange(ix);
//disp(CyhatEst);
estimates = [estimates; CyhatEst];

subplot(312);
plot(CyhatRange,ERR)
end

disp(mean((estimates-Cy).^2))

ERRORS = [ERRORS; mean((estimates-Cy).^2)];
end

subplot(313)
plot(sigmaRange,ERRORS);

• Thanks for your help. Your assumptions on the noise are correct. I will add it to the post.
– Leo
Aug 21 '13 at 15:20
• Yes sorry I added $\gamma$ and $\beta$ to make the question more generic, so I changed $C_x$ to $C_b$ to make it more readable. Wow thanks for your help. Your assumption about the parameters being known is correct. Now for how to use this: I should determine the tolerable error for my measurement and then use your explanation to decide on the SNR?
– Leo
Aug 23 '13 at 9:39
• Well, based on the plot, it looks like you need to have $\sigma$ less than $1$ for $S_0 = 1$. The error really gets big after that, and "saturates".
– Peter K.
Aug 23 '13 at 12:14