-
Notifications
You must be signed in to change notification settings - Fork 179
MatlabOctaveSupport
Nicholas Corgan edited this page Sep 11, 2022
·
3 revisions
If you've stumbled upon this page, this is referring to in-progress development, and the information within can change at any point before release.
See this branch.
The Matlab and Octave SoapySDR bindings use the MEX interface to provide a common API, allowing scripts to be used for both programs. The API is largely based on that of the C++ API, with some extensions added to provide a more familiar user experience. Overloaded functions are separated, with each function matching the corresponding C API function name.
Deviations from this policy are documented below.
TODO
- Any recent version should be fine. Development was done with Octave 5.2.0 and 7.2.0.
- The Octave installation must include the
octave-config
andmkoctfile
programs.
Ubuntu
sudo apt install liboctave-dev
OS X
brew install octave
TODO
TODO
% Enumerate devices
results = SoapySDR_Device.enumerate();
for result = results
disp(result);
end
% Create device instance.
% Args can be user-defined or from the enumeration result. (TODO: actually support this)
sdr = SoapySDR_Device("driver", "rtlsdr");
% Query device info.
printf("Antennas:\n");
for antenna = sdr.listAntennas(SoapySDR_Direction.Rx, 0)
printf(" * %s\n", antenna{1});
end
printf("Gains:\n");
for gain = sdr.listGains(SoapySDR_Direction.Rx, 0)
printf(" * %s\n", gain{1});
end
printf("Frequency ranges:\n");
for freq_range in sdr.getFrequencyRange(SoapySDR_Direction.Rx, 0)
printf(" * %s\n", freq_range{1}.disp());
end
% Apply settings.
sdr.setSampleRate(SoapySDR_Direction.Rx, 0, 1e6);
sdr.setFrequency(SoapySDR_Direction.Rx, 0. 912.3e6);
% Set up complex float stream.
rx_stream = sdr.setupStream(SoapySDR_Direction.Rx, 0, SoapySDR_StreamFormat.CF32, {0}, ...
"bufflen", 1024, ...
"buffers", 15);
% Receive some samples.
for i = 1:10
end
% TODO: finish
TODO
- FAQ
- Build guide
- Driver guide
- SoapySDR header files
- Doxygen documentation
- Python binding support
- LuaJIT binding support
- .NET binding support
- GO binding support
- Rust binding support
- Julia binding support
- Pothos SDR Tutorial
- Help and support
- Pothos users' group
- Twitter @pothosware
- IRC chat #pothos
- Slack workspace
- Contract services
- Developer blog
- Contributing
- Donate
- Example support
- Remote access
- Multi device
- Device sharing
- SIMD converters
- Audio devices
- Osmo support
- NovenaRF support
- EVB7 support
- UHD support
- Blade RF support
- Hack RF support
- RTL-SDR support
- SDR Play support
- Radioberry support
- Red Pitaya support
- Lime Suite support
- Airspy support
- Airspy HF+ support
- PlutoSDR support
- Skylark Iris module
- Funcube Dongle Pro+
- IC-R8600 Receiver
- Epiq Sidekiq
- NetSDR support
- XTRX support
- RTL TCP support
- SpyServer support
- Afedri support
- Pothos SDR
- Cubic SDR
- Rx Tools
- LuaRadio
- GNURadio blocks
- Osmocom blocks
- QSpectrumAnalyzer
- RTL433 project
- Welle.io DAB/DAB+
- SDRangel analyzer
- RTLSDR-Airband
- HABDEC RTTY decoder
- LinHPSDR receiver
- HackTV transmitter
- ODR-DabMod
- QUISK SDR
- SigDigger
- Suscan
- SdrGlut
- QRadioLink
- OpenWebRX
- SDR++
- Seify
- Abraca DAB radio