Alright, so keeping up with this every week is harder than I thought it would be.
Anyways, this week I finished up my CppSim designs, as I’ve basically learned as much as I can from them. The critical conclusion was that this would never really be a good highpass filter as it induces significant distortion into the passband (the VCO modulation tones). While it does an excellent job of blocking out low frequency noise, it also gives us a SFDR of 0dB, which is awful.
However, the VCO-based highpass filter idea is still worth investigating, so we’re going down that path with slight modifications. Rather than just have the highpass filter, we can cascade it with a lowpass filter and make a bandpass out of it. Or we can make a biquad and tap that out. Or we can combine them into another architecture and derive our own transfer functions.
There’s lots of options here, and I’ve been investigating the pros and cons of all of them. I think I’ve narrowed down the criteria I’m interested in, namely:
in that order, too. Making the world’s smallest bandpass filter would be great, but probably a bit ambitious. There’s lots of very, very small $G_m / C$ filters out there that get pretty small, so I’m going to have to win on some other metrics as well. Hopefully results will be uploaded in the next couple days.