[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] Adjusting Sampling Frequency of Custom C++ Source Blo

From: Charles Bridger
Subject: [Discuss-gnuradio] Adjusting Sampling Frequency of Custom C++ Source Block Help
Date: Tue, 8 Dec 2015 15:45:53 +1300

I'm extremely new to this (gnuradio, usrp's, and radios in general) so I apologise if this question doesn't make sense or has obviously been answered else where ( I have up until now been trying to find answers without bothering anyone). 

I have written my own gnuradio block as a source, i'm trying to replicate the signal source waveform generator to get a grasp on how it is done. My problem is that I don't know how to implement the Sampling Frequency. When I looked at the source of the block I'm trying to replicate I noticed it used a variable called nco to step along the wave it generates.

Currently I for my work method of my source block I have:

float *out = (float *) output_items[0];

for (int i = 0; i < noutput_items; i++)
    d_count = d_count + 1;
    out[i] = d_Amplitude * sin(2 * 3.14159 * d_WaveFreq * d_Count/5000000.0);

This produces a Sine and lets me control the amplitude and wave frequency nicely, but the purely depends on how fast samples are produced.My question is, how do I do this "properly"? How do I limit the amount of items produces/ how often the sine wave is sampled? I don't understand how the nco class does it in the provided block so I'm hoping for some clarification.

I thought of checking the time that each sample was produced and comparing that to the previous one, having a variable controlling allowed time between the two or something like that, but it really comes down to me not really understanding how the items/samples are produced.

Any help would be greatly appreciated, even if it's just a URL pointing me in the right direction.


reply via email to

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