wfm_filters_GUI_name_std (#2668)

This commit is contained in:
Brumi-2021 2025-05-25 20:04:08 +02:00 committed by GitHub
parent d3c9dc1f10
commit c79abccffd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 21 additions and 21 deletions

View file

@ -202,7 +202,7 @@ void MicTXView::rxaudio(bool enable) {
receiver_model.set_modulation(ReceiverModel::Mode::NarrowbandFMAudio);
// receiver_model.set_nbfm_configuration(n); is called above, depending user's selection (8k5, 11k, 16k).
break;
case MIC_MOD_WFM: // WFM, BW 200Khz aprox, or the two new addional BW filters (180k, 40k)
case MIC_MOD_WFM: // WFM, BW 200Khz aprox, or the two new addional BW filters (180k, 80k)
baseband::run_image(portapack::spi_flash::image_tag_wfm_audio);
receiver_model.set_modulation(ReceiverModel::Mode::WidebandFMAudio);
// receiver_model.set_wfm_configuration(n); is called above, depending user's selection (200k, 180k, 0k).
@ -300,7 +300,7 @@ void MicTXView::update_receiver_rxbw(void) {
receiver_model.set_nbfm_configuration(rxbw_index); // we are in NFM/FM case, we need to select proper NFM/FM RX channel filter, NFM BW 8K5(0), NFM BW 11K(1), FM BW 16K (2)
break;
case MIC_MOD_WFM:
receiver_model.set_wfm_configuration(rxbw_index); // we are in WFM case, we need to select proper WFB RX BW filter, WFM BW 200K(0), WFM BW 180K(1), WFM BW 40K(2)
receiver_model.set_wfm_configuration(rxbw_index); // we are in WFM case, we need to select proper WFB RX BW filter, WFM BW 200K(0), WFM BW 180K(1), WFM BW 80K(2)
break;
case MIC_MOD_AM:
receiver_model.set_am_configuration(rxbw_index); // we are in AM TX mode, we need to select proper AM full path config AM-9K filter. 0+0 =>AM-9K(0), 0+1=1 =>AM-6K(1),

View file

@ -93,8 +93,8 @@ void NBFMConfig::apply(const uint8_t squelch_level) const {
void WFMConfig::apply() const {
const WFMConfigureMessage message{
decim_0, // Dynamic array 24 taps : taps_200k_decim_0 , taps_180k_wfm_decim_0, taps_40k_wfm_decim_0
decim_1, // Dynamic array 16 taps : taps_200k_decim_1 or taps_180k_wfm_decim_1, taps_40k_wfm_decim_1
decim_0, // Dynamic array 24 taps : taps_200k_decim_0 , taps_180k_wfm_decim_0, taps_80k_wfm_decim_0
decim_1, // Dynamic array 16 taps : taps_200k_decim_1 or taps_180k_wfm_decim_1, taps_80k_wfm_decim_1
taps_64_lp_156_198, // Fixed channel audio filter 15khz
75000,
audio_48k_hpf_30hz_config,

View file

@ -56,7 +56,7 @@ struct NBFMConfig {
};
struct WFMConfig {
const fir_taps_real<24> decim_0; // To handle all 3 WFM filters , 200k, 180k and 40K-
const fir_taps_real<24> decim_0; // To handle all 3 WFM filters , 200k, 180k and 80K-
const fir_taps_real<16> decim_1;
void apply() const;

View file

@ -32,7 +32,7 @@ gfxEQView::gfxEQView(NavigationView& nav)
baseband::run_image(portapack::spi_flash::image_tag_wfm_audio);
receiver_model.set_modulation(ReceiverModel::Mode::WidebandFMAudio);
receiver_model.set_wfm_configuration(1); // 200k => 0 , 180k => 1 , 40k => 2. Set to 1 or 2 for better reception
receiver_model.set_wfm_configuration(1); // 200k => 0 , 180k => 1 , 80k => 2. Set to 1 or 2 for better reception
receiver_model.set_sampling_rate(3072000);
receiver_model.set_baseband_bandwidth(1750000);

View file

@ -70,7 +70,7 @@ options_t freqman_bandwidths[6] = {
},
{
// WFM
{"40k", 2},
{"80k", 2},
{"180k", 1},
{"200k", 0},
},

View file

@ -66,7 +66,7 @@ static constexpr std::array<baseband::NBFMConfig, 3> nbfm_configs{{
static constexpr std::array<baseband::WFMConfig, 3> wfm_configs{{
{taps_200k_wfm_decim_0, taps_200k_wfm_decim_1},
{taps_180k_wfm_decim_0, taps_180k_wfm_decim_1},
{taps_40k_wfm_decim_0, taps_40k_wfm_decim_1},
{taps_80k_wfm_decim_0, taps_80k_wfm_decim_1},
}};
static constexpr std::array<baseband::WFMAMConfig, 2> wfmam_configs{{

View file

@ -1240,11 +1240,11 @@ constexpr fir_taps_real<24> taps_180k_wfm_decim_0 = {
}},
};
// IFIR prototype filter: fs=768000, pass=90000, stop=110000, decim=2, fout=384000
// IFIR prototype filter: fs=768000, pass=90000, stop=170000, decim=2, fout=384000
constexpr fir_taps_real<16> taps_180k_wfm_decim_1 = {
.low_frequency_normalized = -90000.0f / 768000.0f,
.high_frequency_normalized = 90000.0f / 768000.0f,
.transition_normalized = 20000.0f / 768000.0f,
.transition_normalized = 80000.0f / 768000.0f,
.taps = {{
55,
19,
@ -1265,13 +1265,13 @@ constexpr fir_taps_real<16> taps_180k_wfm_decim_1 = {
}},
};
// WFM 40kHZ filter for NOAA APT reception in 137Mhz band with sharp transition //////////////////////////////////////////////
// WFM 80kHZ filter with sharp transition //////////////////////////////////////////////
// IFIR image-reject filter: fs=3072000, pass=20000, stop=97000, decim=4, fout=768000
constexpr fir_taps_real<24> taps_40k_wfm_decim_0 = {
.low_frequency_normalized = -20000.0f / 3072000.0f,
.high_frequency_normalized = 20000.0f / 3072000.0f,
.transition_normalized = 67000.0f / 3072000.0f,
// IFIR image-reject filter: fs=3072000, pass=97000, stop=300000, decim=4, fout=768000
constexpr fir_taps_real<24> taps_80k_wfm_decim_0 = {
.low_frequency_normalized = -97000.0f / 3072000.0f,
.high_frequency_normalized = 97000.0f / 3072000.0f,
.transition_normalized = 203000.0f / 3072000.0f,
.taps = {{
46,
112,
@ -1300,11 +1300,11 @@ constexpr fir_taps_real<24> taps_40k_wfm_decim_0 = {
}},
};
// IFIR prototype filter: fs=768000, pass=20000, stop=55000, decim=2, fout=384000
constexpr fir_taps_real<16> taps_40k_wfm_decim_1 = {
.low_frequency_normalized = -20000.0f / 768000.0f,
.high_frequency_normalized = 20000.0f / 768000.0f,
.transition_normalized = 35000.0f / 768000.0f,
// IFIR prototype filter: fs=768000, pass=37500, stop=112500, decim=2, fout=384000
constexpr fir_taps_real<16> taps_80k_wfm_decim_1 = {
.low_frequency_normalized = -37500.0f / 768000.0f,
.high_frequency_normalized = 37500.0f / 768000.0f,
.transition_normalized = 75000.0f / 768000.0f,
.taps = {{
83,
299,