mirror of
https://github.com/portapack-mayhem/mayhem-firmware.git
synced 2025-08-20 03:27:56 +00:00
Broadcast FM de-emphasis using 75us time constant.
This commit is contained in:
@@ -48,4 +48,12 @@ constexpr iir_biquad_config_t audio_deemph_300_6_config {
|
|||||||
{ 1.00000000f, -0.96148145f, 0.00000000f, },
|
{ 1.00000000f, -0.96148145f, 0.00000000f, },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 75us RC time constant, used in broadcast FM in Americas, South Korea
|
||||||
|
// scipy.signal.butter(1, 2122 / 24000.0, 'lowpass', analog=False)
|
||||||
|
// NOTE: Technically, order-1 filter, b[2] = a[2] = 0.
|
||||||
|
constexpr iir_biquad_config_t audio_deemph_2122_6_config {
|
||||||
|
{ 0.12264116f, 0.12264116f, 0.00000000f, },
|
||||||
|
{ 1.00000000f, -0.75471767f, 0.00000000f, },
|
||||||
|
};
|
||||||
|
|
||||||
#endif/*__DSP_IIR_CONFIG_H__*/
|
#endif/*__DSP_IIR_CONFIG_H__*/
|
||||||
|
@@ -68,5 +68,7 @@ void WidebandFMAudio::execute(const buffer_c8_t& buffer) {
|
|||||||
|
|
||||||
/* -> 48kHz int16_t[32] */
|
/* -> 48kHz int16_t[32] */
|
||||||
audio_hpf.execute_in_place(audio);
|
audio_hpf.execute_in_place(audio);
|
||||||
|
audio_deemph.execute_in_place(audio);
|
||||||
|
|
||||||
fill_audio_buffer(audio);
|
fill_audio_buffer(audio);
|
||||||
}
|
}
|
||||||
|
@@ -50,6 +50,7 @@ private:
|
|||||||
dsp::decimate::FIR64AndDecimateBy2Real audio_filter { audio_filter_taps.taps };
|
dsp::decimate::FIR64AndDecimateBy2Real audio_filter { audio_filter_taps.taps };
|
||||||
|
|
||||||
IIRBiquadFilter audio_hpf { audio_hpf_30hz_config };
|
IIRBiquadFilter audio_hpf { audio_hpf_30hz_config };
|
||||||
|
IIRBiquadFilter audio_deemph { audio_deemph_2122_6_config };
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif/*__PROC_WFM_AUDIO_H__*/
|
#endif/*__PROC_WFM_AUDIO_H__*/
|
||||||
|
Reference in New Issue
Block a user