[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: taps for a Raised Cosine function
From: |
Kristoff |
Subject: |
Re: taps for a Raised Cosine function |
Date: |
Tue, 10 Aug 2021 22:44:44 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 |
Hi Fabian,
Thanks, i'll try both options and compair them.
I remember from my books on DSP it is possible to combine multiple
consecutive FIT filters into one, so I did a little bit of more research
on this.
I found (*) that -as convolution as associative- this implies this:
(( f * h1) * h2) = f * (h1 * h2)
So I guess I just use firdes.root_raised_cosine to calculate the RRC and
then "numpy.convolute()" it with itself, I should get the RC.
Feel free to correct me if I am wrong. :-)
(*)
https://dsp.stackexchange.com/questions/20194/concept-of-combining-multiple-fir-filters-into-1-fir-filter
Kristoff
On 10.08.21 21:01, Fabian Schwartau wrote:
Hi Kristoff,
You can just put an additional RRC in front of it or you can calculate
the tabs by folding die tabs of the RRC with themself. There is
probably a numpy function to do that. Have not tested any of that, but
both ways should do the trick.
Fabian
Am 10. August 2021 20:44:05 MESZ schrieb Kristoff <kristoff@skypro.be>:
Hi all,
I am playing around with PSK demodulation, now doing a small project
trying to decode the slow-speed PSK data on the 198 KHz carrier of BBC
radio 4.
The specs are here:
http://downloads.bbc.co.uk/rd/pubs/reports/1984-19.pdf
<http://downloads.bbc.co.uk/rd/pubs/reports/1984-19.pdf>
According the document (page 2 of the document, page 8 of the PDF), the
system uses a shaping-filter of cos(pi * f * Td / 4).
(with Td = 50)
If I am correct, this is in fact a raised-cosine filter with beta = 1.
https://en.wikipedia.org/wiki/Raised-cosine_filter
<https://en.wikipedia.org/wiki/Raised-cosine_filter>
So the document seems to specify a raised-cosine filter, both on the
transmit and receive side; so not a ROOT raised-cosine as is used in
most PSK systems.
Question:|
How do I create the filter-taps for the Polyphase clock sync block for a
raised-cosine filter?
I found a function firdes.root_raised_cosine, but no firdes.raised_cosine?
Is there a way to easily convert the taps of a RRC filter to those of a
RC filter? (RC = RRC^2, so square the value of all taps?)
Any other ideas?
- put an additional RRC low-pass filter in front of the Polyphase
clock-sync block?
- use firdes.pm_remez() ?
Thanks in advance,
Kr.