One important tool that can help extend the capabilities of a distortion measurement setup is a notch filter. The logic behind it is fairly simple, if we are only interested in the distortion components, why should we even feed the fundamental frequency into the measurement setup? By eliminating it (or simply attenuating it sufficiently), we can reduce the harmonic distortion generated by the test equipment as a result of the large tone, effectively extending its capabilities for harmonic distortion measurement. There is obviously more than one way of doing it, and in this post I will only describe one way which was a good match for my needs.
I wanted to create a small box that would implement this function for my needs to allow me to extend further the THD measurement setup I have. In its simplest form, using the EMU 0404USB I’m able to measure THD of ~0.001% at 1KHz. By using an external low distortion 1KHz oscillator I was able to extend this down to ~0.0004%. However, I was looking for a way to get down to 0.0001% to allow measurement of high quality DAC’s. Since I know the external oscillator I use has sufficiently low distortion to support these figures, I needed a way to reduce the distortion caused by the input stage and ADC of the EMU. I have considered trying to hack the EMU and improve its input stage, but I expect the ADC will limit me before I can reach the target performance. Therefore I went with the option of removing the fundamental frequency from the signal before feeding it into the EMU, to reduce the distortion it generates.
The simplest way of cancelling some band (or specific tone) in the incoming signal without any other information about its phase is using a notch filter. A notch filter would ideally have an infinite attenuation at the desired frequency, and no attenuation for the rest of the frequency range. However, practical filters have limited attenuation at the desired frequency, and some residual attenuation for the rest of the frequencies. The narrower the attenuation band is the higher the Q (quality factor) of the filter is. Since these filters are very selective, they are typically tuned to give the deepest notch at the frequency of interest. Therefore, it is typically preferred to have one of these filters for each desired frequency instead of making a single filter that will have to be tuned every time the frequency is changed.
For my application, I didn’t look for a very strong notch, as I wasn’t too far out from my target to begin with. I have therefore decided to go with the simpler option rather than the potentially superior performing option, and went for a passive Hall notch filter. There are other options such as making the active version of this filter, or going for a twin-T notch filter, each with its pros and cons. A very good source of information about the Hall notch filter can be found in this article. As always, I’ve decided to make a small PCB out of this and place it in one of the project boxes I’ve used in the past instead of building it on a protoboard. Its just so cheap to get PCB’s printed nowadays, that its easier and faster than soldering with wires. The schematic used is drawn below.
The notch is doubled in this board so that I can either have a single filter for a SE signal, or a dual filter (relative to GND) for a balanced (or pseudo-differential) signal. It is also possible to use each of the filters individually for a stereo signal, or even cascade them with a proper cable for a deeper notch, if needed.The input has both a 1/4″ TRS connector, as well as a BNC for SE application. If the BNC is used instead of the TRS connector, the TRS jack will short the negative input to GND to reduce noise at the output of the box for the negative pin of the TRS connector. This allows interfacing to a balanced output even if a SE input is used, without excess noise/coupling.
The 5K trimmer is optional (and its value can be increased if desired) for post assembly tuning. Resistors R4-R7 (R11-R14 on the 2nd channel) are meant to be fixed resistors that set the exact frequency of the notch for the actual component values used for the rest of the board. For my application, taking into consideration the value of the capacitors and resistors I’ve had, the optimal value was ~480ohm for the parallel combination of R4||R5, and 2220Ohm for R6||R7, with no trimmer installed. I’ve preferred to have no trimmer installed as they can drift over time. Instead I’ve measured the resistors and capacitors used for R1-R3 and C1-C3, and punched the numbers into the circuit simulator to find the appropriate value for the “TBD” resistors R4-R7.
Since we are looking for a low distortion instrument, all the capacitors used were C0G MLCC’s. I know some people prefer film caps for these applications, but C0G (NP0) MLCC’s are really good enough, and they are small and cheap. I went for 1206 SMD packages for all the components, as they are large enough to solder easily, and have sufficient voltage and power handling rating for the application.
Let me note here that the parts values in this schematic of Fig 1 can be changed easily according to the needs. I chose the value according to my needs, and what parts I’ve had available (C0G caps of higher value aren’t something I have a large selection of in my parts bin). You can choose to modify the values to have higher capacitance and lower resistance for instance. This will reduce noise and susceptibility to parasitic coupling from the surround, albeit at the cost of potentially higher loading of the driver stage of whatever you are measuring and greater power dissipation in the filter itself. Additionally, you might choose a different resistors ratio to have a sharper notch, as I know some people are looking for as sharp of a notch as possible. For my needs, I only needed a fairly shallow notch as the distortion I was measuring without a notch filter was already quite close to my target figure. Therefore, 30dB would be more than I would need (although in practice its sharper than that as you’ll see below). A possible advantage of having a shallower response is that there is a limited error in attenuation if you don’t work at the exact peak attenuation point. This can reduce error by a few dB for some use cases. For instance, the external low distortion oscillator I’m using has some drift until it settles, due to parts rising to steady state temperature. A similar thing can happen if parts in the notch filter itself will drift over time (months/years) or heat up due to input signal, especially if lower value resistors are used.
After assembling the PCB I’ve had to “calibrate” it. As I’ve mentioned earlier, its attenuation outside the notch band won’t be 0dB, and I’ve had to quantify it so that I could normalize the measurement after it and extract the information about the input signal. This was also a good chance for me to make sure I didn’t make any mistake in the calculation, and the notch really is placed at 1KHz as I was aiming for.
First, for a reference I’ve measured the transfer function without it, to make sure there are no significant fluctuations in the frequency response of the EMU. Then I’ve measured the frequency response of the PCB with both SE and differential input.
From these figures I’ve been able to verify the notch is at the target frequency, and the transfer function matches well with simulation. I’ve taken note of the attenuation at each harmonic of the 1Khz up to 5KHz for future reference when using this unit. To make sure I don’t forget where I wrote this, I though printing this onto the unit would be a good idea 🙂
I’ve connected it in between the low distortion (SE only) 1KHz oscillator and the EMU input, to measure the resulting distortion and see if the combination of this shallow notch with the EMU will suffice for <0.0001% THD measurement at 1KHz. After normalizing the signal attenuation based on the frequency response of the filter, the most dominant harmonic was the 2nd, and it was -123.2dB below the fundamental. The following harmonics were somewhat lower, with the 3rd at -125.3dB, and 4th/5th below -140dB. Combining the numbers, the THD of this setup is slightly under 0.0001% and therefore meets the target I was aiming for with this cheap and simple circuit.
Edit October 20, 2020:
In all the data presented in this post I’ve used C0G/NP0 MLCC capacitors. I’ve used these simply because they are cheap and readily available, and I have a parts box full of these in different values. In terms of distortion they are quite good as the measurements showed, but without a doubt not the best. I plan to measure a couple of instruments in the near future that will call for a lower distortion measurement limit, which called for another take on this. Since I can get away with a single-ended measurement for these instruments, and I wanted something up and running right away without ordering parts and waiting for them to get here, I’ve looked through my parts bin and found the parts needed. 3x10nF film capacitors (through hole variants), 2 are Wima caps, the last isn’t. A small aluminium case, a couple of female BNC jacks. Finding appropriate resistors isn’t a problem as I have a full box of 1206 metal-film resistors in various values. A portion of the original notch-filter PCB was used for this one (cut down from the complete PCB). I’ve put this all together and measured the frequency response to be able to correct for my measurements. This one turned out to be somewhat sharper than the previous, but this isn’t what I was really interested in, the distortion of it is of more interest.
Then I connected the notch filter to Victor’s oscillator set to output 2Vrms, and fed it into my measurement setup. I was quite impressed by the results I got. It actually seemed like there was only noise and no distortion at all. To work around it I’ve increased the pre-amplifier gain from 0dB to 40dB (X100) to get the signal far over the noise floor of the EMU. Averaging was used to get the noise further down to be able to find at least a trace of distortion. The resulting spectrum is shown in the following figure.
As you can see, the 3rd harmonic just barely stands out above the noise at these conditions, this is quite impressive actually. Once you punch in the numbers to correct for the frequency response of the notch, you find that the 3rd harmonic is <-146dB below the fundamental. The 2nd harmonic is the one I would expect to be dominant in this oscillator, but with the attenuation of the notch being higher at 2KHz (by ~5dB compared to 3KHz), its probably hiding just below the noise floor in this case. Even if we assume its at the same level as the noise floor so that its barely hiding, this still translates to a THD of ~0.00001% at this amplitude of 2Vrms. This is significant improvement over the original notch filter using C0G/NP0 MLCC’s, about an order of magnitude better, and its most probably limited by the oscillator itself at this point.
This new notch can extend measurement capabilities further, and there’s also some information that can be had from this about the capacitor type to use according to the desired distortion in other applications. Although, if we are being fair, the MLCC’s did perform very well, certainly better than what you will probably even need for anything other than measurement instruments for extremely low distortion. Additionally, in this application of the notch filter, the capacitors are used close to their respective time constant in the circuit, which means they have a significant voltage across them. In audio signal coupling applications you typically choose a capacitor value large enough to be far over this frequency. This in turn results in much lower signal swing over the capacitor, and lower distortion.
The Gerbers for the boards I’ve created for this post can be downloaded below:
7 thoughts on “Quick and Simple Notch Filter for THD Measurements”
I cant seem to download the Gerber files… it says that they are not available. Strange, as the PS for Victor’s oscillator downloads just fine!
All my best,
The actual link seems to be just fine (I double checked now), might be related to the fact it had “http” instead of “https”. Try right clicking on the link and selecting “save link as”.
Do you really need two filter sections for a balanced-line filter?
Won’t that cause all sorts of matching problems and phase difference problems?
For a balanced only filter, a single section connected between the 2 phases would work just fine.
In this case, the choice to go for 2 sections referenced to ground allows using these for 2 independent paths if desired.
What is the set-up for measuring the performance of the notch filter? I see you’re using ARTA, but I’m unfamiliar with the settings being used and what signal is being fed to the filter.
What is the set-up used for testing the filter in figure 3, 4, and 5? Specifically the settings in ARTA and the signal being fed through the filter?
You can use any program you want, simply connect the notch filter between the output of the sound-card and its input, and do a frequency response measurement.