v1.280: spectrum peak hold, AM/NBFM de-emphasis

From the CHANGE_LOG file. Thanks to Sam, M1FJB, for the de-emphasis suggestion.
v1.280  April 8, 2019
    Spectrum improvements:
        Add peak hold function. When running toggle "Peak" button to clear and restart.
        Last spectrum filter, filter parameter and peak hold setting saved in browser cookie.

    Audio improvements:
        Added de-emphasis control on audio tab. Standard 50us NA and 75us EU attenuation profiles.
            AM/NBFM modes only. Attenuation curves may not be 100% correct. Needs measurement.
            Should help reproduce flat passbands transmitted by AM/NBFM stations using pre-emphasis.
            Will also help with listening fatigue caused by excessive high-frequency gain.
        Fixed bug that caused distortion in 3 channel mode when audio bandwith at 20.25 kHz maximum.


  • I will try to get some de-em measurements made later this week....
  • Hi All,

    The 50uS & 75uS pre-emphasis characteristic curves are broadcast standards.

    Amateur radio and Citizens Band NBFM uses a 6dB per octave curve usually applied between 300 - 3000Hz. This came about because early NBFM transmitters tended to use Phase Modulation rather than true FM. When proper Frequency Modulation transmitters became more common, they added 6dB/Octave pre-emphasis to the audio feeding the FM modulator, so that the received audio sounded the same as Phase Modulated signals, which had a natural 6dB/Octave characteristic.

    AM Broadcast stations in North America went through a stage when the National Radio Systems Committee (NRSC) created some voluntary standards for commercial AM stations that applied a pre-emphasis curve that was roughly based on the 75us curve used for WBFM pre-emphasis.

    These days all broadcast stations use audio processing to dynamically modify the amplitude / frequency response of the transmitted signal, so the concept of a fixed pre-emphasis characteristic is not really valid any more.

    I think that having some sort of switched HF roll off on the KiWi is a useful idea, but maybe more values should be available, or perhaps just an audio 'tone' or 'slope' control that would allow folks to adjust the audio to their personal preferences. This could also be used to provide some HF lift, which may be useful for folks who have hearing impairments (especially us oldies).


    Martin - G8JNJ - Ex Broadcast Transmission Engineer
  • This was just a quick hack after I spent some time listening to a 0 - 10 kHz passband AM BCB signal in the new 20 kHz mode. It was almost painful after a while.
  • Hi John,


    Yes I also find listening to most broadcast stations fatiguing.

    Too much processing and the ongoing obsession with 'loudness wars' (mainly between local broadcast stations competing for their market share) which really should have been sorted by now.


    Martin - G8JNJ
  • jksjks
    edited April 2019
    So using the new sig gen in v1.281 and the audio FFT in peak hold mode it's easy to see that trying to do the published de-emphasis attenuation curve with an FIR filter is a mistake. I tried this mostly because a configurable FIR already existed in the code and I'm not a DSP expert (someone said a Biquad filter is maybe what's needed?)

    Note that if you're going to do this yourself you need to do a couple of things. Use the "no_wf" URL param to force the audio FFT to appear so you can evaluate the audio channel passband in the spectrum display, not the waterfall channel. Set the AGC to manual mode and then adjust the gain so the reference level of the sig gen matches the attenuation level line on the spectrum display. Change the generator attenuation and makes sure it matches the reference lines on the spectrum display. If using headphones don't blow your ears out by moving the AGC manual gain control too fast.

    Using the sig gen sweep function to map the de-emp filter:


    De-emphasis filter off for first half of waterfall then at 75us:


  • In today's v1.282 the de-emphasis filter is now a biquad instead of an FIR. The curve is much better but still not perfect:


  • When I added FM to the mcHF, the de-emphasis and filtering (for standard NBFM) consisted of two parts:

    - Integration to effect a roll-off of 6dB/octave with a "knee" at 300-ish Hz.
    - Differentiation to effect a high-pass with a low-frequency "knee" to remove the low-frequency "rumble" and reduce the amplitude of subaudible tones.

    Ideally, the high-pass would have been something stronger, but I was working against the constraints of very limited computational power in that platform - and in bench and on-air testing, the two, working together, seemed to be reasonably effective while using very little overhead.

    The code is likely found in a Git somewhere, but it was discussed here, at the time that I did it: http://ka7oei.blogspot.com/2015/11/adding-fm-to-mchf-sdr-transceiver.html

Sign In or Register to comment.