- added peak tags

git-svn-id: http://moon:8086/svn/software/trunk/projects/GnuRadio@453 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2019-05-24 16:24:01 +00:00
parent e79f780754
commit c3451c5f5b
2 changed files with 21 additions and 8 deletions
+19 -7
View File
@@ -53,7 +53,10 @@ namespace gr {
memset(m_pPeak, 0, vlen*sizeof(int)); memset(m_pPeak, 0, vlen*sizeof(int));
memset(m_pXs, 0, vlen*sizeof(float)); memset(m_pXs, 0, vlen*sizeof(float));
memset(m_pXm, 0, vlen*sizeof(float)); memset(m_pXm, 0, vlen*sizeof(float));
std::stringstream str;
str << name() << unique_id();
m_tag_id = pmt::string_to_symbol(str.str());
} }
/* /*
@@ -91,11 +94,6 @@ namespace gr {
{ {
int nitems_per_block = this->output_signature()->sizeof_stream_item(0)/sizeof(float); int nitems_per_block = this->output_signature()->sizeof_stream_item(0)/sizeof(float);
fprintf(stderr, "Hallo\n");
fprintf(stderr, "noutput_items = %u\n", (int)noutput_items);
fprintf(stderr, "ninput_items = %u\n", (int)input_items.size());
fprintf(stderr, "nitems_per_block = %u\n", (int)nitems_per_block);
float *iptr = (float *)input_items[0]; float *iptr = (float *)input_items[0];
float *optr = (float *)output_items[0]; float *optr = (float *)output_items[0];
@@ -104,6 +102,11 @@ namespace gr {
// Initialization on first frame // Initialization on first frame
if (m_frameCount == 0) if (m_frameCount == 0)
{ {
fprintf(stderr, "Peak Detector: Initialize\n");
fprintf(stderr, "noutput_items = %u\n", (int)noutput_items);
fprintf(stderr, "ninput_items = %u\n", (int)input_items.size());
fprintf(stderr, "nitems_per_block = %u\n", (int)nitems_per_block);
float xmean = mean(iptr, nitems_per_block); float xmean = mean(iptr, nitems_per_block);
fill(m_pXs, nitems_per_block, xmean); fill(m_pXs, nitems_per_block, xmean);
fill(m_pXm, nitems_per_block, xmean); fill(m_pXm, nitems_per_block, xmean);
@@ -134,7 +137,16 @@ namespace gr {
} }
} }
m_pPeak[i] = (int)((x-m_pXm[i]) > 10.f); float peak_dist = x-m_pXm[i];
int peak = (int)(peak_dist > 10.f);
m_pPeak[i] = peak;
if (peak)
{
pmt::pmt_t tag_key = pmt::string_to_symbol("peak");
pmt::pmt_t tag_value = pmt::from_float(peak_dist);
add_item_tag(0, nitems_written(0) + i, tag_key, tag_value, m_tag_id);
}
*optr++ = x-m_pXm[i]; *optr++ = x-m_pXm[i];
} }
+2 -1
View File
@@ -36,7 +36,8 @@ namespace jay {
float *m_pXs; float *m_pXs;
float *m_pXm; float *m_pXm;
uint64_t m_frameCount; uint64_t m_frameCount;
pmt::pmt_t m_tag_id;
public: public:
peak_detect_impl(float alpha_s, float alpha_m, int vlen); peak_detect_impl(float alpha_s, float alpha_m, int vlen);
~peak_detect_impl(); ~peak_detect_impl();