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.
Comments
https://www.fmsystems-inc.com/de-emphasis-response-table-75us-25us-j-17/
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).
Regards,
Martin - G8JNJ - Ex Broadcast Transmission Engineer
Understood.
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.
Regards,
Martin - G8JNJ
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:
Attachments:
https://forum.kiwisdr.com/uploads/Uploader/f4/8a8a8e8cd6aa12bbd27de9eb3dcd49.png
https://forum.kiwisdr.com/uploads/Uploader/69/3e22a64630009e89196edaee894947.png
Attachments:
https://forum.kiwisdr.com/uploads/Uploader/38/31218c3808358bc32b811e81380918.png
- 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
Clint