Strange behavior near 114Mhz

Still not going to help with front end overloading or product mixing.
It’s just how these things work, they need analogue outboard band pass filters.
Look, you can take the info given by the guys with the call signs, licenses and who have been tested repeatedly on these very things in order to get those call signs or you can ignore what we say and just deal with crappy performance.
Up to you.
Repeatedly answering the same thing because one of you refuses to accept the answer is well past old, so if you got something new ask, if it is about the same thing from a different angle you’ve been told by two of us now why. Accept that or move on.

The post mixing filters are there to define the bandwidth delivered to the ADC. By the time you’re at this stage, any early-stage intermod products will already have been created, and will be (THIS IS THE IMPORTANT PART) within the bandwidth of your IF/Baseband “shaping/anti-aliasing” filters, which is what the RXLPF filters are for–just bandwidth shaping/anti-aliasing for the ADC.

it really is the case that you’ll have to do some RF engineering yourself, to match whatever applications you’re interested in.

In a decade or so, there’ll be LNAs with 20dB more dynamic range, with matching extra-high-dynamic-range ADCs that sample at many GHz, removing the need for any analog filtering at all, except for perhaps a low-pass in the front-end. We aren’t there yet. So, the entire “up front” bits of a well-engineered RF system will tend to look very much the same whether that system is all-analog, or an SDR/DSP-based system.

I don’t think you broke anything. In my opinion the problem is that the mixer has a switching operation and is not multiplying with a sine wave but with a square wave.

A square wave with a certain frequency is equivalent to the sum off a sine of the same frequency and a series of odd harmonics with diminishing amplitude.

For example, a square wave of 114 MHz is equivalent to a weighted sum of sines with frequencies of 114 MHz, 342 MHz, 570 MHz, 798 MHz, 1026 MHz, 1254 MHz etc.

As a result, without filtering you will receive not only the intended signal around 114 MHz but also signals around 342 MHz, 570 MHz, 798 MHz etc. In addition, it can be shown that for an IQ mixer the spectrum around every second odd harmonic is mirrored. In the example the signals around 342 MHz, 798 MHz, 1254 MHz are mirrored.

In your measurements if you use a LO frequency of 114 MHz and want to receive 113 MHz = 114 -1 MHz then without filtering you will also receive interfering signals from 342+1= 343 MHz, from 570-1=569 MHZ, from 798+1=799 MHz, etc. (342+1 instead of 342-1 because frequencies around 342 MHz are mirrored) .
At 115 MHz you receive interfering signals from 341 MHz, 571 MHz, 797 MHz

In your figures 343 MHz and 571 MHz matches with theory. 321 and 568 MHz do not match.
So, I suppose you measured at 341MHz and 569 MHz as indicated by your jpeg filenames.

Cornie

1 Like

Interesting stuff, thanks for clearing it up.
As i understand, the external filtering is a must if you are operating on low frequencies, because you get all kinds of junk including GSM bands. On the other hand if you work higher, e.q 2.4G, you are quite safe because the next harmonic is far and likely filtered away by the antenna or other RF parts?

In my opinion there is not much difference.
An antenna or filter can be scaled up for higher frequencies. The distance of the next harmonics increases. But the relative distance of the harmonics and also the attenuation of the harmonics remains the same.
You might gain a few dB because the harmonics are above the cut-off frequency of the RF amplifiers.

Cornie

Maybe at the moment there is less interference at very high frequencies. That could change in the future.

Nope, intermod happens at all frequencies.
That’s why the guys using these for for ADS-B use filters like the FlightAware Mode S filters at 1090MHz.
Just figure if it can happen at 10MHz and 140MHz it can also happen at 3GHz and you won’t be stuck out.

1 Like

Jumping in here since you included my HN comments :slight_smile:

Spectrum is noisy, all sorts of things contribute to that, from errant sparking electric motors to rusty nuts that act like resonant cavities and mix RF as it goes by.

SDRs are limited in their dynamic range. This is a function of how many bits their ADC has.

To make a “good” receiver, you need to shield it from all of the stuff you don’t care about and focus on the stuff you do, such that the highest signal and the lowest signal resolve to MAX_ADC and 0 respectively if you can get it to do that. Some day in the future we’ll have 32 bit ADCs that don’t require all this handholding and we can do everything in software.

The best thing you can do is put a band pass filter that has a pass band that is equal to the bandwidth you want to receive with the radio. Ideally its two edges are aligned exactly with your frequency selection. If you’re building a radio that is going to receive in one band that is pretty straight forward to do, if you want it to be frequency agile it gets harder.

There are interesting solutions, like the Atlanta Micro AM3060 which you can “set” across a wide range of frequencies for a given bandwidth. It will knock down the interference above and below the bandpass and give you the maximum shot at receiving your signal of interest. The last time I checked these things were $500 quantity one and that didn’t include the PC board and other stuff you need to make them functional.

The whole front end adjustable filters are called the ‘front end selector’ and they can be as complex or as simple as you would like. One of the cool things is that you can do a lot with relatively little filtering. The less filtering you have, the more bits you want in your ADC so that the digital filters you put in post ADC will have enough data left over to work with.

–Chuck

A 32bit ADC would in theory have a dynamic range of ~192.7 dB or a signal to noise ratio of ~194.4 dB which sounds totally amazing and really useful, until you factor in Johnson–Nyquist_noise. Johnson-Nyquist or thermal noise is caused by thermal motion of electrons, which occurs in any conductor that has a resistance. The wider the bandwidth the more thermal noise you are going to see. It is a lot like a window the wider it is open the more stuff that can fly in. All electronics have resistances so there is a upper limit to the usefulness of adding extra bits to an ADC.

So for example say that you were looking at 160MHz of bandwidth at room temperate (300 K) the thermal noise from the circuitry itself would be −92 dBm (ref: Johnson–Nyquist noise link, in the above paragraph) . So if you were using a 0.8 Volt (+11dBm) 32-bit ADC that would mean that ~89.7 dB of the dynamic range would be sampling thermal noise (Or generating ~15 bits of random numbers). That is the reason you will NEVER see a 32-bit ADC that samples at 160 MSPS. Now you can tweak things to make them a tiny bit better but ultimately you are restricted by the laws of nature in our universe - Boltzmann’s constant will always kick your ass, no matter how much software you throw at it.

Thanks for the link @mzs! There has to be something more to it than just “gets wide and you get this” though. I am the going to see if I can understand how the radio I have access to that does 819.2 Mhz sampling is still able to seemingly get 95 dBm out of its 16 bits of its ADCs. (it could be I’m just clueless). It also makes me wonder what Xilinx means when they say 14 bit ADCs with their 4 Gsps converters on their new RFSOC. Still waiting for the eval board to come on on that chip, which, as I understand it, allows you to phase clock the ADCs to gang them for 16 GSps at 14 bits.

Another fascinating piece to explore on this things. Thanks again.

Did some digging on the switching-mixer. At first i thought that the generated LO is an square wave, but LMS7 is generating a sine:

Switching mixer uses the LO to toggle a switch, transforming the LO into a square wave:

No information about the mixers in the LMS7 datasheet, same for Analog Devices AD9363. Safe to guess they are both using the switching-mixer?

The sensitivity for RX Signals around 3× LO and 5× LO is so high that it must be a switching mixer

One of the ways I have seen mixing done is to switch from Real to complex is to multiply by a complex sine. If you 4x oversample the input (so you sample a 4x your “real” rate) you can use a 4 slot lookup table for your complex sine with the values I = [1, 0, -1, 0] Q = [ 0, 1, 0, -1 ] this is easy to implement in hardware, you filter off the nyquist image and decimate by four and you nice a nice clean complex (I/Q) of the signal of interest.

Right. Which is why you won’t be seeing a “Naked” ADC in RF applications. The equivalent noise figure is terribly awful.

You’ll still need a low-noise front-end in front of that ADC to compensate for the horrific equivalent noise figure, and, well, you’ll still have dynamic range problems in the LNA in the front end. This is probably amenable to a straightforward arithmetic analysis. The equivalent noise figure is related to the SNR of the ADC. The LNA will have a noise-figure, and gain, and linearity properties. Throw 'em in the math-blender and select “puree”.

It is instructive to apply the equivalent-noise-figure equations to high-bit-depth ADCs with large bandwidths. the math breaks down, giving numbers that physics precludes. Which probably means we aren’t going to see 32-bit 1Gsps ADCs at room temperature ever. But I could be wrong.