MXO4 Road Test – A digital filter meets the Frequency Response Analyser
I’ve been following some of the audio projects on E14. A combination of the blogs from genebren (Multi-Voice Synthesizer) and javagoza (SystemVerilog Study Notes) prompted me to try my hand at implementing a dynamically tuneable digital state variable filter in an FPGA.
First step was a bit of research – most people seem to use the Chamberlin realization of a state variable filter in the digital domain but I found a paper that describes a better way: Improving the Chamberlin Digital State Variable Filter, Victor Lazzarini and Joseph Timoney, Maynooth University, Maynooth, Ireland.
You don’t need to read the papers or understand them to follow the rest of this blog !
The idea of the filter is to make a tuneable filter which gives low-pass, high-pass and band-pass outputs at the same time. The centre frequency and Q of the filter are adjustable in real time. Such filters are the core of subtractive synthesizers like Moog and its many derivatives.
My first step was to test out the filter idea in MATLAB. (If anyone would like the MATLAB files then please ask – I won’t print them here because I get the impression that MATLAB is a bit of a minority interest on E14.)
I followed that up by implementing the filter on an ST32H743 micro. This part clocks at 400MHz and has a 2x 16 bit ADCs and 12 bit DACs. This is quite good enough to prove that my filter maths is working OK. I'm happy to post the filter code for the ST processor if anyone would like it.
I designed this board a while ago as part of a stand alone Frequency Response Analyser project. I can’t remember why the board is called H7SYNTH rather than H7FRA , but it had nothing to do with music synths. The board has all the features needed to get analogue data into the STMH&’s ADC ports and out from its DACs.
I used the MXO4 in FRA mode to look at the frequency response of the filter:
For these experiments the filter has been set to f = 30Hz and Q = 5. The sampling rate for this filter is 48kHz . Everything looks good over a dynamic range of more than 60dB. It would be nice to be able to suppress the phase plot since it isn’t doing anything useful here.
I want to plot responses of the filters at different settings and compare them. To do that I need to save the data from the FRA.
My scope was running version 1.2.3.2 of the code at this time.
I tried saving the data from the Save/Recall menu and it didn’t work.
Clicking "save" got this:
It doesn't look as if FRA data can be saved for exporting. I thought this would be a good opportunity to try the Rohde and Schwarz help desk. I filled in the from on the web and did the required signing up etc. Support is one of things you expect when paying for a "Big Name" piece of test gear like the MXO4 so I've shown the complete interaction with the R & S support desk below:
R & S response to enquiry submitted on officlal web form (they didn't send a copy of the initial request).
thank you for your request.
To proceed with your question, we need some more information.
What devise are you using?
And what dada and format do you want to export?
Looking forward to her from you.
I said:
Using MXO4 with FRA (K36) option.
Want to export data from table in .csv format
Scope screen capture attached.
R & S said:
please use the CSV export function of the MXO:
I said:
We don't seem to be getting through to each other here.
Let's start at the beginning.
I have an MXO4 with the MXO4-PK1 application pack installed.
I'm running the Frequency Response Analyser (FRA) application.
I run the FRA and get a screen like this:
(This was followed by several screenshots and comments)
They said:
thanks for detailed steps what you had done.
Did you see this with latest firmware version 1.2.3.2 for MXO ?
In case you have an older version please do an update to this version.
You will find the latest firmware version for MXO at the link below:
https://www.rohde-schwarz.com/firmware/mxo4/
If you see this missing function also please let me know.
I said:
The scope is already running 1.2.3.2
Can't you just ask the people who wrote the FRA application code how to save data from it ?
4 days later they said:
from our developer I got this answer:
Saving FRA results will be possible with the next FW release, which will be available for download next week.
We can add you to our mailing list for MXO to be informed about firmware / software / driver and application notes.
Please let me know if you interesting about that.
And on Thursday 6th April the new firmware was on the Rohde and Schawarz website.
So I downloaded firmware version 1.3.2.0
New Firmware
Mostly I’ll talk about the latest Firmware (that’s what R & S call it) elsewhere. In this blog I’ll just talk about what it does to the FRA.
The good news is that you can save FRA data.
I set up the filter experiment again, so the results are slightly different.
First, the basic FRA measurement:
The Save/Recall menu has a new FRA option:
You can download the data easily onto a PC connected to the same Ethernet as the MXO4. You get a CSV file. I re-plotted the data in Excel:
You can get a file with just the markers in it:
This is a big improvement, but it would be nice to see a bit more control over the saved data and its formatting.
The release notes for this software version mention: “Easier selection of close-proximity elements in a diagram”
I mentioned in my first blog about the FRA that you can’t select markers near the left-hand edge of the screen.
I put a marker in the danger zone and tried to select it:
Sometimes this nice hexagon pad display pops up when you click on a marker, but sometimes it doesn’t. It’s not clear to me why. If you click and the hexagons don’t appear, then dragging the mouse will move the trace up and down, even if the cursor was actually in the marker triangle.
But sometimes you get the hexagons. I clicked on the "Marker FRA M1" pad - the Multi-Use control knob lit up – so I twiddled it and Marker 2 could be moved about on the screen.
Yes, that’s right, when the marker is un-selectable, you can use the hex pads to select the wrong marker.
So, one step forward, 1 step back.
Comparing with other scopes
I’m pretty sure that the nasty response above 700Hz isn’t really true. So I tested the filter with the free FRA application running with a Pico 6042E scope (using x10 probes). It took a little fiddling with settings to get this response:
I also tried a much lower cost Pico 5444 scope (with x1 probes) with very similar results:
The FRA app on the Picos copes a little better at higher frequencies than the R & S. It is important to be aware that the signal being measured at 1kHz is about 73dB below the maximum output of the DAC. It’s a 12 bit DAC so the signal is about 0.5bits (pk) – the nasty traces above 1kHz are not significant. Unlike the Pico FRA application the R & S FRA allows you to see a scope view of the signals as well – making it easier to tell when the signal is distorted or too small.
Summary
The older firmware (26th January 2023 couldn’t save FRA data at all.)
The latest firmware(5th April 2023) can save FRA data.
The latest firmware has a go at improving the selection of markers and has introduced a new bug along the way.
The FRA in its current form is a useful tool but still has some rough edges.
MK