summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/Modules/GrPackage.cmake1
-rw-r--r--cmake/cmake_uninstall.cmake.in9
-rw-r--r--config/gr_qwtplot3d.m4151
-rw-r--r--docs/doxygen/Doxyfile.in1
-rw-r--r--gnuradio-core/src/lib/reed-solomon/char.h2
-rw-r--r--gnuradio-core/src/lib/reed-solomon/decode_rs.c26
-rw-r--r--gnuradio-core/src/lib/reed-solomon/encode_rs.c2
-rw-r--r--gnuradio-core/src/lib/reed-solomon/exercise.c10
-rw-r--r--gnuradio-core/src/lib/reed-solomon/init_rs.c9
-rw-r--r--gr-audio/lib/alsa/audio_alsa_source.cc16
-rw-r--r--gr-trellis/doc/test_tcm.py4
-rwxr-xr-xgr-trellis/doc/test_viterbi_equalization1.py6
-rwxr-xr-xgr-trellis/src/examples/test_cpm.py5
-rwxr-xr-xgr-trellis/src/examples/test_pccc_turbo1.py4
-rwxr-xr-xgr-trellis/src/examples/test_sccc_hard.py6
-rwxr-xr-xgr-trellis/src/examples/test_sccc_soft.py4
-rwxr-xr-xgr-trellis/src/examples/test_sccc_turbo.py4
-rwxr-xr-xgr-trellis/src/examples/test_sccc_turbo1.py4
-rwxr-xr-xgr-trellis/src/examples/test_sccc_turbo2.py4
-rwxr-xr-xgr-trellis/src/examples/test_tcm.py4
-rwxr-xr-xgr-trellis/src/examples/test_tcm_bit.py4
-rwxr-xr-xgr-trellis/src/examples/test_tcm_combined.py4
-rwxr-xr-xgr-trellis/src/examples/test_tcm_parallel.py4
-rwxr-xr-xgr-trellis/src/examples/test_turbo_equalization.py4
-rwxr-xr-xgr-trellis/src/examples/test_turbo_equalization1.py4
-rwxr-xr-xgr-trellis/src/examples/test_turbo_equalization2.py4
-rwxr-xr-xgr-trellis/src/examples/test_viterbi_equalization.py4
-rwxr-xr-xgr-trellis/src/examples/test_viterbi_equalization1.py6
-rw-r--r--grc/grc_gnuradio/blks2/packet.py3
29 files changed, 85 insertions, 224 deletions
diff --git a/cmake/Modules/GrPackage.cmake b/cmake/Modules/GrPackage.cmake
index 857d07c4d..d398d7265 100644
--- a/cmake/Modules/GrPackage.cmake
+++ b/cmake/Modules/GrPackage.cmake
@@ -112,7 +112,6 @@ set(CPACK_DEBIAN_PACKAGE_DEPENDS
"python-numpy"
"libqt4-core"
"libqwt5-qt4"
- "libqwtplot3d-qt4-0"
"python-qt4"
"python-gtk2"
"python-lxml"
diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in
index 6031a6ca9..9ae1ae4bd 100644
--- a/cmake/cmake_uninstall.cmake.in
+++ b/cmake/cmake_uninstall.cmake.in
@@ -17,6 +17,15 @@ FOREACH(file ${files})
IF(NOT "${rm_retval}" STREQUAL 0)
MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
ENDIF(NOT "${rm_retval}" STREQUAL 0)
+ ELSEIF(IS_SYMLINK "$ENV{DESTDIR}${file}")
+ EXEC_PROGRAM(
+ "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
+ OUTPUT_VARIABLE rm_out
+ RETURN_VALUE rm_retval
+ )
+ IF(NOT "${rm_retval}" STREQUAL 0)
+ MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
+ ENDIF(NOT "${rm_retval}" STREQUAL 0)
ELSE(EXISTS "$ENV{DESTDIR}${file}")
MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
ENDIF(EXISTS "$ENV{DESTDIR}${file}")
diff --git a/config/gr_qwtplot3d.m4 b/config/gr_qwtplot3d.m4
deleted file mode 100644
index 758dfbc3e..000000000
--- a/config/gr_qwtplot3d.m4
+++ /dev/null
@@ -1,151 +0,0 @@
-dnl
-dnl Copyright 2008 Free Software Foundation, Inc.
-dnl
-dnl This file is part of GNU Radio
-dnl
-dnl GNU Radio is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 3, or (at your option)
-dnl any later version.
-dnl
-dnl GNU Radio is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-dnl GNU General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with GNU Radio; see the file COPYING. If not, write to
-dnl the Free Software Foundation, Inc., 51 Franklin Street,
-dnl Boston, MA 02110-1301, USA.
-dnl
-
-dnl Configure paths for library qwtplot3d.
-dnl
-dnl GR_QWTPLOT3D([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
-dnl
-dnl Test for library qwtplot3d, set QWTPLOT3D_CFLAGS and QWTPLOT3D_LIBS if found. Assumes
-dnl QT_CFLAGS and QT_LIBS have already been correctly set.
-dnl
-
-AC_DEFUN([GR_QWTPLOT3D],
-[
- dnl QWTPLOT3D Library Version
-
- dnl Save the environment
- AC_LANG_PUSH(C++)
- qwtplot3d_save_CPPFLAGS="$CPPFLAGS"
- qwtplot3d_save_LIBS="$LIBS"
- libqwtplot3d_ok=yes
-
- dnl Allow user to specify where QWTPLOT3D files are
- AC_ARG_WITH([qwtplot3d-libdir],
- [ --with-qwtplot3d-libdir=path Prefix where QWTPLOT3D library is installed (optional)],
- [qwtplot3d_libdir="$withval"], [qwtplot3d_libdir=""])
-
- AC_ARG_WITH([qwtplot3d-incdir],
- [ --with-qwtplot3d-incdir=path Prefix where QWTPLOT3D include files are (optional)],
- [qwtplot3d_incdir="$withval"], [qwtplot3d_incdir=""])
-
- AC_ARG_WITH([qwtplot3d-lib],
- [ --with-qwtplot3d-lib=library QWT Plot3D library name (optional)],
- [qwtplot3d_lib="$withval"], [qwtplot3d_lib=""])
-
-
- dnl Check for presence of header files
- dnl if not user-specified, try the first include dir (Ubuntu), then
- dnl try the second include dir (Fedora)
- CPPFLAGS="$CPPFLAGS $QTCORE_CFLAGS $QTGUI_CFLAGS $QWT_CFLAGS"
-
- dnl if not set by user
- if test "$qwtplot3d_incdir" = "" ; then
- dnl check qwtplot3d/qwtplot3d.h (as in Fedora)
- AC_CHECK_HEADER(
- [qwtplot3d/qwt3d_plot.h],
- [qwtplot3d_qwtplot3d_h=yes],
- [qwtplot3d_qwtplot3d_h=no]
- )
- dnl If it was found, set the flags and move on
- if test "$qwtplot3d_qwtplot3d_h" = "yes" ; then
- QWTPLOT3D_CFLAGS="$QWTPLOT3D_CFLAGS -I/usr/include/qwtplot3d"
- else
- dnl otherwise, check qwtplot3d-qt4/qwtplot3d.h (as in Ubuntu)
- AC_CHECK_HEADER(
- [qwtplot3d-qt4/qwt3d_plot.h],
- [qwtplot3d_qt4_qwtplot3d_h=yes],
- [qwtplot3d_qt4_qwtplot3d_h=no]
- )
- dnl if it was found, set the flags and move on
- if test "$qwtplot3d_qt4_qwtplot3d_h" = "yes" ; then
- QWTPLOT3D_CFLAGS="$QWTPLOT3D_CFLAGS -I/usr/include/qwtplot3d-qt4"
- else
- dnl otherwise, qwtplot3d.h wasn't found, so set the flag to no
- libqwtplot3d_ok=no
- fi
- fi
- else
- dnl Using the user-specified include directory
- QWTPLOT3D_CFLAGS="$QWTPLOT3D_CFLAGS -I$qwtplot3d_incdir"
- AC_CHECK_HEADER(
- [$qwtplot3d_incdir/qwt3d_plot.h],
- [],
- [libqwtplot3d_ok=no])
- fi
-
- dnl Don't bother going on if we can't find the headers
- if test "$libqwtplot3d_ok" = "yes" ; then
-
- dnl Check for QWTPLOT3D library (qwtplot3d or qwtplot3d-qt4)
-
- dnl User-defined QWTPLOT3D library path
- if test "$qwtplot3d_libdir" != "" ; then
- QWTPLOT3D_LIBS="-L$qwtplot3d_libdir $QWTPLOT3D_LIBS"
- fi
-
- dnl temporarily set these so the AC_CHECK_LIB works
- CPPFLAGS="$CPPFLAGS $QWTPLOT3D_CFLAGS"
- LIBS="$qwtplot3d_save_LIBS $QT_LIBS $QWTPLOT3D_LIBS -lqwtplot3d-qt4"
-
- dnl If the user specified a qwtplot3d library name, use it here
- if test "$qwtplot3d_lib" != "" ; then
- AC_CHECK_LIB([$qwtplot3d_lib], [main], [libqwtplot3d_ok=yes], [libqwtplot3d_ok=no])
-
- else
- dnl Check for 'main' in libqwtplot3d-qt4
- AC_CHECK_LIB([qwtplot3d-qt4], [main], [libqwtplot3d_ok=yes], [libqwtplot3d_ok=no])
-
- dnl If library found properly, set the flag and move on
- if test "$libqwtplot3d_ok" = "yes" ; then
- QWTPLOT3D_LIBS="$QWTPLOT3D_LIBS -lqwtplot3d-qt4"
- else
- dnl Otherwise, check for 'main' in libqwtplot3d
- LIBS="$qwtplot3d_save_LIBS $QT_LIBS $QWTPLOT3D_LIBS -lqwtplot3d"
- AC_CHECK_LIB([qwtplot3d], [main], [libqwtplot3d_ok=yes], [libqwtplot3d_ok=no])
- if test "$libqwtplot3d_ok" = "yes" ; then
- QWTPLOT3D_LIBS="$QWTPLOT3D_LIBS -lqwtplot3d"
- else
- AC_MSG_RESULT([Could not link to libqwtplot3d.so])
- fi
- fi
- fi
- else
- AC_MSG_RESULT([Could not find qwtplot3d headers])
- fi
-
- dnl Restore saved variables
- LIBS="$qwtplot3d_save_LIBS"
- CPPFLAGS="$qwtplot3d_save_CPPFLAGS"
- AC_LANG_POP
-
- dnl Execute user actions
- if test "x$libqwtplot3d_ok" = "xyes" ; then
- ifelse([$1], , :, [$1])
- else
- QWTPLOT3D_CFLAGS=""
- QWTPLOT3D_LIBDIRS=""
- ifelse([$2], , :, [$2])
- fi
-
- dnl Export our variables
- AC_SUBST(QWTPLOT3D_CFLAGS)
- AC_SUBST(QWTPLOT3D_LIBS)
-])
diff --git a/docs/doxygen/Doxyfile.in b/docs/doxygen/Doxyfile.in
index a3e78e97d..d5614d90c 100644
--- a/docs/doxygen/Doxyfile.in
+++ b/docs/doxygen/Doxyfile.in
@@ -638,6 +638,7 @@ EXCLUDE = @abs_top_builddir@/docs/doxygen/html \
@abs_top_builddir@/gr-video-sdl/src/video_sdl.py \
@abs_top_builddir@/gr-wxgui/src/python \
@abs_top_builddir@/grc \
+ @abs_top_builddir@/_CPack_Packages \
@abs_top_srcdir@/cmake \
@abs_top_srcdir@/gr-qtgui/lib
diff --git a/gnuradio-core/src/lib/reed-solomon/char.h b/gnuradio-core/src/lib/reed-solomon/char.h
index 8010fb0b9..762e9e295 100644
--- a/gnuradio-core/src/lib/reed-solomon/char.h
+++ b/gnuradio-core/src/lib/reed-solomon/char.h
@@ -21,7 +21,7 @@ struct rs {
unsigned char iprim; /* prim-th root of 1, index form */
};
-static inline int modnn(struct rs *rs,int x){
+static inline unsigned int modnn(struct rs *rs, unsigned int x){
while (x >= rs->nn) {
x -= rs->nn;
x = (x >> rs->mm) + (x & rs->nn);
diff --git a/gnuradio-core/src/lib/reed-solomon/decode_rs.c b/gnuradio-core/src/lib/reed-solomon/decode_rs.c
index ba60b89ee..4b7d27cec 100644
--- a/gnuradio-core/src/lib/reed-solomon/decode_rs.c
+++ b/gnuradio-core/src/lib/reed-solomon/decode_rs.c
@@ -30,7 +30,7 @@ DTYPE *data, int *eras_pos, int no_eras){
struct rs *rs = (struct rs *)p;
#endif
int deg_lambda, el, deg_omega;
- int i, j, r,k;
+ int i, j, r, k;
#ifdef MAX_ARRAY
DTYPE u,q,tmp,num1,num2,den,discr_r;
DTYPE lambda[MAX_ARRAY], s[MAX_ARRAY]; /* Err+Eras Locator poly
@@ -47,11 +47,11 @@ DTYPE *data, int *eras_pos, int no_eras){
int syn_error, count;
/* form the syndromes; i.e., evaluate data(x) at roots of g(x) */
- for(i=0;i<NROOTS;i++)
+ for(i=0;(unsigned int)i<NROOTS;i++)
s[i] = data[0];
- for(j=1;j<NN;j++){
- for(i=0;i<NROOTS;i++){
+ for(j=1;(unsigned int)j<NN;j++){
+ for(i=0;(unsigned int)i<NROOTS;i++){
if(s[i] == 0){
s[i] = data[j];
} else {
@@ -62,7 +62,7 @@ DTYPE *data, int *eras_pos, int no_eras){
/* Convert syndromes to index form, checking for nonzero condition */
syn_error = 0;
- for(i=0;i<NROOTS;i++){
+ for(i=0;(unsigned int)i<NROOTS;i++){
syn_error |= s[i];
s[i] = INDEX_OF[s[i]];
}
@@ -125,7 +125,7 @@ DTYPE *data, int *eras_pos, int no_eras){
#endif
#endif
}
- for(i=0;i<NROOTS+1;i++)
+ for(i=0;(unsigned int)i<NROOTS+1;i++)
b[i] = INDEX_OF[lambda[i]];
/*
@@ -134,7 +134,7 @@ DTYPE *data, int *eras_pos, int no_eras){
*/
r = no_eras;
el = no_eras;
- while (++r <= NROOTS) { /* r is the step number */
+ while ((unsigned int)(++r) <= NROOTS) { /* r is the step number */
/* Compute discrepancy at the r-th step in poly-form */
discr_r = 0;
for (i = 0; i < r; i++){
@@ -150,7 +150,7 @@ DTYPE *data, int *eras_pos, int no_eras){
} else {
/* 7 lines below: T(x) <-- lambda(x) - discr_r*x*b(x) */
t[0] = lambda[0];
- for (i = 0 ; i < NROOTS; i++) {
+ for (i = 0 ; (unsigned int)i < NROOTS; i++) {
if(b[i] != A0)
t[i+1] = lambda[i+1] ^ ALPHA_TO[MODNN(discr_r + b[i])];
else
@@ -162,7 +162,7 @@ DTYPE *data, int *eras_pos, int no_eras){
* 2 lines below: B(x) <-- inv(discr_r) *
* lambda(x)
*/
- for (i = 0; i <= NROOTS; i++)
+ for (i = 0; (unsigned int)i <= NROOTS; i++)
b[i] = (lambda[i] == 0) ? A0 : MODNN(INDEX_OF[lambda[i]] - discr_r + NN);
} else {
/* 2 lines below: B(x) <-- x*B(x) */
@@ -175,7 +175,7 @@ DTYPE *data, int *eras_pos, int no_eras){
/* Convert lambda to index form and compute deg(lambda(x)) */
deg_lambda = 0;
- for(i=0;i<NROOTS+1;i++){
+ for(i=0;(unsigned int)i<NROOTS+1;i++){
lambda[i] = INDEX_OF[lambda[i]];
if(lambda[i] != A0)
deg_lambda = i;
@@ -183,7 +183,7 @@ DTYPE *data, int *eras_pos, int no_eras){
/* Find roots of the error+erasure locator polynomial by Chien search */
memcpy(&reg[1],&lambda[1],NROOTS*sizeof(reg[0]));
count = 0; /* Number of roots of lambda(x) */
- for (i = 1,k=IPRIM-1; i <= NN; i++,k = MODNN(k+IPRIM)) {
+ for (i = 1,k=IPRIM-1; (unsigned int)i <= NN; i++,k = MODNN(k+IPRIM)) {
q = 1; /* lambda[0] is always 0 */
for (j = deg_lambda; j > 0; j--){
if (reg[j] != A0) {
@@ -218,7 +218,7 @@ DTYPE *data, int *eras_pos, int no_eras){
* x**NROOTS). in index form. Also find deg(omega).
*/
deg_omega = 0;
- for (i = 0; i < NROOTS;i++){
+ for (i = 0; (unsigned int)i < NROOTS;i++){
tmp = 0;
j = (deg_lambda < i) ? deg_lambda : i;
for(;j >= 0; j--){
@@ -245,7 +245,7 @@ DTYPE *data, int *eras_pos, int no_eras){
den = 0;
/* lambda[i+1] for i even is the formal derivative lambda_pr of lambda[i] */
- for (i = min(deg_lambda,NROOTS-1) & ~1; i >= 0; i -=2) {
+ for (i = (int)min((unsigned int)deg_lambda,NROOTS-1) & ~1; i >= 0; i -=2) {
if(lambda[i+1] != A0)
den ^= ALPHA_TO[MODNN(lambda[i+1] + i * root[j])];
}
diff --git a/gnuradio-core/src/lib/reed-solomon/encode_rs.c b/gnuradio-core/src/lib/reed-solomon/encode_rs.c
index 9d56d0bf1..cd31f32c6 100644
--- a/gnuradio-core/src/lib/reed-solomon/encode_rs.c
+++ b/gnuradio-core/src/lib/reed-solomon/encode_rs.c
@@ -20,7 +20,7 @@ DTYPE *data, DTYPE *bb){
#ifndef FIXED
struct rs *rs = (struct rs *)p;
#endif
- int i, j;
+ unsigned int i, j;
DTYPE feedback;
memset(bb,0,NROOTS*sizeof(DTYPE));
diff --git a/gnuradio-core/src/lib/reed-solomon/exercise.c b/gnuradio-core/src/lib/reed-solomon/exercise.c
index 987fe1aeb..be3d3bd13 100644
--- a/gnuradio-core/src/lib/reed-solomon/exercise.c
+++ b/gnuradio-core/src/lib/reed-solomon/exercise.c
@@ -48,13 +48,13 @@ int trials){
#endif
#if MAX_ARRAY
DTYPE block[MAX_ARRAY],tblock[MAX_ARRAY];
- int i;
+ unsigned int i;
int errors;
int errlocs[MAX_ARRAY];
int derrlocs[MAX_ARRAY];
#else
DTYPE block[NN],tblock[NN];
- int i;
+ unsigned int i;
int errors;
int errlocs[NN];
int derrlocs[NROOTS];
@@ -66,7 +66,7 @@ int trials){
while(trials-- != 0){
/* Test up to the error correction capacity of the code */
- for(errors=0;errors <= NROOTS/2;errors++){
+ for(errors=0;(unsigned int)errors <= NROOTS/2;errors++){
/* Load block with random data and encode */
for(i=0;i<NN-NROOTS;i++)
@@ -83,7 +83,7 @@ int trials){
memset(errlocs,0,sizeof(errlocs));
memset(derrlocs,0,sizeof(derrlocs));
erasures=0;
- for(i=0;i<errors;i++){
+ for(i=0;i<(unsigned int)errors;i++){
do {
errval = random() & NN;
} while(errval == 0); /* Error value must be nonzero */
@@ -113,7 +113,7 @@ int trials){
printf(" decoder says %d errors, true number is %d\n",derrors,errors);
decoder_errors++;
}
- for(i=0;i<derrors;i++){
+ for(i=0;i<(unsigned int)derrors;i++){
if(errlocs[derrlocs[i]] == 0){
PRINTPARM
printf(" decoder indicates error in location %d without error\n",i);
diff --git a/gnuradio-core/src/lib/reed-solomon/init_rs.c b/gnuradio-core/src/lib/reed-solomon/init_rs.c
index 11d7c8170..4ec77cd72 100644
--- a/gnuradio-core/src/lib/reed-solomon/init_rs.c
+++ b/gnuradio-core/src/lib/reed-solomon/init_rs.c
@@ -34,16 +34,17 @@ void FREE_RS(void *p){
void *INIT_RS(unsigned int symsize,unsigned int gfpoly,unsigned fcr,unsigned prim,
unsigned int nroots){
struct rs *rs;
- int i, j, sr,root,iprim;
+ int sr,root,iprim;
+ unsigned int i, j;
if(symsize > 8*sizeof(DTYPE))
return NULL; /* Need version with ints rather than chars */
- if(fcr >= (1<<symsize))
+ if(fcr >= (1u<<symsize))
return NULL;
- if(prim == 0 || prim >= (1<<symsize))
+ if(prim == 0 || prim >= (1u<<symsize))
return NULL;
- if(nroots >= (1<<symsize))
+ if(nroots >= (1u<<symsize))
return NULL; /* Can't have more roots than symbol values! */
rs = (struct rs *)calloc(1,sizeof(struct rs));
diff --git a/gr-audio/lib/alsa/audio_alsa_source.cc b/gr-audio/lib/alsa/audio_alsa_source.cc
index 2f4506f71..08d4996a8 100644
--- a/gr-audio/lib/alsa/audio_alsa_source.cc
+++ b/gr-audio/lib/alsa/audio_alsa_source.cc
@@ -308,7 +308,7 @@ audio_alsa_source::work_s16 (int noutput_items,
gr_vector_void_star &output_items)
{
typedef gr_int16 sample_t; // the type of samples we're creating
- static const int NBITS = 16; // # of bits in a sample
+ static const float scale_factor = 1.0 / std::pow(2.0f, 16-1);
unsigned int nchan = output_items.size ();
float **out = (float **) &output_items[0];
@@ -329,7 +329,7 @@ audio_alsa_source::work_s16 (int noutput_items,
bi = 0;
for (unsigned int i = 0; i < d_period_size; i++){
for (unsigned int chan = 0; chan < nchan; chan++){
- out[chan][i] = (float) buf[bi++] * (1.0 / (float) ((1L << (NBITS-1)) - 1));
+ out[chan][i] = (float) buf[bi++] * scale_factor;
}
}
@@ -346,7 +346,7 @@ audio_alsa_source::work_s16_2x1 (int noutput_items,
gr_vector_void_star &output_items)
{
typedef gr_int16 sample_t; // the type of samples we're creating
- static const int NBITS = 16; // # of bits in a sample
+ static const float scale_factor = 1.0 / std::pow(2.0f, 16-1);
unsigned int nchan = output_items.size ();
float **out = (float **) &output_items[0];
@@ -370,7 +370,7 @@ audio_alsa_source::work_s16_2x1 (int noutput_items,
for (unsigned int i = 0; i < d_period_size; i++){
int t = (buf[bi] + buf[bi+1]) / 2;
bi += 2;
- out[0][i] = (float) t * (1.0 / (float) ((1L << (NBITS-1)) - 1));
+ out[0][i] = (float) t * scale_factor;
}
return d_period_size;
@@ -385,7 +385,7 @@ audio_alsa_source::work_s32 (int noutput_items,
gr_vector_void_star &output_items)
{
typedef gr_int32 sample_t; // the type of samples we're creating
- static const int NBITS = 32; // # of bits in a sample
+ static const float scale_factor = 1.0 / std::pow(2.0f, 32-1);
unsigned int nchan = output_items.size ();
float **out = (float **) &output_items[0];
@@ -406,7 +406,7 @@ audio_alsa_source::work_s32 (int noutput_items,
bi = 0;
for (unsigned int i = 0; i < d_period_size; i++){
for (unsigned int chan = 0; chan < nchan; chan++){
- out[chan][i] = (float) buf[bi++] * (1.0 / (float) ((1L << (NBITS-1)) - 1));
+ out[chan][i] = (float) buf[bi++] * scale_factor;
}
}
@@ -423,7 +423,7 @@ audio_alsa_source::work_s32_2x1 (int noutput_items,
gr_vector_void_star &output_items)
{
typedef gr_int32 sample_t; // the type of samples we're creating
- static const int NBITS = 32; // # of bits in a sample
+ static const float scale_factor = 1.0 / std::pow(2.0f, 32-1);
unsigned int nchan = output_items.size ();
float **out = (float **) &output_items[0];
@@ -447,7 +447,7 @@ audio_alsa_source::work_s32_2x1 (int noutput_items,
for (unsigned int i = 0; i < d_period_size; i++){
int t = (buf[bi] + buf[bi+1]) / 2;
bi += 2;
- out[0][i] = (float) t * (1.0 / (float) ((1L << (NBITS-1)) - 1));
+ out[0][i] = (float) t * scale_factor;
}
return d_period_size;
diff --git a/gr-trellis/doc/test_tcm.py b/gr-trellis/doc/test_tcm.py
index 0472535c1..2ff1c3db8 100644
--- a/gr-trellis/doc/test_tcm.py
+++ b/gr-trellis/doc/test_tcm.py
@@ -2,7 +2,7 @@
from gnuradio import gr
from gnuradio import audio
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -24,7 +24,7 @@ def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
noise = gr.noise_source_f(gr.GR_GAUSSIAN,math.sqrt(N0/2),seed)
# RX
- metrics = trellis.metrics_f(f.O(),dimensionality,constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for Viterbi
+ metrics = trellis.metrics_f(f.O(),dimensionality,constellation,digital.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for Viterbi
va = trellis.viterbi_s(f,K,0,-1) # Put -1 if the Initial/Final states are not set.
fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
dst = gr.check_lfsr_32k_s();
diff --git a/gr-trellis/doc/test_viterbi_equalization1.py b/gr-trellis/doc/test_viterbi_equalization1.py
index 93b852e85..638e83e81 100755
--- a/gr-trellis/doc/test_viterbi_equalization1.py
+++ b/gr-trellis/doc/test_viterbi_equalization1.py
@@ -2,7 +2,7 @@
from gnuradio import gr
from gnuradio import audio
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -32,9 +32,9 @@ def run_test (f,Kb,bitspersymbol,K,channel,modulation,dimensionality,tot_constel
# RX
skip = gr.skiphead(gr.sizeof_float, L) # skip the first L samples since you know they are coming from the L zero symbols
- #metrics = trellis.metrics_f(f.O(),dimensionality,tot_constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for Viterbi
+ #metrics = trellis.metrics_f(f.O(),dimensionality,tot_constellation,digital.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for Viterbi
#va = trellis.viterbi_s(f,K+L,0,0) # Put -1 if the Initial/Final states are not set.
- va = trellis.viterbi_combined_s(f,K+L,0,0,dimensionality,tot_constellation,trellis.TRELLIS_EUCLIDEAN) # using viterbi_combined_s instead of metrics_f/viterbi_s allows larger packet lengths because metrics_f is complaining for not being able to allocate large buffers. This is due to the large f.O() in this application...
+ va = trellis.viterbi_combined_s(f,K+L,0,0,dimensionality,tot_constellation,digital.TRELLIS_EUCLIDEAN) # using viterbi_combined_s instead of metrics_f/viterbi_s allows larger packet lengths because metrics_f is complaining for not being able to allocate large buffers. This is due to the large f.O() in this application...
dst = gr.vector_sink_s()
tb.connect (src,mod)
diff --git a/gr-trellis/src/examples/test_cpm.py b/gr-trellis/src/examples/test_cpm.py
index b5bdaae44..06d54b1a6 100755
--- a/gr-trellis/src/examples/test_cpm.py
+++ b/gr-trellis/src/examples/test_cpm.py
@@ -8,7 +8,7 @@
##################################################
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio.gr import firdes
from grc_gnuradio import blks2 as grc_blks2
import math
@@ -103,7 +103,8 @@ def run_test(seed,blocksize):
gr_fir_filter_xxx_0_0_0 = gr.fir_filter_ccc(Q, MF[1].conjugate())
gr_streams_to_stream_0 = gr.streams_to_stream(gr.sizeof_gr_complex*1, int(N))
gr_skiphead_0 = gr.skiphead(gr.sizeof_gr_complex*1, int(N*(1+0)))
- viterbi = trellis.viterbi_combined_cb(f, head+blocksize+tail, 0, -1, int(N), constellation, trellis.TRELLIS_EUCLIDEAN)
+ viterbi = trellis.viterbi_combined_cb(f, head+blocksize+tail, 0, -1, int(N),
+ constellation, digital.TRELLIS_EUCLIDEAN)
gr_vector_sink_x_0 = gr.vector_sink_b()
diff --git a/gr-trellis/src/examples/test_pccc_turbo1.py b/gr-trellis/src/examples/test_pccc_turbo1.py
index 1173d0734..7f1ea26ae 100755
--- a/gr-trellis/src/examples/test_pccc_turbo1.py
+++ b/gr-trellis/src/examples/test_pccc_turbo1.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -27,7 +27,7 @@ def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,dimensionality,constellation,
noise = gr.noise_source_f(gr.GR_GAUSSIAN,math.sqrt(N0/2),seed)
# RX
- metrics_in = trellis.metrics_f(fi.O()*fo.O(),dimensionality,constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner SISO
+ metrics_in = trellis.metrics_f(fi.O()*fo.O(),dimensionality,constellation,digital.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner SISO
scale = gr.multiply_const_ff(1.0/N0)
dec = trellis.pccc_decoder_s(fo,0,-1,fi,0,-1,interleaver,K,IT,trellis.TRELLIS_MIN_SUM)
diff --git a/gr-trellis/src/examples/test_sccc_hard.py b/gr-trellis/src/examples/test_sccc_hard.py
index 1a81bc59b..e732ac2c0 100755
--- a/gr-trellis/src/examples/test_sccc_hard.py
+++ b/gr-trellis/src/examples/test_sccc_hard.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -26,10 +26,10 @@ def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,dimensionality,constellation,
noise = gr.noise_source_f(gr.GR_GAUSSIAN,math.sqrt(N0/2),seed)
# RX
- metrics_in = trellis.metrics_f(fi.O(),dimensionality,constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner Viterbi
+ metrics_in = trellis.metrics_f(fi.O(),dimensionality,constellation,digital.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner Viterbi
va_in = trellis.viterbi_s(fi,K,0,-1) # Put -1 if the Initial/Final states are not set.
deinter = trellis.permutation(interleaver.K(),interleaver.DEINTER(),1,gr.sizeof_short)
- metrics_out = trellis.metrics_s(fo.O(),1,[0,1,2,3],trellis.TRELLIS_HARD_SYMBOL) # data preprocessing to generate metrics for outer Viterbi (hard decisions)
+ metrics_out = trellis.metrics_s(fo.O(),1,[0,1,2,3],digital.TRELLIS_HARD_SYMBOL) # data preprocessing to generate metrics for outer Viterbi (hard decisions)
va_out = trellis.viterbi_s(fo,K,0,-1) # Put -1 if the Initial/Final states are not set.
fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
dst = gr.check_lfsr_32k_s()
diff --git a/gr-trellis/src/examples/test_sccc_soft.py b/gr-trellis/src/examples/test_sccc_soft.py
index ea296e1e9..1c71e4ca7 100755
--- a/gr-trellis/src/examples/test_sccc_soft.py
+++ b/gr-trellis/src/examples/test_sccc_soft.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -29,7 +29,7 @@ def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,dimensionality,constellation,
noise = gr.noise_source_f(gr.GR_GAUSSIAN,math.sqrt(N0/2),seed)
# RX
- metrics_in = trellis.metrics_f(fi.O(),dimensionality,constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner Viterbi
+ metrics_in = trellis.metrics_f(fi.O(),dimensionality,constellation,digital.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner Viterbi
gnd = gr.vector_source_f([0],True);
siso_in = trellis.siso_f(fi,K,0,-1,True,False,trellis.TRELLIS_MIN_SUM) # Put -1 if the Initial/Final states are not set.
deinter = trellis.permutation(interleaver.K(),interleaver.DEINTER(),fi.I(),gr.sizeof_float)
diff --git a/gr-trellis/src/examples/test_sccc_turbo.py b/gr-trellis/src/examples/test_sccc_turbo.py
index 703ee410b..b1007a864 100755
--- a/gr-trellis/src/examples/test_sccc_turbo.py
+++ b/gr-trellis/src/examples/test_sccc_turbo.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -11,7 +11,7 @@ import fsm_utils
def make_rx(tb,fo,fi,dimensionality,constellation,K,interleaver,IT,Es,N0,type):
- metrics_in = trellis.metrics_f(fi.O(),dimensionality,constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner Viterbi
+ metrics_in = trellis.metrics_f(fi.O(),dimensionality,constellation,digital.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner Viterbi
scale = gr.multiply_const_ff(1.0/N0)
gnd = gr.vector_source_f([0],True);
diff --git a/gr-trellis/src/examples/test_sccc_turbo1.py b/gr-trellis/src/examples/test_sccc_turbo1.py
index 8a630c0d4..ad2ed6bf9 100755
--- a/gr-trellis/src/examples/test_sccc_turbo1.py
+++ b/gr-trellis/src/examples/test_sccc_turbo1.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -24,7 +24,7 @@ def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,dimensionality,constellation,
noise = gr.noise_source_f(gr.GR_GAUSSIAN,math.sqrt(N0/2),seed)
# RX
- dec = trellis.sccc_decoder_combined_fs(fo,0,-1,fi,0,-1,interleaver,K,IT,trellis.TRELLIS_MIN_SUM,dimensionality,constellation,trellis.TRELLIS_EUCLIDEAN,1.0)
+ dec = trellis.sccc_decoder_combined_fs(fo,0,-1,fi,0,-1,interleaver,K,IT,trellis.TRELLIS_MIN_SUM,dimensionality,constellation,digital.TRELLIS_EUCLIDEAN,1.0)
fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
dst = gr.check_lfsr_32k_s()
diff --git a/gr-trellis/src/examples/test_sccc_turbo2.py b/gr-trellis/src/examples/test_sccc_turbo2.py
index a47f6400e..fdb92adc8 100755
--- a/gr-trellis/src/examples/test_sccc_turbo2.py
+++ b/gr-trellis/src/examples/test_sccc_turbo2.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -24,7 +24,7 @@ def run_test (fo,fi,interleaver,Kb,bitspersymbol,K,dimensionality,constellation,
noise = gr.noise_source_f(gr.GR_GAUSSIAN,math.sqrt(N0/2),seed)
# RX
- metrics_in = trellis.metrics_f(fi.O(),dimensionality,constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner SISO
+ metrics_in = trellis.metrics_f(fi.O(),dimensionality,constellation,digital.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner SISO
scale = gr.multiply_const_ff(1.0/N0)
dec = trellis.sccc_decoder_s(fo,0,-1,fi,0,-1,interleaver,K,IT,trellis.TRELLIS_MIN_SUM)
fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
diff --git a/gr-trellis/src/examples/test_tcm.py b/gr-trellis/src/examples/test_tcm.py
index d2e3c6271..62fd5135e 100755
--- a/gr-trellis/src/examples/test_tcm.py
+++ b/gr-trellis/src/examples/test_tcm.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -31,7 +31,7 @@ def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
noise = gr.noise_source_f(gr.GR_GAUSSIAN,math.sqrt(N0/2),seed)
# RX
- metrics = trellis.metrics_f(f.O(),dimensionality,constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for Viterbi
+ metrics = trellis.metrics_f(f.O(),dimensionality,constellation,digital.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for Viterbi
va = trellis.viterbi_s(f,K,0,-1) # Put -1 if the Initial/Final states are not set.
fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
#s2b = gr.packed_to_unpacked_ss(1,gr.GR_MSB_FIRST) # unpack shorts to bits
diff --git a/gr-trellis/src/examples/test_tcm_bit.py b/gr-trellis/src/examples/test_tcm_bit.py
index 008e1e6f0..cc5caefbc 100755
--- a/gr-trellis/src/examples/test_tcm_bit.py
+++ b/gr-trellis/src/examples/test_tcm_bit.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -34,7 +34,7 @@ def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
# RX
- metrics = trellis.metrics_f(f.O(),dimensionality,constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for Viterbi
+ metrics = trellis.metrics_f(f.O(),dimensionality,constellation,digital.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for Viterbi
va = trellis.viterbi_s(f,K,0,-1) # Put -1 if the Initial/Final states are not set.
fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
s2b = gr.packed_to_unpacked_ss(1,gr.GR_MSB_FIRST) # unpack shorts to bits
diff --git a/gr-trellis/src/examples/test_tcm_combined.py b/gr-trellis/src/examples/test_tcm_combined.py
index f9b698ae9..55a3043b8 100755
--- a/gr-trellis/src/examples/test_tcm_combined.py
+++ b/gr-trellis/src/examples/test_tcm_combined.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -27,7 +27,7 @@ def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed):
# RX
- va = trellis.viterbi_combined_fs(f,K,0,-1,dimensionality,constellation,trellis.TRELLIS_EUCLIDEAN) # Put -1 if the Initial/Final states are not set.
+ va = trellis.viterbi_combined_fs(f,K,0,-1,dimensionality,constellation,digital.TRELLIS_EUCLIDEAN) # Put -1 if the Initial/Final states are not set.
fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
dst = gr.check_lfsr_32k_s();
diff --git a/gr-trellis/src/examples/test_tcm_parallel.py b/gr-trellis/src/examples/test_tcm_parallel.py
index 94761fd01..2b722c09e 100755
--- a/gr-trellis/src/examples/test_tcm_parallel.py
+++ b/gr-trellis/src/examples/test_tcm_parallel.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -29,7 +29,7 @@ def run_test (f,Kb,bitspersymbol,K,dimensionality,constellation,N0,seed,P):
noise.append(gr.noise_source_f(gr.GR_GAUSSIAN,math.sqrt(N0/2),seed))
# RX
- metrics = trellis.metrics_f(f.O(),dimensionality,constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for Viterbi
+ metrics = trellis.metrics_f(f.O(),dimensionality,constellation,digital.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for Viterbi
va = trellis.viterbi_s(f,K,0,-1) # Put -1 if the Initial/Final states are not set.
p2s = gr.streams_to_stream(gr.sizeof_short,P) # parallel to serial
fsmi2s=gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
diff --git a/gr-trellis/src/examples/test_turbo_equalization.py b/gr-trellis/src/examples/test_turbo_equalization.py
index 0bf691222..6fa6749f0 100755
--- a/gr-trellis/src/examples/test_turbo_equalization.py
+++ b/gr-trellis/src/examples/test_turbo_equalization.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -9,7 +9,7 @@ import fsm_utils
def make_rx(tb,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,type):
- metrics_in = trellis.metrics_f(fi.O(),dimensionality,tot_constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner SISO
+ metrics_in = trellis.metrics_f(fi.O(),dimensionality,tot_constellation,digital.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner SISO
scale = gr.multiply_const_ff(1.0/N0)
gnd = gr.vector_source_f([0],True);
diff --git a/gr-trellis/src/examples/test_turbo_equalization1.py b/gr-trellis/src/examples/test_turbo_equalization1.py
index feae4ce89..15a8f6809 100755
--- a/gr-trellis/src/examples/test_turbo_equalization1.py
+++ b/gr-trellis/src/examples/test_turbo_equalization1.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -9,7 +9,7 @@ import random
import fsm_utils
def make_rx(tb,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,type):
- metrics_in = trellis.metrics_f(fi.O(),dimensionality,tot_constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner SISO
+ metrics_in = trellis.metrics_f(fi.O(),dimensionality,tot_constellation,digital.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for innner SISO
scale = gr.multiply_const_ff(1.0/N0)
gnd = gr.vector_source_f([0],True);
diff --git a/gr-trellis/src/examples/test_turbo_equalization2.py b/gr-trellis/src/examples/test_turbo_equalization2.py
index ff14299c6..7e4341cba 100755
--- a/gr-trellis/src/examples/test_turbo_equalization2.py
+++ b/gr-trellis/src/examples/test_turbo_equalization2.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -20,7 +20,7 @@ def make_rx(tb,fo,fi,dimensionality,tot_constellation,K,interleaver,IT,Es,N0,typ
# generate all blocks
for it in range(IT):
inter.append( trellis.permutation(interleaver.K(),interleaver.INTER(),fi.I(),gr.sizeof_float) )
- siso_in.append( trellis.siso_combined_f(fi,K,0,-1,True,False,type,dimensionality,tot_constellation,trellis.TRELLIS_EUCLIDEAN) )
+ siso_in.append( trellis.siso_combined_f(fi,K,0,-1,True,False,type,dimensionality,tot_constellation,digital.TRELLIS_EUCLIDEAN) )
deinter.append( trellis.permutation(interleaver.K(),interleaver.DEINTER(),fi.I(),gr.sizeof_float) )
if it < IT-1:
siso_out.append( trellis.siso_f(fo,K,0,-1,False,True,type) )
diff --git a/gr-trellis/src/examples/test_viterbi_equalization.py b/gr-trellis/src/examples/test_viterbi_equalization.py
index eda692024..d290a0d0a 100755
--- a/gr-trellis/src/examples/test_viterbi_equalization.py
+++ b/gr-trellis/src/examples/test_viterbi_equalization.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -23,7 +23,7 @@ def run_test (f,Kb,bitspersymbol,K,dimensionality,tot_constellation,N0,seed):
noise = gr.noise_source_f(gr.GR_GAUSSIAN,math.sqrt(N0/2),seed)
# RX
- metrics = trellis.metrics_f(f.O(),dimensionality,tot_constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for Viterbi
+ metrics = trellis.metrics_f(f.O(),dimensionality,tot_constellation,digital.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for Viterbi
va = trellis.viterbi_s(f,K,0,-1) # Put -1 if the Initial/Final states are not set.
fsmi2s = gr.unpacked_to_packed_ss(bitspersymbol,gr.GR_MSB_FIRST) # pack FSM input symbols to shorts
dst = gr.check_lfsr_32k_s();
diff --git a/gr-trellis/src/examples/test_viterbi_equalization1.py b/gr-trellis/src/examples/test_viterbi_equalization1.py
index 3a65b9363..41f777551 100755
--- a/gr-trellis/src/examples/test_viterbi_equalization1.py
+++ b/gr-trellis/src/examples/test_viterbi_equalization1.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from gnuradio import gr
-from gnuradio import trellis
+from gnuradio import trellis, digital
from gnuradio import eng_notation
import math
import sys
@@ -31,9 +31,9 @@ def run_test (f,Kb,bitspersymbol,K,channel,modulation,dimensionality,tot_constel
# RX
skip = gr.skiphead(gr.sizeof_float, L) # skip the first L samples since you know they are coming from the L zero symbols
- #metrics = trellis.metrics_f(f.O(),dimensionality,tot_constellation,trellis.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for Viterbi
+ #metrics = trellis.metrics_f(f.O(),dimensionality,tot_constellation,digital.TRELLIS_EUCLIDEAN) # data preprocessing to generate metrics for Viterbi
#va = trellis.viterbi_s(f,K+L,-1,0) # Put -1 if the Initial/Final states are not set.
- va = trellis.viterbi_combined_fs(f,K+L,0,0,dimensionality,tot_constellation,trellis.TRELLIS_EUCLIDEAN) # using viterbi_combined_fs instead of metrics_f/viterbi_s allows larger packet lengths because metrics_f is complaining for not being able to allocate large buffers. This is due to the large f.O() in this application...
+ va = trellis.viterbi_combined_fs(f,K+L,0,0,dimensionality,tot_constellation,digital.TRELLIS_EUCLIDEAN) # using viterbi_combined_fs instead of metrics_f/viterbi_s allows larger packet lengths because metrics_f is complaining for not being able to allocate large buffers. This is due to the large f.O() in this application...
dst = gr.vector_sink_s()
tb.connect (src,mod)
diff --git a/grc/grc_gnuradio/blks2/packet.py b/grc/grc_gnuradio/blks2/packet.py
index 50de99ac9..2a4876338 100644
--- a/grc/grc_gnuradio/blks2/packet.py
+++ b/grc/grc_gnuradio/blks2/packet.py
@@ -18,7 +18,8 @@
# Boston, MA 02110-1301, USA.
#
-from gnuradio import gr, packet_utils
+from gnuradio import gr
+from gnuradio.digital import packet_utils
import gnuradio.gr.gr_threading as _threading
##payload length in bytes