From d77337dd778d7638f83b3b761f1a22f1de283add Mon Sep 17 00:00:00 2001 From: furrtek Date: Tue, 28 Nov 2017 08:52:04 +0100 Subject: [PATCH] Added CTCSS decoder in NFM RX RSSI output is now pitch instead of PWM Disabled RSSI output in WBFM mode --- firmware/application/analog_audio_app.cpp | 28 ++++++- firmware/application/analog_audio_app.hpp | 28 +++++-- firmware/application/baseband_api.cpp | 5 +- firmware/application/baseband_api.hpp | 2 +- firmware/application/tone_key.cpp | 3 +- firmware/application/tone_key.hpp | 2 +- firmware/application/ui_record_view.cpp | 25 +++---- firmware/application/ui_record_view.hpp | 6 +- firmware/application/ui_rssi.cpp | 13 ++-- firmware/application/ui_rssi.hpp | 12 +-- firmware/baseband/proc_nfm_audio.cpp | 87 +++++++++++++++------- firmware/baseband/proc_nfm_audio.hpp | 45 +++++++---- firmware/baseband/proc_wfm_audio.cpp | 72 ++++++------------ firmware/baseband/proc_wfm_audio.hpp | 12 --- firmware/common/dsp_fir_taps.hpp | 47 +++++++++++- firmware/common/dsp_iir_config.hpp | 7 ++ firmware/common/message.hpp | 30 +++++--- firmware/portapack-h1-havoc.bin | Bin 937480 -> 937896 bytes firmware/tools/fir_lpf.py | 20 +++++ 19 files changed, 284 insertions(+), 160 deletions(-) create mode 100644 firmware/tools/fir_lpf.py diff --git a/firmware/application/analog_audio_app.cpp b/firmware/application/analog_audio_app.cpp index 91a682f5f..199c68d95 100644 --- a/firmware/application/analog_audio_app.cpp +++ b/firmware/application/analog_audio_app.cpp @@ -26,6 +26,7 @@ #include "portapack.hpp" #include "portapack_persistent_memory.hpp" using namespace portapack; +using namespace tonekey; #include "audio.hpp" #include "file.hpp" @@ -97,6 +98,7 @@ AnalogAudioView::AnalogAudioView( &field_vga, &options_modulation, &field_volume, + &text_ctcss, &record_view, &waterfall, }); @@ -203,6 +205,8 @@ void AnalogAudioView::remove_options_widget() { options_widget.reset(); } + text_ctcss.hidden(true); + field_lna.set_style(nullptr); options_modulation.set_style(nullptr); field_frequency.set_style(nullptr); @@ -253,7 +257,7 @@ void AnalogAudioView::on_show_options_modulation() { break; case ReceiverModel::Mode::NarrowbandFMAudio: - widget = std::make_unique(options_view_rect, &style_options_group); + widget = std::make_unique(nbfm_view_rect, &style_options_group); break; default: @@ -262,6 +266,8 @@ void AnalogAudioView::on_show_options_modulation() { set_options_widget(std::move(widget)); options_modulation.set_style(&style_options_group); + + if (modulation == ReceiverModel::Mode::NarrowbandFMAudio) text_ctcss.hidden(false); } void AnalogAudioView::on_frequency_step_changed(rf::Frequency f) { @@ -326,4 +332,24 @@ void AnalogAudioView::squelched() { if (exit_on_squelch) nav_.pop(); } +void AnalogAudioView::handle_coded_squelch(const uint32_t value) { + //const std::string value_string = to_string_dec_uint(value / 10) + "." + to_string_dec_uint(value % 10); + float diff, min_diff = value; + size_t min_idx { 0 }; + size_t c; + + for (c = 0; c < KEY_TONES_NB; c++) { + diff = abs(((float)value / 100.0) - tone_keys[c].second); + if (diff < min_diff) { + min_idx = c; + min_diff = diff; + } + } + + if (min_diff < 40) + text_ctcss.set("CTCSS " + tone_keys[min_idx].first); + else + text_ctcss.set("???"); +} + } /* namespace ui */ diff --git a/firmware/application/analog_audio_app.hpp b/firmware/application/analog_audio_app.hpp index 61294e01f..fdbf5b1a5 100644 --- a/firmware/application/analog_audio_app.hpp +++ b/firmware/application/analog_audio_app.hpp @@ -30,6 +30,8 @@ #include "ui_font_fixed_8x16.hpp" +#include "tone_key.hpp" + namespace ui { constexpr Style style_options_group { @@ -68,7 +70,6 @@ private: { 0 * 8, 0 * 16, 2 * 8, 1 * 16 }, "BW", }; - OptionsField options_config { { 3 * 8, 0 * 16 }, 4, @@ -80,14 +81,13 @@ private: }; Text text_squelch { - { 9 * 8, 0 * 16, 7 * 8, 1 * 16 }, - "SQ /100" + { 9 * 8, 0 * 16, 8 * 8, 1 * 16 }, + "SQ /99" }; - NumberField field_squelch { { 12 * 8, 0 * 16 }, - 3, - { 0, 100 }, + 2, + { 0, 99 }, 1, ' ', }; @@ -108,6 +108,7 @@ private: static constexpr ui::Dim header_height = 3 * 16; const Rect options_view_rect { 0 * 8, 1 * 16, 30 * 8, 1 * 16 }; + const Rect nbfm_view_rect { 0 * 8, 1 * 16, 18 * 8, 1 * 16 }; NavigationView& nav_; bool exit_on_squelch { false }; @@ -154,6 +155,11 @@ private: 1, ' ', }; + + Text text_ctcss { + { 19 * 8, 1 * 16, 11 * 8, 1 * 16 }, + "" + }; std::unique_ptr options_widget { }; @@ -181,6 +187,7 @@ private: void update_modulation(const ReceiverModel::Mode modulation); void squelched(); + void handle_coded_squelch(const uint32_t value); MessageHandlerRegistration message_handler_squelch_signal { Message::ID::RequestSignal, @@ -189,7 +196,14 @@ private: this->squelched(); } }; - + + MessageHandlerRegistration message_handler_coded_squelch { + Message::ID::CodedSquelch, + [this](const Message* const p) { + const auto message = *reinterpret_cast(p); + this->handle_coded_squelch(message.value); + } + }; }; } /* namespace ui */ diff --git a/firmware/application/baseband_api.cpp b/firmware/application/baseband_api.cpp index d8867d8d9..790948347 100644 --- a/firmware/application/baseband_api.cpp +++ b/firmware/application/baseband_api.cpp @@ -171,10 +171,9 @@ void set_fifo_data(const int8_t * data) { send_message(&message); } -void set_pwmrssi(int32_t avg, bool enabled) { - const PWMRSSIConfigureMessage message { +void set_pitch_rssi(int32_t avg, bool enabled) { + const PitchRSSIConfigureMessage message { enabled, - 1000, // 1kHz avg }; send_message(&message); diff --git a/firmware/application/baseband_api.hpp b/firmware/application/baseband_api.hpp index 78b939509..01c38a9cc 100644 --- a/firmware/application/baseband_api.hpp +++ b/firmware/application/baseband_api.hpp @@ -63,7 +63,7 @@ void set_sstv_data(const uint8_t vis_code, const uint32_t pixel_duration); void set_audiotx_data(const uint32_t divider, const uint32_t bw, const uint32_t gain_x10, const uint32_t tone_key_delta, const float tone_key_mix_weight); void set_fifo_data(const int8_t * data); -void set_pwmrssi(int32_t avg, bool enabled); +void set_pitch_rssi(int32_t avg, bool enabled); void set_afsk_data(const uint32_t afsk_samples_per_bit, const uint32_t afsk_phase_inc_mark, const uint32_t afsk_phase_inc_space, const uint8_t afsk_repeat, const uint32_t afsk_bw, const uint8_t symbol_count); void kill_afsk(); diff --git a/firmware/application/tone_key.cpp b/firmware/application/tone_key.cpp index 044e8e261..60f7a6a4c 100644 --- a/firmware/application/tone_key.cpp +++ b/firmware/application/tone_key.cpp @@ -79,7 +79,8 @@ const tone_key_t tone_keys[] = { { "50 0Z", 254.100 }, { "Axient 28kHz", 28000.0 }, { "Sennheiser 32.768k", 32768.0 }, - { "Sennheiser 32kHz", 32000.0 }, + { "Sennheiser 32.000k", 32000.0 }, + { "Sony 32.382k", 32382.0 }, { "Shure 19kHz", 19000.0 } }; diff --git a/firmware/application/tone_key.hpp b/firmware/application/tone_key.hpp index d16faf623..41fdcd678 100644 --- a/firmware/application/tone_key.hpp +++ b/firmware/application/tone_key.hpp @@ -28,7 +28,7 @@ using namespace ui; -#define KEY_TONES_NB (sizeof(tone_keys) / sizeof(tone_keys[0])) +#define KEY_TONES_NB 56 namespace tonekey { diff --git a/firmware/application/ui_record_view.cpp b/firmware/application/ui_record_view.cpp index 640661a5b..aa8cea1c5 100644 --- a/firmware/application/ui_record_view.cpp +++ b/firmware/application/ui_record_view.cpp @@ -36,21 +36,20 @@ using namespace portapack; namespace ui { -void RecordView::toggle_pwmrssi() { - pwmrssi_enabled = !pwmrssi_enabled; +void RecordView::toggle_pitch_rssi() { + pitch_rssi_enabled = !pitch_rssi_enabled; // Send to RSSI widget - const PWMRSSIConfigureMessage message { - pwmrssi_enabled, - 64, + const PitchRSSIConfigureMessage message { + pitch_rssi_enabled, 0 }; shared_memory.application_queue.push(message); - if( !pwmrssi_enabled ) { - button_pwmrssi.set_foreground(Color::orange()); + if( !pitch_rssi_enabled ) { + button_pitch_rssi.set_foreground(Color::orange()); } else { - button_pwmrssi.set_foreground(Color::green()); + button_pitch_rssi.set_foreground(Color::green()); } } @@ -68,7 +67,7 @@ RecordView::RecordView( { add_children({ &rect_background, - &button_pwmrssi, + &button_pitch_rssi, &button_record, &text_record_filename, &text_record_dropped, @@ -77,8 +76,8 @@ RecordView::RecordView( rect_background.set_parent_rect({ { 0, 0 }, size() }); - button_pwmrssi.on_select = [this](ImageButton&) { - this->toggle_pwmrssi(); + button_pitch_rssi.on_select = [this](ImageButton&) { + this->toggle_pitch_rssi(); }; button_record.on_select = [this](ImageButton&) { @@ -238,8 +237,8 @@ void RecordView::update_status_display() { text_record_dropped.set(s); } - if (pwmrssi_enabled) { - button_pwmrssi.invert_colors(); + if (pitch_rssi_enabled) { + button_pitch_rssi.invert_colors(); } if( sampling_rate ) { diff --git a/firmware/application/ui_record_view.hpp b/firmware/application/ui_record_view.hpp index 02ea30c15..726035704 100644 --- a/firmware/application/ui_record_view.hpp +++ b/firmware/application/ui_record_view.hpp @@ -64,7 +64,7 @@ public: private: void toggle(); - void toggle_pwmrssi(); + void toggle_pitch_rssi(); Optional write_metadata_file(const std::filesystem::path& filename); void on_tick_second(); @@ -73,7 +73,7 @@ private: void handle_capture_thread_done(const File::Error error); void handle_error(const File::Error error); - bool pwmrssi_enabled = false; + bool pitch_rssi_enabled = false; const std::filesystem::path filename_stem_pattern; const FileType file_type; const size_t write_size; @@ -85,7 +85,7 @@ private: Color::black() }; - ImageButton button_pwmrssi { + ImageButton button_pitch_rssi { { 2, 0 * 16, 3 * 8, 1 * 16 }, &bitmap_rssipwm, Color::orange(), diff --git a/firmware/application/ui_rssi.cpp b/firmware/application/ui_rssi.cpp index 36f73d0cf..98cfed634 100644 --- a/firmware/application/ui_rssi.cpp +++ b/firmware/application/ui_rssi.cpp @@ -75,16 +75,13 @@ void RSSI::paint(Painter& painter) { Color::black() ); - if (pwmrssi_enabled) { - const range_t pwmrssi_avg_range { 0, 96 }; - const auto pwmrssi_avg = pwmrssi_avg_range.clip((avg_ - raw_min) * 96 / raw_delta); - baseband::set_pwmrssi(pwmrssi_avg, true); - } + if (pitch_rssi_enabled) + baseband::set_pitch_rssi((avg_ - raw_min) * 2000 / raw_delta, true); } -void RSSI::set_pwmrssi(bool enabled) { - pwmrssi_enabled = enabled; - if (!enabled) baseband::set_pwmrssi(0, false); +void RSSI::set_pitch_rssi(bool enabled) { + pitch_rssi_enabled = enabled; + if (!enabled) baseband::set_pitch_rssi(0, false); } void RSSI::on_statistics_update(const RSSIStatistics& statistics) { diff --git a/firmware/application/ui_rssi.hpp b/firmware/application/ui_rssi.hpp index d07f26b00..e22a61af3 100644 --- a/firmware/application/ui_rssi.hpp +++ b/firmware/application/ui_rssi.hpp @@ -52,7 +52,7 @@ private: int32_t avg_; int32_t max_; - bool pwmrssi_enabled = false; + bool pitch_rssi_enabled = false; MessageHandlerRegistration message_handler_stats { Message::ID::RSSIStatistics, @@ -61,16 +61,16 @@ private: } }; - MessageHandlerRegistration message_handler_pwmrssi { - Message::ID::PWMRSSIConfigure, + MessageHandlerRegistration message_handler_pitch_rssi { + Message::ID::PitchRSSIConfigure, [this](const Message* const p) { - const auto message = *reinterpret_cast(p); - this->set_pwmrssi(message.enabled); + const auto message = *reinterpret_cast(p); + this->set_pitch_rssi(message.enabled); } }; void on_statistics_update(const RSSIStatistics& statistics); - void set_pwmrssi(bool enabled); + void set_pitch_rssi(bool enabled); }; } diff --git a/firmware/baseband/proc_nfm_audio.cpp b/firmware/baseband/proc_nfm_audio.cpp index ecd609961..48bc274fa 100644 --- a/firmware/baseband/proc_nfm_audio.cpp +++ b/firmware/baseband/proc_nfm_audio.cpp @@ -21,6 +21,7 @@ */ #include "proc_nfm_audio.hpp" +#include "sine_table_int8.hpp" #include "portapack_shared_memory.hpp" #include "event_m4.hpp" @@ -29,7 +30,7 @@ #include void NarrowbandFMAudio::execute(const buffer_c8_t& buffer) { - bool new_state; + //bool new_state; if( !configured ) { return; @@ -42,30 +43,63 @@ void NarrowbandFMAudio::execute(const buffer_c8_t& buffer) { feed_channel_stats(channel_out); channel_spectrum.feed(channel_out, channel_filter_pass_f, channel_filter_stop_f); - if (!pwmrssi_enabled) { + if (!pitch_rssi_enabled) { + // Normal mode, output demodulated audio auto audio = demod.execute(channel_out, audio_buffer); audio_output.write(audio); - } else { - for (c = 0; c < 32; c++) { - if (synth_acc < pwmrssi_avg) - pwmrssi_audio_buffer.p[c] = 32767; - else - pwmrssi_audio_buffer.p[c] = -32768; - - if (synth_acc < synth_div) - synth_acc++; - else - synth_acc = 0; - } - - audio_output.write(pwmrssi_audio_buffer); - new_state = audio_output.is_squelched(); + if (ctcss_detect_enabled) { + /* 24kHz int16_t[16] + * -> FIR filter, <300Hz pass, >300Hz stop, gain of 1 + * -> 12kHz int16_t[8] */ + auto audio_ctcss = ctcss_filter.execute(audio, work_audio_buffer); + + // s16 to f32 for hpf + std::array audio_f; + for (size_t i = 0; i < audio_ctcss.count; i++) { + audio_f[i] = audio_ctcss.p[i] * ki; + } + + hpf.execute_in_place(buffer_f32_t { + audio_f.data(), + audio_ctcss.count, + audio_ctcss.sampling_rate + }); + + // Zero-crossing detection + for (size_t c = 0; c < audio_ctcss.count; c++) { + cur_sample = audio_f[c]; + if (cur_sample * prev_sample < 0.0) { + z_acc += z_timer; + z_timer = 0; + z_count++; + } else + z_timer++; + prev_sample = cur_sample; + } + + if (z_count >= 30) { + ctcss_message.value = (100 * 12000 / 2 * z_count) / z_acc; + shared_memory.application_queue.push(ctcss_message); + z_count = 0; + z_acc = 0; + } + } + } else { + // Direction-finding mode; output tone with pitch related to RSSI + for (size_t c = 0; c < 16; c++) { + tone_buffer.p[c] = (sine_table_i8[(tone_phase & 0xFF000000U) >> 24]) * 128; + tone_phase += tone_delta; + } + + audio_output.write(tone_buffer); + + /*new_state = audio_output.is_squelched(); if (new_state && !old_state) shared_memory.application_queue.push(sig_message); - old_state = new_state; + old_state = new_state;*/ } } @@ -84,8 +118,8 @@ void NarrowbandFMAudio::on_message(const Message* const message) { capture_config(*reinterpret_cast(message)); break; - case Message::ID::PWMRSSIConfigure: - pwmrssi_config(*reinterpret_cast(message)); + case Message::ID::PitchRSSIConfigure: + pitch_rssi_config(*reinterpret_cast(message)); break; default: @@ -114,16 +148,15 @@ void NarrowbandFMAudio::configure(const NBFMConfigureMessage& message) { channel_spectrum.set_decimation_factor(std::floor(channel_filter_output_fs / (channel_filter_pass_f + channel_filter_stop_f))); audio_output.configure(message.audio_hpf_config, message.audio_deemph_config, (float)message.squelch_level / 100.0); - synth_acc = 0; - + hpf.configure(audio_24k_hpf_30hz_config); + ctcss_filter.configure(taps_64_lp_025_025.taps); + configured = true; } -void NarrowbandFMAudio::pwmrssi_config(const PWMRSSIConfigureMessage& message) { - pwmrssi_enabled = message.enabled; - pwmrssi_avg = message.avg / 3; - synth_div = message.synth_div; - synth_acc = 0; +void NarrowbandFMAudio::pitch_rssi_config(const PitchRSSIConfigureMessage& message) { + pitch_rssi_enabled = message.enabled; + tone_delta = (message.rssi + 1000) * ((1ULL << 32) / 24000); } void NarrowbandFMAudio::capture_config(const CaptureConfigMessage& message) { diff --git a/firmware/baseband/proc_nfm_audio.hpp b/firmware/baseband/proc_nfm_audio.hpp index 92d9d4f72..94fb4dc13 100644 --- a/firmware/baseband/proc_nfm_audio.hpp +++ b/firmware/baseband/proc_nfm_audio.hpp @@ -29,6 +29,7 @@ #include "dsp_decimate.hpp" #include "dsp_demodulate.hpp" +#include "dsp_iir.hpp" #include "audio_output.hpp" #include "spectrum_collector.hpp" @@ -52,16 +53,21 @@ private: dst.data(), dst.size() }; - std::array audio { }; - const buffer_f32_t audio_buffer { - audio.data(), - audio.size() + const buffer_s16_t work_audio_buffer { + (int16_t*)dst.data(), + sizeof(dst) / sizeof(int16_t) }; - std::array pwm { }; - const buffer_s16_t pwmrssi_audio_buffer { - (int16_t*)pwm.data(), - sizeof(pwm) / sizeof(int16_t) + std::array audio { }; + const buffer_s16_t audio_buffer { + (int16_t*)audio.data(), + sizeof(audio) / sizeof(int16_t) + }; + + std::array tone { }; + const buffer_s16_t tone_buffer { + (int16_t*)tone.data(), + sizeof(tone) / sizeof(int16_t) }; dsp::decimate::FIRC8xR16x24FS4Decim8 decim_0 { }; @@ -69,25 +75,34 @@ private: dsp::decimate::FIRAndDecimateComplex channel_filter { }; uint32_t channel_filter_pass_f = 0; uint32_t channel_filter_stop_f = 0; + + // For CTCSS decoding + dsp::decimate::FIR64AndDecimateBy2Real ctcss_filter { }; + IIRBiquadFilter hpf { }; dsp::demodulate::FM demod { }; AudioOutput audio_output { }; - bool old_state { }; SpectrumCollector channel_spectrum { }; - unsigned int c { 0 }, synth_acc { 0 }; - uint32_t synth_div { 0 }; - bool pwmrssi_enabled = false; - uint32_t pwmrssi_avg { 0 }; + uint32_t tone_phase { 0 }; + uint32_t tone_delta { 0 }; + bool pitch_rssi_enabled { false }; + + float cur_sample { }, prev_sample { }; + uint32_t z_acc { 0}, z_timer { 0 }, z_count { 0 }; + bool ctcss_detect_enabled { true }; + static constexpr float k = 32768.0f; + static constexpr float ki = 1.0f / k; bool configured { false }; - void pwmrssi_config(const PWMRSSIConfigureMessage& message); + void pitch_rssi_config(const PitchRSSIConfigureMessage& message); void configure(const NBFMConfigureMessage& message); void capture_config(const CaptureConfigMessage& message); - RequestSignalMessage sig_message { RequestSignalMessage::Signal::Squelched }; + //RequestSignalMessage sig_message { RequestSignalMessage::Signal::Squelched }; + CodedSquelchMessage ctcss_message { 0 }; }; #endif/*__PROC_NFM_AUDIO_H__*/ diff --git a/firmware/baseband/proc_wfm_audio.cpp b/firmware/baseband/proc_wfm_audio.cpp index 04270bda9..89abe9d35 100644 --- a/firmware/baseband/proc_wfm_audio.cpp +++ b/firmware/baseband/proc_wfm_audio.cpp @@ -45,49 +45,32 @@ void WidebandFMAudio::execute(const buffer_c8_t& buffer) { channel_spectrum.feed(channel, channel_filter_pass_f, channel_filter_stop_f); } - if ( !pwmrssi_enabled ) { - /* 384kHz complex[256] - * -> FM demodulation - * -> 384kHz int16_t[256] */ - /* TODO: To improve adjacent channel rejection, implement complex channel filter: - * pass < +/- 100kHz, stop > +/- 200kHz - */ + /* 384kHz complex[256] + * -> FM demodulation + * -> 384kHz int16_t[256] */ + /* TODO: To improve adjacent channel rejection, implement complex channel filter: + * pass < +/- 100kHz, stop > +/- 200kHz + */ - auto audio_oversampled = demod.execute(channel, work_audio_buffer); + auto audio_oversampled = demod.execute(channel, work_audio_buffer); - /* 384kHz int16_t[256] - * -> 4th order CIC decimation by 2, gain of 1 - * -> 192kHz int16_t[128] */ - auto audio_4fs = audio_dec_1.execute(audio_oversampled, work_audio_buffer); + /* 384kHz int16_t[256] + * -> 4th order CIC decimation by 2, gain of 1 + * -> 192kHz int16_t[128] */ + auto audio_4fs = audio_dec_1.execute(audio_oversampled, work_audio_buffer); - /* 192kHz int16_t[128] - * -> 4th order CIC decimation by 2, gain of 1 - * -> 96kHz int16_t[64] */ - auto audio_2fs = audio_dec_2.execute(audio_4fs, work_audio_buffer); + /* 192kHz int16_t[128] + * -> 4th order CIC decimation by 2, gain of 1 + * -> 96kHz int16_t[64] */ + auto audio_2fs = audio_dec_2.execute(audio_4fs, work_audio_buffer); - /* 96kHz int16_t[64] - * -> FIR filter, <15kHz (0.156fs) pass, >19kHz (0.198fs) stop, gain of 1 - * -> 48kHz int16_t[32] */ - auto audio = audio_filter.execute(audio_2fs, work_audio_buffer); + /* 96kHz int16_t[64] + * -> FIR filter, <15kHz (0.156fs) pass, >19kHz (0.198fs) stop, gain of 1 + * -> 48kHz int16_t[32] */ + auto audio = audio_filter.execute(audio_2fs, work_audio_buffer); - /* -> 48kHz int16_t[32] */ - audio_output.write(audio); - } else { - for (c = 0; c < 32; c++) { - if (synth_acc < pwmrssi_avg) - pwmrssi_audio_buffer.p[c] = 32767; - else - pwmrssi_audio_buffer.p[c] = -32768; - - if (synth_acc < synth_div) // 48kHz / 96 = 500Hz - synth_acc++; - else - synth_acc = 0; - } - - /* -> 48kHz int16_t[32] */ - audio_output.write(pwmrssi_audio_buffer); - } + /* -> 48kHz int16_t[32] */ + audio_output.write(audio); } @@ -105,10 +88,6 @@ void WidebandFMAudio::on_message(const Message* const message) { case Message::ID::CaptureConfig: capture_config(*reinterpret_cast(message)); break; - - case Message::ID::PWMRSSIConfigure: - pwmrssi_config(*reinterpret_cast(message)); - break; default: break; @@ -137,18 +116,9 @@ void WidebandFMAudio::configure(const WFMConfigureMessage& message) { channel_spectrum.set_decimation_factor(1); - synth_acc = 0; - configured = true; } -void WidebandFMAudio::pwmrssi_config(const PWMRSSIConfigureMessage& message) { - pwmrssi_enabled = message.enabled; - pwmrssi_avg = message.avg; - synth_div = message.synth_div; - synth_acc = 0; -} - void WidebandFMAudio::capture_config(const CaptureConfigMessage& message) { if( message.config ) { audio_output.set_stream(std::make_unique(message.config)); diff --git a/firmware/baseband/proc_wfm_audio.hpp b/firmware/baseband/proc_wfm_audio.hpp index 2438720d1..669410c6b 100644 --- a/firmware/baseband/proc_wfm_audio.hpp +++ b/firmware/baseband/proc_wfm_audio.hpp @@ -55,12 +55,6 @@ private: (int16_t*)dst.data(), sizeof(dst) / sizeof(int16_t) }; - - std::array pwm { }; - const buffer_s16_t pwmrssi_audio_buffer { - (int16_t*)pwm.data(), - sizeof(pwm) / sizeof(int16_t) - }; dsp::decimate::FIRC8xR16x24FS4Decim4 decim_0 { }; dsp::decimate::FIRC16xR16x16Decim2 decim_1 { }; @@ -77,14 +71,8 @@ private: SpectrumCollector channel_spectrum { }; size_t spectrum_interval_samples = 0; size_t spectrum_samples = 0; - - unsigned int c { 0 }, synth_acc { 0 }; - uint32_t synth_div { 0 }; - bool pwmrssi_enabled { false }; - uint32_t pwmrssi_avg { 0 }; bool configured { false }; - void pwmrssi_config(const PWMRSSIConfigureMessage& message); void configure(const WFMConfigureMessage& message); void capture_config(const CaptureConfigMessage& message); }; diff --git a/firmware/common/dsp_fir_taps.hpp b/firmware/common/dsp_fir_taps.hpp index 2eb13b69a..1329b832c 100644 --- a/firmware/common/dsp_fir_taps.hpp +++ b/firmware/common/dsp_fir_taps.hpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2017 Furrtek * * This file is part of PortaPack. * @@ -115,7 +116,7 @@ constexpr fir_taps_real<32> taps_11k0_channel { } }, }; -/// NBFM 8K50F3E emission type //////////////////////////////////////////// +// NBFM 8K50F3E emission type ///////////////////////////////////////////// // IFIR image-reject filter: fs=3072000, pass=4250, stop=340250, decim=8, fout=384000 constexpr fir_taps_real<24> taps_4k25_decim_0 { @@ -152,6 +153,50 @@ constexpr fir_taps_real<32> taps_4k25_channel { } }, }; +/* CTCSS audio filter */ +/* 12kHz int16_t input + * -> FIR filter, <300Hz pass, >300Hz stop, gain of 1 + * -> 6kHz int16_t output, gain of 1.0 (I think). + * Padded to multiple of four taps for unrolled FIR code. + * sum(abs(taps)): 125270 + */ +/*constexpr fir_taps_real<64> taps_64_lp_025_025 { + .pass_frequency_normalized = 0.025f, + .stop_frequency_normalized = 0.025f, + .taps = { { + 0, 0, -3, -7, -13, -20, -27, -32, + -34, -33, -25, -10, 13, 47, 94, 152, + 223, 307, 402, 508, 622, 742, 866, 991, + 1113, 1229, 1336, 1430, 1510, 1571, 1614, 1635, + 1635, 1614, 1571, 1510, 1430, 1336, 1229, 1113, + 991, 866, 742, 622, 508, 402, 307, 223, + 152, 94, 47, 13, -10, -25, -33, -34, + -32, -27, -20, -13, -7, -3, 0, 0 + } }, +};*/ + +/* CTCSS audio filter */ +/* 24kHz int16_t input + * -> FIR filter, <300Hz pass, >300Hz stop, gain of 1 + * -> 12kHz int16_t output, gain of 1.0 (I think). + * Padded to multiple of four taps for unrolled FIR code. + * sum(abs(taps)): 125270 + */ +constexpr fir_taps_real<64> taps_64_lp_025_025 { + .pass_frequency_normalized = 0.0125f, + .stop_frequency_normalized = 0.0125f, + .taps = { { + 0, 0, 2, 6, 12, 20, 32, 46, + 64, 85, 110, 138, 169, 204, 241, 281, + 323, 367, 412, 457, 502, 547, 590, 631, + 669, 704, 735, 762, 784, 801, 812, 818, + 818, 812, 801, 784, 762, 735, 704, 669, + 631, 590, 547, 502, 457, 412, 367, 323, + 281, 241, 204, 169, 138, 110, 85, 64, + 46, 32, 20, 12, 6, 2, 0, 0 + } }, +}; + // DSB AM 6K00A3E emission type /////////////////////////////////////////// // IFIR image-reject filter: fs=3072000, pass=3000, stop=339000, decim=8, fout=384000 diff --git a/firmware/common/dsp_iir_config.hpp b/firmware/common/dsp_iir_config.hpp index 657d01978..3ccaaa494 100644 --- a/firmware/common/dsp_iir_config.hpp +++ b/firmware/common/dsp_iir_config.hpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2017 Furrtek * * This file is part of PortaPack. * @@ -43,6 +44,12 @@ constexpr iir_biquad_config_t audio_24k_hpf_300hz_config { }; +// scipy.signal.butter(2, 30 / 12000.0, 'highpass', analog=False) +constexpr iir_biquad_config_t audio_24k_hpf_30hz_config { + { 0.99446179f, -1.98892358f, 0.99446179f }, + { 1.00000000f, -1.98889291f, 0.98895425f } +}; + // scipy.signal.butter(2, 300 / 8000.0, 'highpass', analog=False) constexpr iir_biquad_config_t audio_16k_hpf_300hz_config { { 0.92006616f, -1.84013232f, 0.92006616f }, diff --git a/firmware/common/message.hpp b/firmware/common/message.hpp index 63b2ae218..da5dac8c8 100644 --- a/firmware/common/message.hpp +++ b/firmware/common/message.hpp @@ -80,7 +80,7 @@ public: TonesConfigure = 32, AFSKTxConfigure = 33, - PWMRSSIConfigure = 34, + PitchRSSIConfigure = 34, OOKConfigure = 35, RDSConfigure = 36, AudioTXConfig = 37, @@ -103,6 +103,7 @@ public: FIFOData = 61, AudioLevelReport = 70, + CodedSquelch = 71, MAX }; @@ -351,6 +352,18 @@ public: uint32_t value; }; +class CodedSquelchMessage : public Message { +public: + constexpr CodedSquelchMessage( + const uint32_t value + ) : Message { ID::CodedSquelch }, + value { value } + { + } + + uint32_t value; +}; + class ShutdownMessage : public Message { public: constexpr ShutdownMessage( @@ -667,22 +680,19 @@ public: const bool trigger_word; }; -class PWMRSSIConfigureMessage : public Message { +class PitchRSSIConfigureMessage : public Message { public: - constexpr PWMRSSIConfigureMessage( + constexpr PitchRSSIConfigureMessage( const bool enabled, - const uint32_t synth_div, - const int32_t avg - ) : Message { ID::PWMRSSIConfigure }, + const int32_t rssi + ) : Message { ID::PitchRSSIConfigure }, enabled(enabled), - synth_div(synth_div), - avg(avg) + rssi(rssi) { } const bool enabled; - const uint32_t synth_div; - const int32_t avg; + const int32_t rssi; }; class TonesConfigureMessage : public Message { diff --git a/firmware/portapack-h1-havoc.bin b/firmware/portapack-h1-havoc.bin index dbb881140aa1a8c2bbc70bd6ecfbda254fcd305f..76756ed2360b3d9fd539b0174f27b950a033acdb 100644 GIT binary patch delta 118555 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 VXqu3knmeIdPX8Uqhj)a`_&*Ym`j`L! delta 117551 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%0AU6Vv1UAIO4Qm~YY>Wt4xOVk^cQtPE3s+mr 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%0De)b#gh|j5 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 z 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 diff --git a/firmware/tools/fir_lpf.py b/firmware/tools/fir_lpf.py new file mode 100644 index 000000000..8a78c7ba8 --- /dev/null +++ b/firmware/tools/fir_lpf.py @@ -0,0 +1,20 @@ +import math + +m = 64 - 1 +ft = 300.0 / 24000.0 + +taps = [] +window = [] + +print("Normalized ft = " + str(ft)) + +for n in range(0, 64): + taps.append(math.sin(2 * math.pi * ft * (n - (m / 2.0))) / (math.pi * (n - (m / 2.0)))) + +for n in range(0, 64): + window.append(0.5 - 0.5 * math.cos(2 * math.pi * n / m)) + +for n in range(0, 64): + taps[n] = int(taps[n] * window[n] * 32768) + +print(taps)