Code Monkey home page Code Monkey logo

teensy-convolutionsdr's Introduction

Teensy-ConvolutionSDR

Software Defined Radio with the Teensy 3.6, the Teensy Audio board and any IQ-Quadrature Sampling Detector

This radio uses the Fast convolution approach to filter and process the radio signals with the floating point microprocessor Teensy 3.6

Reception of longwave, medium wave and shortwave signals from about 12kHz to 30Mhz, additionally undersampling reception of FM broadcast signals 88 - 108MHz in HiFi quality and STEREO

Teensy Convolution SDR Teensy Convolution SDR software running on the hardware designed by Dante DO7JBH

Teensy Convolution SDR video

Teensy Convolution SDR video

Teensy Convolution SDR video

Hardware needed:

  • Teensy 3.6
  • Teensy Audio board
  • QSD = quadrature sampling detector and a local oscillator that can be tuned by I2C (eg. Si5351, Si570, Si514 . . .) [should run with Softrock, Elektor SDR (https://www.elektor.de/elektor-sdr-reloaded-150515-91), Fifi SDR and many others]
  • one encoder for frequency tuning
  • one encoder for filter bandwidth
  • one encoder for volume and analog gain
  • eight pushbuttons (three of them could be encoder pushbuttons)
  • TFT display ILI9341-based
  • antenna for longwave/mediumwave/shortwave
  • 5V power supply

Software setup:

Specifications at the moment:

  • Teensy 3.6 with audio board working in floating point
  • reception from about 12kHz to 30Mhz plus undersampling 3x mode for wideband FM receive
  • FFT and inverse FFT with 512 points using the new CMSIS DSP lib complex FFT function
  • filtering with 257 tap FIR filter (equivalent to 2056 tap filtering because of decimation-by-8) --> comparably steep filters are normally available in commercial receivers from 2000$ upwards ;-)
  • filter coefficients are calculated by the Teensy itself and the filter bandwidth can be chosen arbitrarily by the user in 100Hz-steps (100Hz to 11kHz audio bandwidth)
  • demodulation of AM (nine different algorithms implemented), SAM (real synchronous AM !) with user-selected sidebands and Stereo-SAM, LSB, USB, pseudo-Stereo-USB, pseuso-Stereo-LSB (more to come . . .)
  • display up to 192kHz (281kHz experimental) of frequency spectrum
  • sophisticated automatic gain control (AGC) adapted from the wdsp lib by Warren Pratt
  • Zoom into the spectrum for greater frequency resolution detail (up to 2048x = 0.2Hz resolution per pixel): uses a Zoom FFT approach (Lyons 2011). This allows to differentiate between different carrier frequencies which is helpful in identifying AM medium wave stations (which pretend to transmit on the same frequency, but in fact have differing frequencies, sometimes several Hz, sometimes only several milli-Hz).
  • superb audio quality (of course not like FM quality, but very good compared to other commercially available shortwave receivers)
  • also plays MP3 and M4A files from the SD card in best HiFi stereo quality (with the excellent lib by Frank Bösing)
  • automatic IQ amplitude and phase imbalance correction: this corrects imbalances that are caused by the hardware and results in > 55dBc mirror rejection
  • supports many different sample rates up to 281ksps
  • dynamic frequency indicator figures and graticules on spectrum display x-axis
  • menu system to adjust many variables
  • save and load settings to/from EEPROM
  • demodulation of wide FM broadcast signals: possible at 234ksps sample rate in order to pass through the WFM signal, which has 180kHz bandwidth for MONO and 246kHz for STEREO. The audio quality is superb at 234ksps and still acceptable (but no longer HiFi due to narrow-bandwidth-related distortion) at 96ksps sample rate. The reception of VHF signals is possible by undersampling reception with the QSD at 5th harmonic (receive 95.4MHz at 19.08MHz with LO running at 4 x 19.08MHz = 76.32MHz). Undersampling reception at the 3rd harmonic involves an attenuation of the signals by 9dB, so for better sensitivity a preamp is recommended for undersampling reception in the range of 88 - 150MHz. But even without a preamp the reception is quite good if you are near enough to strong FM broadcast transmitters.
  • automatic test for the "twinpeak syndrome" - a fault in the mirror rejection that occurs sometimes at startup. This is now in most cases detected by the automatic IQ phase correction algorithm and the codec restarted to cure the problem. Bob Larkin has an alternative (better!) approach with cross-correlation which needs a simple hardware addition
  • AGC now has an optical indicator for the AGC threshold and many more AGC parameters can be adjusted
  • Codec gain has now its own automatic AGC
  • Spectrum display now also has an "AGC" that prevents empty screen for small signals
  • Automatic notch filter with LMS algorithm
  • Spectral noise reduction using state-of-the-art DSP algorithms in the frequency domain (Ephraim-Malah variant). This noise reduction is able to pull weak speech signals out of the noise
  • complex FIR filter coefficients implemented --> independent passband tuning with freely adjustable bandwidth now possible for all modes
  • supports newest Arduino and Teensyduino versions 1.8.5 and 1.40
  • state-of-the-art noise blanker by Michael DL2FW integrated
  • added support for SDR hardware by Dante DO7JBH
  • CW (Morse) decoder from UHSDR implemented
  • RTTY decoder from UHSDR implemented
  • alternative RTTY decoder by Martin Ossmann implemented
  • EFR (European Teleswitching) decoding by Martin Ossmann implemented (can be used to automatically set the RTC to the standard atomic clock time)

teensy-convolutionsdr's People

Contributors

dd4wh avatar frankboesing avatar

Watchers

 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.