Understanding unexpected i/q calculation on a downsampled signal I am reading samples with an RTL-SDR, centered on an FM broadcast station:

with closing(RtlSdr()) as sdr:
    sdr.sample_rate = 2.4e6
    sdr.center_freq = 88.9e6
    sdr.gain = 'auto'
    x1 = sdr.read_samples(16384)


The read_samples() function normalizes the data:

&gt;&gt;&gt; sdr.read_samples.__doc__
Read specified number of complex samples from tuner. Real and imaginary
parts are normalized to be in the range [-1, 1]. Data is safe after
this call (will not get overwritten by another one).


This returns an array that I can work with, with numpy, scipy, etc.

I create arrays for the real and imaginary parts:

x3_real = x3.real; x3_imag = x3.imag


For each pair in (for i,q in zip(x_real, x_imag)), I calculate h=math.sqrt(i**2 + q**2).  I don't expect h to ever be larger than sqrt(2), because the real and imaginary parts are normalized to [-1, 1].

Then I downsample to several different frequencies, less than the sampling frequency, using scipy.signal's decimate() function:

x3 = signal.decimate(x3, ds_factor, zero_phase=True)


and repeat the hypotenuse calculations.  In x2 I do not see numbers > sqrt(2), however I see numbers > sqrt(2) in the decimated signal (x3).  Why is this?
Because the decimate function does not try to keep power constant.

Remember that decimation is not inherently an LTI operation; so, probably, the authors of that function simply did not care too much for keeping the amplitude of a passband signal constant.

Note that a decimation step typically includes filtering to $\frac1{\text{ds_factor}}$ of the original bandwidth to avoid aliases. That filter might or might not have a passband gain $\le 1$.

A general remark:


  For each pair in (for i,q in zip(x_real, x_imag)), I calculate h=math.sqrt(i**2 + q**2). I don't expect h to ever be larger than sqrt(2), because the real and imaginary parts are normalized to [-1, 1].


In fact, if coming right out of a receiver with good IQ balance, don't expect $h\ge1$, even!

Remember that I and Q aren't independent; they are the inphase and quadrature component of a signal whose max power, no matter which phase, is limited! Thus, as long as you don't risk clipping in your receiver, $i^2 \le {1-q^2}\iff q^2\le 1-i^2$! 

If your I and Q would be independently limited to an amplitude of 1, your $\sqrt 2$ would be right. They are not – imagine, for example, the passband signal that gives you $i\equiv1$: it's the cosine with the carrier frequency $1\cdot\cos(2\pi f_c t + 0)$ (note the $0$ phase). Now, any cosine with larger power would clip, right? Obviously, cosines of the same amplitude would also be at the extreme power limit, no matter whether they have zero phase. The moment the phase is not zero, you'll see some of the cosine's energy appear on Q, and missing on I. However, it's the same power.