Adding_Waterfall_ZOOM_x2_in_AM_modes_Audio_App (#2586)

* adding zoom_factor to app settings
* separated zoom_factor settings for AM and AMFM
* fix order so zoom factor is also applied correctly on modulation change
* fix zoom not applied when changing bandwidth
* temporary disable the Scanner so we are not breaking the nightly. Until we are choosing to finally remove it or find a better solution

---------

Co-authored-by: gullradriel <3157857+gullradriel@users.noreply.github.com>
Co-authored-by: gullradriel <gullradriel@no-mail.com>
This commit is contained in:
Brumi-2021
2025-03-23 23:08:12 +01:00
committed by GitHub
parent 4b000c8da6
commit 21773cc3c3
10 changed files with 152 additions and 34 deletions

View File

@@ -512,6 +512,51 @@ constexpr fir_taps_real<32> taps_6k0_decim_1{
}},
};
// IFIR prototype filter: fs=384000, pass=3000, stop=33000, decim=8, fout=48000
// Narrower taps_6k0_decim_1IFIR version to avoid LCD waterfall aliasing in AMFM Wefax in ZOOM X 2 (means spectrum decimation factor x2)
// It has BW -3dB's of +-9Khz, Stop band from 33khz onwards -60 dB's , then we can use in all AM modes (DSB, SSB,CW )
constexpr fir_taps_real<32> taps_6k0_narrow_decim_1{
.low_frequency_normalized = -3000.0f / 384000.0f,
.high_frequency_normalized = 3000.0f / 384000.0f,
.transition_normalized = 30000.0f / 384000.0f,
.taps = {{
58,
80,
138,
219,
326,
461,
622,
807,
1011,
1224,
1438,
1640,
1820,
1966,
2069,
2122,
2122,
2069,
1966,
1820,
1640,
1438,
1224,
1011,
807,
622,
461,
326,
219,
138,
80,
58,
}},
};
// IFIR prototype filter: fs=48000, pass=3000, stop=6700, decim=4, fout=12000
constexpr fir_taps_real<32> taps_6k0_decim_2{
.low_frequency_normalized = -3000.0f / 48000.0f,

View File

@@ -591,6 +591,10 @@ class AMConfigureMessage : public Message {
SSB = 1,
SSB_FM = 2, // Added new for RX Wefax mode, to demodulate APT signal ,FM modulated inside audio subcarrier tones, and then up broadcasted in SSB USB .
};
enum class Zoom_waterfall : size_t {
ZOOM_x_1 = 1,
ZOOM_x_2 = 2,
};
constexpr AMConfigureMessage(
const fir_taps_real<24> decim_0_filter,
@@ -598,14 +602,17 @@ class AMConfigureMessage : public Message {
const fir_taps_real<32> decim_2_filter,
const fir_taps_complex<64> channel_filter,
const Modulation modulation,
const iir_biquad_config_t audio_hpf_lpf_config)
const iir_biquad_config_t audio_hpf_lpf_config,
const size_t channel_spectrum_decimation_factor)
: Message{ID::AMConfigure},
decim_0_filter(decim_0_filter),
decim_1_filter(decim_1_filter),
decim_2_filter(decim_2_filter),
channel_filter(channel_filter),
modulation{modulation},
audio_hpf_lpf_config(audio_hpf_lpf_config) {
audio_hpf_lpf_config(audio_hpf_lpf_config),
channel_spectrum_decimation_factor(channel_spectrum_decimation_factor) {
}
const fir_taps_real<24> decim_0_filter;
@@ -614,6 +621,7 @@ class AMConfigureMessage : public Message {
const fir_taps_complex<64> channel_filter;
const Modulation modulation;
const iir_biquad_config_t audio_hpf_lpf_config;
const size_t channel_spectrum_decimation_factor;
};
// TODO: Put this somewhere else, or at least the implementation part.