Commit Graph

577 Commits

Author SHA1 Message Date
Jared Boone
222b878629 Use BasebandProcessor::mute_audio(), remove I2S #include dependencies. 2016-01-04 09:07:07 -08:00
Jared Boone
ef6ae8ed94 Add mute_audio() function to baseband processor. 2016-01-04 09:06:17 -08:00
Jared Boone
8fb3ffaedc Reorder squelch code to group things a bit more logically. 2016-01-04 09:01:51 -08:00
Jared Boone
b0855b3c4d Pass buffers by reference to save significant text section code size.
752 bytes!
2016-01-03 23:09:06 -08:00
Jared Boone
b03da8d693 Fix calculation of work_audio_buffer item count. 2016-01-03 22:42:40 -08:00
Jared Boone
d9017530c6 Moved baseband temporary buffers back into class member variables.
Significant performance hit when declaring on stack. C++ wants to initialize std::array or even raw array with element constructors, was resulting in ~7% CPU utilization, for a buffer that was immediately written over anyway.
2016-01-03 22:31:44 -08:00
Jared Boone
5547782f5a Improve FFT twiddle factor precisions using Python SymPy.
Python math, numpy, scipy produce values with significant rounding errors.
2016-01-03 21:02:44 -08:00
Jared Boone
963b6e257a FFT twiddles can be used for all K <= table length.
Change assert to allow FFTs < 8.
2016-01-03 20:25:31 -08:00
Jared Boone
54e59cc224 Hard-code K=8 FFT twiddle constants for now.
So low on baseband RAM! This eliminates the sin_f32() function and table, which is only used in the FFT, for the moment.
2016-01-03 20:08:26 -08:00
Jared Boone
65dd385c94 Little FFT loop indexing tweak. 2016-01-03 17:47:08 -08:00
Jared Boone
78992c2f8d Adjust default FM squelch threshold. 2016-01-03 17:05:00 -08:00
Jared Boone
8adaddac5f Make FM squelch runtime-configurable. 2016-01-03 17:03:16 -08:00
Jared Boone
86cf967464 Simplify FM demodulator class. Remove duplicate code. 2016-01-03 16:58:36 -08:00
Jared Boone
10bce4b845 Clean up #includes. 2016-01-03 16:58:08 -08:00
Jared Boone
28be223ace Fix for merge-breakage. Argh. 2016-01-03 16:37:47 -08:00
Jared Boone
3f299c74c6 More old GCC fussiness fixes. 2016-01-03 16:32:45 -08:00
Jared Boone
62ee26e763 OK... Nuke list initializations. 2016-01-03 16:28:09 -08:00
Jared Boone
422f6c6960 Don't pass by reference in message constructors. 2016-01-03 16:21:17 -08:00
Jared Boone
b5aa2b205f Implement AMConfigureMessage from M0 to M4. 2016-01-03 14:31:39 -08:00
Jared Boone
f2f7032615 Wideband FM configuration messages from M0. 2016-01-03 13:38:55 -08:00
Jared Boone
317ec53638 Handle NBFM configuration message on M4 processor side. 2016-01-03 12:49:00 -08:00
Jared Boone
7496c2aced Send NBFM configuration message from M0 to M4. 2016-01-03 12:47:22 -08:00
Jared Boone
0497dbf62f NBFM configuration message.
Allows changing NBFM filter configurations from M0.
2016-01-03 12:46:21 -08:00
Jared Boone
a5012427d8 Remove little bit of dead code. 2016-01-03 12:45:34 -08:00
Jared Boone
c179b9e1cd Move FIR filter configs to common/, so M0 can use it.
Planning to pass from M0 to M4 so M4 doesn't need to keep all these different filter configs in text section.
2016-01-03 12:45:15 -08:00
Jared Boone
39ca6fec62 Transform update spectrum event into message. 2016-01-03 12:05:47 -08:00
Jared Boone
c9f9d97d07 Move BasebandConfiguration message handling into baseband thread. 2016-01-03 11:49:01 -08:00
Jared Boone
fd612dc207 Baseband: Pass unhandled messages to baseband thread, processor. 2016-01-02 22:59:31 -08:00
Jared Boone
07cd99d85d Removing baseband MessageHandlerMap.
It's a bit heavy (362 bytes smaller with switch/case implementation), hard to access to add/remove handlers, doesn't bubble events like I'd like. (I'm going to bubble events to the baseband processor shortly.)
2016-01-02 22:54:09 -08:00
Jared Boone
fea5dd536f Move baseband working buffers from member variables to stack.
It's temporary, after all...
2016-01-02 12:08:21 -08:00
Jared Boone
e7be7c5121 Comments about IFIR filter taps design parameters. 2016-01-02 10:49:37 -08:00
Jared Boone
410d4d7fc3 Use IFIR decimator for TPMS. 2016-01-02 10:42:40 -08:00
Jared Boone
e720bfb054 Use IFIR decimation for broadcast FM receiver. 2016-01-02 10:35:23 -08:00
Jared Boone
a02bfe55d0 Decimators for wider IFIR output bandwidth. 2016-01-02 10:34:17 -08:00
Jared Boone
096ebe47d8 Turn almost-zeros in TPMS matched filter to actual zeros. 2016-01-02 10:24:49 -08:00
Jared Boone
0e04939439 Broadcast FM de-emphasis using 75us time constant. 2016-01-01 20:56:30 -08:00
Jared Boone
2e90edbf39 Add 30Hz high-pass IIR filter for wideband FM. 2016-01-01 20:55:00 -08:00
Jared Boone
9a0fb2cab7 Rename IIR filter for 300Hz high-pass. 2016-01-01 20:53:11 -08:00
Jared Boone
ff05833b02 Use new decimation filters in AIS processor. 2016-01-01 13:20:02 -08:00
Jared Boone
316d5d433b Move IIR code into .cpp file.
A few hundred more text section bytes saved.
2015-12-31 10:52:28 -08:00
Jared Boone
9fb22dfd1f Reduce type size for int16_t squared values. 2015-12-31 10:09:42 -08:00
Jared Boone
ef37bbd851 Small FM squelch simplification. 2015-12-31 10:08:41 -08:00
Jared Boone
0962343190 Use decimation variable, not hard-coded value.
Break in form from NBFM code.
2015-12-30 12:20:25 -08:00
Jared Boone
7de80edcd3 Move baseband FIR filter defs to common file.
They will likely be shared with multiple decimators/demodulators.
Also added normalized filter pass/stop values to each set of taps.
2015-12-30 12:19:42 -08:00
Jared Boone
3db0820b54 Remove LOCATE_IN_RAM from DMA IRQ handler
Not needed for M4, was causing code to be located in data RAM, and veneers to jump between code and data RAM. Reclaimed a few hundred bytes of code RAM.
2015-12-29 11:24:23 -08:00
Jared Boone
bbfcca8ec0 Rebake of AM, NFM demodulators -- more flexible filtering/configuration.
Also make SpectrumCollector dynamically configurable.
Add deemphasis filter to NFM.
2015-12-29 11:02:07 -08:00
Jared Boone
df593c2f0f Run codec at 1 x baseband sample rate. Do not use CPLD decimator.
Codec performance appears to be unaffected by <8MHz sample rate. Saves a bit of power, eliminates dependency on CPLD decimation feature.
2015-12-29 10:55:55 -08:00
Jared Boone
549e5b9ddc Unrolled FIR filters for more flexible baseband filtering (using IFIR technique). 2015-12-29 10:48:29 -08:00
Jared Boone
87c9772128 More M4 instruction wrappers, with vector typed arguments. 2015-12-28 16:52:10 -08:00
Jared Boone
f74e6690cb Utilize class types for member variables -- slightly more generic. 2015-12-28 16:51:34 -08:00