Re: Adding signal
- From: "Fred Marshall" <fmarshallx@xxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 6 Mar 2007 16:52:32 -0800
<igor.escobar@xxxxxxxxx> wrote in message
news:1173189865.345232.115520@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
I am trying to find a way to mix two different signals which are
samples from the same process but at different frequencies. The first
(which I call low frequency) with a badwith from 5 up to 40 Hz, while
the second (high frequency) goes from 30 to 80 Hz.
I I 'naively' add to two signals, the output will bust the overlapping
frequencies and it is exactly that what I would like to avoid.
For now I am trying to have an estimation of the 'common' part to both
signals by deconvolvig each one by its autocorrelation and convolving
after by the crosscorrelation of the two. In the end I just add the
amplitude spectra of the common part, the residual for the low
frequency band, and those for the high frequency,... i.e., let's say:
Amplitude spectra of low frequency signal = A
Amplitude spectra of high frequency signal = B
Let's say C is the interception of A and B, so the residual for the
low and high frequency bands are
L = A - C
H = B - C
Now, the amplitude spectrum of the filters would be:
fA = cross-corr(A,B) / autocorr(A) = A*B / |B|^2
fB = cross-corr(A,B) / autocorr(B) = A*B / |A|^2
and we have:
CA = fA x A
CB = fB x B
And and estimation for L and H could be achieved by:
L = A - CA
H = B - CB
Hence the desired out put would be: U(A,B) = L + k*H + (CA + k*CB)/2
where a = CA/CB somehow homogeniezed the levels in the spectrum
I does work reasonably ok but I am using the phase of the 'naive' sum
to reconstruct the desired output... and I am not sure this is a
clever thing to do..... any suggestion, comment, or idea about what to
do with the phase? or indeed with the overall approach?
Cheers and Best regards
It seems to me that one of the issues will be how to align the two records
in phase. One thought in that regard would be to align them in the
overlapping region (where the signals are the same) and keeping the delays
constant (as you filter) before adding. Just *how* to do that is another
matter...
A naive approach (on my part) might do this:
Bandpass filter the 5-40 to get 30-40 content.
Bandpass filter the30-80 to get 30-40 content.
I'd use linear phase filters (constant delay) so that the delays of the
filters can be taken out in the end.
Then cross correlate the two aligned records to find the original delay
between the two.
Once the original delay between the two is known, apply a filter to each of
the original signals (with known delays introduced) and subsequently add the
filter outputs but with equal overall delays (i.e. by delaying one relative
to the other for alignment).
These filters will do what crossover networks do .. to some degree.
If you don't care about that phase business, then just add the two filtered,
cleverly overlapped, interim records.
Fred
.
- References:
- Adding signal
- From: igor . escobar
- Adding signal
- Prev by Date: Re: Output of variable known, impulse response is known, how to get input signal in matlab?
- Next by Date: Re: Output of variable known, impulse response is known, how to get input signal in matlab?
- Previous by thread: Re: Adding signal
- Next by thread: fftw_plan_dft_1d V.S. fftw_plan_dft_r2c_1d
- Index(es):
Relevant Pages
|