2
$\begingroup$

I need to append (not add) a bandlimited signal F(b) to a bandlimited signal F(a) and keep the result bandlimited without modifying the part that corresponds to F(a).

Both are bandlimited to the same frequency (for example to 1/4 the Nyquist frequency). If F(a) is 100 samples long and F(b) is 100 samples long, the result F(c) is 200 samples in length and the first 100 samples of F(c) are identical to F(a).

An obvious "solution" is to filter the boundary so that the discontinuity can be made bandlimited, but in this case, I am restricted from modifying the samples in F(a).

How can I filter (or manipulate) F(b) such that the result of appending the two signals is also bandlimited to the same frequency and preserves the integrity of F(b) as much as possible?

Edit: For context, here's the problem I'm trying to solve. I am performing procedural terrain generation using 2D heightmaps and need to add a tile of terrain to a pre-existing landscape that may or may not have been procedurally generated. I'm looking for an algorithm that will "smooth" the borders of the tiles so that the tile boundaries are not noticeable.

$\endgroup$
  • 2
    $\begingroup$ It is not clear what you mean. Bandlimited signal is infinite in time domain. See for example - en.wikipedia.org/wiki/… $\endgroup$ – SergV Oct 7 '13 at 7:37
  • $\begingroup$ Hi SergV - I mean bandlimited in the practical rather than the theoretical sense. In other words, the signals can be thought of as sampled signals that have been passed through a low-pass filter. $\endgroup$ – Ting Oct 7 '13 at 17:57
  • $\begingroup$ I think it's better if you explain what problem you want to solve. If you work with music signals then answer of Hilmar is OK. About theory and practice. Theory say that bandlimited signal is infinite in time and you have a big problem in practice when trying to merge 2 such signals. $\endgroup$ – SergV Oct 8 '13 at 2:33
  • $\begingroup$ Thanks for the feedback. I've edited the question to provide more context. $\endgroup$ – Ting Oct 9 '13 at 4:11
3
$\begingroup$

That's a tricky problem. First you will need to define how to design "integrity". What do you value more: time domain shape, spectrum, phase, envelope, short term Fourier spectrum envelope, etc. You will probably have to trade between those, so prioritizing would be helpful.

In general this is done bu doing "cross fades", i.e. you overlap the two signals for a small time period and then you fade out F(a) while at the same time fading in F(b). The time and shape of the fade can be controlled to satisfy the limited bandwidth requirement.

However, it seems you can't do this, since you can't modify F(a) at all. One potential work around would be to either extrapolate F(a) or use a circular repetition of F(a) to create enough data for a cross fade. This depends on the exact properties of F(a)

$\endgroup$
  • $\begingroup$ Thanks for the suggestions, Hilmar. I am primarily interested in avoiding a sharp time domain transition at the boundary. I can be somewhat flexible on the spectral characteristics, but I need to preserve the phase so I cannot translate either signal to provide more room for a transition. $\endgroup$ – Ting Oct 7 '13 at 17:47

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.