Channel Model omits first 3 samples

Hi All,

I’ve been working on calculating BER for simulated transmitter/recieved
pair and have noticed that the channel_model eats the first 3 samples.
Thus to correctly align the data input and output from channel_model
(e.g.
for calculating BER), it is necessary to account for the 3-sample
offset.

Perhaps it would be worth adding a note to this effect to the
channel_model
documentation.

-Greg

On Tue, Jul 9, 2013 at 8:38 PM, Gregory W. [email protected] wrote:

-Greg
It’s not that the channel model 'eat’s 3 samples. This is group delay
of your filters that you’re seeing. The transmitter, receiver, and
channel model may all have filters in them and each has a group delay.
You always have to adjust for this. Not sure we can put it into the
documentation except to say that you need to calculate the total group
delay of your system if you want to align the data.

Tom

On Jul 10, 2013, at 4:47 AM, Tom R. [email protected] wrote:

-Greg

It’s not that the channel model 'eat’s 3 samples. This is group delay
of your filters that you’re seeing. The transmitter, receiver, and
channel model may all have filters in them and each has a group delay.
You always have to adjust for this. Not sure we can put it into the
documentation except to say that you need to calculate the total group
delay of your system if you want to align the data.

Thanks Tom,

Is there a straightforward way to calculate group delay for a flow
graph?

Alternatively, would it be straightforward to create a block that
annotates the data stream with a time index and another block that uses
this information to align streams?

-Greg

On Wed, Jul 10, 2013 at 8:42 AM, Gregory W. [email protected] wrote:

calculating BER), it is necessary to account for the 3-sample offset.
documentation except to say that you need to calculate the total group
delay of your system if you want to align the data.

Thanks Tom,

Is there a straightforward way to calculate group delay for a flow graph?

Alternatively, would it be straightforward to create a block that annotates the
data stream with a time index and another block that uses this information to
align streams?

-Greg

Greg,

Symmetric FIR filters have a known group delay of (N-1)/2. So what you
need to do is a) make sure all of your filters are symmetric FIRs (and
they probably are; firdes and optfir produce these types of filters)
and b) know all of the filters in the path, which includes the
transmit and receive pulse shaping filters and any filter in the
channel model (used to simulate multipath). You should be able to add
up the group delays of all filters to get your answer.

Tom

I have the same problem. I am using different channel models for
simulation and some samples either disappear or are incorrect. In your
answer, group delay = (N-1)/2, I assume that N is the number of taps of
the filter. So, how can I compensate this delay to obtain the correct
samples at the receiver?

Thanks so much

Hector

Tom R. wrote in post #1115636:

On Wed, Jul 10, 2013 at 8:42 AM, Gregory W. [email protected] wrote:

calculating BER), it is necessary to account for the 3-sample offset.
documentation except to say that you need to calculate the total group
delay of your system if you want to align the data.

Thanks Tom,

Is there a straightforward way to calculate group delay for a flow graph?

Alternatively, would it be straightforward to create a block that annotates the
data stream with a time index and another block that uses this
information to
align streams?

-Greg

Greg,

Symmetric FIR filters have a known group delay of (N-1)/2. So what you
need to do is a) make sure all of your filters are symmetric FIRs (and
they probably are; firdes and optfir produce these types of filters)
and b) know all of the filters in the path, which includes the
transmit and receive pulse shaping filters and any filter in the
channel model (used to simulate multipath). You should be able to add
up the group delays of all filters to get your answer.

Tom

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs