Coder Social home page Coder Social logo

cuda-filterbank's Introduction

Overview

These programs implement a software defined reciever that channelzes all 100 FM stations using a uniform DFT filter bank. There are three programs.

  1. The first program uses the UHD to control the USRP hardware and writes to shared memory.
  2. The second program reads from shared memory, process the signal on the GPU using the C-API for CUDA, and writes the output to standard out.
  3. The third program (SoX) receives the signal through a pipe and reads from standard input. SoX writes the audio to the sound card.

Computer hardware information

We are using Ubuntu 16.04 LTS and a Nvidia GeForce GTX 1080 Ti GPU.

Radio hardware information

We are using a generic scanner antenna (25-1300 MHz) connected to a custom bandpass filter (KR Electronics) passing the 20 MHz wide FM band (88-108 MHz). The BPF output is connected to a USRP B205mini-i, which is connected to the PC via USB3.0. The programs below shift the center of the FM band to zero frequency (zero-IF receiver) and the stations are separated using a filterbank implemented on the GPU. An FM station is demodulated and sample rate converted to 40 kSamples/second. The audio signal is piped to Sox for listening.

Software, drivers, libraries

These programs require the following software:

USRP stream program:

Compile Instructions:

usrp_stream4.cpp -o usrp_stream4 -luhd -lboost_system -lboost_thread -lboost_program_options

Execute Instructions: (NOTE: Launch this program after the filterbank3.)

./usrp_stream4.cpp --rate 20000000 --freq 98100000 --spb 16384 --type float

Filterbank program:

Compile Instructions:

nvcc filtbank3.cu -o filtbank3 -lcufft

Execute Instructions: (NOTE: Launch this program before usrp_stream4. The output of this program is piped to SoX for audio.)

./filtbank3 <radio station (i.e. 92.9)> | play --rate 40k -b 32 -c 1 -e float -t raw -

cuda-filterbank's People

Contributors

rumbonium avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.