Extract spectrum collector from BasebandProcessor.

Code size improvement, and less confused classes. :-)
This commit is contained in:
Jared Boone 2015-12-11 12:26:45 -08:00
parent 75b1cc25ff
commit 088f60f2bc
15 changed files with 193 additions and 86 deletions

View file

@ -43,24 +43,24 @@ void WidebandSpectrum::execute(const buffer_c8_t& buffer) {
std::fill(spectrum.begin(), spectrum.end(), 0);
}
if( (phase & 7) == 0 ) {
for(size_t i=0; i<spectrum.size(); i++) {
// TODO: Removed window-presum windowing, due to lack of available code RAM.
// TODO: Apply window to improve spectrum bin sidelobes.
for(size_t i=0; i<channel_spectrum.size(); i++) {
spectrum[i] += buffer.p[i];
}
spectrum[i] += buffer.p[i + 0];
spectrum[i] += buffer.p[i + 1024];
}
if( phase == 23 ) {
if( channel_spectrum_request_update == false ) {
fft_swap(spectrum, channel_spectrum);
channel_spectrum_sampling_rate = buffer.sampling_rate;
channel_filter_pass_frequency = 0;
channel_filter_stop_frequency = 0;
channel_spectrum_request_update = true;
events_flag(EVT_MASK_SPECTRUM);
phase = 0;
}
if( phase == 127 ) {
const buffer_c16_t buffer_c16 {
spectrum.data(),
spectrum.size(),
buffer.sampling_rate
};
channel_spectrum.feed(
buffer_c16,
0, 0
);
phase = 0;
} else {
phase++;
}