# Extracting filter coefficients from raised-cosine frequency response

The frequency response of filter transfer function is given as

$$H(j\omega)= \begin{cases} 0 &, \textrm{if }\quad (1+r)\frac{\pi}{2} < \lvert \omega \rvert < \pi \\ 1 + \cos \left ( \frac{\pi}{2r}\left ( \frac{\lvert 2\omega \rvert}{\pi} + r-1 \right ) \right ) &, \textrm{if }\quad (1-r)\frac{\pi}{2} < \lvert \omega \rvert\leq (1+r)\frac{\pi}{2}\\ 2&, \textrm{if }\quad \lvert \omega \rvert\leq (1-r)\frac{\pi}{2} \end{cases}$$

where $r = 0.1$. I need to extract filter coefficients for the given FIR filter response or order $24$. How can I perform the task using MATLAB?

This is a well-known filter: it's called raised cosine filter. The best strategy is to explicitly compute the inverse Fourier transform of the given frequency response. The corresponding result can be found in the wikipedia article linked to above, and it's also given in this article, which has some additional information on pulse-shaping filters.

Since the corresponding impulse response is of infinite length, you need to truncate it symmetrically. Since the given filter order is $24$, you have 25 filter taps (assuming a common FIR solution). This means one tap at $n=0$, and $12$ taps for $n>0$ and $n<0$, respectively. For truncating the ideal impulse response, you can use any type of window. The most straightforward way is simple truncation, i.e., using a rectangular window.

You can use Matlab to evaluate the formula for the filter's impulse response, and for applying a window.

• Thank you for the reply. The filter is not a root raised cosine filter. Its frequency response is slightly different. It is actually a prefilter derived from rrc filter used for symbol timing synchronization for reducing self-noise. Jun 6, 2016 at 11:37
• @avi1987: It's indeed no root raised cosine filter, but it is a raised cosine filter. Jun 6, 2016 at 12:56