Skip to content

Instantly share code, notes, and snippets.

@kolen
Created July 3, 2016 17:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kolen/82c5afbc822a6038f92ac73b48d564db to your computer and use it in GitHub Desktop.
Save kolen/82c5afbc822a6038f92ac73b48d564db to your computer and use it in GitHub Desktop.
local radio = require('radio')
local source = radio.RealFileSource('/tmp/dikarka.raw', 's16le', 44100)
local sink = radio.JSONSink()
local top = radio.CompositeBlock()
local source_complex = radio.RealToComplexBlock()
local space_filter = radio.ComplexBandpassFilterBlock(129, {1800, 2200})
local mark_filter = radio.ComplexBandpassFilterBlock(129, {900, 1100})
local space_magnitude = radio.ComplexMagnitudeBlock()
local mark_magnitude = radio.ComplexMagnitudeBlock()
local subtractor = radio.SubtractBlock()
local data_filter = radio.LowpassFilterBlock(128, 2000)
local clock_recoverer = radio.ZeroCrossingClockRecoveryBlock(2000)
local sampler = radio.SamplerBlock()
local bit_slicer = radio.SlicerBlock()
top:connect(source, source_complex)
top:connect(source_complex, space_filter, space_magnitude)
top:connect(source_complex, mark_filter, mark_magnitude)
top:connect(mark_magnitude, 'out', subtractor, 'in1')
top:connect(space_magnitude, 'out', subtractor, 'in2')
top:connect(subtractor, data_filter, clock_recoverer)
top:connect(data_filter, 'out', sampler, 'data')
top:connect(clock_recoverer, 'out', sampler, 'clock')
top:connect(sampler, bit_slicer, sink)
--top:connect(source, sink)
top:run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment