GithubHelp home page GithubHelp logo

libraiger / airspyhffmradion Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 318 KB

See jj1bdx/airspy-fmradion for the further development // FM receiver for Airspy HF (fork from airspy-fmradion)

License: GNU General Public License v3.0

CMake 2.54% C++ 96.74% C 0.72%

airspyhffmradion's Introduction

airspyhf-fmradion

This repository is archived. See airspy-fmradion for the further development.

  • Version v0.1.2, 10-MAR-2019
  • Software decoder for FM broadcast radio with AirSpy
  • For MacOS and Linux
  • This repository is forked from airspy-fmradion 0.2.7

Usage

airspyhf-fmradion -q -c freq=88100000
    -b 1.0 -R - | \
    play -t raw -esigned-integer -b16 -r 48000 -c 2 -q -

Introduction

airspyhf-fmradion is a software-defined radio receiver for FM broadcast radio, specifically designed for Airspy HF (Airspy HF+).

airspyhf-fmradion provides

  • mono or stereo decoding of FM broadcasting stations
  • buffered real-time playback to soundcard or dumping to file
  • command-line interface (only)

airspyhf-fmradion requires

  • Linux / macOS
  • C++11 (gcc, clang/llvm)
  • Airspy HF library
  • sox
  • Tested: Airspy R2
  • Fast computer
  • Medium-strong FM radio signal

For the latest version, see https://github.com/jj1bdx/airspyhf-fmradion

Branches and tags

  • Official releases are tagged
  • master is the "production" branch with the most stable release (often ahead of the latest release though)
  • dev is the development branch that contains current developments that will be eventually released in the master branch
  • Other branches are experimental (and abandoned)

Prerequisites

Base requirements

  • sudo apt-get install cmake pkg-config libusb-1.0-0-dev libasound2-dev libboost-all-dev

Airspy support

If you install from source in your own installation path, you have to specify the include path and library path. For example if you installed it in /opt/install/libairspy you have to add -DAIRSPYHF_INCLUDE_DIR=/opt/install/libairspyhf/include to the cmake options.

To install the library from a Debian/Ubuntu installation just do:

  • sudo apt-get install libairspyhf-dev

macOS

brew tap pothosware/homebrew-pothos
brew tap dholm/homebrew-sdr #other sdr apps
brew update
brew install airspyhf --HEAD

Installing

To install airspyhf-fmradion, download and unpack the source code and go to the top level directory. Then do like this:

  • mkdir build
  • cd build
  • cmake ..

CMake tries to find librtlsdr. If this fails, you need to specify the location of the library in one the following ways:

  • cmake .. -DAIRSPYHF_INCLUDE_DIR=/path/airspyhf/include -DAIRSPYHF_LIBRARY_PATH=/path/rtlsdr/lib/libairspyhf.a
  • PKG_CONFIG_PATH=/path/to/rtlsdr/lib/pkgconfig cmake ..

Compile and install

  • make -j4 (for machines with 4 cores)
  • make install

Basic command options

  • -q Quiet mode.
  • -c config Comma separated list of configuration options as key=value pairs or just key for switches. Depends on device type (see next paragraph).
  • -d devidx Device index, 'list' to show device list (default 0)
  • -M Disable stereo decoding
  • -R filename Write audio data as raw S16_LE samples. Uuse filename - to write to stdout
  • -W filename Write audio data to .WAV file
  • -P [device] Play audio via ALSA device (default default). Use aplay -L to get the list of devices for your system
  • -T filename Write pulse-per-second timestamps. Use filename '-' to write to stdout
  • -b seconds Set audio buffer size in seconds
  • -X Shift pilot phase (for Quadrature Multipath Monitor) (-X is ignored under mono mode (-M))
  • -U Set deemphasis to 75 microseconds (default: 50)

Modification from airspy-fmradion v0.2.7

Removed features

  • Remove most of configuration options (unnecessary for Airspy HF)
  • LPFIQ is single-stage

No-goals

  • Adaptive IF filtering (unable to obtain better results)

Conversion process

  • IF center frequency is down Fs/4 than the station frequency, i.e: when the station is 76.5MHz, the tuned frequency is 76.308MHz
  • Airspy FM allows only 660kHz alias-free BW, so the maximum alias-free BW for IF is (660/2)kHz - 192kHz = 138kHz
  • FM demodulation rate: 384kHz
  • 48 * 16 = 768, so all filters are in integer sampling rates
  • CPU usage: ~9% on Mac mini 2018 / macOS 10.14.3
  • CPU usage: ~60% on Intel NUC DN2820FYKH Celeron N2830 / Ubuntu 18.04 (usable range with 2 cores)

Filter characteristics

  • IF first stage (768kHz -> 384kHz) : <-0.01dB: 80kHz, -3dB: 100kHz, -90dB: 135kHz
  • Audio first stage (384kHz -> 96kHz) : <-0.01dB: 19kHz, -3dB: 28.6kHz, -90dB: 47.2kHz
  • Audio second stage (96kHz -> 48kHz) : <-0.01dB: 15kHz, -3dB: 16.4kHz, -90dB: 18.8kHz

Airspy HF configuration options

  • freq=<int> Desired tune frequency in Hz. Valid range from 60M to 240M. (default 100M: 100000000)
  • srate=<int> Device sample rate. list lists valid values and exits. (default 768000). Valid values depend on the Airspy HF firmware. Airspy HF firmware and library must support dynamic sample rate query.

Authors

  • Joris van Rantwijk
  • Edouard Griffiths, F4EXB (no longer involving in maintaining NGSoftFM)
  • Kenji Rikitake, JJ1BDX (maintainer)

Acknowledgments

License

  • As a whole package: GPLv3 (and later). See LICENSE.
  • Some source code files are stating GPL "v2 and later" license.

airspyhffmradion's People

Contributors

libraiger avatar

Stargazers

 avatar Hamada avatar Paul Koop avatar hasantareh avatar

Watchers

 avatar

Forkers

hasantare

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.