|
From: | Nowlan, Sean |
Subject: | [Discuss-gnuradio] raised cosine filter taps implementation |
Date: | Sun, 13 Nov 2011 23:56:41 +0000 |
I want to add a raised cosine filter to gr_firdes.* in gnuradio/gnuradio-core/src/lib/general/. I see there's already a root-raised cosine there. After looking through a few sources,
I have the following time-domain response of an RC filter:
h(t) = [sin(pi * t / T_s) / (pi * t / T_s)] / [cos(pi * alpha * t / T_s) / (1 - (2 * alpha * t / T_s )^2 )] As far as I can tell, I should be able to compute the taps using: for n = -FLOOR(ntaps/2) to FLOOR(ntaps/2), do h(n) = [sin(pi * n) / (pi * n)] / [cos(pi * alpha * n) / (1 - (2 * alpha * n)^2 )] end_for The things I'll have to worry about: 1) if n is 0: h(n) = 1 2) if n is +/- 1/(2 * alpha): h(n) = (1 / (8 * alpha) ) * sin(pi / (2 * alpha) ) #I think I did this right... 3) rounding errors: not sure what to do here given we're operating with floats. Any tips/suggestions? Thanks, Sean |
[Prev in Thread] | Current Thread | [Next in Thread] |