Version 10 (modified by 9 years ago) ( diff ) | ,
---|
Zynq-based WISER platform - Spectrum Sensing
Table of Contents
- SDR Tutorials
Description
This tutorial demos capturing spectrum data using the Zynq-based WISER platform on ORBIT.
Hardware / Software Resources utilized
- An SB6 node with WISER platform connected to it.
- wiser_sb6_zedboard.ndz: disk image.
Set up
- Follow the start-up instructions to set up the load the node image and FPGA images.
- After the set-up is complete, ssh into node1-1 and build the wiserd application
root@node1-1:~# cd wiserd root@node1-1:~/wiserd# make clean root@node1-1:~/wiserd# make g++ -Wall -g -O -std=gnu++0x -c -o channel_status.o channel_status.cpp g++ -Wall -g -O -std=gnu++0x -c -o consumer_moving_average.o consumer_moving_average.cpp g++ -Wall -g -O -std=gnu++0x -c -o fft_movavg_dc.o fft_movavg_dc.cpp g++ -Wall -g -O -std=gnu++0x -c -o fft_movavg_oml.o fft_movavg_oml.cpp g++ -Wall -g -O -std=gnu++0x -c -o fft_movavg_udp.o fft_movavg_udp.cpp g++ -Wall -g -O -std=gnu++0x -c -o fft_pow_udp.o fft_pow_udp.cpp g++ -Wall -g -O -std=gnu++0x -c -o fft_sigpower_oml.o fft_sigpower_oml.cpp g++ -Wall -g -O -std=gnu++0x -c -o main.o main.cpp g++ -Wall -g -O -std=gnu++0x -c -o radio.o radio.cpp g++ -Wall -g -O -std=gnu++0x -c -o recv_consumer_factory.o recv_consumer_factory.cpp g++ -Wall -g -O -std=gnu++0x -c -o recv.o recv.cpp g++ -Wall -g -O -std=gnu++0x -c -o signal_from_file.o signal_from_file.cpp g++ -Wall -g -O -std=gnu++0x -c -o time_samples_to_file.o time_samples_to_file.cpp g++ -Wall -g -O -std=gnu++0x -c -o tran_consumer_factory.o tran_consumer_factory.cpp g++ -Wall -g -O -std=gnu++0x -c -o tran.o tran.cpp g++ -Wall -g -O -std=gnu++0x -c -o usrp.o usrp.cpp g++ -Wall -g -O -std=gnu++0x -c -o waveform.o waveform.cpp g++ -Wall -g -O -std=gnu++0x -c -o zynq.o zynq.cpp g++ -L/usr/local/lib channel_status.o consumer_moving_average.o fft_movavg_dc.o fft_movavg_oml.o fft_movavg_udp.o fft_pow_udp.o fft_sigpower_oml.o main.o radio.o recv_consumer_factory.o recv.o signal_from_file.o time_samples_to_file.o tran_consumer_factory.o tran.o usrp.o waveform.o zynq.o -o wiserd -lboost_system -lboost_random -lboost_thread -lboost_program_options -lboost_iostreams -lpthread -llog4cxx -luhd -loml2 -locomm -lfftw3f -lreadline
Start spectrum sensing
- Run the wiserd application with the following arguments.
root@node1-1:~/wiserd# ./wiserd --zynq_rx_freq 820e6 --zynq_rx_gain 10 --zynq_fft_bins 256 --zynq_fft_scaling 170 --zynq_avg_window 256 linux; GNU C++ version 4.8.2; Boost_105400; UHD_003.008.002-86-g566dbc2b Zynq constructed zynq_fft_bins 8 zynq_fft_scaling 170 zynq_rx_freq 820000000 zynq_rx_gain 10 Ready! Zynq thread started >
- The Zynq parameters passed to the FPGA to configures the RF hardware and FFT engine
a) '—zynq_rx_freq 820e6' ——> sets Rx center frequency. Range of values: [400M 4000M]
b) '—zynq_rx_gain 10' ———→ sets Rx amplifier gain. Range of values: [5.0 20.0]
c) '—zynq_fft_bins 256' ——→ sets FFT size. Range of values must be power of 2: [8 256]
d) '—zynq_fft_scaling 170' —> sets FFT stage scaling.
e) '—zynq_avg_window 256' —→ sets time averaging across bins. Range of values: [1 256]
Note: the sampling rate not configurable and fixed at 30Msps.
- From wiserd enable FFT engine and start streaming frequency bins from the FPGA to host
> --fft_engine 1
- The FFT bin data is collected in binary file name zynq_rx_fft.bin
- From wiserd disable FFT engine and stop streaming data to host
> --fft_engine 0
- To view a water fall image collected rx spectrum data, run the fPlot script in octave. A sample image is shown below with a tone at 10MHz generated from a USRP.
Attachments (2)
- zynq_rx_fft_1500_10MHz.png (64.2 KB ) - added by 9 years ago.
- fPlot.m (386 bytes ) - added by 9 years ago.
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.