Re: [Discuss-gnuradio] Volk branch on github

2012-02-15 Thread Martin DvH
On Tue, 2012-02-14 at 22:56 -0500, Tom Rondeau wrote:
 There's been a ton of work going on in getting us ready to really
 start using Volk in GNU Radio blocks. Instead of repeating myself,
 here, you can see more about the who/what/when/why/how of the changes
 here: 
 
 
 http://www.trondeau.com/blog/2012/2/13/gnu-radio-is-crap-and-other-such-insights.html

I think you copied the wrong link.
You probably meant:
http://www.trondeau.com/blog/2012/2/13/volk-integration-to-gnu-radio.html


Martin

 
 
 The basic summary is that I'm seeing amazing performance results and
 I'm very excited to get this into our project.
 
 
 I'm really hoping that people can check out the branch and test it out
 against their applications. A number of changes were made inside GNU
 Radio and a handful of blocks have been converted to using Volk, and
 I'd like to see how the performance compares. My own tests show great
 results, but I have a pretty heterogeneous setup (Linux/Ubuntu and
 Intel processors).
 
 
 I should have another post on my website later this week discussing my
 benchmark results for the Volk blocks, but anyone interested in
 testing it out on their own should check out
 gnuradio-examples/python/volk_benchmark. The README in that directory
 should help you understand what to do and how to do it.
 
 
 We would like to get this merged into GNU Radio master (and therefore
 version 3.5.2) as soon as possible, so I would really appreciate
 feedback and bug reports as soon as possible.
 
 
 Thanks!
 Tom
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 https://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Volk branch on github

2012-02-15 Thread Martin DvH

I think it would make sense to change the volk interface by adding
kernel calls which can handle the two alignment cases (aligned,
unaligned).
We would have to add a is_unaligned parameter to the volk kernel calls.

The gnuradio blocks would then change in the following way:

So in stead of:

if(is_unaligned()) {
  for(size_t i = 1; i  input_items.size(); i++){
volk_32fc_x2_multiply_32fc_u(out, out, (gr_complex*)input_items[i],
noi);
  }
} else {
  for(size_t i = 1; i  input_items.size(); i++){
volk_32fc_x2_multiply_32fc_a(out, out, (gr_complex*)input_items[i],
noi);
  } 
}

You would have:

for(size_t i = 1; i  input_items.size(); i++)
  volk_32fc_x2_multiply_32fc(is_unaligned(), out, out,
(gr_complex*)input_items[i], noi);

You halve the amount of code in gnuradio blocks which to my opinion
makes it much more maintainable.


Martin


On Wed, 2012-02-15 at 12:06 +0100, Martin DvH wrote:
 On Tue, 2012-02-14 at 22:56 -0500, Tom Rondeau wrote:
  There's been a ton of work going on in getting us ready to really
  start using Volk in GNU Radio blocks. Instead of repeating myself,
  here, you can see more about the who/what/when/why/how of the changes
  here: 
  
  
  http://www.trondeau.com/blog/2012/2/13/gnu-radio-is-crap-and-other-such-insights.html
 
 I think you copied the wrong link.
 You probably meant:
 http://www.trondeau.com/blog/2012/2/13/volk-integration-to-gnu-radio.html
 
 
 Martin
 
  
  
  The basic summary is that I'm seeing amazing performance results and
  I'm very excited to get this into our project.
  
  
  I'm really hoping that people can check out the branch and test it out
  against their applications. A number of changes were made inside GNU
  Radio and a handful of blocks have been converted to using Volk, and
  I'd like to see how the performance compares. My own tests show great
  results, but I have a pretty heterogeneous setup (Linux/Ubuntu and
  Intel processors).
  
  
  I should have another post on my website later this week discussing my
  benchmark results for the Volk blocks, but anyone interested in
  testing it out on their own should check out
  gnuradio-examples/python/volk_benchmark. The README in that directory
  should help you understand what to do and how to do it.
  
  
  We would like to get this merged into GNU Radio master (and therefore
  version 3.5.2) as soon as possible, so I would really appreciate
  feedback and bug reports as soon as possible.
  
  
  Thanks!
  Tom
  
  
  ___
  Discuss-gnuradio mailing list
  Discuss-gnuradio@gnu.org
  https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] GNU Radio at Chaos Communication Camp 2011

2011-07-07 Thread Martin DvH
Hi,

I will be going and probably take a few others from The Netherlands with
me.

I organized a gnuradio workshop on HAR2009 together with Pascal Schiks.
Maybe we will do that again on CCC.

I will  be taking about a dozen USRPs, daughterboards, clocktamers,
antennas and OpenBTS desktop kits with me. 

They can be used for workshops and I also sell them.

Maybe we should start a gnuradio village.


Regards,

Martin Dudok van Heel

Olifantasia


On Thu, 2011-07-07 at 10:01 +0200, Patrick Strasser wrote:
 Hello!
 
 I'll be attending the Chaos Communication Camp 2011 near Berlin in
 August[1].
 
 I hope to see some GNU Radio people there. Someone else who intends to
 be there too?
 Is there a village where the probability for meeting GNU Radio people is
 extraordinary high?
 
 Regards
 
 Patrick
 
 [1] http://events.ccc.de/camp/2011/



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] gnuradio.org seems to be down

2010-10-28 Thread Martin DvH
gnuradio.org seems to be down


Martin


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Large FFTs

2010-08-23 Thread Martin DvH
Dear Carles,

On Mon, 2010-08-23 at 21:37 +0200, Carles Fernandez wrote:
 Dear Thomas,
 
 we have found some problems when using USRP2+DBSRX for GPS due to
 phase noise. See details in http://www.ruby-forum.com/topic/213845
I have experimented with using the clock from the usrp to a modified
TVRX (disabling the internal TVRX clock, using a 4 Mhz clock from the
usrp).

One of my findings was that if you use a low resistor from the usrp
clock output to a daughterboard, followed by a relatively large
capacitor to ground (for lowpass filtering) you can get a lot of
spurious.
The usrp can generate quite some power on this clockline.
When you load the clockline to heavy, it wil start generating RF power.
The load being a low resistor and big capacitor. 
The antenna being the track from the usrp to the lowpass filter.

In the worst case you can be generating several milliwatts.

This can definitely have an effect on the performance.
Especially if you happen to be on a multiple of the daughterboard clock.

My advise would be to experiment with a higher impedance lowpass filter
which does not put a heavy load on the clockline.
You could also experiment with a buffer amplifier.

Good luck,

Martin Dudok van Heel

Olifantasia.com


 
 If someone have succeded on this, we would appreciate some hints to
 make it work. Our software GPS receiver was not able to track signals,
 while it run smoothly when using USRP1 + DBSRX without modification.
 
 Best regards,
 Carles Fernandez
 
 
 
 
 On Mon, Aug 23, 2010 at 10:00 AM, Thomas Hobiger hobi...@nict.go.jp wrote:
  We are considering to purchase a USRP2 + a DBSRX board in order to utilize
  it for some GPS stuff. Thus it would be interesting to know what's the
  maximum supported (implemented) FFTs size. I have checked the old
  discussions, but there's nothing really conclusive. What we are looking for
  is something larger than 16K FFT points.
  Maybe someone has experiences with such large FFTs and how they perform
  (Flops or FFTs per second)?
 
  Best regards,
   Thomas Hobiger
 
  --
  **
  Dr. Thomas Hobiger
  Space-Time Measurement Project
  Space-Time Standards Group
  New Generation Network Research Center
  National Institute of Information and Communications Technology
  --
  4-2-1 Nukui-Kitamachi, Koganei
  184-8795 Tokyo
  Japan
  --
  email:  hobi...@nict.go.jp
  --
  homepage (priv.): http://www.hobiger.org
  **
 
 
  ___
  Discuss-gnuradio mailing list
  Discuss-gnuradio@gnu.org
  http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Patch to increasy dynamic range of usrp2 by adding shift_iq setting

2010-07-08 Thread Martin DvH
Hi All,

I created a patch which adds a shift_iq setting to the usrp2.
This can shift the output of dsp_core_rx by 0 to 3 bits.
(= Multiply by 1, 2, 4 or 8)

It does proper rounding and clipping.

With the shift_iq setting in combination with the already existing
scale_iq you can optimize the dynamic range so that the samples going to
the PC always use the full 16 bit [-32768 to + 32767]

In practice this means a dynamic range increase of 6 dB or more.

Of course, if you set the shift to high you will get clipping.

The patch changes the fpga verilog, fpga firmware, usrp2, and gr-usrp
sources.


I did several icarus verilog simulations which came out OK.

I also created a python testscript which uses the actual usrp2. It
generates a 200 kHz signal on TX and receives it with RX.
(you need to loopback TX to RX using basicRX/TX or LFTX/RX boards.)
With the GUI you can set scale_iq and shift_iq.

I generated a new u2_rev3.bin and txrx.bin which seem to work fine.
Note that this firmware is based on my current git checkout.
So if you want to have this feature with the lastest code, you have to
apply my patch to the latest tree and generate new firmware yourself.

I created this patch on request, so it would be great if it were added
to the official tree. (So the default firmware can be used in the future
to have this function)

Patch and a testscript at:
http://www.olifantasia.com/projects/gnuradio/mdvh/usrp2_add_shift_iq/


Martin Dudok van Heel

diff --git a/gr-usrp2/src/usrp2.i b/gr-usrp2/src/usrp2.i
index 3197402..e960372 100644
--- a/gr-usrp2/src/usrp2.i
+++ b/gr-usrp2/src/usrp2.i
@@ -72,6 +72,7 @@ public:
   bool set_center_freq(double frequency, usrp2::tune_result *r);
   bool set_decim(int decimation_factor);
   bool set_scale_iq(int scale_i, int scale_q);
+  bool set_shift_iq(int shift_q, int shift_i);
   int decim();
   %rename(_real_adc_rate) adc_rate;
   bool adc_rate(long *rate);
diff --git a/gr-usrp2/src/usrp2_source_base.cc b/gr-usrp2/src/usrp2_source_base.cc
index 0ad7008..12fcd88 100644
--- a/gr-usrp2/src/usrp2_source_base.cc
+++ b/gr-usrp2/src/usrp2_source_base.cc
@@ -76,6 +76,12 @@ usrp2_source_base::set_scale_iq(int scale_i, int scale_q)
   return d_u2-set_rx_scale_iq(scale_i, scale_q);
 }
 
+bool 
+usrp2_source_base::set_shift_iq(int shift_q, int shift_i)
+{
+  return d_u2-set_rx_shift_iq(shift_q, shift_i);
+}
+
 int
 usrp2_source_base::decim()
 {
diff --git a/gr-usrp2/src/usrp2_source_base.h b/gr-usrp2/src/usrp2_source_base.h
index 2e2d51f..d318ad9 100644
--- a/gr-usrp2/src/usrp2_source_base.h
+++ b/gr-usrp2/src/usrp2_source_base.h
@@ -61,11 +61,24 @@ public:
   bool set_decim(int decimation_factor);
 
   /*!
-   * \brief Set receive IQ scale factors
+   * \brief Set receive IQ input scale factors
*/
   bool set_scale_iq(int scale_i, int scale_q);
 
   /*!
+   * \brief Set receive IQ output shift
+   * shift 0 (default) scales by 1
+   * shift 1 scales by 2
+   * shift 2 scales by 4
+   * shift 3 scales by 8
+   * Note that with a shift 0 overflow and clipping can occur.
+   * This can be resolved by reducing scale_iq to below the default 1024.
+   * By using a shift of 1 or 2 and reducing scale_iq,
+   * the full 16 bit output range (-32768 to +32767) can be used
+   */
+  bool set_shift_iq(int shift_q, int shift_i);
+
+  /*!
* \brief Get receive decimation rate
*/
   int decim();
diff --git a/usrp2/firmware/apps/app_common_v2.c b/usrp2/firmware/apps/app_common_v2.c
index 036d0ba..54bef3f 100644
--- a/usrp2/firmware/apps/app_common_v2.c
+++ b/usrp2/firmware/apps/app_common_v2.c
@@ -272,6 +272,9 @@ config_rx_v2_cmd(const op_config_rx_v2_t *p,
   if (p-valid  CFGV_SCALE_IQ){
 dsp_rx_regs-scale_iq = p-scale_iq;
   }
+  if (p-valid  CFGV_SHIFT_IQ){
+dsp_rx_regs-shift_iq = p-shift_iq;
+  }
 
   // Build reply subpacket
 
diff --git a/usrp2/firmware/include/usrp2_eth_packet.h b/usrp2/firmware/include/usrp2_eth_packet.h
index 63d4b3a..b1db5ac 100644
--- a/usrp2/firmware/include/usrp2_eth_packet.h
+++ b/usrp2/firmware/include/usrp2_eth_packet.h
@@ -283,6 +283,7 @@ typedef struct {
   uint32_t	freq_lo;	// low  32-bits of 64-bit fxpt_freq (Q44.20)
   uint32_t	decim;		// desired decimation factor (NOT -1)
   uint32_t	scale_iq;	// (scale_i  16) | scale_q [16.0 format]
+  uint32_t	shift_iq;	// (shift_i   4) | shift_q  [0, 1, 2 or 3]
 } _AL4 op_config_rx_v2_t;
 
 // bitmask for valid field.  If the bit is set, there's
@@ -292,7 +293,7 @@ typedef struct {
 #define	CFGV_FREQ		0x0002	// target_freq field is valid
 #define	CFGV_INTERP_DECIM	0x0004	// interp or decim is valid
 #define	CFGV_SCALE_IQ		0x0008	// scale_iq is valid
-
+#define	CFGV_SHIFT_IQ		0x0010	// shift_iq is valid
 /*!
  * \brief Reply to receiver configuration
  */
diff --git a/usrp2/firmware/lib/memory_map.h b/usrp2/firmware/lib/memory_map.h
index 0d0cf04..14b5f7b 100644
--- a/usrp2/firmware/lib/memory_map.h
+++ b/usrp2/firmware/lib/memory_map.h
@@ -500,6 +500,32 @@ typedef struct {
*/
   volatile uint32_t 

[Discuss-gnuradio] gnuradio.org seems to be down

2010-06-09 Thread Martin DvH
The gnuradio.org server seems to be down. (9 Jun 2010)

Even a ping times out.


Martin


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] gr.prefs

2010-04-29 Thread Martin DvH
On Wed, 2010-04-28 at 15:28 -0400, Marcus D. Leech wrote:
 Is there any kind of guide as to how gr.prefs is supposed to be used? 
 Is this functionality going
   to be deprecated at any point, is there any kind of plan as to how it
 will be used?
 
There is not much documentation but I found out the hard way a few
thinks you should know.

The format of the prefs configartion files:

-Never ever put a comment on the same line as a setting.

For example:
GOOD:
# default fft_rate=15
fft_rate=8

BAD
fft_rate=8 # default fft_rate=15

This results in a parse error for the line, and consequently the default
being used (in this case 15) in stead of your value (in this case 8).

Comments should be on their own line, starting with a # with no
whitespace in front of the #.

-Don't have backups of conf files (or other files) laying around in 
(/usr/local)/etc/gnuradio/conf.d

All files in (/usr/local)/etc/gnuradio/conf.d will be parsed.

If you have gr-wxgui.conf and gr-wxgui.conf~ and gr-wxgui.conf.bak and
README.txt then all will be parsed in unknown order.
The last value parsed will be used.


The best way I found to find out which values are used from the prefs is
doing a grep on the whole gnuradio tree.
First find the files which use prefs

For C++ files:
grep -R gr_prefs::singleton *

For python files:
grep -R gr\.prefs *

Then look in those files for get_string, get_long, get_
 
Maybe it is also possible to tweak doxygen to show all uses of gr_prefs,
I haven't tried.

To find out how to use it, just look at the current uses.
In short:
instantiate a gr_prefs singleton
 in C++   gr_prefs::singleton()
 in pythongr.prefs() 

And use one of the following methods to get your value: 
get_('section_name', 'option_name', default_value_if_not_found)

Where get_ is get_bool, get_double, get_long,get_string or
get_long 

Martin

 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Spread Spectrum question in gnuradio

2010-04-29 Thread Martin DvH
On Wed, 2010-04-28 at 11:23 -0700, Johnathan Corgan wrote:
 On Tue, Apr 27, 2010 at 21:19, John Andrews gnu.f...@gmail.com wrote:
 
  If I want to transmit a signal which is DSSS spread using BPSK. Is it
  correct for me to first digitally spread the incoming data bits and then
  apply BPSK before sending it to the USRP or should I first convert the
  signal to BPSK and then multiply the output of the BPSK modulator with the
  PN sequence although I don't know how to do it.
 
 Technically, these are equivalent.  However, it is easier and uses
 less CPU to XOR your data sequence with your PN code, then send it to
 the modulator.
I think there is a difference, if you use a root raised cosine filter,
set for your datarate and roll-off factor.

I think the correct version should then be:
BPSKmod - RRCfilter - DSSS 

Martin
 
 Johnathan
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] USRP1 Inband rework, request for features and comments

2010-04-29 Thread Martin DvH
On Tue, 2010-02-16 at 15:43 -0700, Eric Schneider wrote:
 Hi George, no worries, I know perfectly well how it is to have too many
 ambitions and too little time...  :-)
 
 I can confirm that the timestamps are correct.  I have been using it for
 some time.
 
 The compiled RBF is not in my developer branch.  I haven't even moved my
 recent work to git...  :-/

I am trying to find a working version of the inband code.

Where can we find your work.
The last I could find is at:
http://nyquist.gnuradio.org/svn/gnuradio/branches/developers/ets/inband/

But that shows no activity for a long long time.

I also tried to checkout your personal git and get the inband branch:

git clone http://gnuradio.org/git/ets.git
git checkout --track -b inband origin/inband
git fetch

But that has the inband example C++ apps and libs code moved to
usrp/limbo (in other words, disabled, nonfunctional)


 
 There are some older (but should be functional) versions at:
 http://www.schneider-group.com/gnuradio/
Those are only the rbfs



Thanks,

Martin

 The only recent changes I have made were related to debugging
 dropped/late tx packets due to host latency (I echo the tag fields from
 tx to rx).
 
 I have had some inquiries regarding the ability of the tx chain to use
 lower clock rates ( 48M, the xfer rate to the FX2).  Apparently others
 have had problems with that setup.  I will investigate this sometime in
 the near future.  
 
 I will also try to put together some tests to fully exercise the inband
 functionality.  Please recommend any tests you would like to see.
 
 --Eric
 
 On Tue, 2010-02-16 at 14:42 -0500, George Nychis wrote:
  Hi Eric,
  
  Sorry for the late response here, I've been wrapped up in so many
  things.
  
  Is your latest compiled RBF in your developer branch?  There are
  several people I know (some that I CC'ed) that are interested in using
  the inband code.  
  
  Last I checked, the timestamp had an issue of jumping which I know
  you tried to fix.  Last time I tried your branch, I'm not sure it was
  working yet.  Have you confirmed that timestamps to the host are not
  jumping in any manner when there is no overrun, and have you confirmed
  that timestamps are being treated properly when trying to transmit?
  
  Thanks a bunch for updating this code.
  
  - George
  
  
  On Tue, Jan 26, 2010 at 5:32 AM, Per Zetterberg
  per.zetterb...@ee.kth.se wrote:
  
  Eric Schneider wrote:
  Hi all,  I'm looking to be doing some more rework of
  the USRP1 inband
  code, specifically to align with the USRP2 VRT work.
  
  For those not familiar, USRP1 inband allows for
  timestamped rx/tx
  samples (and commands), which is very useful for TDMA
  type systems.  It
  is a separate FPGA configuration and host side
  interface.  
  Has anyone besides me used the current inband FPGA?
  
  I'm not sure who on this list is interested in such a
  thing, but if you
  have specific needs you want addressed, speak up now!
  
  A few notes on my current thinking:
  
  1. I do not intent to implement VRT over USB.  Only to
  implement a VRT
  compatible interface on the host.  The USB inband
  protocol will simply
  serve to make that possible in the most efficient way
  possible.
  
  2. I don't intend to keep the existing inband packet
  structure.  This is
  one area where interested parties really need to
  provide feedback as to
  supported (or supportable) feature sets.
  
  It is my hope that the new inband Verilog modules can
  be used by other
  custom FPGA builds as a standard host interface.
  
  For example, it has just recently occurred to me that
  the FPGA side
  could be made more efficient by the use of trailer
  metadata rather than
  headers.  Since the USB packets are fixed size, I
  don't really see a
  downside.
  
  There are also fields in the current inband packet
  that are either
  obsolete, or should be optional fields, IMO.  RSSI,
  for example.
  
  Do timestamps really need to be 32 bits?  That allows
  scheduling
  transmission 33 seconds in advance on a 64MHz clock,
  which seems
  excessive to me.
  
  Is there 

[Discuss-gnuradio] removal of mblock and inband code

2010-04-29 Thread Martin DvH
I noticed this in a recent commit:

 commit ac2b84b93cad94f9a8830eeb5e62dace997c9a47
 Author: Johnathan Corgan jcor...@corganenterprises.com
 Date:   Mon Apr 26 22:41:19 2010 -0700
 
Remove mblock library.  We hardly knew 'ye.


This commit removes all mblock and inband code.

Is a new message passing interface usable with usrp-1 in place yet?

I was just working on getting the inband code working again to be able
to do timestamped rx and tx on usrp-1?

Martin




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Problem with new install

2010-04-27 Thread Martin DvH
On Tue, 2010-04-27 at 08:57 -0700, William Pretty Security Inc wrote:
 Hi All;
 
  
 
 Well I picked up my new system at Best Buy. (details later) I
 installed Ubuntu 9.10 and Gnuradio from the git.
 
 I must have made a typo somewhere because I get the following error
 when I probe the USRP1:
 
  
 
 -
 
 will...@usrp:/usr/local/bin$ usrp_probe
 
  
 
 usrp_open_interface:usb_claim_interface: failed interface 0
 
 could not claim interface 0: 
 
 Operation not permitted
 
 open_nth_cmd_interface: open_cmd_interface failed
 
 usrp: failed to load firmware /usr/local/share/usrp/rev4/std.ihx.
 
Sounds like you forgot to logout and login or reboot.
Martin

  
 
 ---
 
  
 
 Could it be a typo when I was adding the “usrp” group ??
 
  
 
 Bill
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] fix for usrp2 overruns when stopping and restarting rx streaming

2010-04-21 Thread Martin DvH
Hi All,

When you use an USRP2 for capturing and you call

u2-stop_rx_streaming()

and later

u2-start_rx_streaming(0)

You always get a single overrun.
 -a single 'S' is output on the console
 -u2-rx_overruns() returns 1 (in stead of 0)

I am developing a usrp2 application which does not permit any overrun
conditions, so this needed fixing.

It turns out that the expected sequence number of received samples is
not reset when stopping the stream.

This single line patch fixes this.


Best Regards,

Martin

diff --git a/usrp2/host/lib/usrp2_impl.cc b/usrp2/host/lib/usrp2_impl.cc
index b19c6ec..92d52db 100644
--- a/usrp2/host/lib/usrp2_impl.cc
+++ b/usrp2/host/lib/usrp2_impl.cc
@@ -814,6 +814,7 @@ namespace usrp2 {
   success = transmit_cmd_and_wait(cmd, sizeof(cmd), p,
DEF_CMD_TIMEOUT);
   success = success  (ntohx(reply.ok) == 1);
   d_channel_rings[channel].reset();
+  d_rx_seqno=-1;
   //fprintf(stderr, usrp2::stop_rx_streaming:  success = %d\n,
success);
   return success;
 }





___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] AFC (Automatic Frequency Control) FM demo python and GRC scripts

2010-03-16 Thread Martin DvH
Hi all,

I wrote two gnuradio AFC (Automatic Frequency Control) demos

This AFC technique can come in handy when your tuning is critical and
there is a frequency offset or doppler shift to be expected.
(Like when trying to receive NOAA weather satelites which can have a
substancial doppler shift. I am also working on an updated gr-noaa
receive script which uses this AFC. )

There is a broadcast FM demo and a NOAA weathersatellite narrowband FM
simulation demo.

You can discuss and give feedback on the gnuradio AFC demo's here:
http://www.gnuradio.eu/cms/nl/node/203
(But feedback on the gnuradio mailinglist is also OK of course)

You can read about and download the gnuradio AFC demo's here:
http://www.olifantasia.com/projects/gnuradio/mdvh/AFC

Here follows the README:

Gnuradio AFC demo's

This directory contains gnuradio GRC and python example scripts for
using AFC in an FM receiver.

There is not (yet) a AFC gnuradio block.
So these examples implement the AFC by lowpass filtering the FM
demodulator output and putting the result in a variable sink.
The variable sink then sets the center frequency of the frequency
translating channel filter.
This compensates any frequency offset or doppler drift.

To limit the performance penalty of calling python code from the
samplestream, the code is only called once a second.

The critical settings of this feedback loop are:
AFC_gain (float)
AFC_IIR_alpha (float)
AFC_update_rate (float value: seconds between updates)

If you want to use this for a different FM signal type also make sure
you set the right channel_bandwidth and max_dev (=Maximum FM frequency
deviation in Hertz) 

Have fun

17 Mar 2010
Martin Dudok van Heel

Olifantasia
 




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] LFRX boards at low-VHF frequencies

2010-03-14 Thread Martin DvH
On Fri, 2010-03-12 at 14:12 -0500, Marcus D. Leech wrote:
 Has anybody on-list had experience using the BASIC_RX or LFRX boards at
 low-vhf frequencies
   (30-50MHz)??
BasicRX works when you add a corresponding bandfilter and a LNA.

Note however that the first niquist frequency is at 32 Mhz with a
default USRP1 with a 64 MHz ADC clock.

So signals above 32 Mhz will fold around to stations below 32 Mhz.
You can remove this effect with a bandfilter, but you need some cutting
space to do this.
With a very tight filter you can do about 98-126 Mhz or  66-94 Mhz or
34 - 62 Mhz or 0 - 30 Mhz.
But around the niquist freqs itsself +/- 32 Mhz  +/64 MHz, +/- 96 Mhz is
not possible.

If you use a different clockfreq for the ADC you can change the niquist
freq.
The USRP2 for example uses a 100 MHz ADC clock. With this you can do
about 0 - 48 Mhz wit a tight lowpass filter.
Running the USRP1 at 56 MHz will give you around  30 - 54 Mhz or 0 - 26
Mhz with the right bandfilters.


You can easily check this by running usrp_WFM_rcv.py on the commercial
FM band with a basicRX daughterboard. 

Note that there is a niquist freq at 96 Mhz with the default clock ( 64
Mhz). So if you leave out the bandfilter the stations above 96 Mhz fill
fold around on top of the stations below 96 Mhz.

I use a programmable clockgenerator with a USRP1 for experiments like
this.

I haven't tried with LFRX. These use diffential amplifiers which have a
limited bandwidth. They will probably work up to 50 Mhz but not much
above that.

BasicRX works up to around 200 MHz. But also note that the higher the
frequency, the lower the sensitivity and the higher the phasenoise.


 
 I have a potential science project that could usefully be implemented in
 that frequency range.


Cheers,

Martin
 
 Cheers
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] simultanuous receive and transmit on USRP2 in C++, maybe use threads

2010-03-08 Thread Martin DvH
Hi All,

I am building an application where I simultanuously want to receive and
transmit using the USRP2.
Since I also need the timestamps, I implement this using C++.
(Building my own filewriter class which extends usrp2::rx_nop_handler,
like in rx_streaming_samples.cc)

Should I use threads to keep TX and RX from interfering with each other.
With threads I could just start the RX thread and TX thread.
If I don't use threads I have to interleave sending and receiving
packets.


Is there an example I could look at.

I now based my code on :
usrp2/host/apps/rx_streaming_samples.cc
and
usrp2/host/apps/tx_samples.cc

I know gnuradio has its own support code for threads, but I couldn't
find an easy example on how to use it.

Best Regards,

Martin




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Altera Quartus II for linux free web edition finally available

2009-11-11 Thread Martin DvH
With the release of Quartus II 9.1 on 2 november 2009 Altera has finally
decided to make a free Linux Web edition available.

https://www.altera.com/support/software/download/altera_design/quartus_we/dnl-quartus_we.jsp

http://www.altera.com/corporate/news_room/releases/2009/products/nr-quartus-ii-v91.html?f=hpk=wn2

This means it is finally possible to synthesize the FPGA firmware for
the USRP on Linux without having to use a windows emulator.


Best Regards,
Martin 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] HAR2009 SDR:Village

2009-07-08 Thread Martin DvH
Hi All,

There will be a Software Defined Radio Village (Village:SDR) at the
HAR2009 event (13 to 16 august, Netherlands).

Pascal and Martin will bring a couple of USRPs and other equipment.
We will be giving Gnuradio workshops (in several languages, if needed)
and do Gnuradio demonstrations. That is, if we can find a spot to do so,
because we don't have a big tent ourselfs.

We hope that more Gnuradio and SDR enthousiasts wil join us there.
We especially hope, someone brings a big tent so we can do our workshops
and demonstrations there.

For more information see the links and info below.

Greetings,

Martin Dvh

https://wiki.har2009.org/page/Village:SDR

Village:SDR
Village for those that are interested in Software Defined Radio 
Morely for those that are interested in the OpenSource SDR platform
GNU-Radio

We'll bring a couple of USRP's and other devices to demonstrate some of
the capabilities of GNU-Radio, Like running our own 70cm HAM-band
Repeater (although 10M, 2M or 23cm can be done as wel)

Also intending to give some workshops for those that like to do
experiment with SDR.


Joining this village 
User:Coolepascal
Martin DVH

VillageSDR Short Description: Software Defined Radio
Contact User:CoolePascal

Workshops Yes, were planning is we find a good spot as wel as a beamer 

Activities We'll mainly demonstrate and promote GNU-Radio soft and
hardware using some nice and hopefully impressive demo's



The where-abouts
Hacking at Random 2009 is an international technology  security
conference. Four days of technology, ideological debates and hands-on
tinkering.

On August 13-16, 2009 the 20th anniversary edition of the four-yearly
Dutch outdoor technology-conference will take place at de Paasheuvel
near Vierhouten in The Netherlands, Europe.

https://www.har2009.org/




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Programming USRP as a relay node

2009-07-07 Thread Martin DvH
On Sat, 2009-07-04 at 14:15 +0300, Tasos Kyrillidis wrote:
 Hello everyone,
 
 I am a postgraduate student at Technical University of Crete, Chania
 and i am currently working on a project with USRPs. Part of our
 project is to communicate with a relay node. But this relay node is a
 little bit slow, because there is data transfer from USRP to PC and
 then from PC to USRP. So, there is an idea to program the FPGA of USRP
 as a relay without any communication between PC and USRP - the relay
 node just detects packets and retransmit them without any further
 processing. 
 
 1. One idea is to program the FPGA to include a packet detector and a
 raised cosine filter. But I read somewhere that the default FPGA has
 only 5% available resources and i am wondering if these resources are
 enough for a packet detector and a raised cosine filter?
You can free up resources by reducing the number of channels.
In your case, only one RX and one TX channel in stead of two.
You can also replace the halfband filter with a raised cosine filter.
(Note, you can only use a limited number of taps, depending on the
decimation factor)

A simple signal level detector should be doable.
For a packet detector and best S/N ratio you should completely
demodulate the packets and remodulate them (regenerate the signal)
This will be quite complicated though and possibly not fit in the FPGA.

When you use a USRP2 you have much more room in the FPGA. Implementing a
complete receiver, packet detector and transmitter will certainly fit,
but it will still be a complicated design.

Greetings,
Martin 


 
 2. In case there are enough resources (in some way), could anyone
 estimate how difficult would be to implement it? Has the current
 configuration to be changed a lot or including the appropriate modules
 is enough?
 
 I know that my questions are kind of abstract but i couldnt express
 them differently
 
 Thanks anyway
 
 Tasos Kyrillidis
 
 
 __
 What can you do with the new Windows Live? Find out
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] CUDA-Enabled GNURadio gr_benchmark10 possible improvements

2009-07-01 Thread Martin DvH
On Wed, 2009-07-01 at 05:27 -0400, Yu-Hua Yang wrote:
 Thank you very much for your reply. I have some more questions. I
 understand you wont be looking/updating this branch anymore due to the
 release of OpenCL, but thanks for helping right now!
 
 Before you dive in, one thing I am having concerns is this output that
 happens every time I run CUDA-enable code:
 
 gr_vmcircbuf_cuda::copy_buf_to_buf() error cudaMemcpy() returned 0x3 =
 3 initialization error
 gr_vmcircbuf_cuda::copy_buf_to_buf recreating buffer d_base=0x382
 size=32768 *2 
 
If I remember well, this error is not a problem if you get it once per
instantiated CUDA block.

It is a problem if you get it multiple times for the same block.


If I remember well, this has to do with CUDA not being happy with
multithreaded applications and access to the same device buffer from
different host-threads.

Gnuradio using cuda should always use the single-threaded scheduler.
(This is not the default)
I don't remember if my code does this automatically or if you have to
force it using an environment variable.
( you can select the
scheduler used at runtime by setting the GR_SCHEDULER environment
variable.  E.g., 
multithreaded Thread-Per-Block scheduler
  $ GR_SCHEDULER=TPB ./my-gnuradio-application.py ...

or
Single-Threaded-Scheduler
  $ GR_SCHEDULER=STS ./my-gnuradio-application.py ...
)

If you have to use the environment variable, then this should go into
the gnuradio-CUDA docs (if it is not already there).


Greeting,
Martin
 
 Are these 2 outputs normal? Are they suppose to happen? If not, how do
 I fix this?
 
 2009/6/30 Martin DvH gnuradiom...@olifantasia.com
 On Tue, 2009-06-30 at 02:52 -0400, Yu-Hua Yang wrote:
  Upon a closer look into cuda_muiltiply_const_ff_kernel.cu,
 there
  exists 5 different kernel functions to do the
 multiplication, where
  the default one,
 
   __global__ void
  cuda_multiply_const_ff_kernel(const float* g_idata,
 float*
  g_odata,const int noutput_items,const float konst)
 
  is completely blank. But regardless, nobody calls these
 kernel
  functions.
 
 cuda_multiply_const_ff was never finished or I accidently
 removed some
 code here.
 Either way, this is clearly a bug.
 The empty kernel should call one of the implemented kernels.
 
 
 
  Then, in the same file, which is called by
 cuda_multiply_const_ff.cc,
  in this function
 
  int
  get_cuda_multiply_const_ff_kernel_params
  ( cuda_multiply_const_ff_kernel_params *params )
  {
int result=0;
//const unsigned int max_num_threads_per_block  =
  MAX_NUM_THREADS_ALL;   //can use the maximum number
 of threads
  if wanted
//unsigned int max_num_blocks =
 MAX_NUM_BLOCKS_ALL;
 
unsigned int num_blocks=4096 ;// =
  gridDim.x;
   //NUM_CUDABLOCKS
unsigned int num_threads_per_block=512;//  =
  blockDim.x; //NUM_THREADS;
unsigned int
 num_outputs_per_block=num_threads_per_block;
 
const unsigned int num_outputs_per_grid=
  num_outputs_per_block*num_blocks;
  //(blockDim.x)*gridDim.x
 
size_t dynamic_shared_mem_size =
 
 0;//256*sizeof(float);//0;//num_threads_per_block*sizeof(gr_complex);
dim3  griddim( num_blocks, 1, 1);
dim3  threaddim( num_threads_per_block, 1, 1);
 
params-griddim=griddim;
params-threaddim=threaddim;
 
 params-dynamic_shared_mem_size=dynamic_shared_mem_size;
params-num_outputs_padded=num_outputs_per_grid;
params-num_inputs_padded=num_outputs_per_grid;
 
 params-num_inputs=0;//num_outputs_per_grid;//num_outputs;
 
 params-num_outputs=0;//num_outputs_per_grid;//num_outputs;
 
//Now you can do the kernel invocation like this:
//cuda_multiply_const_ff_filter_kernel
 params-griddim,
  params-threaddim, params-dynamic_shared_mem_size
  (g_idata, g_odata,
  params-num_outputs_padded*X,konst);
return result;
  }
 
  The kernel invocation is completely commented out! The
 result is
  initialized as 0 at the top and returns it. All the work in
 between to
  specify and allocate thread, block sizes does not seem to
 matter. Not
  sure why

Re: [Discuss-gnuradio] CUDA-Enabled GNURadio gr_benchmark10 possible improvements

2009-06-30 Thread Martin DvH
On Tue, 2009-06-30 at 02:52 -0400, Yu-Hua Yang wrote:
 Upon a closer look into cuda_muiltiply_const_ff_kernel.cu, there
 exists 5 different kernel functions to do the multiplication, where
 the default one,
 
  __global__ void
 cuda_multiply_const_ff_kernel(const float* g_idata, float*
 g_odata,const int noutput_items,const float konst) 
 
 is completely blank. But regardless, nobody calls these kernel
 functions. 
cuda_multiply_const_ff was never finished or I accidently removed some
code here.
Either way, this is clearly a bug.
The empty kernel should call one of the implemented kernels.


 Then, in the same file, which is called by cuda_multiply_const_ff.cc,
 in this function
 
 int
 get_cuda_multiply_const_ff_kernel_params
 ( cuda_multiply_const_ff_kernel_params *params )
 {
   int result=0;
   //const unsigned int max_num_threads_per_block  =
 MAX_NUM_THREADS_ALL;   //can use the maximum number of threads
 if wanted
   //unsigned int max_num_blocks = MAX_NUM_BLOCKS_ALL;
 
   unsigned int num_blocks=4096 ;// =
 gridDim.x; //NUM_CUDABLOCKS   
   unsigned int num_threads_per_block=512;//  =
 blockDim.x; //NUM_THREADS;
   unsigned int num_outputs_per_block=num_threads_per_block;
 
   const unsigned int num_outputs_per_grid=
 num_outputs_per_block*num_blocks;  //(blockDim.x)*gridDim.x 
  
   size_t dynamic_shared_mem_size =
 0;//256*sizeof(float);//0;//num_threads_per_block*sizeof(gr_complex);
   dim3  griddim( num_blocks, 1, 1);
   dim3  threaddim( num_threads_per_block, 1, 1);
 
   params-griddim=griddim;
   params-threaddim=threaddim;
   params-dynamic_shared_mem_size=dynamic_shared_mem_size;
   params-num_outputs_padded=num_outputs_per_grid;
   params-num_inputs_padded=num_outputs_per_grid;
   params-num_inputs=0;//num_outputs_per_grid;//num_outputs;
   params-num_outputs=0;//num_outputs_per_grid;//num_outputs;
 
   //Now you can do the kernel invocation like this:
   //cuda_multiply_const_ff_filter_kernel params-griddim,
 params-threaddim, params-dynamic_shared_mem_size
 (g_idata, g_odata,  params-num_outputs_padded*X,konst);
   return result;
 }
 
 The kernel invocation is completely commented out! The result is
 initialized as 0 at the top and returns it. All the work in between to
 specify and allocate thread, block sizes does not seem to matter. Not
 sure why this code exists this way, did someone make an edit or did
 Martin specifically commented out the kernel invocation?
Yes the kernel invocation is specifically commented out.
The commented out kernel invocation  is only here as documentation on
how to do the actual kernel invocation.

There is still a small typo.
It should refer to cuda_multiply_const_ff_kernel and not
cuda_multiply_const_ff_filter_kernel



This methods name is get_cuda_multiply_const_ff_kernel_params
It does just that, determine the needed params for the kernel
invocation.

The actual kernel invocation is done in:
cuda_multiply_const_ff_work_device


Both get_cuda_multiply_const_ff_kernel_params and
cuda_multiply_const_ff_work_device are called from normal C++ code in
cuda_multiply_const_ff_kernel.cu

Better examples to look at and benchmark would be
cuda_quadrature_demod_cuda_cf
cuda_fir_filter_fff

These are both used in 
testbed/wfm/cuda_wfm_rcv.py
Which calls the complete cuda implementation of a WFM receiver in
cuda_wfm_rcv_cuda.py

You will notice  a cuda_multiply_const_ff block is instantiated as
volume_control but not used in the final connect because it didn't work.
Now I know this is because of the bug you found.


  Is this suppose to be this way? I don't see how this can be a proper
 benchmarking if it seems that we just test about allocating threads
 and blocks on the device and memory access times, but really don't do
 any computation.
That is not a good benchmark indeed.
cuda_multiply_const_ff should be fixed first.

The fir-filter is however the thing you really want to benchmark.
(Which is also in there)
The more taps the fir-filter has, the more computations it will have to
make.
Note that the cuda implementation is at the moment limited in the number
of taps it can support at a certain decimation factor.
If I remember well decimationfactor*numberoftaps should stay below 2048
(or was it 512)

Ways of improving the resuls include having gnuradio do calculations in
bigger chunks.
This can be done in several ways.
One way is to have a block at the end of the processing chain which has
a large output_multiple requirement which needs 1 input for every
output.
In other words. Connect a block to the end of the processing chain which
has set_output_multiple(large_number) in 

Re: [Discuss-gnuradio] TVRX question

2009-06-21 Thread Martin DvH
On Sun, 2009-06-21 at 15:15 +0200, Sebastiaan Heunis wrote:
 Hi all
 
 For some reason I always thought that the TVRX daughterboards support
 IQ sampling.  Turns out I was wrong. 
You are only partly wrong.
The TVRX is only sampled in I.
But the usrp firmware transforms this into IQ samples at the stage which
converts the signal from the IF to baseband.

The samples you get in the PC are IQ samples.
You don't have to modify your processing chain in your application.

You only have to take care of the I sampling at the place where you set
the ADC mux  (only sample the I part of the IF using only one ADC).


Greetings,
Martin
  How do I modify my applications
 for I sampling?  Can I just wire up a whole IQ chain, save files in IQ
 format, use read_complex_binary.m to read it in and discard the Q
 part?  How do I setup the USRP to only have an I path on the inside?
 Do I just use usrp_source_s and then read saved files using
 read_float_binary.m?
 
 Thanks in advance.
 
 Sebastiaan
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] GnuRadio and CUDA

2009-06-21 Thread Martin DvH
On Fri, 2009-06-19 at 03:28 -0400, Yu-Hua Yang wrote:
 Continuing from this thread
 http://lists.gnu.org/archive/html/discuss-gnuradio/2008-11/msg00293.html
 
 Has there been any progress made since 2008? 
 
No, not much.
I am waiting for the OpenCL implementations from nvidia and ATI to
become available to the general public.
Then I plan on rewriting the code from CUDA to OpenCL.

This way we only have to support one codebase for a multitude of
hardware platforms.
(nvidia GPU, ATI GPU, cell processor, multicore-CPU)

The current codebase in my development brache is usable though.
Anybody is welcome to work further on this.

I myself are not planning on working on it untill openCL becomes
available.

I registered for early developer access to the nvidia OpenCL
implementation but I never heard from then since.

Greetings,
Martin Dudok van Heel

 Thank you
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] DBS-RX satellite connection

2009-06-08 Thread Martin DvH
On Sat, 2009-06-06 at 21:57 -0700, Eric Blossom wrote:
 On Sat, Jun 06, 2009 at 02:30:05AM -0400, davek wrote:
  I would like to get my usrp conneced to my TVRO satellite dish. I am
  wondering...
  Is the DBSRX daughter card suitable for direct connection to a satellite 
  LNB?
 
 Yes.
 
  I am thinking it will be easier to let the sat receiver do the lnb
  power and polarization control
  Is it be safe to connect to the lnb loop-through connection on
  standard satellite receivers?
 
 I don't know.
 
I have done that in the past and it worked fine.
(I did analog satelite TV reception which is FM modulated.
I just switched the AM-demod block in usrp_tv_receive.py for a
quadrature-demod block (=FM demodulator) and reduced decimation and got
an image. You get some distortion because you can't get the complete
bandwidth of a sattelite channel usring a USRP-1. (Best I got was 16 MHz
using 8 bits/sample and decimation 4 )

Using the sat-receiver for power and polarisation is very conveniant.
You can use the remote to switch polarisation.

Greetings,
Martin

 Eric
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Upcoming changes in the development trunk

2009-05-27 Thread Martin DvH
On Wed, 2009-05-27 at 06:44 -0700, Johnathan Corgan wrote:

 In no particular order of time or importance, these are among some of
 the changes planned for the development trunk and 3.3 release that may
 affect you:
...
 
 * Elimination of the single-threaded flowgraph scheduler.  The
 thread-per-block scheduler is already the default in 3.2.  While this
 won't require any code changes, if you've been manually selecting the
 STS via the environment, you won't be able to do this anymore.

Is it really neccesary to remove this?
I need the single-threaded-scheduler for my GPGPU code. (Running
gnuradio on a videocard)
When doing doing calculations on en external device, you really need to
be in control of on which CPU/thread which block is running.
In practice you need to run everything that runs on the external device
from a single host thread.
The external device is running hundreds of threads and gnuradio only
needs a single thread to control the external device and move data
between the host and external device.
I have been waited with developing the GPGPU code further until the
changes in the scheduling code stabelizes. (At the moment the gpgpu
branche is incompatible with the most recent trunk)
My version of the scheduler is a modified single-threaded scheduler.
So I don't neccesaraly need to keep the current single-threaded
scheduler, but I do need the possibility to choose which scheduler to
use.

 * Migration of blks2 into C++.  This has been a place to hold
 hierarchical blocks constructed in Python.  Many of these blocks will be
 reimplemented as C++ API hierarchical blocks, and re-exported into
 Python as part of the core 'gr' namespace.  This will done where
 possible without syntax changes needed in your Python code other than
 the namespace to import from.
Will it be still possible to build your own python hierarchical blocks and 
install them somewhere.?

Martin
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Upcoming changes in the development trunk

2009-05-27 Thread Martin DvH
On Wed, 2009-05-27 at 08:12 -0700, Johnathan Corgan wrote:
 On Wed, May 27, 2009 at 7:35 AM, Martin DvH
 gnuradiom...@olifantasia.com wrote:
 
  * Elimination of the single-threaded flowgraph scheduler.  The
  thread-per-block scheduler is already the default in 3.2.  While this
  won't require any code changes, if you've been manually selecting the
  STS via the environment, you won't be able to do this anymore.
 
  Is it really neccesary to remove this?
 
 Not strictly necessary, no.  A lot of the new features in 3.3 will
 impact the scheduler, especially the new message passing between
 blocks.  It will be extra work to modify both schedulers.  This is
 Eric's area, however, so I'll let him comment further.
 
OK, I get the picture.
Since my single-threaded gpgpu-scheduler needs modifications as it is.
Maybe you should implement the multi-threaded-scheduler and leave the
scheduler choosing mechanism in place, and only leave stubs for the
single-threaded case.
I then could have a go at (trying to) implementing it for the
single-threaded (gpgpu ) case.

Eric, what's your view on this?


Martin
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Recommended PC Hardware for Performance

2009-05-19 Thread Martin DvH
On Tue, 2009-05-19 at 08:26 -0400, Tom Lutz wrote:
 This may be a somewhat banal question, but what would be the optimal
 hardware/software configuration needed to leverage the power of
 gnuradio?
 
 Core i7 versus Core2 Duo versus Other (maybe cell)?
gnuradio depends heavily on floating point performance and memory
bandwidth.
It makes good use of multiple cores.

So if you can afford it use a quad-core processor with a high memory
bandwidth.
( i7 quad or a quad core AMD phenom II )

 64-bit Linux versus 32?
Definitively 64 bit.
I haven't measured it recently but I have seen people report that going
from 32 to 64 bit linux gave a very significant performance boost with
gnuradio.
 Any hardware acceleration/DSP cards?
Work is being done on a Cell and a GPGPU port (run processing on
videocard) of gnuradio.
I myself am working on the gpgpu port.
At the moment this is done using CUDA which is a nvidia-only technology.

As soon as OpenCL is available this will be rewritten in OpenCL.
OpenCL is a cross-platform technology for doing massive parallel
calculations on different hardware on different OSes (Windows, Linux,
MacosX).
Nvidia has a beta version for Nvidia cards for linux, windows.
ATI is working on a version for their cards.
There will be a IBM Cell version.
The next release of MacosX will have support for it (And will also make
use of it within the OS)

When running on the videocard the memory bandwidth of the videocard is
the main performance differentiator between cards.
(The biggest bottleneck is the transfer of the data over the PCI-express
bus and the call-overhead but this is about the same for all PCI-express
videocards)

Don't expect the GPGPU port to be production ready within the next year
or two though. So unless you want to want to help with this port you
don't have to be picky which videocard to choose.
If you do want to help with the GPGPU port I would suggest a nvidia GTX
200 series card for best performance (Nvidia GTX 285 if you can affort
the financial and power budget)

I myself use a nvidia 9600 GT which is not that fast, but gives a good
impression if rewriting gnuradio for running on the GPU will give a
speed improvement on average machines.


 Amount/type of RAM?
Fast, faster fastest. Amount is not that critical.
2 GB or more should do for most Gnuradio work on Linux.

 While running some flow graphs on an older machine, I found that I had
 designed one of my low pass filters too tightly.  The large number of
 taps in the FIR consumed all the processing power available, and
 starved the USRP for data.
This is exactly why I started the GPGPU port.

You can sometimes have better results when you use the gr_fft filter in
stead of the gr_fir filter.
It depends on your decimation factor if this has better or worse
performance.
low decimation factor: use FFT
high decimation factor: use FIR

If in doubt: benchmark

 
 Is there a way to notify the user when a flow graph begins to fail or
 fails intermittently?
 
I don't know any.
Anybody else knows a trick for this?

Greetings,
Martin
 Thanks!
 Tom
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] gnuradio.org seems to be down

2009-05-10 Thread Martin DvH
gnuradio.org seems to be down

Greetings,
Martin




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] schematic for lf-rx

2009-04-29 Thread Martin DvH
On Wed, 2009-04-29 at 11:43 +0200, Markus Feldmann wrote:
 Hi All,
 
 is there a schematic for the LF-RX ?
 I need only a pdf file not really schematic file.
 
gschem schema, pcb pcb-layout.
There are also postscript and pdf versions in the same dir.

http://gnuradio.org/trac/browser/usrp-hw/trunk/basic-lf

You can check everything out at once with svn

Martin

 Regards Markus
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] FIR filter , Clock recovery and Quadrature demodulation

2009-04-27 Thread Martin DvH
On Sun, 2009-04-26 at 22:30 +0500, M. Awais Arshad wrote:
 Hi,

  The following are some code segments of gsm-scan.py basically
 used for gsm data reception. I have a few questions about the
 difference between input_rate and sps,
 
 
  
 clock_rate = 64e6 
  #set the default input rate, we will check with the USRP if it is
 being used
 input_rate = clock_rate / options.decim
 gsm_symb_rate = 1625000.0 / 6.0
 sps = input_rate/gsm_symb_rate
 
 
 
 # configure the processing blocks
 # configure channel filter
 filter_cutoff = 145e3 #135,417Hz is GSM bandwidth 
 filter_t_width = 10e3
 
 #Only DSP adjust for offset on datafile, adjust tuner for USRP
 #TODO: see if we can change this offset at runtime based on freq
 detection
 if options.inputfile:
 offset = self.offset
 else:
 offset = 0.0
 
 filter_taps = gr.firdes.low_pass(1.0, input_rate, filter_cutoff,
 filter_t_width, gr.firdes.WIN_HAMMING)
 self.filter = gr.freq_xlating_fir_filter_ccf(1, filter_taps, offset,
 input_rate)
 
# configure demodulator
 # adjust the phase gain for sampling rate
 self.demod = gr.quadrature_demod_cf(sps);
 
 #configure clock recovery
 gain_mu = 0.01
 gain_omega = .25 * gain_mu * gain_mu # critically damped
 self.clocker = gr.clock_recovery_mm_ff( sps, 
 gain_omega,
 0.5, #mu
 gain_mu,
 0.3) #omega_relative_limit, 
 
 self.burst = gsm.burst_ff()
 self.connect(self.filter, self.demod, self.clocker, self.burst)
 
 
 
 . Can anyone please give me an idea why 
 gr.freq_xlating_fir_filter_ccf  is used here and 'input_rate' is used
 as an argument in stead of 'sps'.
Well, because a freq_translating_fir_filter needs the input rate.
It knows nothing about symbols so sps (samples per symbol) makes no
sense here.

  Whereas, in quadrature demod and Clock_recovery_mm 'sps' is used for
 sampling rate 
sps is not used for samplingrate.
Did you even bother looking up what the parameters mean.
In quadrature_demod the parameter means gain (not sampling rate)
See:
http://gnuradio.org/doc/doxygen/classgr__quadrature__demod__cf.html

In clock_recovery_mm_ff the first parameter means omega (not sampling
rate)
http://gnuradio.org/doc/doxygen/classgr__clock__recovery__mm__ff.html

 and why clock recovery is used after demodulation block ? 
Because you want to recover the symbol clock.
As long as the samples are not demodulated there exists no symbols.


 Are I and Q samples are flowing out of clocker block or are they the
 encoded bits ?  
 
Mueller and Moeller (MM) based clock recovery block with float input,
float output.

This implements the Mueller and Moeller (MM) discrete-time
error-tracking synchronizer. 

See Digital Communication Receivers: Synchronization, Channel
Estimation and Signal Processing by Heinrich Meyr, Marc Moeneclaey, 
Stefan Fechtel. ISBN 0-471-50275-8.
 
 Thanks,
 
 
 M.Awais
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Is it possible to buy a RFX900 without the filter?

2009-04-24 Thread Martin DvH

On Thu, 2009-04-23 at 23:07 -0400, davek wrote:
 what capacitor does rfx1800 use in C204?
If I recall well it is a 100 pF 603 capacitor.

Martin

 
 On Thu, Apr 23, 2009 at 7:10 PM, Martin DvH
 gnuradiom...@olifantasia.com wrote:
 Hi Jhon,
 
 On Wed, 2009-04-22 at 22:03 -0700, Jhon Lee wrote:
 
   I read the discuss-gnuradio  list and know that I need to
 bypass the
  filter with a capacitor and cut away the filter.  I would
 like to know
  if it is possible to get a RFX900 which has removed the
 filter when I
  order it.
 
 
 You could always buy an RFX1800 and reprogram it as a RFX900.
 to turn your RFX1800 into a RFX900, you can run the command:
 
./burn-db-eeprom -A --force -t rfx900_mimo_b
 
 This way you don't have to solder anything.
 
 Also see the WIKI: What is involved in changing an RFX900 to
 an RFX1800?
 on:
 http://gnuradio.org/trac/wiki/UsrpFAQ/DBoards
 
 Greetings,
 Martin
 
  Thank you,
  Jhon
  ___
  Discuss-gnuradio mailing list
  Discuss-gnuradio@gnu.org
  http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Standalone USRP1 Operation

2009-04-24 Thread Martin DvH

On Thu, 2009-04-23 at 23:43 -0700, Firas A. wrote:
 Hi,
 
 Has anyone tried to run USRP1 without PC?
 
 I have an application where a friend supported me with a standalone USRP
 FPGA image. I used the PC only to load this image to the USRP using gnuradio
 blocks/tools. After that I can plug-off (disconnect) the USB cable from the
 PC and USRP continue to operate standalone.
 
 My question is, has anyone tried to load USRP FPGA image without a PC? For
 example using a micro-controller (Like Microchip PIC 18F4550 which has USB
 2.0  port) with SD memory holding the image?
 
 What it takes/need  to do so? 
What should be possible is to load the FPGA image and/or the FX2 image using 
JTAG.
I think I remember that the JTAG lines are accessible on the USRP1.

It might also be possible to use a dedicated serial FPGA eeprom and
connect it directly to the FPGA. This would require hardware
modification of the USRP board.

Just look at the cyclone datasheet and application notes on the altera
site.

I don't know if all the required pins for setting the FPGA load
operation are physically reachable on the USRP1 board.

If you don't want to solder on your board, your only option is using a
USB2 host in some kind of form.

Martin
 
 Best Regards,
 
 Firas



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Is it possible to buy a RFX900 without the filter?

2009-04-23 Thread Martin DvH
Hi Jhon,

On Wed, 2009-04-22 at 22:03 -0700, Jhon Lee wrote:
 
  I read the discuss-gnuradio  list and know that I need to bypass the
 filter with a capacitor and cut away the filter.  I would like to know
 if it is possible to get a RFX900 which has removed the filter when I
 order it.

You could always buy an RFX1800 and reprogram it as a RFX900.
to turn your RFX1800 into a RFX900, you can run the command:

./burn-db-eeprom -A --force -t rfx900_mimo_b

This way you don't have to solder anything.

Also see the WIKI: What is involved in changing an RFX900 to an RFX1800?
on:
http://gnuradio.org/trac/wiki/UsrpFAQ/DBoards

Greetings,
Martin

 Thank you,
 Jhon
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] KD7LMO Killed while bicycling

2009-04-22 Thread Martin DvH
I am sorry to bring you this sad news.

I found this information on:
http://groups.yahoo.com/group/Ballooning/message/2810

KD7LMO Killed while bicycling
We have received word that Michael Gray, KD7LMO, was killed Sunday,
April 12,  while bicycling to visit his parents. This occurred about
3:30 P.M. on Maricopa Road near the Maricopa Fire Department. Initial
information was that he was bicyling with two friends, when he was
struck from behind by a drunk driver .

Many Gnuradio users used his OTA (of-the-air) capture files on 

http://www.kd7lmo.net/ground_gnuradio_ota.html

This allowed them to start playing with Gnuradio without the need of an
USRP.

The website seems to be down now.

Michael Gray was active with ballooning with ANSR (Arizona Near Space
Research)

He will be missed.

Martin Dudok van Heel






___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Resource busy error:

2009-04-22 Thread Martin DvH

On Wed, 2009-04-22 at 18:47 -0500, kollimarla bhargav wrote:
 
 Thanks a lot Martin, that solved our problem, now we are able to call
 another reciever code in benchmark_rx.py .One last question we tried
 to call benchmark_rx.py from usrp_spectrum_sense.py, but still we get
 the same error Resource busy  
 It seems that another top block other than tb is running in
 usrp_spectrum_sense.py
This might have to do with:

self._tune_callback = tune(self)# hang on to this to keep it
from being GC'd

GCing (Garbage collecting) is exactly what we want here.
There is a kind of circular reference here so the tb keeps existing

I would try:
tb._tune_callback.tb=None
tb._tune_callback=None
tb.u=None
tb=None

Good luck,
Martin
 
 thanks
 bhargav
 
 
 
 On Wed, Apr 22, 2009 at 5:54 PM, Martin DvH
 gnuradiom...@olifantasia.com wrote:
 
 On Wed, 2009-04-22 at 17:41 -0500, kollimarla bhargav wrote:
   Hi all,
   We are trying to run a simple receiver program
 using
  benchmark_rx.py. The problem we are facing is when we try to
 run
  another receiver program like usrp_spectrum_sense.py inside
 the
  benchmark_rx.py using os.system() command , the error is 
 Device or
  Resource busy. We get a feeling that the thread from
 benchmark_rx.py
  is still running. We even used thread.stop before calling
  usrp_spectrum_sense.py, but this did not work, the same
 error message
  popped up. Is there any other way of exclusively kill the
 thread and
  call another receiver program.???
  We are able to call a benchmark_tx.py transmitter code in
  benchmark_rx.py receiver code,
 
 This is logical.
 The TX part of the USRP can be used seperately from the RX
 part.
 The RX part is still in use so it can't be used for a new
 receiver.
   but the combination of calling any program with a reciever
 block from
  benchmark_rx.py  was not successful and we got a error
 message
  Resource busy . Is this a thread issue??
  Appreciate any help!!
 
 
 Your receiver chain still exists, even if it is not running.
 This keeps the RX part of the USRP in use.
 
 Did you instruct the topblock to stop and wait for it to
 finish.
 
 If you did, you could try after stopping the topblock.
 
 tb.rxpath=None
 
 or even
 tb = None
 
 This throws away the reference to the receive_path (which
 keeps the RX
 part of the USRP in use and thus 'Resource Busy'.)
 
 Martin
 
  Thanking you
  bhargav
 
 
  ___
  Discuss-gnuradio mailing list
  Discuss-gnuradio@gnu.org
  http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Hacking at Random: Dutch outdoor technology-conference

2009-03-01 Thread Martin Dvh
Eric Blossom wrote:
 FYI,
 
 These outdoor European hacker get-togethers are a fabulous time!
 I highly recommend them!  August 13-16, near Vierhouten, NL. 
 
   https://har2009.org
   https://wiki.har2009.org/page/Main_Page
 
 Eric

I can also highly recommend it.

HAR2009 is the followup on What-The-Hack 2005 which was a great success.

If you get your tickets now, you can still get a big early-order discount.

I will be there, together with Pascal Schiks, a new Dutch GnuRadio contributor.

Maybe we can setup a GnuRadio village.

Greetings,
Martin

 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: OpenBTS compilation error

2009-03-01 Thread Martin Dvh
Jane Chen wrote:
 Hi,
 
 I also encountered the same errors.
 USRPDevice.h:42: error: ‘usrp_standard_rx_sptr’ does not name a type
 USRPDevice.h:43: error: ‘usrp_standard_tx_sptr’ does not name a type
 
 Where can I get the attached patch???
It was in my original reply:
Here you have the complete patch inline:
cut from here
Index: Transceiver/USRPDevice.h
===
--- Transceiver/USRPDevice.h(revision 10235)
+++ Transceiver/USRPDevice.h(working copy)
@@ -19,8 +19,8 @@

 */

+#define HAVE_BYTESWAP_H

-
 #include usrp_standard.h
 #include usrp_bytesex.h
 #include usrp_prims.h

to here

Greetings,
Martin

 
 Thank you,
 Jane
 
 
 
 Martin Dvh wrote:
 T. W. wrote:
 Windows XP machine.
 .deps/radioInterface.Tpo -c
 .libs/radioInterface.o
 In file included from USRPDevice.h:25,
  from radioInterface.h:25,
  from radioInterface.cpp:23:
 /usr/local/include/usrp_bytesex.h:37:2: warning: #warning Using
 non-portable cod
 e (likely wrong other than ILP32).
 This is a known bug.
 A temporary workaround can be done by using attached patch.

 See description below.

 Martin DvH wrote:
 I haven't gotten to implementing the configure stuff yet.


 This patch should be changed to use configure stuff to check for byteswap.h.
 But for people wanting a quick-and-dirty hack it can be used.


 Greetings,
 Martin

 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] OpenBTS compilation error

2009-02-26 Thread Martin Dvh
T. W. wrote:
 First I got the openBTS code from gnuradio site (svn co
 http://gnuradio.org/svn/openbts/trunk/ openbts).
 
 Then I run the ./bootstrap and ./configure commands succesfully.
 
 But the following errors occurred when I run make. ( was used to
 mask out my username on the machine.)  Can anyone shed some light on
 this?
 
 I was using a 32-bit Ubuntu 8.10 desktop virtual machine on a 64-bit
 Windows XP machine.
 
 Thanks!
 
 
 make[2]: Entering directory `/home//openbts/openbts/Transceiver'
 if /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I.
 -I. -I.
 .  -I../CommonLibs -I../Control -I../GSM -I../SIP -I../TRXManager
 -I/usr/local/i
 nclude   -g -O2 -MT radioInterface.lo -MD -MP -MF
 .deps/radioInterface.Tpo -c
 -o radioInterface.lo radioInterface.cpp; \
   then mv -f .deps/radioInterface.Tpo .deps/radioInterface.Plo; else
 r
 m -f .deps/radioInterface.Tpo; exit 1; fi
 libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../CommonLibs
 -I../Control
  -I../GSM -I../SIP -I../TRXManager -I/usr/local/include -g -O2 -MT
 radioInterfac
 e.lo -MD -MP -MF .deps/radioInterface.Tpo -c radioInterface.cpp  -fPIC
 -DPIC -o
 .libs/radioInterface.o
 In file included from USRPDevice.h:25,
  from radioInterface.h:25,
  from radioInterface.cpp:23:
 /usr/local/include/usrp_bytesex.h:37:2: warning: #warning Using
 non-portable cod
 e (likely wrong other than ILP32).

This is a known bug.
A temporary workaround can be done by using attached patch.

See description below.

Martin DvH wrote:
  HAVE_BYTESWAP_H is not defined in
 Transceiver/USRPDevice.h

 This forces usrp_bytesex.h in using its own byteswap code which does NOT
 work on 64 bit systems.

 The disadvantage of putting #define HAVE_BYTESWAP_H in USRPDevice.h is
 that it should be checked first that you actually have byteswap.h.
 This should be done by the configure script and put into config.h.
 USRPDevice.h then should include config.h

 I haven't gotten to implementing the configure stuff yet.


 This patch should be changed to use configure stuff to check for byteswap.h.
 But for people wanting a quick-and-dirty hack it can be used.


 Greetings,
 Martin




 In file included from radioInterface.h:24,
  from radioInterface.cpp:23:
 sigProcLib.h:35: warning: ‘typedef’ was ignored in this declaration
 sigProcLib.h:45: warning: ‘typedef’ was ignored in this declaration
 In file included from radioInterface.h:25,
  from radioInterface.cpp:23:
 USRPDevice.h:42: error: ‘usrp_standard_rx_sptr’ does not name a type
 USRPDevice.h:43: error: ‘usrp_standard_tx_sptr’ does not name a type
 make[2]: *** [radioInterface.lo] Error 1
 make[2]: Leaving directory `/home//openbts/openbts/Transceiver'
 --

Index: Transceiver/USRPDevice.h
===
--- Transceiver/USRPDevice.h	(revision 10235)
+++ Transceiver/USRPDevice.h	(working copy)
@@ -19,8 +19,8 @@
 
 */
 
+#define HAVE_BYTESWAP_H
 
-
 #include usrp_standard.h
 #include usrp_bytesex.h
 #include usrp_prims.h
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: Pulse-doppler RADAR wind profiler project and how to bypass interpolation, DAC filtering, etc.

2009-02-23 Thread Martin DvH

On Mon, 2009-02-23 at 19:43 +1100, Nick Withers wrote:
 Just resending as this didn't seem to get through to the list...
 
 Presumably I must be subscribed to post?
 
 On Tue, 2009-02-17 at 20:37 +1100, Nick Withers wrote:
  Hi all,
  
  I'm new to GNURadio / the USRP, but am working on a project, as part of
  my honours for a Bachelor of Engineering degree, to implement a
  pulse-doppler RADAR wind profiler (some information at
  http://nickwithers.com/usrp-wind-profiler).
  
  If anyone's interested, perhaps doing something similar, or with tips
  they can offer off the top of their noggin I'd love to hear from you :-)
  
  I'm basing my work off Johnathan Corgan's radar-mono code (thanks
  Johnathan!) and have a couple of questions I was hoping someone could
  point me in the right direction with (dare say I'll be getting referred
  straight to the FAQ, it's all a bit overwhelming!).
  
  I want, if possible, to bypass the DAC's interpolation, filtering etc.
  (the chief reason being to avoid the 44 MHz upper-bound on signals I can
  output from it (I'm using the Basic{T|R}X boards and aiming to work
  around 70 MHz), see http://www.gnuradio.org/trac/wiki/UsrpFAQ/DUC
You could also use the first mirror frequency
When the DUC is set to 44 MHz you get a signal at 44 Mhz and a mirror at
128-44=84 Mhz. (second niquist zone)

84 Mhz is as low as you can go with this setup, but maybe 84 MHz is
close enough to 70 for you to use.

(You would need a bandfilter to only keep this mirror)

Success,
Martin


  (incidentally, I've done a crap job of finding supporting information in
  the AD9862 data sheet)). Do I need to rewrite the C++ code (e.g.,
  usrp/host/lib/legacy/usrp_standard.cc) if I want to continue to use
  usrp_source_?() / usrp_sink_?() and such from Python? Any tips on how I
  go about doing it? Can / should I just rewrite the DAC configuration
  from within the FPGA when it's initialised?
  
  Any tips appreciated!
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: Re[Discuss-gnuradio] quire USRP1 / USRP2 ASAP

2009-02-10 Thread Martin Dvh
Martin DvH wrote:
 On Tue, 2009-02-03 at 10:38 -0800, chitlas wrote:
 Hi,

 Please let me know from where I can purchase USRP1 / USRP2 as I see that
 USRP2 is due for release (beta is no longer available) and USRP1 is out of
 stock till Feb end or so from ETTUS's site.

 Thanks in advance.

 Regds/Sudhir.
 My company Olifantasia is the European USRP distributor.
I made a small but important typo here.

Olifantasia is an European USRP reseller.

Being the European USRP distributor would mean something quite different.

I hope this clears things up,

Regards,
Martin

 
 You can buy USRPs at my website:
 
 English site:
 http://www.olifantasia.com/cms/en#USRP
 
 Dutch site:
 http://www.olifantasia.com/cms/nl#USRP
 
 Olifantasia has still several USRPs and daughterboards in stock.
 
 
 Regards,
 
 Martin
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Simple Broadcast FM Receiver

2009-02-09 Thread Martin Dvh
Muhammad Abrar wrote:
 Now I run this program n my Laptop on whicg gnuradi 3.0.4-2ubuntu2  is
 installed and i get following message.
 
 muhammadab...@ubuntu:~/Documents/usrp$ python usrp_wfm_rcv_pll.py
 gr_fir_ccf: using SSE
 gr_fir_fff: using SSE
 gr_fir_fcc: using SSE
 audio_alsa_sink[hw:0,0]: unable to support sampling rate 32000
   card requested 44100 instead.
 FYI: This implementation of the stereo_carrier_pll_recovery has no
 squelch implementation yet
 FYI: No Powermate or Contour Knob found
 FYI: This implementation of the stereo_carrier_pll_recovery has no
 squelch implementation yet
 auauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauauaumuhammadab...@ubuntu:~/Documents/usrp$
 
 


 audio_alsa_sink[hw:0,0]: unable to support sampling rate 32000
   card requested 44100 instead.
This means the your audio_card does not support 32000 Hz samplerate.
So you get Audio Underruns  (aU)
This can be solved by using the commandline parameter
-O plughw:0,0

This will use the alsa software resampler to resample the 32000  to 44100

Please use reply-to-all when using the mailinglist.
Now I was the only one who got your reply, and not the mailinglist.

Greetings,
Martin
 
 2009/1/27 Martin DvH gnuradiom...@olifantasia.com
 mailto:gnuradiom...@olifantasia.com
 
 
 On Mon, 2009-01-26 at 17:04 +1300, Muhammad Abrar wrote:
  when i run this program ithe following ewrror appears, how can i
 resolve this.
  Nameerror: microtune_eval_board is not defined at line 70:
 
  #!/usr/bin/env python
 
  # simple broadcast FM receiver
 
 
  from GnuRadio import *
 
  #
  # return a gr_FlowGraph
  #
  def build_graph (IF_freq):
  input_rate = 20e6
 
  CFIR_decimate = 125
  RFIR_decimate = 5
  fm_demod_gain = 2200
 
  quad_rate = input_rate / CFIR_decimate
 
  audio_rate = quad_rate / RFIR_decimate
 
  volume = 1.0
 
  src = GrHighSpeedADCSourceS (input_rate)
 
  # compute FIR filter taps for channel selection
  channel_coeffs = \
gr_firdes.low_pass (
 
  1.0,  # gain
  input_rate,   # sampling rate
  250e3,# low pass cutoff freq
  8*100e3,  # width of trans. band
  gr_firdes.WIN_HAMMING)
 
  # input: short; output: complex
 
  chan_filter = \
GrFreqXlatingFIRfilterSCF (CFIR_decimate,
   channel_coeffs,
   IF_freq)
  # input: complex; output: float
  fm_demod = \
 
GrQuadratureDemodCF (volume * fm_demod_gain)
 
  # compute FIR filter taps for audio filter
  width_of_transition_band = audio_rate / 32
  audio_coeffs = \
gr_firdes.low_pass (
  1.0,# gain
 
  quad_rate,  # sampling rate
  audio_rate/2 - width_of_transition_band,
  width_of_transition_band,
  gr_firdes.WIN_HAMMING)
 
  # input: float; output: short
  audio_filter = \
 
GrFIRfilterFSF (RFIR_decimate, audio_coeffs)
 
  final_sink = GrAudioSinkS ()
 
  fg = gr_FlowGraph ()
 
  fg.connect (src, chan_filter)
  fg.connect (chan_filter, fm_demod)
  fg.connect (fm_demod, audio_filter)
 
  fg.connect (audio_filter, final_sink)
 
  return fg
 
  if __name__ == '__main__':
 
  # connect to RF front end
  rf_front_end = microtune_eval_board ()
  if not rf_front_end.board_present_p ():
 
  raise IOError, 'RF front end not found'
 
  # set gain and radio station frequency
  rf_front_end.set_AGC (300)
  rf_front_end.set_RF_freq (100.1e6)
 
  IF_freq = rf_front_end.get_output_freq ()
 
  fg = build_graph (IF_freq)
  fg.start ()# fork thread(s) and return
  raw_input ('Press Enter to quit: ')
  fg.stop ()
 
 
 You are using a very very old version of gnuradio.
 Please update to the current tarball or svn code:
 http://gnuradio.org/trac/wiki/Download
 http://gnuradio.org/trac/wiki/GettingStarted
 
 Greetings,
 Martin
  --
  Engr. Muhammad Abrar
  NewZealand
  Mob: 0064211204202
  Res: 006463586340
  ___
  Discuss-gnuradio mailing list
  Discuss-gnuradio@gnu.org mailto:Discuss-gnuradio@gnu.org
  http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 
 
 
 
 -- 
 Engr. Muhammad Abrar
 Massey University Palmerston North
 NewZealand
 Mob: 0064211204202
 Res: 006463586340

Re: [Discuss-gnuradio] GNU Radio server broken?

2009-02-09 Thread Martin Dvh
Johnathan Corgan wrote:
 The gnuradio.org site is back up, though we will require another
 period of downtime in the next day or so.  Please let us know if you
 find anything out of the ordinary.
 
 We are now running Apache 2.2, Trac 0.10.4, and Subversion 1.4.6, and
 planning a further upgrade to Trac 0.11 and Subversion 1.5 soon.
 
 Johnathan Corgan
 Corgan Enterprises LLC
 

http://gnuradio.org/trac gives me

Trac detected an internal error:

If you think this really should work and you can reproduce it, you should 
consider reporting this problem to the Trac team.

Go to http://trac.edgewall.org/ and create a new ticket where you describe the 
problem, how to reproduce it. Don't forget to include the Python
traceback found below.

TracGuide — The Trac User and Administration Guide
Python Traceback

Traceback (most recent call last):
  File /var/lib/python-support/python2.5/trac/web/main.py, line 406, in 
dispatch_request
dispatcher.dispatch(req)
  File /var/lib/python-support/python2.5/trac/web/main.py, line 243, in 
dispatch
req.session.save()
  File /var/lib/python-support/python2.5/trac/web/session.py, line 210, in 
save
db.commit()
OperationalError: database is locked


 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: Re[Discuss-gnuradio] quire USRP1 / USRP2 ASAP

2009-02-03 Thread Martin DvH

On Tue, 2009-02-03 at 10:38 -0800, chitlas wrote:
 Hi,
 
 Please let me know from where I can purchase USRP1 / USRP2 as I see that
 USRP2 is due for release (beta is no longer available) and USRP1 is out of
 stock till Feb end or so from ETTUS's site.
 
 Thanks in advance.
 
 Regds/Sudhir.
My company Olifantasia is the European USRP distributor.

You can buy USRPs at my website:

English site:
http://www.olifantasia.com/cms/en#USRP

Dutch site:
http://www.olifantasia.com/cms/nl#USRP

Olifantasia has still several USRPs and daughterboards in stock.


Regards,

Martin



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: SVN Revisions and GSSM-

2009-01-28 Thread Martin DvH

On Wed, 2009-01-28 at 11:26 +0100, José Carlos Reyes wrote:
 OK. I have just installed that recommended revision. But when I am
 installing GSSM in the step 5, I type sudo /usr/local/bin/mktun gsm.
 It gives me the following error:
 
 w...@wsn-desktop:~$ sudo /usr/local/bin/mktun gsm
 /usr/local/bin/mktun: error while loading shared libraries:
 libgruel.so.0: cannot open shared object file: No such file or
 directory
 
This looks like mktun is compiled/linked to the latest version of
gnuradio in stead of the recommended version.

Make sure only the recommended version of gnuradio is installed.
That means, uninstalling all previous versions you have installed
cleaning your gnuradio buildtree
configuring and building the gnuradio buildtree
installing the gnuradio buildtree
example:
cd gnuradio-recommendedversion
sudo make uninstall
make clean
make distclean
./bootstrap
./configure
make
sudo make install



After that
uninstall the gssm buildtree
clean the gssm buildtree
build the gssm buildtree
install the gssm buildtree

example:
cd gssm
make uninstall
make clean
./configure
make
sudo make install

 Is there any solution?
 Can help me anyone that have installed GSSM? I would like to test
 GSSM.
 
I haven't installed GSSM, but following standard procedures should work.

Greetings,
Martin
 Thanks ever so much.
 
 Jose Carlos
 
 
 2009/1/28 José Carlos Reyes jcreyesguerr...@gmail.com
 Hi all,
 
 I would like to test GSSM, so I want to download the revision
 5220 of GNU Radio.
 Is it possible? How?
 
 Thanks in advance.
 Sicerely,
 
 Jose Carlos
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Simple Broadcast FM Receiver

2009-01-26 Thread Martin DvH

On Mon, 2009-01-26 at 17:04 +1300, Muhammad Abrar wrote:
 when i run this program ithe following ewrror appears, how can i resolve this.
 Nameerror: microtune_eval_board is not defined at line 70:
 
 #!/usr/bin/env python
 
 # simple broadcast FM receiver
 
 
 from GnuRadio import *
 
 #
 # return a gr_FlowGraph
 #
 def build_graph (IF_freq):
 input_rate = 20e6
 
 CFIR_decimate = 125
 RFIR_decimate = 5
 fm_demod_gain = 2200
 
 quad_rate = input_rate / CFIR_decimate
 
 audio_rate = quad_rate / RFIR_decimate
 
 volume = 1.0
 
 src = GrHighSpeedADCSourceS (input_rate)
 
 # compute FIR filter taps for channel selection
 channel_coeffs = \
   gr_firdes.low_pass (
 
 1.0,  # gain
 input_rate,   # sampling rate
 250e3,# low pass cutoff freq
 8*100e3,  # width of trans. band
 gr_firdes.WIN_HAMMING)
 
 # input: short; output: complex
 
 chan_filter = \
   GrFreqXlatingFIRfilterSCF (CFIR_decimate,
  channel_coeffs,
  IF_freq)
 # input: complex; output: float
 fm_demod = \
 
   GrQuadratureDemodCF (volume * fm_demod_gain)
 
 # compute FIR filter taps for audio filter
 width_of_transition_band = audio_rate / 32
 audio_coeffs = \
   gr_firdes.low_pass (
 1.0,# gain
 
 quad_rate,  # sampling rate
 audio_rate/2 - width_of_transition_band,
 width_of_transition_band,
 gr_firdes.WIN_HAMMING)
 
 # input: float; output: short
 audio_filter = \
 
   GrFIRfilterFSF (RFIR_decimate, audio_coeffs)
 
 final_sink = GrAudioSinkS ()
 
 fg = gr_FlowGraph ()
 
 fg.connect (src, chan_filter)
 fg.connect (chan_filter, fm_demod)
 fg.connect (fm_demod, audio_filter)
 
 fg.connect (audio_filter, final_sink)
 
 return fg
 
 if __name__ == '__main__':
 
 # connect to RF front end
 rf_front_end = microtune_eval_board ()
 if not rf_front_end.board_present_p ():
 
 raise IOError, 'RF front end not found'
 
 # set gain and radio station frequency
 rf_front_end.set_AGC (300)
 rf_front_end.set_RF_freq (100.1e6)
 
 IF_freq = rf_front_end.get_output_freq ()
 
 fg = build_graph (IF_freq)
 fg.start ()# fork thread(s) and return
 raw_input ('Press Enter to quit: ')
 fg.stop ()
 
 
You are using a very very old version of gnuradio.
Please update to the current tarball or svn code:
http://gnuradio.org/trac/wiki/Download
http://gnuradio.org/trac/wiki/GettingStarted

Greetings,
Martin
 -- 
 Engr. Muhammad Abrar
 NewZealand
 Mob: 0064211204202
 Res: 006463586340
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: GNU-Radio GUI applications freeze

2009-01-26 Thread Martin DvH

On Mon, 2009-01-26 at 10:56 +, feldmaus wrote:
 Raul Siles raul.siles at gmail.com writes:
 
  
  Hello,
  I'm running GNU-Radio 3.1.3 under Fedora 8 (fully updated) with USRP
  and all the USRP graphical (GUI) applications freeze, such as
  usrp_oscope.py or usrp_fft.py.
  
  The application, eg. usrp_oscope.py, main window is displayed but only
  the signal diagram is visible and changes. All the controls and
  buttons are not available. Sporadically the whole window, signal
  diagram plus controls, is displayed but it is not possible to interact
  with or adjust any control.
 
 Hi,
 
 i have the same Problems on Suse 11.1 and gnuradio 3.1svn.
 
 I solved it by executing grc with:
 $nice -n 19 grc
 
 Regards Markus
The fft and/or scopedisplay is needing more processing power then your
CPU has (your computer is too slow for the settings you are using)
A better solution is to restrict the maximum processing power the scope
and/or fft uses.
You can change the defaults
in /usr/local/etc/gnuradio/conf.d/gr-wxgui.conf

Change:
# fftsink and waterfallsink
fft_rate = 15

# scopesink
frame_decim = 1

into something like:
# fftsink and waterfallsink
fft_rate = 5

# scopesink
frame_decim = 10

Important: don't put any comments after the numbers.

Greetings,
Martin Dudok van Heel
Olifantasia
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Re: GNU Radio GPGPU WIP Branch Status?

2009-01-25 Thread Martin DvH
/runtime
(mainly gr_vmcircbuf.cc, but also see gr_flat_flowgraph,
gr_single_threaded_scheduler)
All gr-cuda blocks would then inherit form gr-block-cuda.

One of the things I thought of, but is not implemented but in the code
is the use of GR_BUFFER_EXTERNAL_BLOCK_HAS_ITS_OWN_FACTORY
(see gr_flat_flowgraph.cc)



There are few things that would really make the cuda code faster
1. increase computational intensity (discussed above)
This will definitely give a major performance boost 
2. tune the instantiation of the kernels. (number of kernels run in
parallel,   calculation of num_blocks,   num_iterations,
num_threads_per_block)
Also check the memory accesses and local memory use (read CUDA
documentation, this is a complex subject)

2. eliminate the circular buffer emulation entirely.
This way each cuda block has to make sure it reads and writes to the
right memory location.
If the size of the buffer is a power of two this could be done by
masking the indexes like this.
pseudocode:
  unsigned mask=bufsize-1;//bufsize needs to be power of two.
  for (unsigned int i = thread_id; i  size; i += num_threads)
  {
outbuf[i  mask] = inbuf[i  mask]
  }
Note that this adds computations and eliminates copying.
Benchmarking should be done to see what is faster in which
circumstances.
3. improve the FIR filter block, it is not optimal (especially when
using decimation) and it can't run with large numbers of taps or large
decimation factor.
4. automatically or manually combine the code of several sequential
blocks in a flow-graph so they end up in a single kernel.
This is no easy task but would eliminate a lot of the call overhead.
5. totally different approach. Run several flowgraphs in parallel in
stead of trying to parallellise the code inside a block.
For example, run 32 FM receivers, by giving every block 32 inputs and 32
outputs in stead of one.
A similar approuch could be used when a generic block is used multiple
times in the same flowgraph.
(a flowgraph usually has several multiply blocks and FIR filters)


example kernel code which does not need a circular buffer:

__global__ void cudai_multiply_cc_kernel(gr_complex* g_odata, const
gr_complex* g_idata_a, const gr_complex* g_idata_b, const unsigned int
size, const unsigned bufsize)
{
  const unsigned int num_threads = blockDim.x * gridDim.x;
  const unsigned int thread_id = blockIdx.x * blockDim.x +
threadIdx.x;
  gr_complex product;
  unsigned it memmask = bufsize-1;//bufsize must be power of two
  for (unsigned int i = thread_id; i  size; i += num_threads)
  {
//complex multiply
//(a.x+ja.y)(b.x+jb.y)=(a.x*b.x-a.y*b.y) +j(a.x*b.y +a.y*b.x)
product.x = g_idata_a[i  memmask].x * g_idata_b[i memmask].x -
g_idata_a[i memmask].y * g_idata_b[i memmask].y;
product.y = g_idata_a[i memmask].x * g_idata_b[i memmask].y +
g_idata_a[i memmask].y * g_idata_b[i memmask].x;
g_odata[i memmask]=product;
  }
}

void
cudai_multiply_cc (gr_complex *device_output, const gr_complex *
device_input_a, const gr_complex * device_input_b,unsigned int n,
cudai_general_kernel_params *params)
{
  cudai_general_kernel_params tmp_params;
  if(NULL==params)
  {
params=tmp_params;
cudai_get_general_kernel_params ( params, n);
  }

  LOCAL_CUDA_SYNC( cudai_multiply_cc );
  cudai_multiply_cc_kernel params-griddim, params-threaddim,
params-dynamic_shared_mem_size
(device_output,device_input_a,device_input_b,
n);

}


 
 I'm wondering if you can elaborate on (A) and (C) above [(B) I  
 understand].  Do you anticipate these changes to be simple / straight  
 forward?  What specific changes do you believe would increase this  
 branch's performance?

Success,
Martin


Discussion about getting CUDA code in gnuradio-core between my and Eric
Blossom.
 Forwarded Message 
From: Martin DvH gnuradiom...@olifantasia.com
To: Eric Blossom e...@comsec.com
Cc: Johnathan Corgan jcor...@corganenterprises.com
Subject: Re: [Commit-gnuradio] r9522 - in 
gnuradio/branches/developers/nldudok1/gpgpu-wip: . 
gnuradio-core/src/lib/runtime testbed
Date: Thu, 20 Nov 2008 01:17:22 +0100

On Sun, 2008-09-07 at 13:08 -0700, Eric Blossom wrote:
 On Sun, Sep 07, 2008 at 01:41:44PM -0600, nldud...@gnuradio.org wrote:
  Author: nldudok1
  Date: 2008-09-07 13:41:42 -0600 (Sun, 07 Sep 2008)
  New Revision: 9522
  
  Added:
 gnuradio/branches/developers/nldudok1/gpgpu-wip/testbed/
 
  gnuradio/branches/developers/nldudok1/gpgpu-wip/testbed/cuda_test_dial_tone.py
 
  gnuradio/branches/developers/nldudok1/gpgpu-wip/testbed/cuda_test_dial_tone_wav.py
 
  gnuradio/branches/developers/nldudok1/gpgpu-wip/testbed/cuda_test_vector.py
 
  gnuradio/branches/developers/nldudok1/gpgpu-wip/testbed

[Discuss-gnuradio] Re: Openbts patches

2009-01-20 Thread Martin DvH

On Mon, 2009-01-19 at 22:37 -0800, Johnathan Corgan wrote:
 On Mon, Jan 19, 2009 at 2:22 PM, Martin DvH
 gnuradiom...@olifantasia.com wrote:
 
  The first bug prevents the OpenBTS tranceiver from starting with the
  error make failed on Rx
 
  The check on line 173 in USRPDevice should be for !m_uRx in stead of !
  m_uTx
 
 Thanks for catching this, this was a bug I introduced when changing
 the code to work with the new daughterboard API.
 
I get it.
I checked the new daughterboard API changes and it looks good to me.
So in theory it should be possible to setup an OpenBts system with the
current code.

I am at the moment still struggling to get the IMSI code out of my
phone/SIM.

I have several old nokia phones (5110, 6150, 3410) , but so far I
haven't been able to get one of them to into field mode. Using either
keycode (*3001#12345#) or serial data-cable + gnokii.


 I've checked it in.
 
  patch2 should be changed to use configure stuff to check for byteswap.h.
  But for people wanting a quick-and-dirty hack it can be used.
 
 Let me know if you do a configure update for this, but I'd like to
 look at it before it is committed.
I will have a look at it.
Further development/testing from me on this will stall for a short time until 
my new stock of RFX1800 USRP daughterboards arrive.
(I am totally sold-out on these)

Martin
 -Johnathan
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Extracting intermediate data

2009-01-20 Thread Martin DvH

On Tue, 2009-01-20 at 15:33 -0500, Catalin Lacatus wrote:
 Hello,
 
 I am working with usrp_spectrum_sense.py and I am trying to analyze the 
 intermediate data from different DSP blocks.
 
 After I passed the input stream to a vector I tried to save this information 
 on a file like this:
 
  
 
 /s2v = gr.stream_to_vector(gr.sizeof_gr_complex, self.fft_size)
 
 output2=gr.file_sink(gr.sizeof_gr_complex,file2.txt)
 
 self.connect(self.u, s2v, output2)/
 
You should have written
output2=gr.file_sink(gr.sizeof_gr_complex*self.fft_size,file2.txt)
You are now getting vectors of 128 complex values as one item.

Success,
Martin
  
 
 
 
 and I received the following error:
 
  
 
 /node1-2:~/gnuradio/gnuradio-examples/python/usrp# ./usrp_spectrum_sense.py 
 -F 16 4.5M 7.5M
 
 Using RX d'board A: Basic Rx
 
 Traceback (most recent call last):
 
   File ./usrp_spectrum_sense.py, line 305, in module
 
 tb = my_top_block()
 
   File ./usrp_spectrum_sense.py, line 179, in __init__
 
 self.connect(self.u, s2v, output2)
 
   File /usr/local/lib/python2.5/site-packages/gnuradio/gr/top_block.py, 
 line 70, in connect
 
 self._connect(points[i-1], points[i])
 
   File /usr/local/lib/python2.5/site-packages/gnuradio/gr/top_block.py, 
 line 76, in _connect
 
 dst_block.basic_block(), dst_port)
 
   File 
 /usr/local/lib/python2.5/site-packages/gnuradio/gr/gnuradio_swig_py_runtime.py,
  line 1469, in connect
 
 return _gnuradio_swig_py_runtime.gr_top_block_sptr_connect(*args)
 
 ValueError: itemsize mismatch: stream_to_vector(4):0 using 128, 
 file_sink(5):0 using 8/
 
 / /
 
  
 
 It seems to be a format mismatch.
 Please any advice how to write the output of s2v to a file.
 
  
 
 Thank you,
 Catalin
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Openbts patches

2009-01-19 Thread Martin DvH
Hi,

I have been working with OpenBTS in trying to get it to compile and
found two bugs and solved them.

The first bug prevents the OpenBTS tranceiver from starting with the
error make failed on Rx

The check on line 173 in USRPDevice should be for !m_uRx in stead of !
m_uTx

The second is that HAVE_BYTESWAP_H is not defined in
Transceiver/USRPDevice.h

This forces usrp_bytesex.h in using its own byteswap code which does NOT
work on 64 bit systems.

The disadvantage of putting #define HAVE_BYTESWAP_H in USRPDevice.h is
that it should be checked first that you actually have byteswap.h.
This should be done by the configure script and put into config.h.
USRPDevice.h then should include config.h

I haven't gotten to implementing the configure stuff yet.

Attached are two mini-patches which implement the changes.

I think patch1 can be submitted to svn right away (Jonathan, I could do
that, should I ?)
patch2 should be changed to use configure stuff to check for byteswap.h.
But for people wanting a quick-and-dirty hack it can be used.

I am not sure if there are more bugs in openbts in gnuradio.
I still get a lot of messages when I start it all up. 
1232403472.992511 1085643088: RadioResource.cpp:347 Pager blocking for
signal
1232403472.992521 1085643088: RadioResource.cpp:347 Pager blocking for
signal
1232403472.992530 1085643088: RadioResource.cpp:347 Pager blocking for
signal
Repeats until infinity

I am not sure if this is an error or normal behaviour.

As it is in gnuradio svn, it could not have worked.
Did anyone try/test and got the gnuradio version to work.

Greetings,
Martin



Index: Transceiver/USRPDevice.cpp
===
--- Transceiver/USRPDevice.cpp	(revision 10235)
+++ Transceiver/USRPDevice.cpp	(working copy)
@@ -170,7 +170,7 @@
   }
   }
 
-  if (!m_uTx) {
+  if (!m_uRx) {
 COUT(make failed on Rx);
 return false;
   }
Index: Transceiver/USRPDevice.h
===
--- Transceiver/USRPDevice.h	(revision 10235)
+++ Transceiver/USRPDevice.h	(working copy)
@@ -19,8 +19,8 @@
 
 */
 
+#define HAVE_BYTESWAP_H
 
-
 #include usrp_standard.h
 #include usrp_bytesex.h
 #include usrp_prims.h
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] preferences in conf.d issues

2009-01-04 Thread Martin DvH
Hi All,
I have been struggling with the strange behaviour of the configuration
files in /usr/local/etc/gnuradio/conf.d
This is the place where the following files with gnuradio user
preferences live: 
gnuradio-core.conf  gr-audio-jack.conf  gr-wxgui.conf
gr-audio-alsa.conf  gr-audio-oss.conf

WHen trying some settings out, I backuped the original file
gr-wxgui.conf to gr-wxgui.conf.orig and changed settings in
gr-wxgui.conf

Whatever I filled in, the old values where still used.

It took me a while to find out that the filenames aren't even looked at.
They are all read in by gnuradio/gr/prefs.py with the following code:
def _sys_prefs_filenames(self):
dir = _sys_prefs_dirname()
try:
fnames = os.listdir(dir)
except (IOError, OSError):
return []
fnames.sort()
return [os.path.join(dir, f) for f in fnames]


def _read_files(self):
filenames = self._sys_prefs_filenames()
filenames.append(_user_prefs_filename())
#print filenames: , filenames
self.cp.read(filenames)

What this comes down to that ALL files in conf.d are read in in
alphabetical order.
The last file read in overrides all values from the previous files.


I don't know if this is documented somewhere, but it is something to be
aware about.
Don't make backup copies in conf.d

But that is not all.
I had already found out previously that the inline comments in the pref
files prevent the settings from being read.

For example in gr-wxgui.conf is:
[wxgui]
style = auto  # 'gl', 'nongl', or 'auto'
fft_rate = 10 # fftsink and waterfallsink
frame_decim = 1   # scopesink

The value the code gets for fft_rate is then:
10   # fftsink and waterfallsink

This gives an error because the code expects only a number. 10
Because of the error the build-in default of 15 will still be used.

What would work is the following:

#style = auto #'gl', 'nongl', or 'auto'
#fft_rate = 15#fftsink and waterfallsink
#frame_decim = 1  # scopesink
[wxgui]
style = auto  
fft_rate = 10
frame_decim = 1

The uncommented lines before [wxgui] function only as documentation
The lines after [wxgui] are the actual settings, no #comments allowed.

The same problems are in gr-audio-alsa.conf and maybe others

Greetings,
Martin



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] gr-howto-write-a-block seems broken, anybody working on it.

2008-12-08 Thread Martin DvH
Hi,
gr-howto-write-a-block seems broken.
When I try to bootstrap  ./configure  make


Making all in lib
make[3]: Entering directory
`/pub/projects/gnuradio/svn/trunk/gr-howto-write-a-block/src/lib'
/usr/bin/swig -c++ -fvirtual -python -modern
-I/usr/local/include/gnuradio/swig -I/usr/local/include/gnuradio -module
howto -o howto.cc ../../src/lib/howto.i
/usr/local/include/gnuradio/swig/gr_realtime.i:3: Error: Unable to find
'gruel/realtime.h'
make[3]: *** [howto.cc] Error 1

This seems to be due to
gr-howto-write-a-block/Makefile.common:
SWIGGRFLAGS = -I$(GNURADIO_CORE_INCLUDEDIR)/swig -I
$(GNURADIO_CORE_INCLUDEDIR)

When you add $(GNURADIO_CORE_CPPFLAGS) to it, it builds.

SWIGGRFLAGS = -I$(GNURADIO_CORE_INCLUDEDIR)/swig -I
$(GNURADIO_CORE_INCLUDEDIR) $(GNURADIO_CORE_CPPFLAGS)

So I could commit this and everything seems OK again.

But the build infrastructure gr-howto-write-a-block drifts more and more
apart from the main buildtree.

For example, the main gnuradio tree doesn't seem to use SWIGGRFLAGS
anymore
(It is not in Makefile.common of the top sourcetree)

It might be a good idea to get things like Makefile.common, config/*.m4
and configure.ac  updated and more in sync with the main tree.

gr-howto-write-a-block is not a main priority for me, but it might be
confusing for new users if it works very different from the rest.

Greetings,
Martin




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: gr-howto-write-a-block seems broken, anybody working on it.

2008-12-08 Thread Martin DvH

On Mon, 2008-12-08 at 14:51 -0800, Johnathan Corgan wrote:
 On Mon, Dec 8, 2008 at 2:34 PM, Johnathan Corgan
 [EMAIL PROTECTED] wrote:
 
  /usr/local/include/gnuradio/swig/gr_realtime.i:3: Error: Unable to find
  'gruel/realtime.h'
 
  This should have been fixed in a fairly recent version of the trunk,
  without needing any change to the gr-howto code, but I'll go check it
  out.  Thanks for bringing attention to it.
 
 This was fixed in r9920 back on November 3.  The current svn
 gr-howto-write-a-block compiles fine.
 
I did a
svn diff -r HEAD 
But didn't see it. 
Must have looked with my eyes closed.
(It is there)

Thanks,
Martin
 -Johnathan
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] GnuRadio and CUDA

2008-11-24 Thread Martin DvH
 cuda_block.cubin
 #$ fatbin --key=6b4cfc7a7afd183d --source-name=cuda_block.cu
 --usage-mode=  --embedded-fatbin=cuda_block.fatbin.c
 --image=profile=sm_10,file=cuda_block.cubin
 #$ cudafe++ --m32 --gnu_version=40102
 --diag_error=host_device_limited_call --dep_name  --gen_c_file_name
 cuda_block.cudafe1.cpp --stub_file_name cuda_block.cudafe1.stub.c
 --stub_header_file_name cuda_block.cudafe1.stub.h
 cuda_block.cpp1.ii
 #$ gcc -D__CUDA_ARCH__=100 -E -x c++ -DCUDA_NO_SM_13_DOUBLE_INTRINSICS
 -DCUDA_NO_SM_12_ATOMIC_INTRINSICS -DCUDA_NO_SM_11_ATOMIC_INTRINSICS
 -DCUDA_FLOAT_MATH_FUNCTIONS  -I/usr/local/cuda/bin/../include
 -I/usr/local/cuda/bin/../include/cudart   -I. -fPIC -I.
 -IUDASDK/common/inc -D_DEBUG -m32 -malign-double -g -o
 cuda_block.cu.cpp cuda_block.cudafe1.cpp
 #$ gcc -D__CUDA_ARCH__=100 -c -x c++ -DCUDA_NO_SM_13_DOUBLE_INTRINSICS
 -DCUDA_NO_SM_12_ATOMIC_INTRINSICS -DCUDA_NO_SM_11_ATOMIC_INTRINSICS
 -DCUDA_FLOAT_MATH_FUNCTIONS  -I/usr/local/cuda/bin/../include
 -I/usr/local/cuda/bin/../include/cudart   -I. -fPIC -I.
 -IUDASDK/common/inc -D_DEBUG -m32 -malign-double -g -o
 .libs/cuda_block.o cuda_block.cu.cpp
 /bin/sh ../../libtool --tag=CXX   --mode=link g++  -g -O2 -Wall
 -Woverloaded-virtual -pthread  -module -avoid-version  -o _howto.la
 -rpath /usr/local/lib/python2.5/site-packages/gnuradio howto.lo
 howto_square_ff.lo howto_square2_ff.lo cuda_block.lo  -lstdc++
 -L/usr/local/lib -lgnuradio-core -lgromnithread
 -lfftw3f -lm
 libtool: link: rm -fr  .libs/_howto.la .libs/_howto.lai .libs/_howto.so
 libtool: link: g++ -shared -nostdlib
 /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crti.o
 /usr/lib/gcc/i386-redhat-linux/4.1.2/crtbeginS.o  .libs/howto.o
 .libs/howto_square_ff.o .libs/howto_square2_ff.o .libs/cuda_block.o
 -Wl,-rpath -Wl,/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib
 -L/usr/local/lib /usr/local/lib/libgnuradio-core.so
 /usr/local/lib/libgromnithread.so -lrt /usr/local/lib/libfftw3f.so
 -L/usr/lib/gcc/i386-redhat-linux/4.1.2
 -L/usr/lib/gcc/i386-redhat-linux/4.1.2/../../.. -lstdc++ -lm -lc
 -lgcc_s /usr/lib/gcc/i386-redhat-linux/4.1.2/crtendS.o
 /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../crtn.o  -pthread
 -pthread -Wl,-soname -Wl,_howto.so -o .libs/_howto.so
 libtool: link: ( cd .libs  rm -f _howto.la  ln -s
 ../_howto.la _howto.la )
 make[4]: Leaving directory
 `/root/dev/gnuradio-3.1.3/gr-howto-write-a-block-3.1.3/src/lib'
 make[3]: Leaving directory
 `/root/dev/gnuradio-3.1.3/gr-howto-write-a-block-3.1.3/src/lib'
 Making all in python
 make[3]: Entering directory
 `/root/dev/gnuradio-3.1.3/gr-howto-write-a-block-3.1.3/src/python'
 make[3]: Nothing to be done for `all'.
 make[3]: Leaving directory
 `/root/dev/gnuradio-3.1.3/gr-howto-write-a-block-3.1.3/src/python'
 make[3]: Entering directory
 `/root/dev/gnuradio-3.1.3/gr-howto-write-a-block-3.1.3/src'
 make[3]: Nothing to be done for `all-am'.
 make[3]: Leaving directory
 `/root/dev/gnuradio-3.1.3/gr-howto-write-a-block-3.1.3/src'
 make[2]: Leaving directory
 `/root/dev/gnuradio-3.1.3/gr-howto-write-a-block-3.1.3/src'
 make[2]: Entering directory
 `/root/dev/gnuradio-3.1.3/gr-howto-write-a-block-3.1.3'
 make[2]: Leaving directory
 `/root/dev/gnuradio-3.1.3/gr-howto-write-a-block-3.1.3'
 make[1]: Leaving directory
 `/root/dev/gnuradio-3.1.3/gr-howto-write-a-block-3.1.3'
 
 
 
 
 On Sun, Nov 16, 2008 at 2:46 PM, Martin DvH
 [EMAIL PROTECTED] wrote:
 
  On Fri, 2008-11-14 at 16:42 -0800, Bob Keyes wrote:
  I've just been given a Nvidia Quadro 5600 and I am thinking of using it 
  for DSP. Has anyone experimented with USRP  gnuradio  cuda?
 
  I have been working on this for quite some time now.
  I did a glsl implementation a few years back but it didn't perform that
  well and had some severe limitations.
 
  So I started over this year and have reimplemented  major part of
  GnuRadio using CUDA.
  It is a one to one implementation.
  (every gr_something block is replaced with a cuda_something block)
 
  My work-in-progress code is at:
  http://gnuradio.org/trac/browser/gnuradio/branches/developers/nldudok1/gpgpu-wip
 
  Make sure you read
  http://gnuradio.org/trac/browser/gnuradio/branches/developers/nldudok1/gpgpu-wip/README.cuda
 
  Caleb Phillips made a wiki about my code, you can find it at:
  http://www.smallwhitecube.com/php/dokuwiki/doku.php?id=howto:gnuradio-with-cuda
 
 
  The majority of the gnuradio-core code is a unmodified gnuradio checkout
  of a few
  moths back.
 
  There are some important changes in gnuradio_core/src/lib/runtime
  to support CUDA device memory as an emulated circular buffer.
 
  I also implemented a gr.check_compare block which expects two input
  streams and checks if they are outputting the same data.
  I use this to check if my cuda blocks do exactly the same as the gr
  blocks.
 
  All the rest of the CUDA code is in gr_cuda.
  gr_cuda has to be configured and build seperately.
  gr_cuda is where  the cuda reimplementations of some gnuradio blocks

Re: [Discuss-gnuradio] GPU progress?

2008-11-16 Thread Martin DvH

On Sat, 2008-11-15 at 10:30 -0500, Marcus D. Leech wrote:
 What is the current status of GPU support in Gnu Radio?   In particular,
 a GPUed FFT implementation would be peachy keen.
 
I have been working on this for quite some time now.
I did a glsl implementation a few years back but it didn't perform that
well and had some severe limitations.

So I started over this year and have reimplemented  major part of
GnuRadio using CUDA.
It is a one to one implementation.
(every gr_something block is replaced with a cuda_something block)

My work-in-progress code is at:
http://gnuradio.org/trac/browser/gnuradio/branches/developers/nldudok1/gpgpu-wip

Make sure you read 
http://gnuradio.org/trac/browser/gnuradio/branches/developers/nldudok1/gpgpu-wip/README.cuda

Caleb Phillips made a wiki about my code, you can find it at:
http://www.smallwhitecube.com/php/dokuwiki/doku.php?id=howto:gnuradio-with-cuda


The majority of the gnuradio-core code is a unmodified gnuradio checkout
of a few
moths back.

There are some important changes in gnuradio_core/src/lib/runtime
to support CUDA device memory as an emulated circular buffer.

I also implemented a gr.check_compare block which expects two input
streams and checks if they are outputting the same data.
I use this to check if my cuda blocks do exactly the same as the gr
blocks.

All the rest of the CUDA code is in gr_cuda.
gr_cuda has to be configured and build seperately.
gr_cuda is where  the cuda reimplementations of some gnuradio blocks
are.

Then there are also a few new blocks cuda_to_host and host_to_cuda which
copy memory from and to the GPU device memory.

All python scripts to test and use the code are in /testbed.

The code in testbed is changing on a day-by-day basis.


There are several issues to be well aware of when doing SDR on a GPU.

-overhead
-call overhead
-copying data from and to the GPU
You need to do a lot of work on the GPU in one call to have any
benefit.
-circular buffers
-GPU memory cant't be mmapped into a circular buffer
-solution 1: use copying to emulate a circular buffer
-solution 2: keep track of all the processing and make
your own
intelligent scheduler which does not need a circular buffer.

-threads: with CUDA you can't access GPU device memory from different
host-threads. So make sure you create use and destroy all device memory
from the same thread. (The standard GnuRadio scheduler does not do it
like this)
 
-debugging: Debugging is hard and works quite different from normal
debugging.

-parallel: The GPU is good in doing calculations in parallel which are
not dependant on each other. For this reason a FIR will perform well,
while an IIR will perform bad. An IIR can only use one processing block
of the GPU, in stead of 128.
It can still be benificial to do the IIR on the GPU when all your other
blocks are running on the GPU because you don't have to copy all samples
to the CPU, do the IIR on the CPU and copy everything back to the GPU.

All that said. I do have a complete WFM receiver which is running
completely on the GPU.
(using FIR and/or FFT filters, quadrature_demod, fm-deemph)

The FFT filters use the cuda provided FFT.
It shouldn't be too hard to use the FFT for other things
(just look at the code of gr_cuda/src/lib/cuda_fft_*)

At the moment the complete wfm receiver is not running faster then on
the CPU with my 9600GT card, mainly because of the call overhead. (too
little work items done per call)
And the extra copying done to emulate circular buffers.

I can increase the amount of work done per call by using
output_multiple. But with the current scheduling code the flow-graph can
hang. This needs work.
So the performance will change in the future.
First I want to make sure everything is working as expected.

If I benchmark a single block with a big output_multiple then I do see
performance increases.


Greetings,
Martin





___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: Soft-DVB DVB-T transmitter

2008-11-14 Thread Martin DvH

On Tue, 2008-11-11 at 08:26 +0100, Vincenzo Pellegrini wrote:
 Martin ,
 sorry for the delay. My exams seem to have gone well even if it's not
 official yet.
Great
  I also had to do a demo for a company I have a temporary
 contract with for developing some gnuradio based gsm-r security
 sentinels. Also the demo was smooth. (i already listed the project on
 the gnuradio wiki)
Good work.
 so i really hope i'll be able to prepare the 8Mhz stream for you
 within the next 2/3 days. Would this still be useful?
Yes it really would.

I am also really looking forward for the sources.
One of the things I am planning to do is use the structure of your code
as a basis for a DVB-T receiver.
It is always easier debugging a receiver when you can make a full loop.
(transmitter and receiver back-to-back)

Greetings,
Martin
 2008/11/3, Martin DvH [EMAIL PROTECTED]:
 
  On Mon, 2008-11-03 at 14:13 +0100, Martin DvH wrote:
 
 
 
  
 
Van: [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED]
  Namens Vincenzo Pellegrini
Verzonden: maandag 3 november 2008 0:16
Aan: Martin DvH
CC: discuss-gnuradio
Onderwerp: [Discuss-gnuradio] Re: Soft-DVB DVB-T transmitter


This is Great... :)

Yup, the playback cannot be smooth because of the wrong throughput,
  definitely.
Did you use the USRP1 with interpolation factor = 16 ?
  Yes I did.

I can prepare a modulated signal with the correct throughput for
  you.. this is not a problem... :)

  Please do, this would be great.
what hard disc are you playing your signal back from?
 
  Internal 2.5 harddisk of my acer 6930 notebook (Aspire 6930G-734G32BN
  LX.AVB0X.135)
  2.5 320GB HDD 5400rpm, SATA
  I checked now. It is a:
  Western digital Scorpio 320 GB SATA (WDC WD3200BEVT-22ZCT0)
  2.5-inch SATA Hard Drive 320 GB, 3 Gb/s, 8 MB Cache, 5400 RPM
 
  Benchmark from tomshardware (h2benchw 3.6):
  http://www.tomshardware.com/charts/2-5-hard-drive-charts/Minimum-Read-Transfer-Performance,687.html
  minimum read transfer rate 33.5 MB/sec
  average read transfer rate 52.2 MB/sec
  maximum read transfer rate 68.2 MB/sec
 
 
 
  I am not at home right now So I can't check the exact brand and model of
  the
  harddisk.
  It can do around 38 MB/sec so this is just enough (required 32 MB/sec)
 
  I also have 4GB of memory in this notebook, so I think it will buffer the
  complete file.
 
  I had to use my notebook because with my desktop PC (ASrock
  939-DUAL-SATA2)
  The USB TX bandwidth is less then 32 MB/sec.
  (Which is strange because I CAN receive 32 MB/sec)
  I get UuUuUu on this machine when useing interpolation 16, so unusable.
 
  Regards,
  Martin
 

regards

vincenzo


2008/11/3 Martin DvH [EMAIL PROTECTED]
 
 
 
 Hi,
 
   In fact: 8 complex Msps implement a 7 MHz channel while
  9.142857143
   complex Msps implement an 8 MHz channel.
   Just try to go as close as possible to such sampling
  frequency by
   using USRP2 and let me know what happens... it could
  turn out that we
   need a resampler block.
  So if I use a fractional rate resampler with interpolation
  factor
  10/8=1.25 I get a 7 Mhz channel with 10 Msps samplerate.
  If I use a fractional rate resampler with interpolation
  factor
  10/9.142857143=1.09375 I get a 8 Mhz channel with 10 Msps
  samplerate
 
  If I use a fractional rate resampler with DECIMATION
  factor
  9.142857143/8=8/7=1.142857143 I get a 8 Mhz channel with 8
  Msps
  samplerate with the out-of-band skirts folded back at the
  sides.
 
  Would be interesting to see if this last one works with a
  USRP1.
 
  I'll let you know how the experiments go.
 
 I resampled and scaled your ofdm_40.dump file so it now will
  use 8 Mhz bandwidth with a 8 Msps samplerate.
 The reception never can be perfect this way but it seems
  good enough for
 tests.
 
 My USB DVB-T receiver receives the transport stream without
  problems.
 Mplayer playes the stream without problem for two loops and
  then crashes
 with a broken frame.
 My standalone settopbox DVB-T receiver now also receives the
  stream.
 (8 MHz channel on UHF)
 It has big problems displaying it. Sound is only a chop of
  sound now and
 then and video stops, then runs for a second, then stops
  again.
 
 I think this is because the timestamps and framerate
  (playout speed)
 don't match the data throughput of the MPEG stream anymore.
 (It is getting the stream too fast)
 
 I put my resampled RF file at:
 
  http://www.olifantasia.com/projects/gnuradio/mdvh

Re: [Discuss-gnuradio] Any tutorials (documentation) about gr-radar-mono

2008-11-10 Thread Martin DvH

On Mon, 2008-11-10 at 20:14 +0100, Bruhtesfa Ebrahim wrote:
 Hi Johnathan,
  
 Thank you so much for the advise that you gave me ! ! !
 Could you also look at the following description and give me your
 comment.? - Thanks
  
 Ya! I am looking to detect human motion at a distance of minimum 1
 meter and maximum 10 meter.
 I have one USRP and two XCVR2450 Trancievers(operating freq. 2.45GHz),
 which I will be using one of them as transmitter and the 
 other as reciever. So, I have two possible ways of implemetation.
  
  1) As pulse doppler radar = here to get a minimum distance of 1
 meter, the usrp should transmit  a pulse of width 5 nanosec, then
 should stop and the reciever should start to recieve, then to measure
  a velocity as high as 3m/sec, I can use PRF of 100.  Here the problem
 is as you said the USRP can not generate such a short pulse of 5
 nanosec, plus it can not switch between transmitter and reciever so
 fast.
  
 2) As CW radar = here my idea is to transmit a CW from one shell
 script and recieve the reflected data at the same time in another
 shell script. Here the problem is the isolation between the transmit
 and recieve paths. The data I recieve will not be just a reflected
 data but also signal from the transmitter.
  
 This means both of the implementation ways have problem.
 So, what do you suggest?
Just my 2 cents.
I would suggest using sound in stead of radio waves.
The lower speed of soundwaves (around 300 m/sec) means the timings go
down with a factor 100 and you could do very precise short-range
radar (actually sonar).

You could still use the USRP. Just use amplifiers and ultrasonic
transducers in stead of antenna's.

Good luck,
Martin

 And which one do you recommend me from your previous experience on the
 USRP?
  
   
 Also Mr. Lee Pathon, the Author of  GNU based Software Defined
 Radar ,  I know you worked on such stuff , could you give me some
 comment based on your work? - Thanks
  
 Bruhtesfa 
  
  
 
 
  
 On Mon, Nov 10, 2008 at 4:45 PM, Johnathan Corgan
 [EMAIL PROTECTED] wrote:
 On Mon, 2008-11-10 at 16:39 +0100, Bruhtesfa Ebrahim wrote:
 
  Is there any tutorial (documentation) that explains in
 detail
  gr_radar_mono and other gnu radio packages?
  I look on GNU radio 3.0svn documentation but it has no
 details. is
  there any other that has more details?
 
 
 There is a README inside the directory that explains the
 command-line
 parameters.
 
 But I'll warn you ahead of time that, based on a prior email
 where you
 said you were looking at targets 10 meters away, that this
 software
 won't work for you.
 
 Without going in to detail, the minimum range is about 200m,
 based on
 transmitting a long enough chirp and the time it takes to
 switch from TX
 to RX.
 
 Just FYI, however, this software was able to image targets 1.5
 km away,
 using an RFX2400, a 3W PA, and a horn antenna.
 
 -Johnathan
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


RE: [Discuss-gnuradio] Re: Soft-DVB DVB-T transmitter

2008-11-03 Thread Martin DvH






   Van: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
Namens Vincenzo Pellegrini
   Verzonden: maandag 3 november 2008 0:16
   Aan: Martin DvH
   CC: discuss-gnuradio
   Onderwerp: [Discuss-gnuradio] Re: Soft-DVB DVB-T transmitter
   
   
   This is Great... :)
   
   Yup, the playback cannot be smooth because of the wrong throughput,
definitely.
   Did you use the USRP1 with interpolation factor = 16 ?
Yes I did.
   
   I can prepare a modulated signal with the correct throughput for
you.. this is not a problem... :)

Please do, this would be great. 
   what hard disc are you playing your signal back from?

Internal 2.5 harddisk of my acer 6930 notebook (Aspire 6930G-734G32BN
LX.AVB0X.135)
2.5 320GB HDD 5400rpm, SATA 
 
I am not at home right now So I can't check the exact brand and model of the
harddisk.
It can do around 38 MB/sec so this is just enough (required 32 MB/sec)
 
I also have 4GB of memory in this notebook, so I think it will buffer the
complete file.

I had to use my notebook because with my desktop PC (ASrock 939-DUAL-SATA2)
The USB TX bandwidth is less then 32 MB/sec.
(Which is strange because I CAN receive 32 MB/sec)
I get UuUuUu on this machine when useing interpolation 16, so unusable.

Regards,
Martin

   
   regards
   
   vincenzo
   
   
   2008/11/3 Martin DvH [EMAIL PROTECTED]



Hi,

  In fact: 8 complex Msps implement a 7 MHz channel while
9.142857143
  complex Msps implement an 8 MHz channel.
  Just try to go as close as possible to such sampling
frequency by
  using USRP2 and let me know what happens... it could
turn out that we
  need a resampler block.
 So if I use a fractional rate resampler with interpolation
factor
 10/8=1.25 I get a 7 Mhz channel with 10 Msps samplerate.
 If I use a fractional rate resampler with interpolation
factor
 10/9.142857143=1.09375 I get a 8 Mhz channel with 10 Msps
samplerate

 If I use a fractional rate resampler with DECIMATION
factor
 9.142857143/8=8/7=1.142857143 I get a 8 Mhz channel with 8
Msps
 samplerate with the out-of-band skirts folded back at the
sides.

 Would be interesting to see if this last one works with a
USRP1.

 I'll let you know how the experiments go.

I resampled and scaled your ofdm_40.dump file so it now will
use 8 Mhz bandwidth with a 8 Msps samplerate.
The reception never can be perfect this way but it seems
good enough for
tests.

My USB DVB-T receiver receives the transport stream without
problems.
Mplayer playes the stream without problem for two loops and
then crashes
with a broken frame.
My standalone settopbox DVB-T receiver now also receives the
stream.
(8 MHz channel on UHF)
It has big problems displaying it. Sound is only a chop of
sound now and
then and video stops, then runs for a second, then stops
again.

I think this is because the timestamps and framerate
(playout speed)
don't match the data throughput of the MPEG stream anymore.
(It is getting the stream too fast)

I put my resampled RF file at:

http://www.olifantasia.com/projects/gnuradio/mdvh/OTA/DVB-T/ofdm_40_bw8Mhz_s
amplerate_8Msps_cshort.raw

format is complex signed short integers (I 16 bit, Q 16 bit)
at 8
Msamples/sec.


Greetings,
Martin



  more details will follow as soon as I find some time...
 Thanks and success with your second group of tests.

 Martin
  best regards and greetings
  to all fellow GNURadioers
 
  vincenzo
 
  PS
  Rafael, just have a look back a this thread and you'll
find all the
  info you need to do your test broadcast. Thanks for your
interest
 
 
 
 
 
 
  2008/10/31 Martin Dudok van Heel
[EMAIL PROTECTED]
  Hi Vincenzo.
  How are things going with your exams.
 
  I hope well.
 
  Thanks for your help so far

RE: [Discuss-gnuradio] Re: Soft-DVB DVB-T transmitter

2008-11-03 Thread Martin DvH

On Mon, 2008-11-03 at 14:13 +0100, Martin DvH wrote:
 
 
 
 
 
  Van: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED]
 Namens Vincenzo Pellegrini
  Verzonden: maandag 3 november 2008 0:16
  Aan: Martin DvH
  CC: discuss-gnuradio
  Onderwerp: [Discuss-gnuradio] Re: Soft-DVB DVB-T transmitter
  
  
  This is Great... :)
  
  Yup, the playback cannot be smooth because of the wrong throughput,
 definitely.
  Did you use the USRP1 with interpolation factor = 16 ?
 Yes I did.
  
  I can prepare a modulated signal with the correct throughput for
 you.. this is not a problem... :)
   
 Please do, this would be great. 
  what hard disc are you playing your signal back from?
 
 Internal 2.5 harddisk of my acer 6930 notebook (Aspire 6930G-734G32BN
 LX.AVB0X.135)
 2.5 320GB HDD 5400rpm, SATA 
I checked now. It is a: 
Western digital Scorpio 320 GB SATA (WDC WD3200BEVT-22ZCT0)
2.5-inch SATA Hard Drive 320 GB, 3 Gb/s, 8 MB Cache, 5400 RPM

Benchmark from tomshardware (h2benchw 3.6):
http://www.tomshardware.com/charts/2-5-hard-drive-charts/Minimum-Read-Transfer-Performance,687.html
minimum read transfer rate 33.5 MB/sec
average read transfer rate 52.2 MB/sec
maximum read transfer rate 68.2 MB/sec


 
 I am not at home right now So I can't check the exact brand and model of the
 harddisk.
 It can do around 38 MB/sec so this is just enough (required 32 MB/sec)
  
 I also have 4GB of memory in this notebook, so I think it will buffer the
 complete file.
 
 I had to use my notebook because with my desktop PC (ASrock 939-DUAL-SATA2)
 The USB TX bandwidth is less then 32 MB/sec.
 (Which is strange because I CAN receive 32 MB/sec)
 I get UuUuUu on this machine when useing interpolation 16, so unusable.
 
 Regards,
 Martin
 
  
  regards
  
  vincenzo
  
  
  2008/11/3 Martin DvH [EMAIL PROTECTED]
   
 
 
   Hi,
   
 In fact: 8 complex Msps implement a 7 MHz channel while
 9.142857143
 complex Msps implement an 8 MHz channel.
 Just try to go as close as possible to such sampling
 frequency by
 using USRP2 and let me know what happens... it could
 turn out that we
 need a resampler block.
So if I use a fractional rate resampler with interpolation
 factor
10/8=1.25 I get a 7 Mhz channel with 10 Msps samplerate.
If I use a fractional rate resampler with interpolation
 factor
10/9.142857143=1.09375 I get a 8 Mhz channel with 10 Msps
 samplerate
   
If I use a fractional rate resampler with DECIMATION
 factor
9.142857143/8=8/7=1.142857143 I get a 8 Mhz channel with 8
 Msps
samplerate with the out-of-band skirts folded back at the
 sides.
   
Would be interesting to see if this last one works with a
 USRP1.
   
I'll let you know how the experiments go.
   
   I resampled and scaled your ofdm_40.dump file so it now will
 use 8 Mhz bandwidth with a 8 Msps samplerate.
   The reception never can be perfect this way but it seems
 good enough for
   tests.
   
   My USB DVB-T receiver receives the transport stream without
 problems.
   Mplayer playes the stream without problem for two loops and
 then crashes
   with a broken frame.
   My standalone settopbox DVB-T receiver now also receives the
 stream.
   (8 MHz channel on UHF)
   It has big problems displaying it. Sound is only a chop of
 sound now and
   then and video stops, then runs for a second, then stops
 again.
   
   I think this is because the timestamps and framerate
 (playout speed)
   don't match the data throughput of the MPEG stream anymore.
   (It is getting the stream too fast)
   
   I put my resampled RF file at:
   
 http://www.olifantasia.com/projects/gnuradio/mdvh/OTA/DVB-T/ofdm_40_bw8Mhz_s
 amplerate_8Msps_cshort.raw
   
   format is complex signed short integers (I 16 bit, Q 16 bit)
 at 8
   Msamples/sec.
   
   
   Greetings,
   Martin
   
 
 
 more details will follow as soon as I find some time...
Thanks and success with your second group of tests.
   
Martin
 best regards and greetings
 to all fellow GNURadioers

 vincenzo

 PS
 Rafael, just have a look back a this thread and you'll
 find all the
 info you need to do your test broadcast. Thanks for your
 interest

[Discuss-gnuradio] Re: Soft-DVB DVB-T transmitter

2008-11-02 Thread Martin DvH
Hi Vincenzo,

On Sun, 2008-11-02 at 01:28 +0100, Vincenzo Pellegrini wrote:
 Hi Martin, 
 sorry for the delayed replies but now I've passed my first cluster of
 PhD tests (went well)

Congratulations.
  and I've got to carry out some work + preparing the second group of
 tests.
Success.
 Well, really glad to know that you managed to receive my signals.
 Yup dvb-t sticks can actually receive 7 MHz channels everywhere,
I found that some of them need special australian 7MHz at UHF firmware
to get this to work.
Luckily my DVB-T usb stick doesn't need this trick.
 Well, actually any DVB-T chipset can but typically manufacturers
 impose strange limitations on set-top-boxes such as 7 MHz chanels
 accepted only in VHF I don't really know why.
 
 The signal I provided you with is suitable for both 7 and 8 MHz
 channels without any modification needed. The only thing you have to
 do is to set your sampling frequency a bit higher. this should be
 possible with USRP2. 
The receiver might still have a problem that it is getting in the MPEG
streams at a higher rate then realtime.

 In fact: 8 complex Msps implement a 7 MHz channel while 9.142857143
 complex Msps implement an 8 MHz channel.
 Just try to go as close as possible to such sampling frequency by
 using USRP2 and let me know what happens... it could turn out that we
 need a resampler block.
So if I use a fractional rate resampler with interpolation factor
10/8=1.25 I get a 7 Mhz channel with 10 Msps samplerate.
If I use a fractional rate resampler with interpolation factor
10/9.142857143=1.09375 I get a 8 Mhz channel with 10 Msps samplerate 

If I use a fractional rate resampler with DECIMATION factor
9.142857143/8=8/7=1.142857143 I get a 8 Mhz channel with 8 Msps
samplerate with the out-of-band skirts folded back at the sides.

Would be interesting to see if this last one works with a USRP1.

I'll let you know how the experiments go.

 more details will follow as soon as I find some time...
Thanks and success with your second group of tests.

Martin
 best regards and greetings 
 to all fellow GNURadioers
 
 vincenzo 
 
 PS
 Rafael, just have a look back a this thread and you'll find all the
 info you need to do your test broadcast. Thanks for your interest
 
 
 
 
 
 
 2008/10/31 Martin Dudok van Heel [EMAIL PROTECTED]
 Hi Vincenzo.
 How are things going with your exams.
 
 I hope well.
 
 Thanks for your help so far.
 
 I finally got your DVB-T dump streams working.
 I first tried using an undersampled basicTX but never got it
 to work.
 (use a niquist mirror in the VHF range on channel 11 or 12
 (219.5 Mhz or 226.5 Mhz))
 
 I now use a RFX900 and that works with a pinnacle PCTV-Solo
 72e usb DVB-T receiver card plugged into my PC.
 I use 858.0 Mhz (channel 69)
 I used a 10 dB attenuator on the antenna output to limit
 output power.
 I also modified the RFX900 to enable transmitting outside of
 the ISM band. (disable saw-filter. add 220 pF capacitor)
 
 Apparantly the pinnacle 72e can receive 7 Mhz channels on the
 UHF channels.
 My standalone settopbox DVB-T receiver can't handle it.
 
 I noticed you don't use the full possible range in your 16 bit
 streams.
 (only goes from -80 to +80 while you could use -8192 to 8192)
 Is this on purpose?
 I can multiply samples by 64 and get a cleaner signal. (But
 also more output power)
 
 
 I do have a request, I hope it is not too much work.
 Could you make a stream with 10 Msamples/sec samplerate and 8
 Mhz wide channel.
 This way I can use standard standalone DVB-T receivers and
 don't have the 7Mhz bandwith on UHF problem.
 
 For the 10 Msps stream I would have to use my USRP2 to output
 it.
 It has a 100 Mhz DAC (in stead of 64 Msps in the USRP1)
 It has a gbit ethernet connection for the samples, so I can go
 up to 25 Msps.
 It can only do fixed interpolation rates so I have to choose
 from the table below.
 (8 Msamples/sec is not supported on the USRP2)
 
 
 USRP2
 dac_rateinterp  ethernet_sample_rate
 100 4   25
 100 5   20
 100 6   16.67
 100 7   14.29
 100 8   12.5
 100 9   11.11
 100 10  10  I think 10 Msamples/sec
 should be optimal
 100 11  9.09
 100 12  8.33
 100 13  7.69
 100 14  7.14
 
 
 I think 10 Msamples/sec would be a good candidate.
 
 Have you also tried using 8 

[Discuss-gnuradio] Re: Soft-DVB DVB-T transmitter

2008-11-02 Thread Martin DvH

Hi,
  In fact: 8 complex Msps implement a 7 MHz channel while 9.142857143
  complex Msps implement an 8 MHz channel.
  Just try to go as close as possible to such sampling frequency by
  using USRP2 and let me know what happens... it could turn out that we
  need a resampler block.
 So if I use a fractional rate resampler with interpolation factor
 10/8=1.25 I get a 7 Mhz channel with 10 Msps samplerate.
 If I use a fractional rate resampler with interpolation factor
 10/9.142857143=1.09375 I get a 8 Mhz channel with 10 Msps samplerate 
 
 If I use a fractional rate resampler with DECIMATION factor
 9.142857143/8=8/7=1.142857143 I get a 8 Mhz channel with 8 Msps
 samplerate with the out-of-band skirts folded back at the sides.
 
 Would be interesting to see if this last one works with a USRP1.
 
 I'll let you know how the experiments go.
I resampled and scaled your ofdm_40.dump file so it now will use 8 Mhz 
bandwidth with a 8 Msps samplerate.
The reception never can be perfect this way but it seems good enough for
tests.

My USB DVB-T receiver receives the transport stream without problems.
Mplayer playes the stream without problem for two loops and then crashes
with a broken frame.
My standalone settopbox DVB-T receiver now also receives the stream.
(8 MHz channel on UHF)
It has big problems displaying it. Sound is only a chop of sound now and
then and video stops, then runs for a second, then stops again.

I think this is because the timestamps and framerate (playout speed)
don't match the data throughput of the MPEG stream anymore.
(It is getting the stream too fast)

I put my resampled RF file at:
http://www.olifantasia.com/projects/gnuradio/mdvh/OTA/DVB-T/ofdm_40_bw8Mhz_samplerate_8Msps_cshort.raw

format is complex signed short integers (I 16 bit, Q 16 bit) at 8
Msamples/sec.


Greetings,
Martin

 
  more details will follow as soon as I find some time...
 Thanks and success with your second group of tests.
 
 Martin
  best regards and greetings 
  to all fellow GNURadioers
  
  vincenzo 
  
  PS
  Rafael, just have a look back a this thread and you'll find all the
  info you need to do your test broadcast. Thanks for your interest
  
  
  
  
  
  
  2008/10/31 Martin Dudok van Heel [EMAIL PROTECTED]
  Hi Vincenzo.
  How are things going with your exams.
  
  I hope well.
  
  Thanks for your help so far.
  
  I finally got your DVB-T dump streams working.
  I first tried using an undersampled basicTX but never got it
  to work.
  (use a niquist mirror in the VHF range on channel 11 or 12
  (219.5 Mhz or 226.5 Mhz))
  
  I now use a RFX900 and that works with a pinnacle PCTV-Solo
  72e usb DVB-T receiver card plugged into my PC.
  I use 858.0 Mhz (channel 69)
  I used a 10 dB attenuator on the antenna output to limit
  output power.
  I also modified the RFX900 to enable transmitting outside of
  the ISM band. (disable saw-filter. add 220 pF capacitor)
  
  Apparantly the pinnacle 72e can receive 7 Mhz channels on the
  UHF channels.
  My standalone settopbox DVB-T receiver can't handle it.
  
  I noticed you don't use the full possible range in your 16 bit
  streams.
  (only goes from -80 to +80 while you could use -8192 to 8192)
  Is this on purpose?
  I can multiply samples by 64 and get a cleaner signal. (But
  also more output power)
  
  
  I do have a request, I hope it is not too much work.
  Could you make a stream with 10 Msamples/sec samplerate and 8
  Mhz wide channel.
  This way I can use standard standalone DVB-T receivers and
  don't have the 7Mhz bandwith on UHF problem.
  
  For the 10 Msps stream I would have to use my USRP2 to output
  it.
  It has a 100 Mhz DAC (in stead of 64 Msps in the USRP1)
  It has a gbit ethernet connection for the samples, so I can go
  up to 25 Msps.
  It can only do fixed interpolation rates so I have to choose
  from the table below.
  (8 Msamples/sec is not supported on the USRP2)
  
  
  USRP2
  dac_rateinterp  ethernet_sample_rate
  100 4   25
  100 5   20
  100 6   16.67
  100 7   14.29
  100 8   12.5
  100 9   11.11
  100 10  10  I think 10 Msamples/sec
  should be optimal
  100 11  9.09
  100 12  8.33
  100 13  7.69
  100 14  7.14
  
  
  I think 10 Msamples/sec would be a good candidate.
  
  Have you also tried using 8 

Re: [Discuss-gnuradio] Anyone using GNU Radio for doppler radar application

2008-10-28 Thread Martin DvH

On Tue, 2008-10-28 at 20:15 +0100, Bruhtesfa Ebrahim wrote:
 Thank you Micheal !  I have installed the doxygen now using macports.
  
 By the way I am using USRP+Tx and RX daughterboards on OS X 10.5 for
 doppler radar application.
 Anyone, having experience on using GNU radio for doppler radar? or
 anyone who has tried it,? -Tks
I have tried it a while ago for doing passive radar.
This was inspired by the work done by Eric Blossom.

See this abandoned code:
http://gnuradio.org/trac/browser/gnuradio/limbo/gr-radar

There is also a video online of a presentation by Eric Blossom about
doing passive radar with gnuradio on a conference a few years back.
I think it was at what-the-hack in 2005 or CCC in 2007.


Greetings,
Martin
  
 Bruhtesfa
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] USRP2 current svn code not working. Is the svn code still in flux?

2008-10-26 Thread Martin DvH
Hi,
The current svn code does not seem to produce correct results for me
when using usrp2_fft.py


I know there has been going on a lot of usrp2 work this weekend.
Is the svn code still in a state of flux or should it work by now and
should I check my setup.


If I don't set the frequency  I get a noise signal  -85 dB.
Setting the gain from the commandline does not seem to have any effect.
usrp2_fft.py
or
usrp2_fftp.y -g 80
or
usrp2_fft.py -g 0


I I do set the frequency using the commandline I get a nonsense signal
at -120 to -180 dB.
usrp2_fft.py -f 107.9e6
or
usrp2_fft.py -f 107.9e6 -g 40


Until recently (before the needed firmware updates) everything worked
fine.
usrp2_fft.py -f 107.9e6 -g 40
used to show the spectrum of a local FM station.


I use a USRP2 with a TVRX daughterboard.
I do get the 2 green leds.

I don't know if the problem is from (my build of) the new software
firmware txrx.bin.
I build on ubuntu 7.10 64 bit.

Or maybe there are some changes in setting gain/frequency API which
require changes in the usrp2_fft.py python script. 


Greetings,
Martin




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: USRP2 current svn code not working. Is the svn code still in flux?

2008-10-26 Thread Martin DvH

On Sun, 2008-10-26 at 07:44 -0700, Johnathan Corgan wrote:
 On Sun, 2008-10-26 at 15:37 +0100, Martin DvH wrote:
 
  The current svn code does not seem to produce correct results for me
  when using usrp2_fft.py
 
 Could you please try usrp2_rx_cfile.py and see if the results are the
 same?
Results are the same.

If I look at the capture with a hex editor I see a few non-zero numbers
at the start and then only zero's
I attached a bzip2-ed version of the result of 
usrp2_rx_cfile.py -f 107.9e6 -g 40 -N 1000 -v tmp_cfloat.raw

As the compressed file is only 30 kB (uncompressed 10 MB) you can see
there is definitely something wrong.

Note that this is from trunk from today.

I checked out your development branch too.
branches/developers/jcorgan/u2-wip
Should I build that and see what it does?

Martin


 
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 


tmp_cfloat.raw.bz2
Description: application/bzip
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: USRP2 current svn code not working. Is the svn code still in flux?

2008-10-26 Thread Martin DvH

On Sun, 2008-10-26 at 08:33 -0700, Johnathan Corgan wrote:
 On Sun, 2008-10-26 at 16:27 +0100, Martin DvH wrote:
 
  I checked out your development branch too.
  branches/developers/jcorgan/u2-wip
  Should I build that and see what it does?
 
 I'm about to merge this into the trunk, so don't bother building it.
 But I don't expect what I've done so far to address this.

Ok
 Can you check if varying the decimation rate (try 4, 5, 100, and 200)
 impacts what you are seeing?

4  noise -90 dB
5  noise -93 dB
6  noise -90 dB
7 noise -98 dB
8 noise -100 dB
9 noise -92 dB
10 noise -98 dB with small peak at -93 dB center freq (possibly my radio
station)
11 noise -93 dB
12 flat -380 dB (essentially all zero's)
13 noise -95 dB
14  -105 dB erratic changing noise with sometimes a sinc curve (noise
intermittand with zero's)
15 noise -100 dB zomewhat erratic
16 very irratic between -100 and -180 dB (noise intermittand with
zero's)
17 same as 16
18 noise -100 dB
19 noise -98 dB
20 flatline -380 dB
21 same as 16
22 noise at -100 with small peak at center freq -93 dB same as 10
23 flatline -380 dB
24 flatline -380 dB
25 same as 16
26 same as 10
27 flatline -380 dB
28 flatline -380 dB
29 irractic flatline (flatline at different dB levels
30 same as 16
31 same as 16
32 flatline -380 dB

100 flatline -380 dB
200 flatline -380 dB

This is with the old fpga firmware
I am nowgoing to try the new one.

Martin
 Also, I suspect that there might be a compatibility issue between the
 version of the FPGA code that was shipped on the SD card and the current
 trunk firmware/host code.  In a separate email I will send to you
 another FPGA bin file to try to see if it makes a difference.
 
 
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: USRP2 current svn code not working. Is the svn code still in flux?

2008-10-26 Thread Martin DvH

On Sun, 2008-10-26 at 10:09 -0700, Johnathan Corgan wrote:
 On Sun, Oct 26, 2008 at 8:33 AM, Johnathan Corgan
 [EMAIL PROTECTED] wrote:
 
  Also, I suspect that there might be a compatibility issue between the
  version of the FPGA code that was shipped on the SD card and the current
  trunk firmware/host code.
 
 This has been confirmed (thanks Martin).
The new fpga image in combination with the latest svn code also makes it 
possible to set the gain from the gui of usrp2_fft.py without crashing the app.
(And the gain actually changes as can be seen by the change in signal
level)

Trying to set the frequency this way is not fixed. This still hangs the
whole app.

Greetings,
Martin


 What this means is that people who are using already shipped USRP2s
 will need to update their SD card with the latest FPGA bitstream
 binary image in order to use the latest GNU Radio trunk code.  Since
 creating the image requires using the commercial Xilinx ISE toolchain,
 we will supply the latest binary on the GNU Radio website, along with
 upgrade instructions.
 
 Eric and I have discussed how to address this in general terms, and
 once I have a chance to talk to Matt to confirm, we'll make a list
 posting and update the USRP2 wiki page.
 
 -Johnathan
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: USRP2 current svn code not working. Is the svn code still in flux?

2008-10-26 Thread Martin DvH

On Sun, 2008-10-26 at 14:03 -0700, Johnathan Corgan wrote:
 On Sun, 2008-10-26 at 21:49 +0100, Martin DvH wrote:
 
  The new fpga image in combination with the latest svn code also makes it 
  possible to set the gain from the gui of usrp2_fft.py without crashing the 
  app.
  (And the gain actually changes as can be seen by the change in signal
  level)
  
  Trying to set the frequency this way is not fixed. This still hangs the
  whole app.
 
 I've updated usrp2_fft.py on the trunk to use the latest gr-usrp2.  It
 is working normally now with setting the USRP2 parameters via the
 command line, however, as you note, changing frequency doesn't work.
 This has been isolated to some problem in either libusrp2 or in the
 USRP2 firmware.  Eric and I are working on this.
 
 Other commands that operate in batch mode, where you set the USRP2
 parameters from the command line, are working normally now as well.
 
When you set the decimation above 19 then you CAN set gain in the GUI.
With decimation below 19, setting gain in the GUI hangs the app.

Setting the freq only works from commandline.

The gainrange for TVRX rev 3 comes out as 0 , 0
This triggers a python error min max ==False and the gain slider cannot
be used.

I saw you have a workaround for the gainrange for TVRX, probably this
should also apply for TVRX rev 2 and TVRX rev 3.
(Or there is something else wrong in the backend code)

Following patch adds the workaround for alls TVRXs.
--- usrp2_fft.py2008-10-26 22:36:36.0 +0100
+++ mdvh_usrp2_fft.py   2008-10-26 22:35:56.0 +0100
@@ -133,9 +133,10 @@
 
 hbox.Add((5,0), 0, 0)
 g = self.u.gain_range()
-   if self.u.daughterboard_id() == 0x0003: # FIXME: get range right in
firmware for TVRX
+dbid=self.u.daughterboard_id()
+   if dbid == 0x0003 or dbid==0x0040 or dbid == 0x0040: # FIXME: get
range right in firmware for TV Rx, TV Rx Rev 2 and TV Rx Rev 3
  g[1] = 104
- 
+
 myform['gain'] = form.slider_field(parent=self.panel,
sizer=hbox, label=Gain,
weight=3,
min=int(g[0]),
max=int(g[1]),



 Thanks again for your testing.
 
 -Johnathan

 
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] [cell] videocard with onboard cell processor announced

2008-09-11 Thread Martin Dvh
http://www.tcmagazine.com/comments.php?id=21673catid=2

Th Leadtek PxVC1100 card features a PCI-Express x1 interface, active cooling, 
it boasts a SE1000 SpursEngine chip which integrates four
Synergistic Processing Element (SPE) cores, at a currently unknown frequency 
and has 128MB of XDR memory clocked at 1.6 GHz.

Leadtek has yet to announce the card's price or release date.

This would be a nice GnuRadio coprocessor, if the specs and api's are open.

Greetings,
Martin


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] gnuradio.org seems to be down

2008-09-10 Thread Martin Dvh
Hi,
gnuradio.org seems to be down (including svn and trac)
Greetings,
Martin


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] make check failure and solution patch (faulty gr_basic_block sort in gr_flow_graph)

2008-08-10 Thread Martin Dvh
Hi All,
This patch makes the sort of basic_blocks reliable in gr_flowgraph.cc
Without it make check can fail in qa_gr_flowgraph.cc:240

background:
While working with new buffer code I found that make check can fail in 
qa_gr_flowgraph.cc
240:  CPPUNIT_ASSERT(graphs[0].size() == 4);

The cause of this is that the subgraphs are not in the order as expected.
The code expects
graphs.size()==3
graphs[0].size()==4
graphs[1].size()==3
graphs[2].size()==2

But it gets
graphs.size()==3
graphs[0].size()==3
graphs[1].size()==2
graphs[2].size()==4

This only happens if there are a lot of big malloc /frees in code before it.
The probable cause is that a plain std::sort is used for sorting vectors of 
gr_basic_block
But for gr_basic_block the operator  is not defined.

I changed the code to use basic_block-unique_id() for sorting.
This should be more robust.

(I got rid of the make check failure)
This problem might be in more parts of the code


Greetings,
Martin

Index: gr_flowgraph.cc
===
--- gr_flowgraph.cc (revision 9229)
+++ gr_flowgraph.cc (working copy)
@@ -30,6 +30,11 @@
 #include sstream

 #define GR_FLOWGRAPH_DEBUG 0
+bool
+basic_block_sort_predicate(const gr_basic_block_sptr lhs, const 
gr_basic_block_sptr rhs)
+{
+  return lhs-unique_id()  rhs-unique_id();
+}

 gr_edge::~gr_edge()
 {
@@ -173,7 +178,8 @@
   }

   // Return vector of unique blocks
-  sort(tmp.begin(), tmp.end());
+  //sort(tmp.begin(), tmp.end());
+  sort(tmp.begin(), tmp.end(),basic_block_sort_predicate);
   unique_copy(tmp.begin(), tmp.end(), inserter);
   return result;
 }
@@ -272,7 +278,7 @@
   tmp.push_back(p-dst().block());

   // Remove duplicates
-  sort(tmp.begin(), tmp.end());
+  sort(tmp.begin(), tmp.end(),basic_block_sort_predicate);
   unique_copy(tmp.begin(), tmp.end(), inserter);
   return result;
 }
@@ -288,7 +294,7 @@
   tmp.push_back(p-dst().block());

   // Remove duplicates
-  sort(tmp.begin(), tmp.end());
+  sort(tmp.begin(), tmp.end(),basic_block_sort_predicate);
   unique_copy(tmp.begin(), tmp.end(), inserter);
   return result;
 }
@@ -399,7 +405,7 @@
   }

   // Remove duplicates
-  sort(tmp.begin(), tmp.end());
+  sort(tmp.begin(), tmp.end(),basic_block_sort_predicate);
   unique_copy(tmp.begin(), tmp.end(), inserter);
   return result;
 }



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] What's wrong with this constellation?

2008-08-08 Thread Martin Dvh
Peter Monta wrote:
 Hi Mason,
 
 ... The amplitude of the receiver output seems to spray out pretty
 widely from the constellation point intended.
 
 It could be an AGC issue---is the AGC time constant long compared with a
 symbol?
 Is the distribution of constellation points uniform (each is picked with
 equal
 probability)?
 
 One thing you could try, if the channel permits, is to temporarily hold
 the AGC
 fixed to see if that gives a better constellation (perhaps at the wrong
 size;
You should indeed try this.
Do you sent (short) bursts of QAM or is it a continuous stream?
If they are bursts then all loops (carrier recovery, AGC, clock-recovery) can 
behave strangely.

If it is a continuous stream you could also try a feedback-AGC in stead of a 
forward AGC which should give much less gain noise (after it has
settled)

It is also possible that the amplitude noise comes from the analoge components 
in your TX-path or your RX-path.
If you have noise or hum on the supply voltage of any gain or mixer stage then 
this will result in amplitude noise.

You could figure this out by sending out a single carrier (no modulation, use ) 
and receive it with an SSB-receiver script or just usrp_fft.py.
generate carrier:
usrp_siggen.py -R B --const -i 128 -f rffreq -a amplitude -g rfgain
look at spectrum:
usrp_fft.py -R A -d  64 -f rffreq -g rfgain
look at oscope:
usrp_fft.py -R A -d  64 -f rffreq -g rfgain -S

(Use the same analog signal path as you use for QAM)
Now you can look at the spectrum, listen to it and look at it with an oscope.

If the signal is clean, your QAM-TX script or QAM-RX script is to blame.
Make sure you also look at LF noise or hum, like 50 Hz or even lower.
If you see noise, then there is something wrong with your setup.

greetings,
Martin


 or if you're using decision feedback, try to get it to the right size
 :-) ).
 
 Cheers,
 Peter Monta
 
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: Multiple USRP's debugging

2008-08-08 Thread Martin Dvh
Douglas Geiger wrote:
 On Mon, Jul 21, 2008 at 9:46 AM, Douglas Geiger
 [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote:
 
 I am having trouble getting two USRP's synchronized using the
 multiple USRP setup described at
 http://www.gnuradio.org/trac/wiki/MultiUsrp and
 http://www.gnuradio.org/trac/wiki/USRPClockingNotes. I am able to
 open/get data from both USRP's independently, and have even crafted
 a program to setup simultaneous flowgraphs collecting data from both
 and feeding them into BBN's 80211b demodulator.  However, I would
 like to be able to synchronize the clock on both USRP's (I'm
 interested in looking at TDOA between packets). I have not had any
 luck getting the multi_usrp_oscope.py program displaying any data -
 and my attempts at using usrp_multi.multi_source_align as a source
 in e.g. the usrp_fft program have not been successful.  Are there
 any suggestions on where I should be looking to debug this?  I am
 using the multi_2rxhb_2tx.rbf fpga code, and using gnuradio-3.1.2 on
 a laptop running ubuntu hardy heron.
 
 mailto:[EMAIL PROTECTED]
 
 
 I found my problem - I was not properly connecting the j24 jumper
 (io15,gnd) between the master and slave, so the sync signal was not
 getting received properly.  I still get errors occasionally:
 Error: counter not continuous.
  ucounter_begin[1]=200768 +1 != ucounter_begin[2]200828
 
 I assume this is because the master and slave have falling out of sync?
Most common source for this problem is a buffer overrun (a whole USB packet was 
missed)
You can try to minimize this by increasing the process priority of both the TX 
and the RX script.
lowering the datarate also should help.

 Are there any recommendations on how often the master/slave sync should
 get sent?
For low datarates a single sync should work for a long time.

To be sure, you could do it once a minute or something like that.

  Also - if I were to add a third USRP, I assume I'd just have
 to chain the j24 jumper from either the master or slave - and change the
 enable_master_and_slave() function in usrp_multi.py to enable both slaves?
If I recall well, this should work indeed.
 
 My next goal is to forward-port the multi_usrp code to the development
 trunk (e.g. using hier_block2, etc.), as my eventual goal is to include
 the in-band signaling code to get accurate time-stamps from the RF
 front-end.  I assume the current in-band .rbf files are not being built
 to support the multi-usrp code, correct?  I am starting to familiarize
 myself with the Quartus software and the organization of the usrp
 verilog code.
With the new inband signaling timestamps you should not need the counter 
anymore which is used in the current multi_usrp code.
You should only need to sync the starttime (used for the timestamps)  once 
using the J24 cable.
Then the align block should be rewritten to align on timestamps in stead of 
samplenumbers.

With the new inband signaling it should also be feasabale to build a multi-usrp 
setup for sending signals (TX).
(I stopped working on this when work was started on the inband signaling)


Greetings,

Martin
  Doug
 
 -- 
 Doug Geiger
 [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
 
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] help with safe and clean band

2008-06-12 Thread Martin Dvh
Mihail L. Sichitiu wrote:
 Hi there,
 
 I'm brand new at this GNU Radio thing, so please forgive me if my question
 has a well-known answer. I'd like to try out some performance tests on a
 few modulation schemes, so I need a clean band for these tests. Obviously
 the 2.4GHz ISM band is full of interference, and I assume that this goes
 for all the other ISM bands, right?
 
 If this is the case, is there a well-known relatively quiet band where I
 can run these tests without interfering with anything important, without
 being interfered with, and without getting in trouble with FCC?
The easiest thing to do would be not doing your tests wireless.
Connect TX twith coax to  an attenuator and connect that to the RX side with 
coax.
That is about as clean as you can get, and you won't interfere with anyone on 
any band.

Make sure you use enough attenuation. The RFX2400 TX side has much more power 
at its output then the RX side can handle.
You will blow up your daughterboards if you don't have at least 30 dB 
attenuation.

The best attenuators I found for high frequencies are the SMA inline types
You can mount them directly at the TX output and connect a SMA-SMA coax to the 
RX side of a second RFX2400.

Things are much more relaxed with basicRX and basicTX.
basicRX can be connected directly to basicTX without any chance of damage.

I do a lot of my testing with basicRX and basicTX.
The output of basicTX is also very low which is an advantage in this case.

Greetings,
Martin


 
 I imagine that if I'd have all the daughter boards I could do a long-term
 (1-2 days) scan and find a quiet band and play in there (the tests are
 likely short and low powered). The problem is that I only have the 2.4GHz
 daughter-boards and I'd like to buy only the right daughter-boards (as
 opposed to all of them to find an empty band).
 
 Thanks for the help,
 Mihai
 
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] DAB with GNU Radio

2008-06-11 Thread Martin Dvh
Christoph Fischer wrote:
 Hello Andreas,
 
 thank you for your very interesting reply.
 
 we would like to implement a DAB receiver with GNU radio. On the
 hardware side we have a USRP with the TVRX daughterboard. 

 Jens Elsner, who worked on DAB some time ago, found out that the TVRX
 actually disturbs the OFDM signal very much, making it rather hard to
 receive DAB, so I would strongly discourage its use (I'm not able to get
 any information out of TVRX samples currently).
 
 That is bad news... So perhaps at first we should do some analysis if
 DAB is really impossible with the TVRX or if we only have severe
 degradation of SNR. We have a DAB transmitter just some km away from the
 university so perhaps it could somehow work at least for this one...
 Does anyone already have some data about the phase stability of the
 TVRX? Unfortunately the L-Band is no option here.

You could try undersampling with basicRX.
Frequency stability wouldn't be an issue. But the sensitivity is very very low 
and you get interference from all bands above 32 Mhz folded over
each other.

This could be improved by using a bandfilter and an amplifier in front of the 
basicRX.
Just use a bandfilter which only passes the part of band III which you are 
interested in.
The bandfilter should have a bandwidth of 30 Mhz or less.
For example 170 - 200 Mhz.

For amplification best would be a dedicated amplifier for this freq-band with 
20 to 50 dB gain.
But to keep things simple you could use an off-the-shelf amplifier for 
TV-signals which have usually 10 to 15 dB gain.

As an antenna you could use a home-made vertical dipole or J-antenna for 
exactly the right freq.
This also improves selectivity.

greetings,
Martin

 Is there any initial advice or pointers to existing implementations
 you could give us? Do we need the checkout the svn version or even
 some branch or is the 'latest stable' enough?


 I have uploaded my current code to [2]. It requires GNU Radio from the
 trunk and some small patches (mainly for the peak detector). If you are
 interested, I can also send you my mostly-finished semester thesis
 off-list.
 
 Thank you very much for all that. We also would be very interested in
 your thesis.
 
 Regards,
 Chris
 
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] GnuRadio code and documents at Olifantasia.com down, but back up

2008-06-09 Thread Martin Dvh
Hi All.
All Olifantasia.com servers have been offline for several weeks, but they are 
back up again.

I send this to the GnuRadio mailing list since I have several GnuRadio 
examples, presentations and code-snippets hosted at the Olifantasia
webserver and have got some questions where they went and why all email bounced 
and my domain vanished.
Well, they finally are back where they were.

Also if you have been trying to reach me by mail the past weeks (between 14 may 
2008 and 9 june 2008) you probably got undeliverable messages.
Please resent your mail now. The mailserver is back up too.

Sorry for the inconveniance.

I don't know if this also means my gnuradio mailinglist subscription was 
automatically stopped.
If so, how do I re-enable it?


Background.
My provider (xs4all.nl) has been having major technical and organisational 
problems the past weeks which resulted in intermittant internet
access and a wrong IP number for my nameservers in the root-dns.
Since they haven't been able to correct this, I switched to a different domain 
registrar.


Greetings,
Martin Dudok van Heel


http://www.olifantasia.com/projects/gnuradio/mdvh/
http://www.olifantasia.com
http://www.olifantasia.com/gnuradio/   (Dutch)


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] GNU Radio on embedded systems

2008-02-24 Thread Martin Dvh
Philip Balister wrote:
 Has anyone looked at GNU Radio on an embedded system seriously? I've
 built it for an ARM processor and heard that the dial tone example
 will work.
 
 I'm particularly interested in using the python-less method
 of connecting blocks. I understand that many of the GNU radio blocks
 are written using floating point,
Yes, allmost all of them depend heavely on floating point performance.
Floating point performance, memory speed and USB-throughput are the main 
bottlenecks for gnuradio.
You could rewite some of the blocks in fixed-point, but then you loose much 
dynamic range and need very high fixed-point performance.
I know of good performing Software Defined Radio platforms using an ARM 
processor but they all have a high-performance DSP processor attached to
or integrated into the ARM processor.

 but does the core gnu radio code
 depend on good floating point performance?
Depends on what you consider the core gnu radio code.
The flowgraph and flowgraph-scheduler do not depend on floating point 
performance.
But things like the spectrum display (fft-sink), all modulation/demodulation 
and all the filter blocks do,

Martin
 
 Philip
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] DAB receiver

2008-02-20 Thread Martin Dvh
Jens Elsner wrote:
 Hallo Andreas,
 
 with the current status of OFDM PHY code in GNU Radio I think it is definately
 worth a try.
 
 The work I did on DAB was basically OFDM synchronization in one GNU
 Radio block. The code was more or less a hack, but it deepened my
 understanding of digital signal processing.
Jens, I have downloaded your gr-dab code in 2007.
Is it OK if I put up a mirror of it on my website.
Maybe it could deepen the understanding of others about OFDM too.
Greetings,
Martin
 Not as easy as in text
 books. :) I'll email the report to you separately.
 
 I wouldn't underestimate the complexities of the higher DAB layers,
 it has quite a protocol stack. But you should give it a try. If you
 need captured Mode I/II samples I can make them available for download.
 
 Gruesse,
 Jens


 
 On Wed, Feb 20, 2008 at 07:14:24PM +0100, Andreas Müller wrote:
 Hello,

 I am an electrical engineering student, and I would like to implement a
 DAB receiver as a semester thesis (about 1/3 the size of a Master thesis).

 I intend to implement each part first in Matlab and then in GNU Radio.
 Ideally, I hope to use the existing OFDM code in gnuradio-core and some
 external MP2 library for the audio decoding.

 However, I am wondering if this is feasible as a semester thesis. Any
 comment about the rough amount of work that would be needed would be
 greatly appreciated.

 In the mailing lists, there are some references to an existing DAB
 implementation from ([1],[2]).  Can anyone tell me how far this got? The
 referenced website (http://www.1c3.de/gr-dab.tar.bz2) is empty.

 Regards, Andreas

 [1]
 http://lists.gnu.org/archive/html/discuss-gnuradio/2006-08/msg00205.html
 [2]
 http://lists.gnu.org/archive/html/discuss-gnuradio/2006-03/msg00397.html

 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] minimizing interference with usrp

2008-02-12 Thread Martin Dvh
Matt Ettus wrote:
 Juha Vierinen wrote:
 Hi,

 I have been doing some radio astronomy experiments with USRP using a
 30 MHz dipole antenna (actually it is more of a riometer experiment).
 I am running into various interference issues. E.g., at one point I
 noticed that if my laptop power supply is too close to my USRP I get
 switching power supply harmonics in my signal. At other times I have
 been pretty sure that the inteference comes through my antenna.

   
 
 I have found huge differences between laptop power supplies from the
 manufacturer of the laptop (like Lenovo, HP, etc.), and cheap
 replacement supplies made to look like the originals.  Once I was
 testing something on the USRP while the computer was attached to one of
 these supplies and I saw a huge mess on the spectrum analyzer.  I spent
 an hour trying to figure out what was happening, only to find that it
 was there even if there was no USRP hooked up at all -- it was all
 radiating from the power supply.
 
 If you really need low noise, run the laptop off of its internal battery
 only.
What also works is running everything (laptop and USRP) from external 
batterypacks.
The USRP needs 6V, which can be provided by 5 standard NiMH batteries in series 
(use large D-size cells or put several penlites in parallel)

Alternatively you can use non-switching powersupplies.
(Just use a LAB power-supply or build your own with a transformer, rectifier, 
big capacitor and linear regulator)

More tips to get rid of RF spuriuos:
Put ferrite beads around any power or digital cable.
(mains power, DC power, USB, ethernet)
Put everything in fully closed metal cases (powersupply, laptop, USRP)
Make sure you don't run into heat problems this way.

If you do run into heat problems, only use small round holes in the metal 
casings.
1000 small holes is much better then 10 big holes from a RF point of view.

What also helps for laptops is to attach coppertape to the inside or outside of 
the full casing of the laptop.
(We used this to get flatscreen TV's we developed CE complient)
Take care this tape doesn't cause any shortcircuits.
A low-budget solution is to use aluminium foil.

Make sure you use high-quality coax cables for the RF-connections.
Make sure to use high-quality USB cables with good shielding.

Use a mains filter.
Run the USRP powersupply from a different mains group as the laptop.

Make sure your antenna is above a big metal plate (several wavelengths big) 
which is very well grounded.
Make sure that your grounding is several meters into the ground well into the 
groundwaterlevel.

Make sure that all digital equipment is below this metal plate

If you are really desperate:
Add extra 100 nF SMD capacitors between all powersuppply pins of every chip and 
ground (both USRP and laptop)
Make a metal casing for the daughterboards.

I hope this helps,

Martin Dudok van Heel

 
 Matt
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Filter FIR on FPGA

2008-02-06 Thread Martin Dvh
[EMAIL PROTECTED] wrote:
 Hi,
 I'm designing a pass band filter FIR on FPGA. This filter has 64MHz of sample
 rate and as window type HAMMING. I'm using MegaCore® IP Library  for 
 design
 of the filter.
 Is correct to use this software for design of the filter? Could you suggest me
 other software for design of filter?
Design it by hand.
I allways do it like that, you have better control of what resources are used 
for the filter.
(Especially when using an FPGA without multipliers like the Cyclone)
And you can use the filter on any FPGA and share the code with people who do 
not have access to MegaCore® IP Library.

If you only need the filter-taps, you can use the firdes or optfir (part of 
gnuradio, see gnuradio-examples on how to use)

Greetings,
Martin
 
 Thank you very much.
 
 
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Interest in beamforming and GNSS receivers

2008-01-31 Thread Martin Dvh
Pavol Ďuriš wrote:
 Hi all,
 
 I have an interest in radioastronomy. I plan to make simple beamforming
 phase array (primary with 4 and later with 8 antennas) with USRP (later
 with 2) and GNU Radio. I am inspired by LOFAR radiotelescope.
 Now I collect all available information about using GNU Radio and USRP
 for it.
 
 Martin, could you send more information about your solution, project
 (url etc.) ?

Info about connecting murli-USRPs:
  http://gnuradio.org/trac/wiki/MultiUsrp
  http://gnuradio.org/trac/wiki/USRPClockingNotes
  
http://gnuradio.org/trac/browser/gnuradio/trunk/gnuradio-examples/python/multi_usrp
This last one is also in your gnuradio source directory:
  gnuradio-examples/python/multi-usrp

It has been a while since I last used this setup, so there might be some bitrot.
(incompatibilities between the multi-usrp fpga firmware (rbf-file) and the 
latest gnuradio code and support for the latest daughterboards.)
But if this is the case then it should be solvable by implementing the latest 
changes to the standard USRP firmware to the multi-USRP firmware.


There is not much info about my phase-array experiments online.
I know, I should update my website more often, but I am better at writing code 
then at writing human-readable text.
I do haver a snapshot of my CMA (Constant Modulus Algorithm) adaptive 
phase-array code.
This code automatically adapts to multiple FM, GMSK, QPSK or M-PSK sources.
It should be able to extract multiple sources on the same frequency by 
automatically nulling the other sources out when extracting one.
(max number of sources == number of antenna's used)

Note that this code only works with phase-coherent daughterboards (boards which 
use the USRP-clock as refclock)
This means allmost all daughterboards except TVRX.
(Which is too bad since I want to extract multiple broadband FM stations, for 
now I use undersampled basicRX)
The code is at:
http://www.olifantasia.com/projects/gnuradio/mdvh/CMA_phase_array/

Other code of mine can be found at:
http://www.olifantasia.com/projects/gnuradio/mdvh/
or
http://gnuradio.org/trac/browser/gnuradio/branches/developers/nldudok1
or (when it has stabalized) in GnuRadio trunk

Greetings,
Martin

 Thanks,
 Pavol
 
 PS: I haven't USRP yet. However, I am buying my first USRP, right now :)
 
 Martin Dvh wrote:
 Carles Fernandez wrote:
  
 How well are they synchronized?
 
 They run off the same 64 MHz clock, so are synchronised.
 I have even used two connected USRPs running of the same clock (one is
 master and exports its clock to the slave USRP)
 (You use an additional flatcable between the USRPS and an align
 software block in gnuradio which aligns the samples)
 This gives you 8 ADCs. This means 8 real channels or 4 complex channels.

 I used this setup for a phase array with 4 DBSRX daughterboards.
 (DBSX daughterboards use complex sampling so they need two ADCs)
 DBSRX boards also support the GPS frequencies and are a lot cheaper,
 so you might want to consider them.
 But they are receive only.

 You can even go higher and connect 4, 8 or 16 USRPS.
   
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Interest in beamforming and GNSS receivers

2008-01-30 Thread Martin Dvh
Carles Fernandez wrote:
 Hi everybody,
 
 I discovered GNU Radio few months ago, in a before-go-to-bed surfing. I
 found it very interesting, but complicated because of my poor skills in
 programming Python or C++. I'm doing research on Global Navigation Satellite
 Systems (GNSS) receivers, and I'm used to code everything in Matlab. Night
 after night, I've been browsing the documentation and making humble steps: I
 installed Ubuntu on my laptop, followed the -excellent, also for dummies
 like me- guide for installing all the software, read diagonally the
 documentation and played with sample codes. Some Hello Worlds, some problems
 with the audio module, getting used to read the mailing list, feeling
 astonished by the intense activity of this community... nothing new, I
 guess.
 
 Now I want to take it more seriously. I've seen that both python and c++
 have very well done matrix algebra libraries, and that's exactly what I need
 for my research (you can call me naive). I would like to implement a GNSS
 receiver (in the wide sense) based on an antenna array and play with
 beamforming algorithms and weird RF front-end architectures (direct RF, IF
 sampling, etc). My main concern is synchronization, concretely I want to
 implement some signal processing algorithms in a real receiver in order to
 assess their impact in the whole system, testing them with real data. I've
 been working in the development of some algorithms that -theoretically-
 performs better in multipath environments, but I want to see if this is true
 beyond classical academic benchmarks.
 
 What is the state of GNSS receivers development in GNU Radio? I have found
 some expressions of interest in the Internet, but nothing concrete. I'm
 willing to start it from the scratch, but it is nonsense to reinvent the
 wheel. I would like to put in contact with other people interested on these
 topics. Taking advantage of your patience, I have some other questions (and
 you will see my newbie approach):
 
 - I've seen some statements about beamforming is possible. To what extend?
 I'm trying to understand the multi-antenna code example, but it is possible
 to use the four ADC at the same time?
Yes.
 How well are they synchronized?
They run off the same 64 MHz clock, so are synchronised.
I have even used two connected USRPs running of the same clock (one is master 
and exports its clock to the slave USRP)
(You use an additional flatcable between the USRPS and an align software block 
in gnuradio which aligns the samples)
This gives you 8 ADCs. This means 8 real channels or 4 complex channels.

I used this setup for a phase array with 4 DBSRX daughterboards.
(DBSX daughterboards use complex sampling so they need two ADCs)
DBSRX boards also support the GPS frequencies and are a lot cheaper, so you 
might want to consider them.
But they are receive only.

You can even go higher and connect 4, 8 or 16 USRPS.

 it is
 possible to compute the weight values in software and perform the
 multiplication in the FPGA at real time?
You could do that, but that means extra multipliers in the FPGA, which take up 
resources.
You could also do the multiplication in software, but then you have several 
datastreams from the USRP (which could saturate the USB connection
when using a high datarate).
(You can do maximal 4 receive streams from the USRP)
 There is any other major bottleneck
 than algebraic weight computation time?
You have to make sure the LO's from the frontends are synchronised. This is the 
case with the RFX1200. It uses the USRP clock as reference.
You also might need a more stable and/or precise (external) clock. the current 
clock is 15 ppm (from the top of my head). I don't know the exact
phase-noise figures.
You also might need to put good low-noise LNAs in front of the RFX1200 or the 
DBSRX.

 - My first target is a traditional L1 C/A code GPS receiver. I guess that
 I can choose between RFX1200 and a BasicRx with an external front-end. Have
 someone worked in the connection of GNU Radio with gpstk?
 
 - It is 32 MHz the maximum bandwidth available?
In theory you could have 64 Mhz bandwidth when using complex sampling (the 
RFX1200 does this).
This uses two ADCs for one frontend (one for the I and one for the Q channel)
Your frontend must support this analog bandwidth of course. The RFX1200 has 
filtering which limits the bandwidth to about 25 MHz. You could
change the filtering to widen it.
This is a bit dangerous however because any remaining signals outside the 64 
MHz band will fold around the niquist freq.

This 64 MHz bandwidth is not transportable to the host PC with the current 
supported resolutions (8 bit and 16 bit)
You have a maximum USB throughput of 32 MByte/sec. Which means 8 Mhz bandwidth 
with 16 bit resolution and 16 MHz bandwidth with 8 bit resolution.
When you implement verilog code to reduce the resolution to 4 or 2 bit you 
would have 32 or 64 MHz bandwidth, but only for a single channel.
When you implement the despreading in 

Re: [Discuss-gnuradio] Shielding on 2.4GHz

2008-01-30 Thread Martin Dvh
DiX wrote:
 Hi everyone,
 
  I am using FLEX2400 d'boards to transmit and receive 802.11b packets
 with codes from bbn and gnuradio_example/python/digital. The problem is the
 d'board is always interferenced by some CISCO access points and other
 wireless cards located right outside of my lab. 
 
  I connect the usrp to my pc with a cable (-30db attenuator applied). I
 hope it receives nothing but packets from my pc.  But the d'board can still
 get packets from other wireless card. Then I put the m'b and d'b into the
 black enclosure. Packets still come in. And finally, I put everything (m'b,
 d'b, black box, attenuator) in my metal drower. Most packets are shielded
 out. Some still can be caputured and demodulated.%-|
 
  why is the d'b able to hear others even when I connect attenuators and
 cable to its antenna?
 
  -DX
It might pick it up on the 6V power cable.
You could try putting ferrite beads around the power cable to reduce this.

greetings,
Martin


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] gr-sounder tx and rx results

2008-01-28 Thread Martin Dvh
Johnathan Corgan wrote:
 On 1/24/08, Dev Ramudit [EMAIL PROTECTED] wrote:
 
 I've been trying out the gr-sounder code to see if I can use it for
 some research. I modified it slightly and graphed the output in
 realtime.
 
 Let me work with you offline on this.  The code does work over the
 air, but it is probably not giving you what you expect.
 Unfortunately, I'm tied up for a day or two.
 
I have been working with the sounder-code too.
WHat I found is that since the clocks of the USRP boards are not synchronised 
you have two problems.
The LO's of the RFX boards are not phase-coherent so you have an RF frequency 
offset between the boards of a few kHz.
This results in not getting a spike but a kind of smeared out LF-modulated wave.

This problem should be much less with basicRX/TX or LFRX/TX boards

The other problem is that the 64 MHz clocks are not synchronised.
This produces a little smearing of your results but is much less a problem.

Both problems get bigger as you lengthen the peudo-random codelength.

You could solve this by using very precise (GPS-tamed) external 64 MHz clocks 
on both sides.
You can also solve it by giving one USRP a clock-out and the other a clock-in 
and connecting them together (so they run of the same 64 MHz clock)
This requires a clock-cable between the two USRPs so this is only feasable for 
short distances.


An other solution I see is to extend the code with some PLL which recovers the 
symbol clock and uses that to compensate for both problems.

I don't know what solutions Jonathan has, but I would like to know them too.

Greetings,
Martin


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


WSR08 Software Radio Conference in Karlsruhe, Germany March 5/6, 2008 (was Re: [Discuss-gnuradio] Pentium IV computing power in FLOPS)

2008-01-22 Thread Martin Dvh
Vincenzo Pellegrini wrote:
 Thanks Eric.
 
 very precious info.. 
 
 just by the way.. on March 6th, the Soft-DVB work will be presented in
 Karlsruhe at the WSR08 software defined radio conference.
I didn't know of WSR08.
Seems like a very nice conference about Software Radio.

There are three GnuRadio presentations:
Session 6: GNU Radio
14:00 h GNU Radio Based Cognitive Signal Identification and Classification 
Platform
W. M. Brown (Metric Systems Corporation, California, USA), J. E. Clark 
III
14:25 h Implementation of OFDM Power Allocation Strategy in GNU Radio Framework
M. Zivkovic (RWTH Aachen University, Germany), C. Liu, R. Mathar
14:50 h Soft-DVB: A Fully-Software Gnuradio-based ETSI DVB-T Modulator
V. Pelegrini (University of Pisa, Italy), G. Bacci, M. Luise

Too bad I heard about it this late, otherwise I would have applied for doing a 
GnuRadio presentation too.
(It looks like the submission has been closed since nov 30 2007)

I found info about the conference at:
http://www-int.etec.uni-karlsruhe.de/seiten/conferences/wsr08/

Greetings Martin
 
 greetings
 Vincenzo  
 
 
 
 On Sun, 2008-01-20 at 20:19 -0800, Eric Blossom wrote:
 On Mon, Jan 21, 2008 at 01:10:47AM +0100, Vincenzo Pellegrini wrote:
 Hi everybody,
 could anybody help me in figuring out what is (even a rough estimate is OK)
 the raw computing power of a 3.0GHz Pentium IV CPU?

 really thanks for help

 -- 
 Vincenzo Pellegrini
 Assuming you're coding in assembler using SSE* instructions, you can
 get a sustained throughput of about 1 FLOP / clock cycle.  Since
 you're not really doing that, I'd call the 3GHz P4 about 0.5 to 1.0 GFLOP.

 YMMV.  Widely ;)

 On the netburst microarchitecture used in the P4 it's really hard to get
 good floating point performance because of the very deep pipeline,
 scarcity of registers, and so-so FPU.

 Eric
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: WSR08 Software Radio Conference in Karlsruhe, Germany March 5/6, 2008 (was Re: [Discuss-gnuradio] Pentium IV computing power in FLOPS)

2008-01-22 Thread Martin Dvh
John Clark wrote:
 Martin Dvh schrieb:
 Vincenzo Pellegrini wrote:
  
 Thanks Eric.

 very precious info..
 just by the way.. on March 6th, the Soft-DVB work will be presented in
 Karlsruhe at the WSR08 software defined radio conference.
 
 I didn't know of WSR08.
 Seems like a very nice conference about Software Radio.

 There are three GnuRadio presentations:
 Session 6: GNU Radio
 14:00 hGNU Radio Based Cognitive Signal Identification and
 Classification Platform
 W. M. Brown (Metric Systems Corporation, California, USA), J.
 E. Clark III
 14:25 hImplementation of OFDM Power Allocation Strategy in GNU
 Radio Framework
 M. Zivkovic (RWTH Aachen University, Germany), C. Liu, R. Mathar
 14:50 hSoft-DVB: A Fully-Software Gnuradio-based ETSI DVB-T Modulator
 V. Pelegrini (University of Pisa, Italy), G. Bacci, M. Luise

 Too bad I heard about it this late, otherwise I would have applied for
 doing a GnuRadio presentation too.
 (It looks like the submission has been closed since nov 30 2007)

 I found info about the conference at:
 http://www-int.etec.uni-karlsruhe.de/seiten/conferences/wsr08/
 
 I checked, and how I found out about was on a post 8/20/07 to this list
 from a poster named, '[EMAIL PROTECTED]' who
 posted one notice.
I must have missed that one.
 Since we had been looking for a forum to make a more
 public presentation of what we've been
 doing, I jumped on it...
Very Good.

I am looking forward for your presentation (and the others of course)

Greetings,
Martin
 
 John Clark.
 
 
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Need info for paper.

2008-01-17 Thread Martin Dvh
John Clark wrote:
 I'm co-writing a paper on the use of GNU Radio. Because I'm inclined to
 use 'Open Source' solutions,
 GNU Radio and the attendant DSP library, was for me about the only
 choice I would have made...

 However, in the paper I'd like to at least make some attempt at
 indicating any 'alternatives', if there
 are any in the Open Source arena, or parish the thought, cost-money type
 packages.

High Performance Software Defined Radio (opensource)
An Open Source Design
The HPSDR is an open source (GNU type) hardware and software project intended 
as a next generation Software Defined Radio (SDR) for use by
Radio Amateurs (hams) and Short Wave Listeners (SWLs).

http://hpsdr.org
http://pcovington.blogspot.com/

There are GnuRadio developers which are in contact with or collaborate with 
people of HPSDR.
They use some of the verilog sourcecode of the USRP for their FPGA in their 
boards.

Gstreamer Quadrature library (opensource):
libgstiq is a library with  Gstreamer  plugins for use in software defined 
radios.
http://sharon.esrac.ele.tue.nl/users/pe1rxq/libgstiq/index.html

libDSP (opensource)
libDSP is a C/C++ library of digital signal processing routines, including 
standard vector operations, digital filtering, and transforms.
http://sourceforge.net/projects/libdsp/

flex-radio (commercial)
Company building software defined radio frontends (SDR-1000) for use through 
the soundcard of a PC for the IF.
Aimed at Radio-amateurs
http://www.flex-radio.com/


Comblock (commercial)
Hardware oriented commercial company delivering blocks to build SDR systems
ComBlock modules are small commercial off-the-shelf modules which are  
pre-programmed with essential communication processing functions,
including modulation, demodulation, error correction encoding and decoding, 
digital to analog/RF, RF/analog to digital, formatting, data storage
and baseband interfaces.
http://www.comblock.com

ARRL page about software defined Radio projects:
http://www.arrl.org/tis/info/sdr.html


 
 If anyone has done a more detailed evaluation and perhaps has a chart
 depicting features, that would be
 good.
 
 Also, a while ago, I saw someone who had put together a 'graphical'
 interface, where one could construct
 a DSP processor using graphical means, and setting various parameters
 using a GUI. I have not had the
 time to really keep up on that sort of thing, but if there is someone
 who has something that works, I'd also
 like to know about that.
Thu GnuRadio GUI you are referring to is called GRC, written by Josh Blum
Download: http://www.joshknows.com/download/grc/
Wiki: http://gnuradio.org/trac/wiki/GNURadioCompanion

 
 For those who have information, and send me a release, credit will be
 made in the paper for their contribution.

If you need any other kind of info, please let me know.
I have done some presentations on GnuRadio and Software Defined Radio and I am 
preparing for some GnuRadio courses that I will be giving.
It would be appreciated if you made the paper public and available somewhere on 
the web.

Greetings,
Martin
 
 Thanks,
 John Clark.
 
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Problem with symmetric behavior

2008-01-07 Thread Martin Dvh
Robert Miller wrote:
 Hello,
 
 I created a flowgraph based upon the usrp_nbfm_ptt.py example.  I am
 witnessing some weird, asymmetric behavior when running the graph.  The code
 generates a tone from the user specified daughterboard and then plots the
 spectrum via an fft from another user specified daughterboard.  I am using 2
 RFX-1800 daughterboards with a single USRP to run the graph, however I
 imagine it should work the same for any RFX board.  Here is the main issue:
 
 Everything works fine when using Side B as the transmitter and Side A as the
 Receiver.  When running with Side A as the transmitter and Side B as the
 receiver, however, the fft display is really just noise (once in a while
 there exist some spectral lines at odd frequencies).  As a note, I am fairly
 certain that the mux's are being set correctly and that the boards are
 tuning correctly.  To verify that the issue is not the hardware, I am
 capable of running usrp_siggen.py and usrp_fft.py in both configurations
 successfully.  (TXR A -- RXR B, TXR B -- RXR A).  Also, I have done the
 tests in completely wired (with 60 dB of attenuation) and unwired
 environments, with both yielding the same results.  Attached is the code
 that I am running, can anyone point out something silly that I am doing that
 is causing this problem?
 
 http://www.nabble.com/file/p14642329/DualChannel.py DualChannel.py 
 
 As an added note, I am getting a segmentation fault when I close the graph
 by any means other than Ctrl-C from the command line.  I don't think this
 is related to the above issue, and I don't get the seg fault when running
 the original usrp_nbfm_ptt.py code.
 
 Thanks!
 Rob
 

Your problem is in the tuning I think:

class receive_path(gr.hier_block):

def set_freq(self, target_freq):

r = self.u.tune(self.subdev._which, self.subdev, target_freq) # -- 
look here

Which should be:
class receive_path(gr.hier_block):

def set_freq(self, target_freq):

r = self.u.tune(0, self.subdev, target_freq) # -- look here

The first parameter is the channel you are tuning, which is always channel 0 if 
you only receive one stream.
It is NOT subdev._which, which indicates on which side the daughterboard is.

I hope this helps,

Martin




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] PSK31 with GNU Radio

2007-12-19 Thread Martin Dvh
Dan MD1CLV wrote:
 Hi all,
 
 Is anyone using GNURadio to modulate or demodulate PSK31?  According to
 the archives, Chuck Swiger did have this working, but the page with his
 code on is gone and it isn't archived on the wayback machine.
Chuck has put up a new webpage at
http://www.swigerco.com/

The GnuRadio stuff is under
http://www.swigerco.com/gnuradio/index.html

But I can't find the PSK31 stuff.
On his old page it was at:
http://webpages.charter.net/cswiger/psk_experiment.html

(I am very happy though that his GnuRadio vector analyzer info is back online)

I have successfully decoded PSK31 in the past using the following.
Capture using Gnuradio to file.
convert the file to a wav file using sox
decode the file using some other opensource PSK31 program.

You can do all this in realtime if you use Pipes in stead of files.
in pseudocode it would look something like this:
mkfifo psk.raw
mkfifo psk.wav
usrp_rx_cfile.py [commandline options here] -s psk.raw
sox [commandline options here] psk.raw -o psk.wav
pskprogram psk.wav

It's a while ago, so I don't remember all settings I used.
I think I captured to file in the short format (not in the float format)

Of course, much better is to implement PSK31 in the gnuradio framework.

Greetings,
Martin

 Thanks,
 
 Dan
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re-writing blocks using intel libraries

2007-12-12 Thread Martin Dvh
Tom Rondeau wrote:
 Martin Dvh wrote:
 Eric Blossom wrote:
  
 On Tue, Dec 11, 2007 at 03:41:46PM -0800, Eugene Grayver wrote:

 Please see answers in-line.

 Thanks!
   General curiosity questions:

   Are you using oprofile to measure performance?

 I am a bit of a maverick, and for various reasons am using a pure
 C++ environment.  I hacked my own 'connect_block' function (can;t
 wait for v3.2, where these will be part of native gr).
   
 The trunk contains C++ code for connect, hier_block2, etc.  Some of
 the pieces that are still missing include C++ support for the USRP
 daughterboards, but Johnathan Corgan is working on that now.


 I am measuring the performance using a custom block (gr_throughput)
 that simply reports the average number of samples processed per
 second.
 What h/w platform are you running on / tuning for?

 The platform is currently Intel Xeon or Core2 Duo.

   You're not trying to run your app on a cache-crippled machine like a
   Celeron, are you?  ;)

 No, very high end.

   Which blocks are causing you the biggest problem?

 I got a 2x improvement on all the filtering blocks.
   
 If these are FIR filters, were you using gr_fft_filter_{fff,ccc}
 or the gr_fir_filter* blocks?  The FFT one's are _much_ faster with a
 break-even point around 16 taps IIRC.


 About a 40% improvement for sine/cosine generation blocks.  This
 includes gr_expj, gr_rotate.
   
 No surprise there, and that's a great example of SIMD code that should
 be in GNU Radio.


   Are your problems caused primarily by lack of CPU cycles, cache
   misses or mis-predicted branches?

 I am not sure, since I am not at all a software expect (mostly
 dsp/comm). My guess is that the SSE instructions are not being used
 (or not used to a full extent).  Even the 'multiply' block is VERY
 slow compared to a vector x vector multiplication in the Intel library.
   
 OK.


 Some of the gr_blocks process each sample using a separate function
 call (e.g. for (n=0; nnoutput_samples; n++)
 scale(in[n])

 Replacing this with a single vectorized function call is much faster.
   
 OK.


 We would not accept the changes.
 
 That's what I expected.  We'll try to contribute the more
 dsp-centric blocks such as demodulators.   
 That would be great!  Or if you want to code up an SSE Taylor series
 expansion for sine/cosine good to 23-bits or so, we'd love that too ;)
 
 I am working on this in the little spare time I have.
 I already got a SSE taylor series for atan2, working in gnuradio.
 The atan2 needs some code cleanup and wrapper code to switch
 implementations (if (processor=X86, processor
 supports_SSE2)=optimized else generic)
 The sin/cos is far from ready.

 Greetings,
 Martin
   
 
 Martin,
 
 Bob put in a fast atan function (general/gr_fast_atan2f.cc) about a year
 ago. Have you looked in this, and is the Taylor performance better?
The taylor performance is much better when you get (a multiple of) 4 atan2s at 
a time.
(because the SSE taylor series works with SIMD in blocks of 4)
When you only get one at a time, the performance is still better but not by 
much.
The taylor series also is more precise then gr_fast_atan2f.cc
I don't have the numbers at hand, but I also wrote qa and benchmark code so 
exact numbers on precision and speed can be determined.

As a side note:
I have also been working on a new version off the FFT FIR filter.
This one is more efficient when decimating.
inverse_FFT_size=forward_FFT_size/decimation
This works very well when decimation is 2^n, it also works well for most other 
decimation factors EXCEPT when decimation is a big prime.

This means the theoretical maximum speed improvement is a factor two (when 
decimation is infinite)
But when you want multiple parts of the spectrum then the speed improvement is 
much better then using a FIR filter per spectrum part.
Then you can use a single forward FFT with multiple inverse FFTs.

Greetings,
Martin

 We really need a faster sin/cos. Glad to hear you're working on it.
 
 Tom

 
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re: Ideas for improved FM reception

2007-12-11 Thread Martin Dvh
Patrick Strasser wrote:
 Martin Dvh schrieb am 2007-12-07 18:28:
 
 The second thing I want to do is detecting if multiple transmitters
 (at different locations and frequencies) transmit the same radiostation.
 With a single tuner I can capture all these signals at the same time.
 
 Provided they are within 8 or 16MHz.
 
 Then do a correlation to get there phase and time relationship.
 And then smartly combine them to get better signal quality.
 
 Clever boy!
 
 Do you have in mind that RD(B)S transmits alternative frequencies?
 This is a feature to enable seamless frequency switch for mobile users
 (cars). Never thought of it to use it simultaneously.
 This would spare you a lot of correlation.
Yes, that is exactly how I got the idea.
So I intend to use RDS.
I already have an RDS decoder in place.
You still need a correlation for the phase/time relationship but you don't have 
to correlate every frequency to determine if it is a mirror of
your current station.

Greetings,
Martin

 Do you have some code already?
 
 Patrick



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Re-writing blocks using intel libraries

2007-12-11 Thread Martin Dvh
Eric Blossom wrote:
 On Tue, Dec 11, 2007 at 03:41:46PM -0800, Eugene Grayver wrote:
 Please see answers in-line.

 Thanks!
 
 General curiosity questions:

   Are you using oprofile to measure performance?

 I am a bit of a maverick, and for various reasons am using a pure C++ 
 environment.  I hacked my own 'connect_block' function (can;t wait for 
 v3.2, where these will be part of native gr).
 
 The trunk contains C++ code for connect, hier_block2, etc.  Some of
 the pieces that are still missing include C++ support for the USRP
 daughterboards, but Johnathan Corgan is working on that now.
 
 I am measuring the performance using a custom block (gr_throughput)
 that simply reports the average number of samples processed per
 second.
 
   What h/w platform are you running on / tuning for?

 The platform is currently Intel Xeon or Core2 Duo.

   You're not trying to run your app on a cache-crippled machine like a
   Celeron, are you?  ;)

 No, very high end.

   Which blocks are causing you the biggest problem?

 I got a 2x improvement on all the filtering blocks.
 
 If these are FIR filters, were you using gr_fft_filter_{fff,ccc}
 or the gr_fir_filter* blocks?  The FFT one's are _much_ faster with a
 break-even point around 16 taps IIRC.
 
 About a 40% improvement for sine/cosine generation blocks.  This
 includes gr_expj, gr_rotate.
 
 No surprise there, and that's a great example of SIMD code that should
 be in GNU Radio.
 
   Are your problems caused primarily by lack of CPU cycles, cache
   misses or mis-predicted branches?

 I am not sure, since I am not at all a software expect (mostly dsp/comm). 
 My guess is that the SSE instructions are not being used (or not used to a 
 full extent).  Even the 'multiply' block is VERY slow compared to a vector 
 x vector multiplication in the Intel library.
 
 OK.
 
 Some of the gr_blocks 
 process each sample using a separate function call (e.g. 
 for (n=0; nnoutput_samples; n++)
 scale(in[n])

 Replacing this with a single vectorized function call is much faster.
 
 OK.
 
 We would not accept the changes.
 
 That's what I expected.  We'll try to contribute the more dsp-centric 
 blocks such as demodulators. 
 
 That would be great!  Or if you want to code up an SSE Taylor series
 expansion for sine/cosine good to 23-bits or so, we'd love that too ;)
I am working on this in the little spare time I have.
I already got a SSE taylor series for atan2, working in gnuradio.
The atan2 needs some code cleanup and wrapper code to switch implementations 
(if (processor=X86, processor supports_SSE2)=optimized else generic)
The sin/cos is far from ready.

Greetings,
Martin




 Thanks for telling us about your experience.
 
 Eric
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Ideas for improved FM reception

2007-12-07 Thread Martin Dvh
Daniel Povey wrote:
 Guys [+girls?],
 I'm new to the list.  I joined because I do research in signal processing
 (speech recognition) and I have the idea
 that it ought to be possible to use statistical signal processing to get
 much better FM radio reception than a normal tuner.
 I basically want to process the quadrature output (the 2 signals that you
 get out after multiplying by sin + cos and
 lopass filtering) in a different way, not just doing atan but doing a bunch
 of predictive modeling at that stage, assuming
 the signal is a mix of multiple stations + noise, and trying to separate the
 signals out.
 I want to ask this list two things:
 (1) is anyone aware of anyone having tried something like this in the past
 (or know what search
 terms I might use to find this out), and
I am working on an optimized FM receiver for gnuradio.
At the moment my main concern is getting the processing load down.
But I am also going to implement improvements in quality.
The first thing I am going to implement is implementing MIMO.
That is, using multiple tuners to get signals from multiple antennas and 
combine these signals to get a better signal quality.
(Phase array)

The second thing I want to do is detecting if multiple transmitters (at 
different locations and frequencies) transmit the same radiostation.
With a single tuner I can capture all these signals at the same time.
Then do a correlation to get there phase and time relationship.
And then smartly combine them to get better signal quality.
The simplest thing to do is lineup the signals (phase and time shift) and add 
them up.
A better approuch would be to do some statistical analisis like you described.

This can be done both before and after frequency demodulation.
I don't know yet which one will give better results.

Your approuch sounds interesting.
Unfortunately I am not a statisticus aor signal modeling expert, but I am very 
handy with GnuRadio and FFT processing.
So maybe we could combine forces.

 (2)  Could anyone give me to work with, the sampled output at the quadrature
 stage (I assume this would be something
 like 2 synchronized .wav or a stereo .wav file (does it support stereo?),
 sampled at quite a high frequency).
 Dan
 
Walker, Robert CIV NSWC Crane, WC NAE Staff wrote:
 Daniel - There are a bunch of different types of captured samples at
 http://www.kd7lmo.net/ground_gnuradio_ota.html.  The output isn't .wav,
 but you can find a format description at the gnuradio website or the
 tutorial at http://sdr.nd.edu/docs/.
Daniel, did this work out for you?
If you need more captured signals, I can capture some for you.
I can even capture using two tuners / two antenna's or capture two frequencies 
which transmit the same radio station at the same time.

What samplerate do you need/want.
The USRP can produce the following samplerates (Samples/second):
800, 533.33, 400, 320, 266.67, 2285714.29, 200, 
177.78, 160, 1454545.45, 133.33, 1230769.23, 1142857.14,
106.67, 100, 941176.47, 88.89, 842105.26, 80, 761904.76, 
727272.73, 695652.17, 66.67, 64, 615384.62, 592592.59,
571428.57, 551724.14, 53.33, 516129.03, 50, 484848.48, 470588.24, 
457142.86, 44.44, 432432.43, 421052.63, 410256.41, 40,
390243.9, 380952.38, 372093.02, 363636.36, 35.56, 347826.09, 340425.53, 
33.33, 326530.61, 32, 313725.49, 307692.31, 301886.79,
296296.3, 290909.09, 285714.29, 280701.75, 275862.07, 271186.44, 26.67, 
262295.08, 258064.52, 253968.25, 25,

for wideband FM usually 32 samples/second is used
This is handy because after processing you can decimate by 10 to get a nice 
32000 samples/second audiorate


Possible output formats:
raw complex shorts

or

raw complex floats

the gnuradio raw complex format is just all Real and Imaginary samples 
interleaved.
Re0 Im0 Re1 Im1 Re3 Im3

for complex shorts this mean 16 bit signed short int Real0, 16 bit signed short 
int Imag0, 
for complex floats this mans 32 bit float Real0, 32 bit float Imag0, .

It is also possible to output the Real and Imaginary samples in separate files
file one: Re0 Re1 Re2 ...
file two: Im0 Im1 Im2 ...

You can convert the complex captured signals into (stereo) wav files with
 sox - Sound eXchange : universal sound sample translator

Sox is available in all linux distributions, and also available for windows.
http://sox.sourceforge.net/


I hope this helps,

Martin

 
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Ambiguity measurements.

2007-10-30 Thread Martin Dvh
Aadil Volkwin wrote:
 Hi,
 
 I intend using the USRP and the TVRX module to recieve FM transmissions, and
 at this stage digitise the recieved signal and perform the ambiguity
 measurement on the digitised data in order to produce, doppler, range and
 amplitude maps.
 
 Does GnuRadio have modules that will perform these functions for me?
 
 Has anyone attempted this or part of this and related measurements? If So I
 would greatly appreciate your advice and assistance in this regard.
You could have a look at the old gr-radar code.
It is meant as a starting port for doing passive radar with gnuradio.

http://gnuradio.org/trac/browser/gnuradio/limbo/gr-radar

Note that this code was moved out of trunk because it needs some protability 
fixes.

Greetings,
Martin



 Regards,
 
 Aadil
 
 
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] patch to extended oscope to enable dualchan and complex mode on basicRX and basicTX

2007-10-28 Thread Martin Dvh
Eric Blossom wrote:
 On Fri, Oct 26, 2007 at 07:14:48PM +0200, Martin Dvh wrote:
 Hi all,
 inspired by the question of George Nychis I extended the usrp_oscope.py 
 script to enable dualchannel and complex mode for basicRX and LFRX.

 You can find a patch and the complete modified script at:
 http://www.olifantasia.com/projects/gnuradio/mdvh/oscope_basicrx_dualchan/

 You can copy the new script or apply the patch to your current 
 gr-utils/src/usrp_oscope.py.
 The patch should apply cleanly if you have version 3.1 of gnuradio.


 There are two new commandline options:
   -C, --basic-complex   Use both inputs of a basicRX or LFRX as a single
 Complex input channel
   -D, --basic-dualchan  Use both inputs of a basicRX or LFRX as seperate Real
 input channels

 With --basic-complex both inputs of a basicRX or LFRX are enabled to form a 
 single complex channel (I=input A, Q=input B)
 With --basic-dualchan both inputs are treated seperately and so you get two 
 input real channels. (I1=input A, Q1=0, I2=input B, Q2=0)

 The difference between the two options becomes clear when you set a nonzero 
 frequency.
 With the dualchannel option you can set the frequence for each channel 
 seperately.
 With the complex option you can set only one frequency. If you set this to 
 nonzero, this is only usefull if you actually have an I and Q signal
 connected to both inputs.


 Greetings,
 Martin
 
 Thanks Martin!
 
 Can you please go ahead and commit your patch?
Done,

I think this is an improvement but maybe it can still be improved further.
The disadvantage of my current patch is that knowledge about daughterboards and 
muxvalues is in the oscope script.
It is always better to have this info/knowledge in one place, and one place 
only.
This would mean we would have to extend the code in gr-usrp.

What do you think about the following possble setup:
for basicRX and LFRX the subdev code could be extended the following way.
subdevspec A:0
use input A of daughteboard A as a real input   iscomplex() should return False
subdevspec A:1
use input B of daughteboard A as a real input   iscomplex() should return False
subdevspec A
use input A and B  of daughteboard A as a complex input   iscomplex() should 
return True

(Note however this would change the API. At the moment you actually get A:0 
when you specify A.
We could also do something like A:real (which would be an alias for A:0) and 
A:complex which would give a complex input using both inputs.

It gets more complicated when you want to use multiple inputs as multiple 
channels.
You would want to be able to call usrp.determine_rx_mux_value() with multiple 
subdev specs
for example:
usrp.determine_rx_mux_value(self.u, 
(options.rx_subdev_spec0,options.rx_subdev_spec1))

What do you think?

Martin
 
 Eric
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Encoder Integration

2007-10-28 Thread Martin Dvh
S Mande wrote:
 Hi,
 
 I have implemented a convolutional encoder and a viterbi decoder in Verilog
 and am trying to integrate it with the existing GNU Radio software and make
 it available to everyone, once I integrate it.
 
 My encoder takes in the input binary bits and generates encoded binary bits,
 based on defined parameters.
 
 I am first focusing on integrating the encoder with the GNU Radio software.
 My understanding from the code is that the following steps are performed
 while transmitting ( i.e. benchmark_tx.py, transmit_path.py, pkt_py,
 modulation_utils.py ) :
 
 1)Generate random bits.
 2)Map bits to symbols (gmsk or any other modulation )
 3)Convolve the symbols with a wave and taking discrete samples
 (Sampling)
 4)Combine the step (3) samples with header information and make a
 packet.
 5)Pass it on to the FPGA.
 
 Generating bits and sending it to FPGA for encoding using my encoder module
 and sending the encoded bits back to follow the above chain will possibly
 not make sense as I am overusing the bus resources, which would defeat the
 purpose of encoding in Verilog/FPGA . (bus usage should decrease by
 transmitting raw bits across the bus).
 
 So, should I pass all the above (steps 1 to 5) functionalities into the FPGA
 i.e. generate, encode, map, convolve inside the FPGA and then pass it on
 to the existing functionalities in the FPGA ?
 
 Or is there a more optimum way to do this ?
Well you could still generate the random bits on the host.
You should however implement the other steps on the FPGA.
There are ways to implement optimized root-raised cosine filters and 
(fractional) resampler filters in the FPGA if you do BPSK or QPSK.
(because you only have +1.0 and -1.0 values)
(I have some code for that if you need it)

You said you already had implemented a convolutional encoder and a viterbi 
decoder in Verilog.
So it seems like combining all the parts is what has to be done.
Where exactly are you stuck.


 Any inputs on the above would help me. I am stuck with this problem for
 quite some time now.
Maybe it would help if you published what you got now somewhere, so people can 
help by looking at your code.


 
 Please correct me if I am going wrong somewhere.
 
 Thanks.
 
 Best Regards,
 S. Mande.
 
 
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] patch to extended oscope to enable dualchan and complex mode on basicRX and basicTX

2007-10-26 Thread Martin Dvh
Hi all,
inspired by the question of George Nychis I extended the usrp_oscope.py script 
to enable dualchannel and complex mode for basicRX and LFRX.

You can find a patch and the complete modified script at:
http://www.olifantasia.com/projects/gnuradio/mdvh/oscope_basicrx_dualchan/

You can copy the new script or apply the patch to your current 
gr-utils/src/usrp_oscope.py.
The patch should apply cleanly if you have version 3.1 of gnuradio.


There are two new commandline options:
  -C, --basic-complex   Use both inputs of a basicRX or LFRX as a single
Complex input channel
  -D, --basic-dualchan  Use both inputs of a basicRX or LFRX as seperate Real
input channels

With --basic-complex both inputs of a basicRX or LFRX are enabled to form a 
single complex channel (I=input A, Q=input B)
With --basic-dualchan both inputs are treated seperately and so you get two 
input real channels. (I1=input A, Q1=0, I2=input B, Q2=0)

The difference between the two options becomes clear when you set a nonzero 
frequency.
With the dualchannel option you can set the frequence for each channel 
seperately.
With the complex option you can set only one frequency. If you set this to 
nonzero, this is only usefull if you actually have an I and Q signal
connected to both inputs.


Greetings,
Martin

Below is the original question which inspired m to write this modification.


George Nychis wrote:
 Hey all,

 On the basic daughterboards, if I connect two coax cables to TX-A and
 TX-B on a single daughterboard and transmit, I can view the transmission
 using an oscope on both connectors.  In other words, it doesn't matter
 which of the two ports I connect to.

 However, if I fire up the GNU Radio oscope with a BasicRX, I must
 connect either TX-A or TX-B to RX-A.  Is RX-B disabled by default?  Is
 it possible to enable RX-A and RX-B?

 Thanks!
 George


 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] found problem with std_4rx_0tx.rbf and unrelated bugs in rx_chain.v

2007-10-25 Thread Martin Dvh
Hans Glitsch wrote:
 Ok,  I found that the bug was introduced into std_4rx_0tx.rbf at version
 4848.  Version 4287 does not have the problem.

The changes in changeset 4713 looked suspicious.
Refactored FPGA *.vh files. Moved common pieces to toplevel/include. 
But I couldn't find any obvisous mistakes there.

Then I generated a complete diff between r 4287 and 4848 the following way:
$ cd usrp
$ svn diff -r 4287:4848

But I didn't find any mistakes there even.
It is also possible that something went wrong when generating std_4rx_0tx.rbf.
Has anybody tried rebuilding it (with Quartus II) with the current trunk code 
(r 4848 or later)

When looking further into the code for the RX_chain I did find a few 
(unrelated) bugs in
usrp/fpga/sdr_lib/rx_chain.v
When the NCO is turned off (RX_NCO_ON is not defined)
then sample_strobe is assigned to 1
However sample_strobe is an input, so this will fail.

The same mistake is made for decimator_strobe when the CIC is turned off.

It can be solved by adding wires for sample_strobe_internal and 
decimator_strobe_internal and assigning to that in stead.

This probably hasn't surfaced because at the moment NCO and CIC are always 
enabled.
see lines 31,32, 64 and 74 below.

usrp/fpga/sdr_lib/rx_chain.v
31 input sample_strobe,
32 input decimator_strobe,
...

51  `ifdef RX_NCO_ON
52  phase_acc #(FREQADDR,PHASEADDR,32) rx_phase_acc
53   (.clk(clock),.reset(reset),.enable(enable),
54
.serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe),
55.strobe(sample_strobe),.phase(phase) );
56  
57 cordic rx_cordic
58   ( .clock(clock),.reset(reset),.enable(enable),
59 .xi(i_in),.yi(q_in),.zi(phase[31:16]),
60 .xo(bb_i),.yo(bb_q),.zo() );
61  `else
62 assign bb_i = i_in;
63 assign bb_q = q_in;
64 assign sample_strobe = 1;
65  `endif // !`ifdef RX_NCO_ON
66  
67  `ifdef RX_CIC_ON
68 cic_decim cic_decim_i_0
69   ( .clock(clock),.reset(reset),.enable(enable),
70 
.rate(decim_rate),.strobe_in(sample_strobe),.strobe_out(decimator_strobe),
71 .signal_in(bb_i),.signal_out(hb_in_i) );
72  `else
73 assign hb_in_i = bb_i;
74 assign decimator_strobe = sample_strobe;
75  `endif


Greetings,
Martin
 
 Hans
 
 
 - Original Message - From: Johnathan Corgan
 [EMAIL PROTECTED]
 To: Eric Blossom [EMAIL PROTECTED]
 Cc: Hans Glitsch [EMAIL PROTECTED]; discuss-gnuradio@gnu.org
 Sent: Wednesday, October 24, 2007 10:57 AM
 Subject: Re: [Discuss-gnuradio] found problem with std_4rx_0tx.rbf
 
 
 Eric Blossom wrote:

 I can reproduce it.  There's definitely something off with
 std_4rx_0tx.rbf.
 I've opened ticket:195  http://gnuradio.org/trac/ticket/195

 [This is all I'm going to do about this right now.]

 Since that RBF has only been re-synthesized a couple of times in the
 last year or so, it would be straightforward to manually replace the
 file with the versions from 3.0 series, and see where the problem
 started.  I think there will be at most 4 versions to test.  You
 wouldn't need to change the host code any, just get the proper RBF from
 the repository and manually install into $prefix/share/usrp/rev2 and 4.

 -- 
 Johnathan Corgan
 Corgan Enterprises LLC
 http://corganenterprises.com

 -- 
 This message has been scanned for viruses and
 dangerous content by MailScanner, and is
 believed to be clean.




 -- 
 No virus found in this incoming message.
 Checked by AVG Free Edition.
 Version: 7.5.503 / Virus Database: 269.15.9/1090 - Release Date:
 10/24/2007 8:48 AM


 
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Strategy advice

2007-10-19 Thread Martin Dvh
Steven Clark wrote:
 All-
 
 I was hoping I could get some advice on what is a good block-design strategy
 for the following problem.
 
 I have two streams of complex samples coming in. I want a block or sequence
 of blocks which outputs the cosine of the phase difference between the two
 input streams.
 
 If we could assert that both input streams are unit length, then one way to
 do it would be to conjugate one stream, then complex multiply the two
 together, then take the real part of the output. But if the input streams
 are NOT normalized, then the product will likely not be unit length either,
 and this won't work.
 
 We could try and normalize the complex product, but the universe explodes if
 it has length 0 (divide by 0). Also, this would require a slow sqrt (?)
If your input streams have a rather stable amplitude you could put a slow  AGC 
in front of them to normalize.
You shoudl make sure that the vectors are length 1.0.
I remember using this trick and that I had to set the reflevel of the agc to 
1/srt(2) (in stead of 1.0)  or something like that to get it to
output vectors of length 1.0.

This will however not be as accurate as actually doing the slow sqrt() for 
every sample.



 Is the best approach to just get the phase of the complex product via
 fast_atan2f, then take the cos of that?
I am working on an SSE optimized version of atan2.
It is not fully checked and so not ready for primetime but maybe this would 
work for you.
How much in a hurry are you?

 Do any basic math/trig functions (cos, atan2, sqrt, etc) exist at the python
 block level, or do I have to delve into C to use them?
 Makefiles are scary :(
No they are not ;-)
Get them to know better and they will be your friends.

 
 
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Maximal signal bandwith for the usrp

2007-10-17 Thread Martin Dvh
JALLON Pierre 201932 wrote:
 Dear all,
 
  
 
 According the USRP v4 description:
 
 http://www.ettus.com/downloads/usrp_v4.pdf
 http://www.ettus.com/downloads/usrp_v4.pdf 
 
 the usrp is able to process signals up to 16MHz. 
 
  
 
 As the USB port is limited to 60MB/s, and if the samples are coded on 32
 bits (16 for Q and 16 for I), the maximal bandwidth equals 15MHz.
The USRP can code signals as 32 bits (16 for Q and 16 for I)
In this case the usrp is able to process signals up to 8 MHz.
The USRP can also code signals as 16 bits (8 for Q and 8 for I)
In that case the usrp is able to process signals up to 16 MHz.
 
  
 
 Which version is correct?
 
  
 
 Furthermore, considering that the first ADC works at 64Ms/s, the
 available rate for the USB equals:
 
 32/2 (is it available ?)
 
 32/3
 
 32/4
 
 32/5
 
 ...
 
 32/256
 
  
 
 Am I right ?
the first ADC works at 64Ms/s, the
available rate for the USB equals:
64/4(64/4 is only available with halfband filter disabled)
64/8
64/12
64/16
64/20
...
64/256

The halfband filter in the usrp firmware has a minimal decimation rate of 8. 
That is why 64/4 is only available with halfband disabled.


Martin
 
  
 
 Thank you for your answers,
 
  
 
 Pierre Jallon
 
 
 
 
 
 
 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] build system, generate_all.py doesn't work when building out-of-sourcedir

2007-10-15 Thread Martin Dvh
Hi all,

I allways build in a subdir of the sourcedir.
svn checkout
cd trunk
./bootstrap
mkdir build
cd build
../configure
make

Usually this works well, but I found out that this doesn't work if you change 
something in the generate*.py scripts.

/gnuradio-core/src/lib/filter/generate_all.py

Is the script run by the makefile in build/gnuradio-core/src/lib/filter to 
generate build/gnuradio-core/src/lib/filter/makefile.gen (amongst
other things)
But the makefile.gen which is included is in gnuradio-core/src/lib/filter  
(note this is in the sourcedir, not the builddir)

So the old makefile.gen is included.

I am not an automake wizard but I wondered if this is solvable.

The only workaround I have is.
first configure and build in the sourcedir. Do a make distclean and then 
configure and build in the builddir.

cd trunk
./configure
make
make clean
make distclean
cd build   (this is my builddir)
../configure
make


Here follows a snippet from gnuradio-core/src/lib/filter/Makefile.am where some 
of this magic happens.

# include $(srcdir)/Makefile.gen
include Makefile.gen


$(GENERATED_H) $(GENERATED_I) $(GENERATED_CC): $(CODE_GENERATOR)
PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) 
$(PYTHON) $(srcdir)/generate_all.py


BUILT_SOURCES = $(GENERATED_H) $(GENERATED_I) $(GENERATED_CC)

Greetings,
Martin


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


  1   2   3   >