Last modifiedNameSummary
Saturday, 11 April 2015, 10:45 PMHome
Wednesday, 13 April 2016, 06:33 PMActivities
Monday, 13 April 2015, 02:25 PMContact us
Monday, 21 May 2018, 03:38 PMWhat is LoRa?

LoRa is a physical layer wireless modulation for long-range communication link that is based on chirp spread spectrum (CSS) modulation scheme that trades data rate for receiver sensitivity. This technology has been used in military and space communication for decades but LoRa is the first low cost implementation for commercial usage. The long range LoRaWAN base station can cover hundreds of square kilometers with high data rate and low power consumption for nodes. Spread spectrum aspect of LoRa offers link robustness to interference with high network capacity.

Tuesday, 21 April 2015, 08:17 PMBPSK modulation and simulink
Wednesday, 16 December 2015, 05:44 PMLocalization video in matlab with background codes in MATLAB for presenting localization with default background
Sunday, 27 December 2015, 08:09 PMOptimization All contents related to optimization will publish here
Tuesday, 8 August 2017, 12:21 AMAbout me profile pic
Nozhan Hosseini

Ph.D. candidate

Electrical & Computer Engineering

Student (Research Assistant)

University of South Carolina



M.S Electrical & Computer Engineering

Concentration:Telecommunication Engineering

Thesis : “Interference mitigation techniques for GNSS receivers” Experiment section title : Experimental analysis of interference detection, mitigation and localization in GNSS using Software Defined Radios (SDR)

University-of-Bologna (2013-2015) Full scholar


B.S Electrical & Computer Engineering
Concentration: Electronic (Final project : Image processing through ARM cortex microprocessors )

University of Kashan (2008–2013)


All Publications:


"Software Defined Radios as Cognitive Relays for Satellite Ground Stations Incurring Terrestrial Interference"
IEEE LINK
Free download version (for student and colleagues)

Abstract:Satellite to ground links are extremely vulnerable to any type of terrestrial interference due to the relatively weak satellite signal at the ground stations. This can cause connection failures or degradation in performance at the ground station, which could in some cases be significant or even catastrophic. The great flexibility of software defined radio (SDR) systems facilitates the implementation of cognitive relays as a complementary entity that can help reduce the effects of interference. In this paper, we describe a cognitive SDR testbed that has been developed based on the Universal Software Radio Peripheral (USRP) and the GNU radio software platform. One of our testbed's aims is to evaluate error performance improvements of satellite signal relays in the presence of interference. We report on performance evaluation in terms of bit error ratio (BER) as a function of carrier-to-noise ratio (CNR) and in the presence of interference, for our detect and relay algorithms in an example frequency band, using an emulated desired (satellite-relay-ground station) signal. Our testbed contains four separate segments: satellite (emulated), relay, interferer, and ground receiver. At each segment, we transmit and/or receive signals via SDRs or standard communication laboratory equipment. We consider two relaying protocols in our work, amplify-and-forward (AF), and decode-and-forward (DF). Initial experiments were indoors, although outdoor testing with small unmanned aircraft systems is planned for future work. Our experiments explore the effects of different relaying techniques, and provide some quantitative results on performance improvements via our software defined radio approach.

nozhan.hosseini@studio.unibo.it



Monday, 6 February 2017, 03:03 AMbroadcast a text file from one USRP to another SDR (HackRF) 
Sunday, 29 January 2017, 09:53 PMInstalling GNURADIO on Raspberry pi 3 Unfortunately, at this time that I am making this video there is no official 64bit ARMv8 Operating System(OS) for Raspberry pi 3. It seems that Raspberry manufacturer forced armv8 1200 MHZ board to work as ARMv7 ! and this gonna give you an error during installation of GNURADIO on Raspberry pi 3(probably GNSS-SDR too) so in order to resolve this problem we inspect all those OS and then came into the following instruction in order to install this software. feel free to ask questions. unfortunately the image of this OS is 8.5GIG and I didn't find any server for this big size files and high bandwidth for all users. have fun!
Monday, 28 December 2015, 03:30 PMInstalling GNURADIO on Linux(Ubuntu) for HACKRF SDR board (incompatibility with OSMOSDR version) SOLVED Watch video below:
Monday, 28 December 2015, 03:34 PMGnu radio GNSS BladeRF (result)Watch below:
Wednesday, 2 March 2016, 12:20 PMFM transmitter with HackRF SDR Here is a simple FM transmitter using HACKRF SDR (SAME CONFIGURATION FOR OTHER SDRs TOO
you can change he parameters with your own preference
Fm transmitter gnuradio schematic



and here is a amateur video of successfully implementing in home ! smile

Wednesday, 2 March 2016, 12:21 PMFM transmitter with HackRF SDR Here is a simple FM transmitter using HACKRF SDR (SAME CONFIGURATION FOR OTHER SDRs TOO
you can change he parameters with your own preference
Fm transmitter gnuradio schematic



and here is a amateur video of successfully implementing in home ! smile

Wednesday, 15 June 2016, 11:39 AMSDR
Saturday, 18 June 2016, 05:52 PMBasics of satellite communication(impairments and mitigation techniques)
Sunday, 19 June 2016, 06:54 PMMultiple Input Multiple Output(MIMO)
Thursday, 21 July 2016, 02:12 AMHow to find multiple USRP serial and device in Linux using USB port for connection udev handles USB plug and unplug events. The following commands install a udev rule so that non-root users may access the device. This step is only necessary for devices that use USB to connect to the host computer, such as the B200, B210, and B200mini. This setting should take effect immediately and does not require a reboot or logout/login. Be sure that no USRP device is connected via USB when running these commands. cd $HOME/workarea-uhd/uhd/host/utils sudo cp uhd-usrp.rules /etc/udev/rules.d/ sudoudevadm control --reload-rules sudoudevadm trigger For USRP devices that use Ethernet to connect to the host computer, such as the N200, N210, X300, X310, set a static IP address for your system of 192.168.10.1, with a netmask of 255.255.255.0. The default IP address of the USRP is 192.168.10.2, with a netmask of 255.255.255.0. You should probably set the IP address using the graphical Network Manager. If you set the IP address from the command line with ifconfig , Network Manager will probably overwrite these settings. The installation of UHD and GNU Radio should now be complete. At this point, connect the USRP to the host computer. If the interface is Ethernet, then open a terminal window, and try to ping the USRP with "ping 192.168.10.2". The USRP should respond to the ping requests. If the interface is USB, then open a terminal window, and run " lsusb ". You should see the USRP listed on the USB bus with a VID of 2500 and PID of 0020 , 0021 , 0022 , for B200, B210, B200mini, respectively. Also try running " uhd_find_devices " and " uhd_usrp_probe "
Thursday, 21 July 2016, 02:16 AMBDPSK by USRPGNU RADIO BDPSK BY USRP
Tuesday, 2 August 2016, 04:10 PMInstaling two, three more USRP in Linux Ubuntu
first going here and download the package:
http://files.ettus.com/manual/page_ni_rio_kernel.html
http://files.ettus.com/binaries/niusrprio/niusrprio-installer-15.0.0.tar.gz

Download the installer and extract it with the following command:

tar zxf niusrprio-installer-15.0.0.tar.gz 

The files will be extracted into a directory called niusrprio-installer.

To install the NI USRPRIO kernel modules and RPC server, run the following command:

sudoniusrprio-installer/INSTALL

Once everything is installed, run the following commands to enable use of the X300/X310 over PCI Express:

sudo /usr/local/bin/niusrprio_pcie start



uhd_find_devices
uhd_usrp_probe
lsusb
ifconfig -a
Friday, 19 August 2016, 12:26 AMCompare SDRs: USRP 2901 vs B210 vs N210 vs BladeRF

2901 [1390$]

B210 [1190$]

USRP N210 [1746$]

BladeRF (~700$)

70 MHz to 6 GHz with 2X2 MIMO

70 MHz–6 GHz

DC to 6 GHz

300MHz - 3.8GHz

56 MHz bandwidth

56 MHz

25/50 MHz for 16bit/8bit

28MHz

n 

n 

Internal GPS Disciplined Oscillator

n 

2X2 MIMO

Fully-coherent 2x2 MIMO capability

Fully-Coherent MIMO Capability - M x N MIMO with external

2x2 MIMO configurable with SMB cable, expandable up to 4x4

Monday, 22 August 2016, 02:54 PMhow to make your windows VPS a file hosting for upload and download in different ports for users accessThere is a free and useful software for add file sharing capability to your windows VPS hosting very easy very fast.
download the following software and configure your preferred settings.
HFS (HTTP File Server)
vps to sharing server
Wednesday, 19 July 2017, 03:44 AMstream live camera with Raspberry pi3 raspberry pi 3 Jessie OS has libav package but in case you got error try this:

apt-get install libav-tools

now insert this command:

1. Make instal VNC server
2. Vncserver :1
3. connect to linux port 5901
4.
git clonegit://git.videolan.org/x264
cd x264
./configure--host=arm-unknown-linux-gnueabi--enable-static--disable-opencl
make
sudo make install

cd/usr/src
git clonehttps://github.com/FFmpeg/FFmpeg.git
cd ffmpeg
sudo./configure--arch=armel--target-os=linux--enable-gpl--enable-libx264--enable-nonfree
make
sudo make install

5. stream youtube ( find link in my website for instructions)

alias ffmpeg=avconv


To start the stream, run this command:

raspivid -o - -t 0 -w 1280 -h 720 -fps 30 -b 6000000 -g 50 | ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/your youtube id find you session here" in above line in your youtube channel 
  • -o - makes it write the video data to STDOUT so it gets piped into ffmpeg.
  • -t 0 is how you make it record forever
  • -vf -hf flips it horizontal and vertical so it looks correct
  • -fps 30 sets frames per second to 30
  • -b 6000000 - output bitrate limit. YouTube recommends 400-600kbps, this is 600kbps. Change this to save upload bandwidth at the expense of a lower quality video
  • -re - tells ffmpeg to slow down the reading of the input to the native frame rate of the input (useful when live streaming)
  • -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zeroand -acodec aac -ab 128k and-strict experimental - adds a fake audio channel filled with zeroes (silence). YouTube rejects streams without an audio channel. You can also change the input device to a microphone if you want (I haven't done this yet)
  • -g 50 adds a keyframe every 50 frames. Feel free to tweak, its one of those tradeoff variables.
  • -f h264 and -f flv tells ffmpeg it's receiving h264 input and that you should mux it into flv output (flv is the container format that works with YouTube. Others might work but I haven't tried them)
  • by not specifying -w and -h to raspivid we get the full 1920x1080 resolution (aka 1080p). You can specify these if you want a lower resolution
automatic sending video all the time rapsberry turned on code::
sleep5
while true; sudo shutdown -r +60; do nohup raspivid -o - -t 0 -w 1280 -h 720 -fps 20 -ISO auto -br auto -ex auto | ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/7xxx-gxxd-xxxs-xxxk; sleep 15;reboot; done

put above code in these two places:
sudo nano /etc/rc.local
sudo nano /etc/init.d/rc.local
Tuesday, 15 August 2017, 10:30 PM Build home made camera stream online youtube throught linux 1. Make instal VNC server
2. Vncserver :1
3. connect to linux port 5901
4.
git clonegit://git.videolan.org/x264
cd x264
./configure--host=arm-unknown-linux-gnueabi--enable-static--disable-opencl
make
sudomake install

cd/usr/src
git clonehttps://github.com/FFmpeg/FFmpeg.git
cd ffmpeg
sudo./configure--arch=armel--target-os=linux--enable-gpl--enable-libx264--enable-nonfree
make
sudo make install

5. stream youtube ( find link in my website for instructions)


raspberry pi 3 Jessie OS has libav package but in case you got error try this:

apt-get install libav-tools

now insert this command:

1. Make instal VNC server
2. Vncserver :1
3. connect to linux port 5901
4.
git clonegit://git.videolan.org/x264
cd x264
./configure--host=arm-unknown-linux-gnueabi--enable-static--disable-opencl
make
sudomake install

cd/usr/src
git clonehttps://github.com/FFmpeg/FFmpeg.git
cd ffmpeg
sudo./configure--arch=armel--target-os=linux--enable-gpl--enable-libx264--enable-nonfree
make
sudo make install

5. stream youtube ( find link in my website for instructions)




To start the stream, run this command:

raspivid -o - -t 0 -w 1280 -h 720 -fps 30 -b 6000000 -g 50 | ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/your youtube id find you session here" in above line in your youtube channel 
  • -o - makes it write the video data to STDOUT so it gets piped into ffmpeg.
  • -t 0 is how you make it record forever
  • -vf -hf flips it horizontal and vertical so it looks correct
  • -fps 30 sets frames per second to 30
  • -b 6000000 - output bitrate limit. YouTube recommends 400-600kbps, this is 600kbps. Change this to save upload bandwidth at the expense of a lower quality video
  • -re - tells ffmpeg to slow down the reading of the input to the native frame rate of the input (useful when live streaming)
  • -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zeroand -acodec aac -ab 128k and-strict experimental - adds a fake audio channel filled with zeroes (silence). YouTube rejects streams without an audio channel. You can also change the input device to a microphone if you want (I haven't done this yet)
  • -g 50 adds a keyframe every 50 frames. Feel free to tweak, its one of those tradeoff variables.
  • -f h264 and -f flv tells ffmpeg it's receiving h264 input and that you should mux it into flv output (flv is the container format that works with YouTube. Others might work but I haven't tried them)
  • by not specifying -w and -h to raspivid we get the full 1920x1080 resolution (aka 1080p). You can specify these if you want a lower resolution

Monday, 26 September 2016, 03:23 AMPSPICE EXAMPLESA
Tuesday, 2 May 2017, 12:02 AMAdvance Design System (ADS) software examples RF circuit design for wireless communication

Problem 1

Monday, 30 January 2017, 01:27 AMobserving 2.4 GHz 802.11 spectrum1.freq: 2.437 GHz channel 6 , channel 1 , channel 11
802.11 2.4 GHz
2.freq: 2.437 GHz channel 6 , channel 1 , channel 11 + INTERFERENCE ==> CONNECTIVITY LOST
2.4 GHZ SPECTRUM ANALAYSER
Sunday, 30 October 2016, 07:08 PMMake linux repeat a command every N minutes in terminalMake linux repeat a command every N minutes in terminal:
while true; do yourcommand' ; sleep nsec' ;done
Thursday, 15 December 2016, 03:53 PM SDcard problem (visibility) in windows 10 / 8 (two method) (Drive letter can't be assigned)
if you cannot see your SDcard drive letter in "mycomputer" or "this pc" part but you are sure the driver is installed successfully try this two method.
this SDCARD issue is common among many PCs and devices

Thursday, 15 December 2016, 07:29 PMError probability for QPSK in Rayleigh fading channel vs AWGN channel [simulation + theory]
If you simulate a QPSK channel under Rayleigh fading which means of no LOS environments you can obviously observe worst performance in sense of bit error rate. as you can see in this example. 
QPSK theoretical performance under Rayleigh fading approximate with this formula: 
Pbtheory4 = 0.5*(1-(sqrt((Es/N0)./(1+(Es/N0)))));
simulation steps: 
1.Generate random bits (randn)(define a function to generate "0" and "1" bits.
2. Map bits to symbols define constellation points and modulation scheme
3. characterize channel fading( in this case Rayleigh)
4.add WGN noise
5. set decision regions
6.compare thresholds and sampling
7.inspect received bits for any error
8.plot
Result: 
performance(error probability) for QPSK in Rayleigh fading channel vs AWGN channel [simulation and theory]
PURE AWGN ON QPSK SIGNAL CONSTELLATION POINTS
Monday, 6 February 2017, 03:06 AM SDR operates as a relay (USRP) full duplex OFDM 
Thursday, 9 February 2017, 09:20 AMcommand line for installing gnuradio with uhd on ubuntu 14.04 tested 1 ubuntu 14.04
----------
sudo apt-get -y install git-core cmake g++ python-dev swig \ pkg-config libfftw3-dev libboost1.55-all-dev libcppunit-dev libgsl0-dev \ libusb-dev libsdl1.2-dev python-wxgtk2.8 python-numpy \ python-cheetah python-lxml doxygen libxi-dev python-sip \ libqt4-opengl-dev libqwt-dev libfontconfig1-dev libxrender-dev \ python-sip python-sip-dev
----------
sudo apt-get install libboost-all-dev libusb-1.0-0-dev python-mako doxygen python-docutils cmake build-essential
-----------
git clone git://github.com/EttusResearch/uhd.git
------------
cd uhd
cd host
mkdir build
cd build
cmake ../
make
make test
make install
ldconfig
--------------
git clone git://github.com/EttusResearch/gnuradio.git
--------
install same as uhd
------------
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/gnuradio/lib export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/gnuradio/lib/pkgconfig
-------------
install gnuradio in software center
Thursday, 2 March 2017, 10:34 PMInstalling Gnuradio on windows supporting USRP and HackRF1.Package installation
2.UHD usb driver download --> manually define driver for unknown driver in device manager
3.Find USRP serial in device manager
4. add in gnuradio

----FOR HACKRF
download zadig.exe
isntall driver
add osmosdr block in gnuradio and let the block find hackrf
Monday, 4 February 2019, 11:10 PMUSRP N210 or N2xx First time installation tips (if you can't find the device) default ip address through Ethernet will be 192.168.10.2

open terminal and type: uhd_find_devices

if you got error no UHD devices found follow these steps if not every thing is ok

type : uhd_images_downloader
**download the images*

type: uhd_image_loader --args="usrp2,addr=192.168.10.2"
this will upload the image to FPGA

Restart both laptop and USRP.

tip1: in GNURADIO give addr=192.168.10.2 to the USRP blocks.
use uhd_usrp_probe --args="addr=192.168.10.2"

you should see all details about your N210 after this command.
Friday, 12 April 2019, 01:16 AMSoftware defined radios as cognitive relays for satellite ground stations incurring terrestrial interference Software defined radios as cognitive relays for satellite ground stations incurring terrestrial interference Satellite to ground links are extremely vulnerable to any type of terrestrial interference due to the relatively weak satellite signal at the ground stations. This can cause connection failures or degradation in performance at the ground station, which could in some cases be significant or even catastrophic. The great flexibility of software defined radio (SDR) systems facilitates the implementation of cognitive relays as a complementary entity that can help reduce the effects of interference. In this paper, we describe a cognitive SDR testbed that has been developed based on the Universal Software Radio Peripheral (USRP) and the GNU radio software platform. One of our testbed's aims is to evaluate error performance improvements of satellite signal relays in the presence of interference. We report on performance evaluation in terms of bit error ratio (BER) as a function of carrier-to-noise ratio (CNR) and in the presence of interference, for our detect and relay algorithms in an example frequency band, using an emulated desired (satellite-relay-ground station) signal. Our testbed contains four separate segments: satellite (emulated), relay, interferer, and ground receiver. At each segment, we transmit and/or receive signals via SDRs or standard communication laboratory equipment. We consider two relaying protocols in our work, amplify-and-forward (AF), and decode-and-forward (DF). Initial experiments were indoors, although outdoor testing with small unmanned aircraft systems is planned for future work. Our experiments explore the effects of different relaying techniques, and provide some quantitative results on performance improvements via our software defined radio approach.

N. Hosseini and D. W. Matolak, "Software defined radios as cognitive relays for satellite ground stations incurring terrestrial interference," 2017 Cognitive Communications for Aerospace Applications Workshop (CCAA), Cleveland, OH, USA, 2017, pp. 1-4.
doi: 10.1109/CCAAW.2017.8001874
Saturday, 22 June 2019, 04:56 PMWideband channel sounding using software defined radios (SDR) with chirp waveform Wideband channel sounding using software defined radios (SDR) with chirp waveformHosseini, Nozhan and David W. Matolak, "Wide band channel characterization for low altitude unmanned aerial system communication using software defined radios" 2018 Integrated Communications, Navigation, Surveillance Conference (ICNS), Herndon, VA, USA, 2018, pp. 2C2-1-2C2-9.(link) (↓Download)[Best student paper] [Best paper @ track 2]

In the near future, there will be a need for accommodating large populations of fast moving Unmanned Aerial Systems (UAS) operating in uncontrolled, very low level (VLL) (below 500 ft.) airspace. As is well-known, real-time knowledge of the wireless propagation channel is essential for the effective design and optimization of wireless communication systems. In this paper, we propose a software defined radio (SDR) based channel sounder employing a wideband linear frequency modulated continuous wave (FMCW) or chirp waveform technique for low altitude air-to-air (AA) links. This paper discusses both matched filter and heterodyne detector implementations in the receiver, and investigates advantages and disadvantages of both architectures for an SDR implementation in an AA scenario. We also discuss proper windowing techniques in the transmitter to improve sounding resolution. Some proof of concept measurement results using SDRs are presented for a simulated UAS scenario.
Tuesday, 26 February 2019, 04:49 PMGnuRado custom block-- Basic vs synchronous python blockIn this note, I want to express my observations on basic vs synchronous blocks in Gnuradio custom blocks written in Python language.

Observation: Blocks can't produce enough samples for USRP sink

No improvement observed by changing the block from basic to synchronous block.
Wednesday, 6 March 2019, 10:43 PMUSRP B205mini vs B210 size comparison SDRs USRP B205mini vs B210 size SDRs
Wednesday, 3 April 2019, 07:47 PMauto script run on startup + auto login user + no sudo pasword for UBUNTU MATESTEP1: apt getupdate

sTEP2: apt get install gnome-terminal

STEP3: GUI: FIND STARTUP APPLICATION
 GIVE OPTIONAL NAME
 GIVE THIS TO COMMAND BAR: "gnome-terminal --command= sudo python /home/user/myscript.py"
TERMINAL: go to /home/user/.config/autostart/
 create a new optional xxx.desktop file
 nano the file in terminal (nano xxx.desktop)
 write this:
[Desktop Entry] Type=Application Exec=gnome-terminal --command="sudo python /home/user/top_block.py" Hidden=false X-MATE-Autostart-enabled=true Name[en_US]=terminal
 save and exit.
 
STEP4: autologin to the Raspberry pi or desktop: from (https://ubuntu-mate.community/t/auto-login-to-the-desktop/60)
 To configure the Desktop to auto-login (Ubuntu MATE 14.04) add anautologin-userline specifying your user name to the/usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conffile. For example:
[SeatDefaults]greeter-session=lightdm-gtk-greeter autologin-user=srackham 

Conf files in the /usr/share/lightdm/lightdm.conf.d/ directory are cascaded into the lightdm login manager in alpha order.


STEP5: SUDO not ask for password:

 type: sudovisudo

 And add the following entry, replace user with your username, for example gogo:

 user ALL=(ALL) NOPASSWD:ALL

Saturday, 6 April 2019, 06:52 PMRohde & Schwarz TS-5GCS connection problem(solved) if you see an error for connection in TS-5GCS software for channel sounding such as:
R&S TS-5GCS SOFTWARE CONNECTION PROBLEM

We solved the problem as follow:
1) Uninstall NATIONAL INSTRUMENT VISA from "add/remove application" in windows
2) Remove R&S visa versions from "add/remove application"
3) only donwload the NI-VISA version specified in R&S user manual not the latest version
4) Find network address on FSW (SSA) by clicking on setup--> network and give it manually to the settings in TS-5GCS

Reset and enjoy
This is what you should see:
SUCCESSFUL CONNCECTION FOR TS-5GCS
Sunday, 12 May 2019, 05:27 AMInstalling GnuRadio and UHD on Armbian ROCK64PRO

Update and Install dependencies

Before building UHD and GNU Radio, you need to make sure that all the dependencies are first installed.

However, before installing any dependencies, you should first make sure that all the packages that are already installed on your system are up-to-date. You can do this from a GUI, or from the command-line, as shown below.

On Ubuntu systems, run:

 sudo apt-get update 

On Fedora 21 systems, run:

 sudo yum update 

On Fedora 22, 23, 24 and 25 systems, run:

 sudo dnf update 

Once the system has been updated, then install the required dependencies for UHD and GNU Radio.

On Ubuntu 18.10 systems, run:

 sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.14-0 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses6-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3.0 git libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwtplot3d-qt5-dev pyqt4-dev-tools python-qwt5-qt4 cmake git wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq3-dev libzmq5 python-requests python-sphinx libcomedi-dev python-zmq libqwt-dev libqwt6abi1 python-six libgps-dev libgps23 gpsd gpsd-clients python-gps python-setuptools 

On Ubuntu 18.04 systems, run:

 sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.14-0 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3.0 git libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwtplot3d-qt5-dev pyqt4-dev-tools python-qwt5-qt4 cmake git wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq3-dev libzmq5 python-requests python-sphinx libcomedi-dev python-zmq libqwt-dev libqwt6abi1 python-six libgps-dev libgps23 gpsd gpsd-clients python-gps python-setuptools 


On Ubuntu 17.04 systems, run:

 sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.13-0v5 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3.0 git-core libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq3-dev libzmq5 python-requests python-sphinx libcomedi-dev python-zmq python-setuptools 


On Ubuntu 16.04 systems, run:

 sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.13-0v5 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3.0 git-core libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq-dev libzmq1 python-requests python-sphinx libcomedi-dev python-zmq python-setuptools 

On Ubuntu 15.04 and 15.10 systems, run:

 sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-1.13-0v5 libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk2.8 git-core libqt4-dev python-numpy ccache python-opengl libgsl0-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq-dev libzmq1 python-requests python-sphinx libcomedi-dev python-zmq python-setuptools 

On Ubuntu 14.04 and 14.10 systems, run:

 sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.13-0 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk2.8 git-core libqt4-dev python-numpy ccache python-opengl libgsl0-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq1 libzmq-dev python-requests python-sphinx libcomedi-dev python-setuptools 

On Fedora 21 systems, run:

 sudo yum -y groupinstall "Engineering and Scientific" "Development Tools" "Software Development Tools" "C Development Tools and Libraries" sudo yum -y install fftw-devel cppunit-devel wxPython-devel boost-devel alsa-lib-devel numpy gsl-devel python-devel pygsl python-cheetah python-mako python-lxml PyOpenGL qt-devel qt qt4 qt4-devel PyQt4-devel qwt-devel qwtplot3d-qt4-devel libusbx-devel cmake git wget python-docutils cppzmq-devel PyQwt PyQwt-devel qwt-devel gtk2-engines xmlrpc-c-"*" tkinter orc orc-devel python-sphinx SDL-devel swig zeromq2-devel python-zmq comedilib comedilib-devel thrift-devel python-thrift scipy zeromq zeromq-devel 

On Fedora 22, 23, 24 and 25 systems, run:

 sudo dnf -y groupinstall "Engineering and Scientific" "Development Tools" "C Development Tools and Libraries" sudo dnf -y install fftw-devel cppunit-devel wxPython-devel boost-devel alsa-lib-devel numpy gsl-devel python-devel pygsl python-cheetah python-mako python-lxml PyOpenGL qt-devel PyQt4-devel qwt-devel qwtplot3d-qt4-devel libusbx-devel cmake python-docutils PyQwt PyQwt-devel gtk2-engines xmlrpc-c-"*" tkinter orc-devel python-sphinx SDL-devel swig perl-ZMQ-LibZMQ2 perl-ZMQ-LibZMQ2 zeromq zeromq-devel python-requests gcc-c++ doxygen zeromq-ada-devel cppzmq-devel perl-ZeroMQ amavisd-new-zeromq amavisd-new-snmp-zeromq php-zmq python-zmq czmq uwsgi-logger-zeromq comedilib comedilib-devel pygtk2 ncurses-"*" thrift-devel python-thrift scipy 

After installing the dependencies, you should reboot the system.

If the installation of the dependencies completes without any errors, then you can proceed to build and install UHD and GNU Radio.

Building and installing UHD from source code

UHD is open-source, and is hosted on GitHub. You can browse the code online at the link below, which points to version 3.14.0.0, which is the the latest release at the time of this writing.

There are several good reasons to build GNU Radio from source code, especially for doing development and prototyping. It it enables an easy way to customize the location of the installation, and to install multiple UHD versions in parallel, and switch between them. It also provides much more flexibility in upgrading and downgrading versions, and allows the user to modify the code and create customized versions, which could possibly include a patch or other bug-fix.

To build UHD from source code, clone the GitHub repository, check out a branch or tagged release of the repository, and build and install. Please follow the steps below. Make sure that no USRP device is connected to the system at this point.

First, make a folder to hold the repository.

 cd $HOME mkdir workarea-uhd cd workarea-uhd 

Next, clone the repository and change into the cloned directory.

 git clone https://github.com/EttusResearch/uhd cd uhd 

Next, checkout the desired UHD version. You can get a full listing of tagged releases by running the command:

 git tag -l 

Example truncated output of git tag -l:

$ git tag -l ... release_003_009_004 release_003_009_005 release_003_010_000_000 

Note: As of UHD Version 3.10.0.0, the versioning scheme has changed to be a quadruplet format. Each element and version will follow the format of: Major.API.ABI.Patch. Additional details on this versioning change can be found here.

After identifying the version and corresponding release tag you need, check it out:

 # Example: For UHD 3.9.5: git checkout release_003_009_005 
 # Example: For UHD 3.14.0.0 git checkout v3.14.0.0 

Next, create a build folder within the repository.

 cd host mkdir build cd build 

Next, invoke CMake to create the Makefiles.

 cmake ../ 

Next, run Make to build UHD.

 make 

Next, you can optionally run some basic tests to verify that the build process completed properly.

 make test 

Next, install UHD, using the default install prefix, which will install UHD under the /usr/local/lib folder. You need to run this as root due to the permissions on that folder.

 sudo make install 

Next, update the system's shared library cache.

 sudo ldconfig 

Finally, make sure that the LD_LIBRARY_PATH environment variable is defined and includes the folder under which UHD was installed. Most commonly, you can add the line below to the end of your $HOME/.bashrc file:

 export LD_LIBRARY_PATH=/usr/local/lib 

On Fedora 22/23/24/25 you will need to set the LD_LIBRARY_PATH to /usr/local/lib64.

 export LD_LIBRARY_PATH=/usr/local/lib64 

If the LD_LIBRARY_PATH environment variable is already defined with other folders in your $HOME/.bashrc file, then add the line below to the end of your $HOME/.bashrc file to preserve the current settings.

 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib 

For Fedora 21/22/23/24/25

 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64 

For this change to take effect, you will need to close the current terminal window, and open a new terminal.

At this point, UHD should be installed and ready to use. You can quickly test this, with no USRP device attached, by running uhd_find_devices. You should see something similar to the following.

linux; GNU C++ version 4.8.4; Boost_105400; UHD_003.010.000.HEAD-0-g6e1ac3fc No UHD Devices Found 

Downloading the UHD FPGA Images

You can now download the UHD FPGA Images for this installation. This can be done by running the command uhd_images_downloader.

 $ sudo uhd_images_downloader 

Note: Since this installation is being installed to a system level directory (e.g. /usr/local), the uhd_images_downloader command requires sudo privileges.

Example ouput for UHD 3.13.3.0:

$ sudo uhd_images_downloader Images destination: /usr/local/share/uhd/images Downloading images from: http://files.ettus.com/binaries/images/uhd-images_003.010.003.000-release.zip Downloading images to: /tmp/tmpm46JDg/uhd-images_003.010.003.000-release.zip 57009 kB / 57009 kB (100%) Images successfully installed to: /usr/local/share/uhd/images 

Example output for UHD 3.13:

$ sudo uhd_images_downloader [INFO] Images destination: /usr/local/share/uhd/images [INFO] No inventory file found at /usr/local/share/uhd/images/inventory.json. Creating an empty one. 00006 kB / 00006 kB (100%) usrp1_b100_fw_default-g6bea23d.zip 19484 kB / 19484 kB (100%) x3xx_x310_fpga_default-g494ae8bb.zip 02757 kB / 02757 kB (100%) usrp2_n210_fpga_default-g6bea23d.zip 02109 kB / 02109 kB (100%) n230_n230_fpga_default-g494ae8bb.zip 00522 kB / 00522 kB (100%) usrp1_b100_fpga_default-g6bea23d.zip 00474 kB / 00474 kB (100%) b2xx_b200_fpga_default-g494ae8bb.zip 02415 kB / 02415 kB (100%) usrp2_n200_fpga_default-g6bea23d.zip 05920 kB / 05920 kB (100%) e3xx_e320_fpga_default-g494ae8bb.zip 15883 kB / 15883 kB (100%) n3xx_n310_fpga_default-g494ae8bb.zip 00506 kB / 00506 kB (100%) b2xx_b205mini_fpga_default-g494ae8bb.zip 18676 kB / 18676 kB (100%) x3xx_x300_fpga_default-g494ae8bb.zip 00017 kB / 00017 kB (100%) octoclock_octoclock_fw_default-g14000041.zip 04839 kB / 04839 kB (100%) usb_common_windrv_default-g14000041.zip 00007 kB / 00007 kB (100%) usrp2_usrp2_fw_default-g6bea23d.zip 00009 kB / 00009 kB (100%) usrp2_n200_fw_default-g6bea23d.zip 00450 kB / 00450 kB (100%) usrp2_usrp2_fpga_default-g6bea23d.zip 00142 kB / 00142 kB (100%) b2xx_common_fw_default-g3ff4186b.zip 00460 kB / 00460 kB (100%) b2xx_b200mini_fpga_default-g494ae8bb.zip 00319 kB / 00319 kB (100%) usrp1_usrp1_fpga_default-g6bea23d.zip 00009 kB / 00009 kB (100%) usrp2_n210_fw_default-g6bea23d.zip 11537 kB / 11537 kB (100%) n3xx_n300_fpga_default-g494ae8bb.zip 05349 kB / 05349 kB (100%) e3xx_e310_fpga_default-g494ae8bb.zip 00866 kB / 00866 kB (100%) b2xx_b210_fpga_default-g494ae8bb.zip [INFO] Images download complete. 

Building and installing GNU Radio from source code

As with UHD, GNU Radio is open-source and is hosted on GitHub. You can browse the code online at the link below, which points to version v3.7.13.4, which is the the latest release at the time of this writing.

Note: GNU Radio is currently transitioning from major branches of 3.7.x.x to 3.8.x.x. It is generally recommend at this time to use either the v3.7.13.4 or maint-3.7 branch of GNU Radio. The master branch includes many major changes such as converting to use Python 3 and may be unstable.


As with UHD, there are several good reasons to build GNU Radio from source code, especially for doing development and prototyping. It it enables an easy way to customize the location of the installation, and to install multiple GNU Radio versions in parallel, and switch between them. It also provides much more flexibility in upgrading and downgrading versions, and allows the user to modify the code and create customized versions, which could possibly include a patch or other bug-fix.

Similar to the process for UHD, to build GNU Radio from source code, clone the GitHub repository, check out a branch or tagged release of the repository, and build and install. Please follow the steps below. Make sure that no USRP device is connected to the system at this point.

First, make a folder to hold the repository.

 cd $HOME mkdir workarea-gnuradio cd workarea-gnuradio 

Next, clone the repository.

 git clone --recursive https://github.com/gnuradio/gnuradio

Next, go into the repository and check out the desired GNU Radio version.

 cd gnuradio 

To checkout the v3.7.13.4 branch:

 git checkout v3.7.13.4 

Or to checkout the maint-3.7 branch:

 git checkout maint-3.7 

Next, update the submodules:

 git submodule update --init --recursive 

Next, create a build folder within the repository.

 mkdir build cd build 

Next, invoke CMake to create the Makefiles.

 cmake ../ 

Next, run Make to build GNU Radio.

 make 

Next, you can optionally run some basic tests to verify that the build process completed properly.

 make test 

Next, install GNU Radio, using the default install prefix, which will install GNU Radio under the /usr/local/lib folder. You need to run this as root due to the permissions on that folder.

 sudo make install 

Finally, update the system's shared library cache.

 sudo ldconfig 

At this point, GNU Radio should be installed and ready to use. You can quickly test this, with no USRP device attached, by running the following quick tests.

 gnuradio-config-info --version gnuradio-config-info --prefix gnuradio-config-info --enabled-components 

There is a simple flowgraph that you can run that does not require any USRP hardware. It's called the dialtone test, and it produces a PSTN dial tone on the computer's speakers. Running it verifies that all the libraries can be found, and that the GNU Radio run-time is working.

 python $HOME/workarea-gnuradio/gnuradio/gr-audio/examples/python/dial_tone.py 

You can try launching the GNU Radio Companion (GRC) tool, a visual tool for building and running GNU Radio flowgraphs.

 gnuradio-companion 

If "gnuradio-companion" does not start and complains about the PYTHONPATH environment variable, then you may have to set this in your $HOME/.bashrc file, as shown below.






Edit your .bashrc to export necessary environment variables. For this step, you will need to know where GNU Radio was installed. If you used PyBOMBS, this will be a directory called target; otherwise, this is likely the directory /usr/local. I will call this directory /path/to/gnuradio. Use your favorite editor (vi, nano, gedit, etc.) and add the following lines to ~/.bashrc:

PYTHONPATH=$PYTHONPATH:/path/to/gnuradio/lib/python2.7/dist-packages export PYTHONPATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/gnuradio/lib export LD_LIBRARY_PATH PATH=$PATH:/path/to/gnuradio/bin export PATH
VERSIONS I USED: UHD 3.12.0.0 ; GNURADIO MAINT3.7
GNURADIO MAINT3.7
Sunday, 30 June 2019, 06:18 PMMATLAB to GNURadio converter functions .mat to gnuradio MATLAB --> GNURADIO (download function)

GNURADIO --> MATLAB (download function)
Tuesday, 2 July 2019, 06:24 PMUAV communication : ground, air and satellite review Drones, unmanned aerial vehicles (UAVs), or unmanned aerial systems (UAS)are expected to be an important component of 5G/beyond 5G (B5G) communications. This includes their use within cellular architectures (5G UAVs), in which they can facilitate both wireless broadcast and point-to-point transmissions, usually using small UAS (sUAS). Allowing UAS to operate within airspace along with commercial, cargo, and other piloted aircraft will likely require dedicated and protected aviation spectrum-at least in the near term, while regulatory authorities adapt to their use. The command and control (C2), or control and non-payload communications (CNPC)link provides safety critical information for the control of the UAV both in terrestrial-based line of sight (LOS)conditions and in satellite communication links for so-called beyond LOS (BLOS)conditions. In this paper, we provide an overview of these CNPC links as they may be used in 5G and satellite systems by describing basic concepts and challenges. We review new entrant technologies that might be used for UAV C2 as well as for payload communication, such as millimeter wave (mmWave)systems, and also review navigation and surveillance challenges. A brief discussion of UAV-to-UAV communication and hardware issues are also provided.

Thursday, 21 July 2016, 01:47 AMInteresting news
Here is my experience on GPS signal acquisition with Blade RF SDR through GNURADIO on Linux:



----------------------------------------------------------------
Here is a simple FM transmitter using HACKRF SDR (SAME CONFIGURATION FOR OTHER SDRs TOO
you can change he parameters with your own preference
Fm transmitter gnuradio schematic



and here is a amateur video of successfully implementing in home ! smile


----------------------------------------------------------------

Wireless World with Software Defined Radio





ASTOUNDING ATHLETIC POWER OF QUADCOPTERS
In a robot lab at TEDGlobal, Raffaello D'Andrea demos his flying quadcopters: robots that think like athletes, solving physical problems with algorithms that help them learn. In a series of nifty demos, D'Andrea show drones that play catch, balance and make decisions together — and watch out for an I-want-this-now demo of Kinect-controlled quads.

what is LoRa? Channel sounding using SDR with chirp signals SDR satellite signal relay for combating interference






































































 

 

 

 

 

 

 

 







 



Web Statistics