Commit Graph

724 Commits

Author SHA1 Message Date
Jared Boone 0bc8f551de Use matched filter for AIS GMSK demodulation demo.
Less than optimal for plain FSK, but flexible enough to also support GFSK/GMSK. Not at all optimized for SIMD instructions, so may not perform adequately at Bluetooth/GSM rates.
2015-11-06 09:40:00 -08:00
Jared Boone a9c190b6bb Matched filter implementation.
Essentially a complex FIR filter that's more flexible than the ones already in the code base. Refactor?!
2015-11-06 09:40:00 -08:00
Jared Boone e9f28f9ef3 Provide configuration of symbol unstuffing. 2015-11-06 09:40:00 -08:00
Jared Boone a00fcbaa8f Unstuffing pattern length of zero should never match. 2015-11-06 09:40:00 -08:00
Jared Boone 05badaddda Put symbol coding into PacketBuilder.
Removes stuffing symbols before placing them into packet buffer.
2015-11-06 09:40:00 -08:00
Jared Boone c936e09702 Add bit unstuffing algorithm.
For use in AIS. Probably useful elsewhere, too...
2015-11-06 09:39:59 -08:00
Jared Boone 31ff13f1c0 Un-const Message in message handler interfaces.
I want to modify in place the messages that are received. Naughty, but oh well.
2015-11-06 09:39:59 -08:00
Jared Boone 5c31e803c8 Change interface to AccessCodeCorrelator, inline in header. 2015-11-06 09:39:59 -08:00
Jared Boone a3cce5632e Complete rewrite of clock recovery, lots of refactoring. 2015-11-06 09:39:59 -08:00
Jared Boone 8b2e75a299 Add LinearResampler implementation for clock recovery. 2015-11-06 09:39:59 -08:00
Jared Boone f13e2d32c0 Add symbol coding namespace, NRZI decoder. 2015-11-06 09:39:59 -08:00
Jared Boone 934936d3f6 Enhancements to clock recovery
Linearly interpolate input and delayed samples, based on phase of internal symbol clock.
2015-11-06 09:39:59 -08:00
Jared Boone 291de8f869 Change channel_spectrum type to std::complex<float>.
Move FFT bit-reversal to complex<int16_t> -> complex<float> copy.
Change window so that adjacent bins have constant(-ish) gain.
Change window to float.
Change time domain samples to accumulate at even intervals over the FFT interval.
2015-10-14 11:10:24 -07:00
Jared Boone 7f46f0d071 Add tick tracking for all baseband threads. 2015-10-14 10:44:20 -07:00
furrtek ff96464efe Added AFSK BW and repeat parameters 2015-09-16 15:43:43 +02:00
furrtek 9a7657fb38 Play dead actually works, fixed 7bit AFSK, AFSK repeat, started whistle mode 2015-09-10 20:36:39 +02:00
furrtek 30531a20f2 Splash screen and Play Dead functionality 2015-09-04 20:37:27 +02:00
furrtek ec26f587f1 Started adding AFSK modulator options, cleaning up LCR TX 2015-09-03 06:34:00 +02:00
Jared Boone e2bb77d756 Change wideband FFT bin filter, clean up code a bit. 2015-09-02 11:29:38 -07:00
Jared Boone c4de9c4423 Mute audio whenever baseband mode is changed. 2015-09-01 21:05:47 -07:00
Jared Boone c52de7abe6 Clean up baseband/RSSI streaming control.
Address hang-up of baseband and RSSI when switching modulation modes really fast.
2015-09-01 21:05:32 -07:00
Jared Boone 5d8c636f40 Halt M4 right after sending M0 the shutdown message.
Addresses issue #55.
2015-09-01 13:49:09 -07:00
furrtek 0e0261f813 LCR in TEDI 1200/2400 AFSK transmit 2015-08-28 20:50:42 +02:00
Jared Boone 3fea68d777 Adjust wideband specan gain to match other modes. 2015-08-27 14:57:05 -07:00
Jared Boone b13081696d Simplify MessageQueue pop() usage. 2015-08-27 14:35:17 -07:00
Jared Boone d8b3b4cb6b Check queue empty only once when reading messages.
There was a second is_empty() call hidden in the pop() call, so the while(condition) was redundant.
2015-08-27 14:27:29 -07:00
Jared Boone e751e10e45 Add wideband spectrum processor. 2015-08-27 13:57:31 -07:00
Jared Boone 23ac04ad56 Make channel spectrum members protected, not private. 2015-08-27 13:51:55 -07:00
Jared Boone c7907e948c Extract FSKProcessor into separate files. 2015-08-27 13:31:39 -07:00
Jared Boone ffe829cf67 Extract WidebandFMAudio into separate files. 2015-08-27 13:19:34 -07:00
Jared Boone 7c5db55f8f Extract NarrowbandFMAudio into separate files. 2015-08-27 13:14:45 -07:00
Jared Boone e246ea2c39 Extract NarrowbandAMAudio class into separate files. 2015-08-27 13:07:07 -07:00
Jared Boone 6bf61cbe88 Extract BasebandProcessor into separate files. 2015-08-27 11:11:08 -07:00
Jared Boone b0e9afe26c Add missing #includes. 2015-08-27 11:10:44 -07:00
Jared Boone 04d05368c7 Push static variables and spectrum calc into BasebandProcessor. 2015-08-27 10:48:29 -07:00
Jared Boone de0777f476 Extract FMSquelch into separate files. 2015-08-27 09:59:03 -07:00
Jared Boone b904971ef2 Extract IIR filter configurations into separate file. 2015-08-27 09:58:37 -07:00
Jared Boone c92bf12fbd Extract ChannelDecimator into separate files. 2015-08-27 09:49:14 -07:00
Jared Boone 98773cb62a Make GIT_REVISION value available within code.
Addresses issue #59.
No idea what it'll do if the commit is also tagged as a release...
2015-08-25 16:33:52 -07:00
furrtek 8f815a3b39 Integerized the waveform table 2015-08-24 05:16:55 +02:00
furrtek 8e0210f944 Savestate ! RDS (only PSN) tx 2015-08-23 05:08:38 +02:00
Jared Boone 3a96c04aa7 Implement, use configuration for FM demod deviation. 2015-08-21 09:19:08 -07:00
Jared Boone fa275156ed Move FSKPacketMessage to stack. 2015-08-21 09:18:21 -07:00
Jared Boone 589cb47cc6 Move M4 shutdown() next to init(). 2015-08-20 20:40:46 -07:00
Jared Boone 672284080b Extract M4 IPC IRQ code into separate file. 2015-08-20 20:39:08 -07:00
Jared Boone 690c3c98db Add Shutdown message, plumbing to send and handle. 2015-08-20 18:03:49 -07:00
Jared Boone 15791e345d Make baseband event loop methods private. 2015-08-20 17:57:59 -07:00
Jared Boone 9742a058e9 Move event loop into dispatcher, provide a way to exit. 2015-08-20 17:56:19 -07:00
Jared Boone 4126f1ab1f Change IPC to exchange data, not pointers. 2015-08-20 13:13:12 -07:00
Jared Boone a7226820d0 Hide implementation of MessageHandlerMap. 2015-08-14 17:31:23 -07:00