Hi,

I have a nagging doubt about how the channel model is implemented in

gnuradio. Suppose I have an input signal entering the channel model at

100,000 samples/sec. Let’s say the channel model has to add an offset of

1000Hz to the input signal. Then I must have 100,000 samples of a 1000Hz

SINE_WAVE signal and multiply each input sample with a corresponding

input

sample. Am I right? If I am right then i don’t see this happening here

with

the sampling rate given as 1 in the line below

d_freq_offset = gr_make_sig_source_c(1, GR_SIN_WAVE, frequency_offset,

1.0,

0.0);

If I am wrong then will someone please correct me here.

thank you very much

John

sorry guys my bad. The frequency_offset here is a ratio of the input

sampling frequency. I should be RTFMing more carefully.

Thanks

John

For some reason, the channel model’s frequency_offset is not in Hz.

Rather its a fraction of the sample rate. You should pass in

my_offset_in_hz/my_sample_rate to this parameter.

The signal source works like that. I suppose that means that the sample

rate and frequency are redundant because you really only care about the

ratio between them.

_josh

oh consistency…

But still there is a problem. 1000/100,000 = 0.01 so the channel_model

must

consume 100,000 samples coming into it to represent an offset of 1000Hz.

How, does it know how many samples to consume as the ratio can be the

same

for a different combination such as 100/10000.

If x(i) = sin(2*pi*freq_offset_ratio*i) , i must vary from

{1,sampling_rate}.

That ratio of frequency/sample_rate tells the signal source how much to

change the output per sample such that it will take 1.0/ratio samples to

make a complete sinusoid period or cycle.

Try this out in grc. Look at the signal source in the scope sink, and

then try it with 1.0 as the sample rate and freq/samp_rate as the

frequency. It will look the same.

-Josh

Yes, that is it. Thanks a lot for your help Josh.