5

First of all, what is the order of your IIR filter? The highest order I have ever used was an order-10 IIR filter for a control loop application. I feel like it is unlikely that you need more that this. Second, it is a good idea to split your filter in second-order-sections (SOS) and cascade them , this usually fix most issues. https://www.dsprelated.com/...


3

Given your hardware constrains mentioned in the comments, your best shot is probably to do this as parallel second order section. Since the parallel sections are independent of each other, it's pretty straight forward to vectorize and it's also a little cheaper: each section has a complex conjugate pole pair but only one real zero. Things get a bit more ...


2

...And now for a differing opinion.... The OP's representation of bandpass white noise as $$n(t) = n_I \cos(2\pi f_ct) - n_Q \sin(2\pi f_ct)\tag{1}$$ is inadequate; because each sample path of this noise process is a pure sinusoid of fixed frequency $f_c$ Hz which is not noise-like at all. Why so? Well, a sample path is what one gets when all the random ...


2

there is a relationship between filterbank analysis and the STFT analysis, but it is not an identity. perhaps it can be identical, where for filterbank, you are slicing the frequency domain into band slices and for STFT you are slicing the time domain into windowed segments (in audio we might call them "grains" or maybe sometimes "wavelets") in time. but ...


2

Actually we are also facing the same problem, instead of (Z,P,k), even if you use (A,B,C,D), as soon as sos will come in syntax with g, your magnitude response will scaled by the attenuation factor. If you are concerned only with plotting magnitude response you can plot as freqz(sos) you will get exact magnitude response without scaling.


1

To add, the reason it is called the order specifically is because it is the order of the polynomial as given by the transfer function of the filter- which for an FIR filter is just the coefficients with increasing powers of $z^{-1}$: $$H(z) = \sum_{n=0}^{N-1}h_n z^{-n}$$ For example a three "tap" FIR filter with coefficients [0.5 1.5 0.5] is 2nd order with ...


1

The order is classically the maximum delay (in samples) that is used to produce each output (Filter order by JOS). For FIR filters, the length is "one plus order": $$y[n] = x[n]-x[n-1]+x[n-2]$$ would be 3-tap and order 2. If the filter is IIR, it would have "more coefficients" than "one plus order". I am not sure one can say "taps" for IIR filter. This ...


1

sox is doing exactly what you tell it to do – it plots a spectrogram of the bandwidth you can represent with your sampling rate. The fact that most of your picture shows no energy just shows your filter is working, and that's exactly what one would want to see! However, as you can see, your signal is solidly oversampled: You can downsample it to a much ...


1

$X(t) = Re\{XX(t)e^{j2\pi ft}\}$. So $XX(t)$ can be any generic complex baseband signal with real I and Q components - $XX(t) = XX_i(t)+j XX_q(t)$ and $e^{j2\pi ft} = \cos(2\pi ft) + j\sin(2\pi ft)$ After the complex multiplication, and taking real part, you get $X(t) = XX_i(t)\cos(2\pi ft) - XX_q(t)\sin(2\pi ft)$. So $XX_i(t)$ and $XX_q(t)$ are indeed ...


1

An FFT extracts frequency bands, similar to a bank of (mediocre) bandpass filters. An FFT is just a bank of bandpass FIR filters, all of equal length, that because they are in default form rectangularly windowed, have very poor stop-band characteristics (except for deep notches at periodic orthogonal-in-window frequencies), but steep transitions. But ...


1

Fast Fourier transform does not extract any frequency bands. It only shows the frequency content of a given signal. But while applying FFT, one should be careful about choosing the sampling frequency. As an example, if a signal contains a frequency range of $0-100\,\text{Hz}$ and $f_{max}=100\,\text{Hz}$ $$f_{max} = \dfrac{F_s}{2}$$ and the sampling ...


1

What you see as a spike at the beginning of the filter output is the impulse response of the bandpass filter itself. This would happen as a transient effect and it will be more pronounced if the filtered signal is sinusoidal + dc in nature. If it were a pure zero mean noise than the spike would be somewhat obscured. You can either use a group delay shift ...


1

T=0 or T=infinity. Any non-zero signal with finite length support in one domain has infinite support in the other domain. cos(wt) is only theoretically band-limited if infinite in length.


1

Different methods exist for estimating PSDs. They can be broadly classified as parametric or non-parametric methods. Indeed you should learn which method they used to obtain the associated PSD. An FFT based PSD estimation is a non-parametric method such as Periodogram and its variants. This method will produce random looking non-smooth output result which ...


1

Using scipy you can easily: bandpass signals, for instance with scipy.signal.butter obtain a spectrogram, using for instance scipy.signal.stft (or LTFAT, The Large Time-Frequency Toolbox (LTFAT) in Python) scale the values of this 2D array so that each channel has values between $0$ and $1$ reshape the array into a $560\times 420$ grid, eg with scipy....


1

The trigonometric functions enter the calculation because of the use the bilinear transform for transforming an analog filter to a discrete-time filter. The bilinear transform warps the frequencies of the analog filter, that's why we have to pre-warp the frequencies of the analog filter in order to obtain the desired cut-off frequencies of the discrete-time ...


1

The help file for the cheby2 function states that If Wn is a two-element vector, Wn = [W1 W2], CHEBY2 returns an order 2N bandpass filter with passband W1 < W < W2. Since you design a bandpass filter, your order will be $2N$ instead of $N$, and the reason for this could possibly be using two filters; like a high-low combination to create your ...


1

Sort of, but not really. In both schemes you are taking a one dimensional signal and decomposing it to a two dimensional signal based on time and frequency. The first disparity would be that using the STFT, the frequency bands are linearly spaced, compared to your logarithmic spacing. Both schemes create a baseband signal from the frequency components. ...


1

Limited numerical precision makes your filter unstable. In this case you can fix it by implementing the filter in second order sections using the zeros and the poles of the filter.


1

I think you can do a dft for a single frequency fine. Just sum over your window of a whole compression and rarefaction multiplied by the sine of the frequency your looking for, then do it for the cosine, then the amplitude is the hypotenuse if they were graphed on xy axis, and the phase is the angle.


Only top voted, non community-wiki answers of a minimum length are eligible