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 ...


3

Have a look at this plot from this page at the Mathworks site: The main issue is, as that page says: The frequency input to the Chebyshev Type II design function sets the beginning of the stopband rather than the end of the passband. As you can see, the Chebyshev Type I filter has controllable passband gain out to the cutoff frequency. That is not true ...


2

The second method is the "Frequency Sampling" method of filter design, where the filter coefficients (the impulse response) are determined using the Inverse Discrete Fourier Transform of the sampled frequency response desired. It is extremely simple to implement but for most cases it is a poor choice as the result will be an exact match at the frequency bins ...


2

then you'll be doing either "Overlap-add" (OLA) or "Overlap-save" (OLS) which is sometimes more clearly called "Overlap-scrap". you need to read up about this. then simply "apply[ing] gain in those bins" is multiplication in the frequency domain, which means convolution in the time domain. if your frequency domain function is a rectangle function (some ...


2

For strongly selective filters that have well defined pass and stop bands and narrow transition bands and which, therefore, can approximate ideal brickwall filters to some desired degree, poles and zeros are generally distributed around and closer to the unit circle. Normally you would like to have all of them inside the unit circle but due to other reasons, ...


2

Yes, the length of a filter limits the "frequency-selectiveness". If you remember modern physics, that's mathematically very related to the Heisenberg uncertainty principle: something that is temporally short can't be very sharp in the frequency domain, and vice versa. You can find one example of such a constraint in this answer, though the formula only ...


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

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

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

Sounds like a job for dedicatedly identifying these surges and then actually subtracting them. I'd start with a low-pass filter to find the slightly time-varying mean of the signal. Use that to define lower and upper thresholds above or below you count something as surge. Identify the samples lying outside the thresholds. Find a signal model for surges, e....


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