[Top][All Lists]

[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: Wed, 11 Aug 2021 01:35:00 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

Hi gary, Fabian, all,

Small note:

The first tests seems to indicate the the rrc-filter works! Yes!

- I can decode large chunks of data with valid Manchester-encoding. However, from time to time, I do get large blocks of data (10 to 20 seconds) with errors. - Changing the value of alpha does not appears to have that much of an influence.

I'll record a large audio-file of a couple of hours and so that I can do a multiple tests all based on the same "reference" signal before making a final statement about this.

I did notice that the costas-loop (in front of the polyphase clock-sync) acts strange.

In this system, the phase-shift of the carrier is not shifted 180 degrees (as most PSK systems) but only 45 degrees (i.e., +- 22.5 degrees compared a central reference). It looks like the costas-loops has issues with that. Sometimes, the points on the constellation-plot are on the right side of the graph (i.e. above and below 0 degrees); and somethings they hover above and below the 180 degrees point (on left side of the constellation graph).
And this changes randomly.

I also have the impression that the polyphase clock-sync block is able to do a better job when the constellation-points are around 180 degrees then when they hover around 0 degrees as I see a lot more biterrors when the points on the constellation-graph are on the right side of the graph.

I think we've got some more experimentation to do! :-)

Thanks for the help!


On 10.08.21 22:36, Gary Schafer wrote:

That pulse shaping is *identical* to that for a RDS signal. I'm able to demodulate the RBDS signal using a RRC filter in a "Polyphase Clock Sync" block. Adjusting the parameters from the RDS signal to that of your BBC signal (1187.5 Hz bit rate to 25 Hz bit rate), you'd get the following parameters for the various blocks:

Polyphase Clock Sync:
Samples/symbol: 50
Loop bandwidth: 2*pi/100
Taps: rrc_taps_rx
Filter size: 50
Initial phase: 1
Maximum rate deviation: 1.5
Output SPS: 1

RRC Filter Taps:
Id: rrc_taps_rx
Gain: 1
Sample rate: 1250
Symbol rate: 25
Excess BW: 0.35
Num Taps: 550

At the very least, if my hypothesis is correct, that *should* get you a constellation that is roughly a donut (as opposed to a big ball of dots).

Hope this helps.



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:

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.

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.


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,


reply via email to

[Prev in Thread] Current Thread [Next in Thread]