# How to design a continuously time-variant digital filter?

I have discrete time series containing signal with smoothly varied frequency over time (called a "sweep"). How can I design a discrete filter (low-pass or band-pass in my case) of a finite length with linearly varying cut-frequency over time and constant cut-slope?

EDIT: the signal is the sampled "trace" of the seismic source - a seismic vibrator, which sends the vibrations of the slowly varying frequency down the earth. The dependency of the frequency over time (the sweep) is known (let it be linear, $f(t)=f_1*(1-t)+f_2*t)$, but there is a problem that there might be another vibrators that operate on their own, and the task is to "band-guard" the trace of this vibrator avoiding the unwanted signals from other ones.

• Do you want a time-varying filter? Why? What do plan on doing with the output of such a filter? If you provide some more information as to what you want to achieve instead of just laying down requirements for a filter that you think meets your needs, people here might be able to suggest something more realizable than the filter you seek in your "ask". Jan 4, 2012 at 13:17
• In addition to what Dilip said above, what is the signal component? Sinusoidal? Or is it a modulated signal whose carrier frequency slews over time? Jan 4, 2012 at 13:49
• I've added some info in the original question Jan 4, 2012 at 14:12
• What are you trying to get out of this filter? Wouldn't there be multiple echos at different delays? Jan 4, 2012 at 15:21
• @endolith: I'd like to remove the neighboring vibrators' signal from the trace of the current one. What kind of echoes do you mean? Subsurface layers' reflections do exist, but that's not the problem at the moment (since it is the target of the vibro-acquisition). I just want to ensure that since the current vibrator emits frequency fi(ti) at the moment ti, there can be no frequencies above fi(ti) on the registered trace at time ti. That's why I want to design a low-pass filter with constantly varying edge fi. Jan 4, 2012 at 17:12

One approach would be to try to remove the frequency chirp from the observed data, thus translating all of the echoes to approximately baseband. I find this to be most straightforward by converting the observation to an analytic signal, then multiplying by a complex exponential whose instantaneous frequency is equal to $-1$ times the frequency chirp profile (while keeping its phase continuous). After dechirping the received data, you could then apply a lowpass filter to suppress any other sources that don't overlap in frequency with your chirp profile. If your followon analysis methods need to see the frequency ramp, you could reapply the chirp again by multiplying with another complex exponential.

The passband width of the lowpass filter defines how tightly around the transmitted tone that you reject other frequency components. The width of the passband would also need to be selected while taking the expected two-way propagation time of the transmitted signal; at time $t$, assuming a low-to-high frequency chirp, you might be transmitting frequency $f_t = f_c + \Delta f$, while the receiver is observing a delayed version of what you transmitted some time ago, for instance $f_r = f_c$. Your lowpass filter must have enough frequency coverage to cover the frequency slew of your chirp profile over the expected range of time delays. At the same time, though, you have an incentive to make the passband width as narrow as possible to reject other signal sources that are nearby your chirp profile in frequency, so as so often occurs in engineering, you have a tradeoff to examine.

• This looks like what I need, but I just need to know what the dechirping is? Is this the conversion of a varying-tone signal into mono-tonic? Jan 4, 2012 at 17:14
• OMG! It seems that chirp is the synonym to sweep! Jan 4, 2012 at 17:55

A similar (or that same ?) technique that Jason describes is known as Time Delay Spectrometry, based on the original work of Richard Heyser. It was also the rage in acoustic measurements for a while and the AES published actually an anthology on it: http://www.aes.org/publications/anthologies/

The basic idea is to measure by exciting with a complex sweep and use matching tracking filters (downmix and lowpass) to get the real and imaginary parts of the transfer function. Under certain circumstances this can be replaced with a single sweep.

The problem is that the relationships between frequency resolution, time resolution, sweep rate, low pass filter bandwidth, steepness, and phase response are very complicated and it's quite easy to end up with time domain or frequency domain aliasing or simply smearing. It's also quite sensitive to small non-linearites and to small time variances, especially if they are sinusoidal (e.g. a microphone vibrating on a mic stand).

There are definitely more robust methods to measure transfer functions.