eb [Thu, 19 Jun 2008 15:04:26 +0000 (15:04 +0000)]
Moved mb_time to omni_time and left mb_time.h with typedef to maintain
backwards compatibility. Removed gcell's dependency on mblocks. Now
gcell only depends on omnithread. Merged eb/wip -r8621:8623 to trunk.
eb [Thu, 19 Jun 2008 00:06:42 +0000 (00:06 +0000)]
Merged eb/gcell-wip -r8559:8571 into trunk. The shared queue
structure is slightly modified, and the spu dequeue has been
streamlined. In addition, the spu Lost-Lock Line Reservation event is
now work correctly, though it is still disabled because it's slower
than the expontial backoff alternative.
eb [Mon, 26 May 2008 13:33:34 +0000 (13:33 +0000)]
Added rewind() and clear() to vector sources and sinks. This is useful
when doing automatic testing of a block (e.g. BER vs SNR).
Patch from Andreas Müller.
eb [Mon, 26 May 2008 13:30:41 +0000 (13:30 +0000)]
channel_model.py now allows to set the random seed for the noise
source via __init__ and adds a function to set the timing
offset. (Patch from Andreas Müller.)
(1) Close out_f before removing it in
gnuradio-core/src/python/gnuradio/gr/qa_wavefile.py (to prevent make check
failure).
(2) Don't permanently change PATH in config/sdl.m4 (to prevent real
problems in MinGW and potential problems for any code that runs after
sdl.m4 and depends on PATH).
Merged eb/gcell-wip -r8302:8307 into trunk. This changeset includes
an example of SPE assembler (memset.S), a new file of macros for use
with SPE assembler (gc_spu_macs.h), and an extended QA framework. The
easy to use QA framework adds support for SPE utility code that's
usually not called from the PPE, such as memset. See
qa_gcell_general.{h,cc} and qa_memset.c for example usage.
memset achieves 44GB/s on the SPE. That's within 3% of ideal.
Fixed completely buggy memcopy that overwrote potentially lots of memory in
atsc_depad.cc. The problem has to do with confusion between input and output
sizes, as well as some very wrong pointer math (Dan Halperin).
Improved performance of the ML sync (with added computations). It uses the energy calculation to normalize the correlation and the timing sequence and correlation together to determine the timing. This works for frequencies of +-0.6 offset, which is a limiting factor still in the performance but better than the previous checkin.
Improved the pnac ofdm sync block. This is based on a VTC'99 paper by Tufvesson, et al. that does a bit more work than the Schmidl and Cox to produce a more identifiable peak for the timing. This seems to work well in the simulation for low frequency errors. The correlation doesn't seem to track well, though. See the comments for more info. Also, the peak detection requires unity amplitude for the threshold detection. So, who wants to make an OFDM AGC?
to complete what I started, this makes the ofdm_sync_fixed block work again in the OFDM receiver. Its only used for testing in the simulation mode if you want to remove any affects of the synchronization blocks. You have to manually edit the number of symbols and any fractional frequency offset you might want to use.
The ofdm_sync_pnac method now works, though not that well. The frequency estimation is horrible and it still has some problems that may be a fundamental issue with the idea. I need to get the paper this was based off of to review it.
Merged gcell-wip -r8159:8202 into trunk. This includes the following
changes:
* gc_make_job_manager now returns a boost::shared_ptr
* opts.program_handle is now a boost::shared_ptr
* two new functions for getting a program handle
* look_proc and alloc_job_desc now throw on error
* static methods for setting and getting a single job manager
* new exception hierarchy
* mv gcell/src/lib/procs gcell/src/lib/wrapper
* added libfft. Currently inverse xform is broken
* gcell-embedspu-libtool creates libtool complaint .ko's from SPE executables
Merged r8195:8205 from jcorgan/ecc into trunk. Adds convolutional encoder
and decoder corresponding to the R=1/2, K=7 CCSDS standard ("Voyager").
This code is a GNU Radio wrapper around a 1995-era KA9Q portable-C
implementation, and is designed for continuous streaming data, not packets.
The encoder takes MSB packed bytes and outputs channel symbols 0 or 1.
The decoder uses soft-decision Viterbi decoding on a floating point stream of
(possibly noise corrupted) [1.0, 1.0] symbols, and outputs MSB packed
decoded bytes.
Benchmarking on a 2.16 GHz Intel Core 2 Duo shows 4.7 Mbps decoding rate at
100% CPU usage (single core). (There is a newer KA9Q library that implements
SIMD speed ups with correspondingly faster performance.)
The KA9Q library is placed into src/lib/viterbi. It could use some cleanup,
file/function renaming, and refactoring, or even replacement with the newer
libfec code that is available.
Mostly fixed the van de Beek ML synchronization scheme. Instead of using the CP timing signal, it correlates against the known preamble just to send along the timing trigger. This works nicely and keeps the frequency more constant in the receiver since it updates the estimate every received symbol. Read the comments inside to see why it's 'mostly fixed' -- this was mostly proving a point for myself today.
Adjusting structure a bit to redistribute responsibilities. This does not change the behavior or performance at all. The sync. block only calculates the frequency and timing signals and now outputs the fine frequency adjustment signal from output 0 and the timing signal for the start of the packet from output 1.
Adds gru.daemonize() and example application. Simplifies running GNU Radio applications as background daemon processes instead of foreground applications.
trondeau [Mon, 31 Mar 2008 23:30:32 +0000 (23:30 +0000)]
merging branch trondeau/ofdm r7971:8143. Fixing subcarriers and other issues to improve OFDM system operation. Not much more we can do with this than add channel coding and cleaning up.
eb [Mon, 24 Mar 2008 07:46:47 +0000 (07:46 +0000)]
Fix for gcell corrrectness/performance problem. Replaces mfc_sync
with appropriate use of tag and fenced get. We could pick up a bit
of additional performance by double buffering the the local store
job descriptor, but that's left for a rainy day.
eb [Mon, 24 Mar 2008 06:09:29 +0000 (06:09 +0000)]
Merged gcell, the Cell SPE scheduler and RPC mechanism into the trunk.
(eb/trunk-with-gcell r8037:8085). Expect additional tweaks, but
currently works and passes distcheck.
gdt [Mon, 17 Mar 2008 00:48:25 +0000 (00:48 +0000)]
Don't define RANDOM_MAX on systems that have already defined it. (At
present, only NetBSD-current is known to do this.) Improve the
comment explaining the situation.
gdt [Sun, 16 Mar 2008 22:09:12 +0000 (22:09 +0000)]
Use AC_PATH_PROG to avoid which(1).
In addition to testing if $SVN is non-null, require the presence of a
subversion ".svn" directory.
Confirmed working with svn builds.
trondeau [Fri, 7 Mar 2008 19:59:28 +0000 (19:59 +0000)]
Adds callback function so that the user can click on a point in the time sequence and highlight it and the corresponding point in the constellation diagram; can cycle forwards and backwards using < and > keys, respectively.
Merged eb/reverted-7899 -r7928:7930 into trunk. This effectively
reverts changeset 7899 and fixes some distcheck problems. We're now
back to the old behavior, where you must "make" before "make distcheck".
jcorgan [Fri, 29 Feb 2008 19:26:49 +0000 (19:26 +0000)]
Merged r7857:7898 from n4hy/msddLTS into trunk, with modification. Adds gr-msdd6000 component, providing GNU Radio source and sink support for the Softronics Ltd. MSDD 6000 receiver.
gdt [Fri, 29 Feb 2008 15:19:22 +0000 (15:19 +0000)]
Set PREFIX back to /usr/gnuradio, because systems that do not use /opt
and follow traditional UNIX partitioning will then put the build in /
(which does not have adequate space and violates the point of / being
separate). The prefix /usr/gnuradio is also not known to be in use by
any packaging system, and it is important that test builds not
interfere with files controlled by packaging systems. It may be that
OS-specific overrides are needed to choose a reasonable prefix on
systems where /usr/gnuradio is not appropriate.
Add usrp as a dependency for gr-radar-mono. Now only expected
failures occur on NetBSD/i386 4.0ish (gr-audio-{alsa,osx,windows} and
gr-comedi).