Add 12k5 RXBW to NFM Mode (#3023)

* Add 12k5 option to NFM
* Updated freqman_db
* Add 12k5 RXBW to NFM
* Add 12k5 RXBW
* formating
This commit is contained in:
Sandbox
2026-02-23 03:53:26 +08:00
committed by GitHub
parent abee022000
commit 4cc2ba690b
4 changed files with 37 additions and 3 deletions
+2 -1
View File
@@ -304,7 +304,8 @@ class MicTXView : public View {
{
{" 8k5 ", 0}, // Initial dynamic values when we start Mic App.
{" 11k ", 1},
{" 16k ", 2},
{" 12k5 ", 2},
{" 16k ", 3},
}};
NumberField field_squelch{
+2 -1
View File
@@ -66,7 +66,8 @@ options_t freqman_bandwidths[6] = {
// NFM
{"8k5", 0},
{"11k", 1},
{"16k", 2},
{"12k5", 2},
{"16k", 3},
},
{
// WFM
+2 -1
View File
@@ -63,9 +63,10 @@ static constexpr std::array<baseband::AMConfig, 12> am_configs{{
{taps_6k0_narrow_decim_1, taps_6k0_decim_2, taps_2k6_usb_wefax_channel, AMConfigureMessage::Modulation::SSB_FM, apt_audio_12k_lpf_1500hz_config, (int)AMConfigureMessage::Zoom_waterfall::ZOOM_x_2}, // SSB USB+FM to demod. Subcarrier FM Audio Tones to get APT Weather Fax with waterfall zoom x 2 (we need taps_6k0_narrow_decim_1 to minimize aliasing)
}};
static constexpr std::array<baseband::NBFMConfig, 3> nbfm_configs{{
static constexpr std::array<baseband::NBFMConfig, 4> nbfm_configs{{
{taps_4k25_decim_0, taps_4k25_decim_1, taps_4k25_channel, 2500},
{taps_11k0_decim_0, taps_11k0_decim_1, taps_11k0_channel, 2500},
{taps_12k5_decim_0, taps_12k5_decim_1, taps_12k5_channel, 2500},
{taps_16k0_decim_0, taps_16k0_decim_1, taps_16k0_channel, 5000},
}};
+31
View File
@@ -278,6 +278,37 @@ constexpr fir_taps_real<32> taps_11k0_channel{
}},
};
// NBFM 12K5F3E emission type /////////////////////////////////////////////
// IFIR image-reject filter: fs=3072000, pass=6250, stop=342250, decim=8, fout=384000
constexpr fir_taps_real<24> taps_12k5_decim_0{
.low_frequency_normalized = -6250.0f / 3072000.0f,
.high_frequency_normalized = 6250.0f / 3072000.0f,
.transition_normalized = 336000.0f / 3072000.0f,
.taps = {{42, 108, 226, 412, 672, 1004, 1391, 1807, 2211, 2565, 2828, 2969,
2969, 2828, 2565, 2211, 1807, 1391, 1004, 672, 412, 226, 108, 42}},
};
// IFIR prototype filter: fs=384000, pass=6250, stop=42500, decim=8, fout=48000
constexpr fir_taps_real<32> taps_12k5_decim_1{
.low_frequency_normalized = -6250.0f / 384000.0f,
.high_frequency_normalized = 6250.0f / 384000.0f,
.transition_normalized = 36250.0f / 384000.0f,
.taps = {{-38, -85, -162, -245, -315, -338, -275, -85, 255, 752, 1378, 2088,
2807, 3452, 3939, 4202, 4202, 3939, 3452, 2807, 2088, 1378, 752, 255,
-85, -275, -338, -315, -245, -162, -85, -38}},
};
// Channel filter: fs=48000, pass=6250, stop=9250, decim=1, fout=48000
constexpr fir_taps_real<32> taps_12k5_channel{
.low_frequency_normalized = -6250.0f / 48000.0f,
.high_frequency_normalized = 6250.0f / 48000.0f,
.transition_normalized = 3000.0f / 48000.0f,
.taps = {{-75, -362, -712, -908, -592, 268, 1324, 1720, 684, -1522, -3541, -3385,
342, 7150, 14642, 19541, 19541, 14642, 7150, 342, -3385, -3541, -1522, 684,
1720, 1324, 268, -592, -908, -712, -362, -75}},
};
// NBFM 8K50F3E emission type /////////////////////////////////////////////
// IFIR image-reject filter: fs=3072000, pass=4250, stop=340250, decim=8, fout=384000