Skip to content
demonstrationprogram for various FIR filters
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Makefile
README.md
blackman-harris.cpp
blackman-harris.h
blackman.cpp
blackman.h
controller.cpp
controller.h
fft.cpp
fft.h
filter-demo-1.png
filter-demo-2.png
filter-demo-3.png
filter-demo-4.png
filter-demo.pro
filter-demo.ui
filters.cpp
filters.h
hamming.cpp
hamming.h
hann.cpp
hann.h
main.cpp
scope.cpp
scope.h

README.md

#filter-demo

Especially for smallband reception, as in e.g. shortwave reception one needs decent filters. In the swradio-8 software, the supported devices only support wide band reception (i.e. 2M or more). For e.g cw reception, or psk reception, one needs a bandwidth of up to 100 Hz, so we need decimation and filtering.

Even for DAB, one sometimes does need filtering. The AIRspy, a popular device, only provides output with fixed rates. The AIRspy mini e.g. sends out its data with a rate of 3M, since the channels have a width of 1536K, there is an issue with DX-ing on adjacent channels.

For sw reception, we map from 2112KHz to 96Khz (integer division), and then to 12 Khz. The actual decoder is free to extract a subband by further filtering.

To prevent phase issues, filtering is done by Finite Impulse Response filtering.

Just as an example, filters are shown, based on different windowing approaches, all with the same setting.

filter-demo filter-demo filter-demo filter-demo

The parameters to be set are

  • the filter depth (we use two filters with a degree of 255, implemented
    through using an FFT technique)
  • the signal width, in the range 0 .. 0.5. As an example, if you filter
    a signal with a samplerate of 96000, a band of 9600 equates to a setting of 0.1.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.