[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss-gnuradio] gnuradio c++ code structure question
From: |
mehmet kabasakal |
Subject: |
[Discuss-gnuradio] gnuradio c++ code structure question |
Date: |
Mon, 7 Mar 2011 15:56:04 +0200 |
Hi everyone,
I am trying to develop a frame based structure for gnuradio block on c++.
The frame size will be 2048 point and i will calculate the normalized
amplitude for every frame i.e.
ma = sum(every 2048 points)/2048;
normalized amplitude = all 2048 points / ma;
i wrote a code that gives me the desired result under "work" function;
int
gr_gama_maks_ff::work (int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
const float *in = (const float *) input_items[0];
float *out = (float *) output_items[0];
float ma = 0.0;
float acn[noutput_items], an[noutput_items];
int C = 2048;
int a = 0;
int count = 0;
for (int i = 0; i < noutput_items; i++){
ma = 0.0;
for (int m = a*C; m < a*C+C ; m++) {
ma += in[m]/C;
}
an[i] = in[i]/ma;
acn[i] = an[i]-1;
out[i] = acn[i]*d_k;
if ((i+1) % C == 0) {
a = a + 1;
}
}
As you see i didn't keep a 2048 point array, i just find the sum of
2048 points and then use it for the output (an[i]= in[i]/ma). But i
couldn't figure out how this happens. I mean the while index "i = 1"
in the first for loop, i can reach the i+2047th sample in the second
for loop.
Is there a buffer for every block in gnuradio. If yes what is the size
of the buffer?
I hope i would explain it clear.
Mehmet.
- [Discuss-gnuradio] gnuradio c++ code structure question,
mehmet kabasakal <=