Raised Cosine Filters


Introduction

A raised cosine filter is a low-pass filter which is commonly used for pulse shaping in data transmission systems (e.g. modems). The frequency response |H(f)| of a perfect raised cosine filter is symmetrical about 0 Hz, and is divided into three parts (just like Gallia): it is flat (constant) in the pass-band; it sinks in a graceful cosine curve to zero through the transition region; and it is zero outside the pass-band. The response of a real filter is an approximation to this behaviour.

The equations which defined the filter contain a parameter ``beta'', which is known as the roll-off factor or the excess bandwidth. ``beta'' lies between 0 and 1.

I'd like to show you the equations which define the frequency-domain and time-domain response, but HTML is not up to it. If you can view PostScript, you can see the equations here, or consult Proakis.

Design

The filter is designed as a finite-impulse-response (FIR) filter. You specify the length of the impulse response; that is equal to the number (n, say) of x coefficients in the ``C'' code. The filter will have: Here we go:


We need to know the sample rate (in samples per second).
Sample rate:

Enter corner frequency ``alpha'', in Hz. This is the frequency at which the response is 0.5 = -6 dB (unless you select ``square root'' below, in which case it's -3 dB). In a pulse-shaping application, ``alpha'' is half the baud rate.
Corner frequency:

Enter the value of ``beta'', in the range 0 to 1:

Enter the length of the finite-impulse response, in samples. A suggested starting value is

The larger the value, the more accurate the filter, but the slower its execution.
Impulse length:

Submit form:

Reset form:


This generator and webinterface was originally developed by:
Tony Fisher / fisher@minster.york.ac.uk