The BLK_CON function computes a "fast convolution" of a digital signal and an impulse-response sequence. It returns the filtered signal.

This routine is written in the IDL language. Its source code can be found in the file ```
blk_con.pro
```

in the ```
lib
```

subdirectory of the IDL distribution.

A scalar specifying the *
block length*
of the subdivided signal segments. If this parameter is not specified, a near-optimal value is chosen by the algorithm based upon the length *
P*
of the impulse-response sequence. If *
P*
is a value less than 11 or greater than 377, then B_LENGTH must be specified.

B_LENGTH must be greater than the filter length, *
P*
, and less than the number of signal samples.

Create a filter of length *
P*
= 32:

filter = REPLICATE(1.0,32) *;
Set all points to 1.0*

filter(2*INDGEN(16)) = 0.5 *;
Set even points to 0.5*

Create a sampled signal with random noise:

signal = SIN((FINDGEN(1000)/35.0)^2.5)

noise = (RANDOMU(SEED,1000)-.5)/2.