在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):vsergeev/luaradio开源软件地址(OpenSource Url):https://github.com/vsergeev/luaradio开源编程语言(OpenSource Language):Lua 95.4%开源软件介绍(OpenSource Introduction):LuaRadioLuaRadio is a lightweight, embeddable flow graph signal processing framework for software-defined radio. It provides a suite of source, sink, and processing blocks, with a simple API for defining flow graphs, running flow graphs, creating blocks, and creating data types. LuaRadio is built on LuaJIT, has a small binary footprint of under 750 KB (including LuaJIT), has no external hard dependencies, and is MIT licensed. LuaRadio can be used to rapidly prototype software radios, modulation/demodulation utilities, and signal processing experiments. It can also be embedded into existing radio applications to serve as a user scriptable engine for signal processing. LuaRadio blocks are written in pure Lua, but can use LuaJIT's FFI to wrap external libraries, like VOLK, liquid-dsp, and others, for computational acceleration, sophisticated processing, and interfacing with SDR hardware. Use GNU Radio? See how LuaRadio compares to GNU Radio. See the LuaRadio mailing list for general discussion. ExampleWideband FM Broadcast Radio Receiverlocal radio = require('radio')
radio.CompositeBlock():connect(
radio.RtlSdrSource(88.5e6 - 250e3, 1102500), -- RTL-SDR source, offset-tuned to 88.5MHz-250kHz
radio.TunerBlock(-250e3, 200e3, 5), -- Translate -250 kHz, filter 200 kHz, decimate by 5
radio.FrequencyDiscriminatorBlock(1.25), -- Frequency demodulate with 1.25 modulation index
radio.LowpassFilterBlock(128, 15e3), -- Low-pass filter 15 kHz for L+R audio
radio.FMDeemphasisFilterBlock(75e-6), -- FM de-emphasis filter with 75 uS time constant
radio.DownsamplerBlock(5), -- Downsample by 5
radio.PulseAudioSink(1) -- Play to system audio with PulseAudio
):run() Check out some more examples of what you can build with LuaRadio. Built-in ApplicationsLuaRadio comes with a collection of built-in command-line applications. These applications include radio receivers that are compatible with all SDR sources supported by the framework, as well as file and network sources:
See the Applications documentation for more information on running built-in applications. QuickstartWith LuaJIT installed, LuaRadio can be run directly from the repository:
$ cd luaradio
$ ./luaradio --platform
luajit LuaJIT 2.0.5
os Linux
arch x64
page size 4096
cpu count 4
cpu model Intel(R) Core(TM) i5-4570T CPU @ 2.90GHz
features
fftw3f true fftw-3.3.8-sse2-avx
volk true 2.0 (avx2_64_mmx_orc)
liquid true 1.3.2
$ LuaRadio is accelerated by the optional libraries
liquid-dsp,
VOLK, and fftw. For best
real-time performance, install these libraries and check that the features are
marked
Try out one of the examples with an RTL-SDR dongle:
LuaRadio primarily supports Linux. It also strives to support FreeBSD and macOS, but real-time and audio support on these platforms is currently experimental. LuaRadio and all of its examples run great on the Raspberry Pi 3 with Arch Linux or Raspbian. See the Getting Started guide for a tutorial on building your own flow graphs. InstallationArch Linux users can install LuaRadio with the AUR package macOS users can install LuaRadio with the Homebrew or MacPorts package See the Installation guide for other installation methods and details. Project RoadmapCheck out the project roadmap for upcoming changes. Contributions are welcome! See the contributing document for guidelines. DocumentationLuaRadio documentation is contained in the docs folder.
Project Structure
TestingLuaRadio unit tests are run with busted. Install
Run unit tests with:
LicenseLuaRadio is MIT licensed. See the included LICENSE file. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论