12

If you remove (for the time being) that leading factor $A$ as a constant gain factor: $$H(s)=\frac{s^2+\left(\frac{\sqrt{A}}{Q}\right)s + A}{As^2 + \left(\frac{\sqrt{A}}{Q}\right)s + 1}$$ what you get then is a symmetric, but otherwise general shelf that could be equally described as "LowShelf" or "HighShelf". In dB, the gain at the low ...


8

I'm convinced that depending on the problem we're trying to solve, we can and should use both approaches: the transformation of classic analog filter designs, and the direct design in the digital domain using optimization methods. Note that the properties of the classic designs are very restricted: piecewise constant desired magnitude responses, minimum-...


7

The logical implications are the following: "non-recursive" $\Longrightarrow$ FIR IIR $\Longrightarrow$ "recursive" But the opposites are not necessarily true because a FIR system can be implemented recursively (transfer function poles can be cancelled by zeros). Of course, when referring to "recursive" or "non-recursive" we always talk ...


6

Minimum phase filters will not give you a near constant group delay. You can design a non-linear phase FIR filter with a linear desired passband phase with a specified group delay that is smaller than the group delay of the corresponding linear phase filter. If you use a least-squares criterion, this is equivalent to solving a system of linear equations. As ...


6

In principle there is no reason why the filter order of a general bandpass or bandstop filter must be even. Such a restriction is a consequence of a specific design procedure. In classic IIR filter design (Butterworth, Chebyshev, Cauer) you start with an analog prototype lowpass filter. Bandpass or bandstop filters are then obtained by a frequency ...


6

and simulation where "copying the analog" would result in the better solution. That' missing the point a bit. It's not that one cares much about matching or copying the "analog" but that digital IIR filters have some very nice and useful properties. For example in audio, IIR filter are very common place and I use Butterworths on a daily ...


6

The problem lies in the formulation of the desired response, and especially in the "don't care" region, which is extremely wide for the chosen filter length. Even though I can't give any exact relation between transition band width and filter length, I know that in the case of a least squares design, the matrix of the system of linear equations ...


5

If you use a parameterization with a (pole or zero) frequency and a Q-factor for numerator and denominator of a biquadratic function you get the following general second-order transfer function $$H(s)=G_{\infty}\frac{s^2+\frac{\omega_z}{Q_z}s+\omega_z^2}{s^2+\frac{\omega_p}{Q_p}s+\omega_p^2}\tag{1}$$ For a low shelving filter we want $H(\infty)=1$, i.e., $G_{...


5

Image Processing Context In classic Image Processing the filters used are known. Hence being separable is a property of a given filter which is suitable to the task. In this context, separability only means we can have a more efficient way to apply the filter computationally while the end result is the same. So, in Image Processing, if you have a filter ...


5

How to Massively Reduce the Resource Requirements in FIR Filter Approach The two answers provided by Matt and Hilmar are both excellent and provide great insight in answering the question. I am favoring Hilmar's answer as correct given that it both touches on and demonstrates the salient points quite well, although I am not yet convinced in the efficiency ...


4

I've kind of grouped your subjects into larger overall subjects. Note that there's a lot of overlap here, with the possible exception of actually making it work in a microprocessor (except -- in my opinion the best person to implement something is someone who understands it. So -- overlap). Specifically, you could claim that it's all applied math. Or all ...


4

Like @MattL. and @aconcernedcitizen say, the issue is numerical. Python's scipy.signal.firls uses internally the solver scipy.linalg.solve. For your input, the solver throws a "matrix singular" error, but firls suppresses the error and falls back to another solver scipy.linalg.lstsq which doesn't throw an error but also doesn't get the problem ...


3

Is the one I implemented suitable or would you recommend something else? I think you did pretty well there. I'm not sure I'd end up with something different (although I would do a literature search on implementing IIR filters in FPGAs). Your filter looks pretty close to a direct form 2 filter. You can look up references to that for its strengths and ...


3

[ 0.25 -0.6035 0.25 0.1035] seems to work. Here is how I did that: Since the "breakeven point" is specified at $pi/2$, we know that $|K(0)|^2 = 0$, $|K(\pi/2)|^2 = 0.5$ , and $|K(\pi)|^2 = 1$ . The magnitude of the spectrum is thus given at 4 different points. DC and Nyquist are real and we have a conjugate complex pair at $\...


3

I would like to add to the previous answers that the difference between a second-order highpass and a second-order lowpass filter is generally NOT an allpass filter. The resulting transfer function $$H(s)=\frac{s^2-\omega_0^2}{s^2+\frac{\omega_0}{Q}s+\omega_0^2}\tag{1}$$ has two zeros at $s_0=\pm\omega_0$ and two poles which are either real-valued (for $Q\le\...


3

Just adding to the answer. The sign for recombining L/R filter alternates, so it's '-' for second order '+' for 4th order and so forth. The algebra is isn't all that pleasant so I will only go through the 2nd order. A second order L/R lowpass is simply the cascade of two first order Butterworth lowpass. The first order butterworths are $$L = \frac{1}{1+jx}, ...


3

Matt L.’s exact answer in equation (3) is correct. But here is a simpler “exact” solution: 𝛼 = 2𝑦 / ( 𝑦 + 1 ), 𝑦 = tan( 𝜔𝑐 / 2 ) (11) This is computationally more robust. Eq (3) could lead to small errors depending on the resolution of your floating-point math.


3

I believe your thinking is correct. For bandpass filters, for each z-plane pole in the positive-frequency range there's a conjugate pole in the z-plane's negative-frequency range. So for bandpass filters there will all be an even number of total z-plane poles (two poles, four poles, six poles, etc.). When using MATLAB's ellipord command for bandpass filters ...


3

Maybe that's a just a matter of semantics. You can certainly cascade an even order high pass with an odd order lowpass and you get something that's an odd order filter that sure looks like a bandpass. %% odd order bandpass fs = 44100; fc = 1000; [z,p,k] = butter(2,fc/sqrt(2)/fs*2,'high'); sos = zp2sos(z,p,k); [z,p,k] = butter(3,fc*sqrt(2)/fs*2); sos = [sos; ...


3

The resonant frequency is related to the "significant frequency" (which is the shelf midpoint frequency) by a factor of $\frac{1}{\sqrt{A}}$ for the lowShelf and the reciprocal of that for the highShelf.


3

For an example analysis, I’ve picked up the low-shelf filter in Robert Bristow-Johnson’s Audio EQ Cookbook. In the book, the transfer function is given as; $$H(s) = A\frac{s^2 + \frac{\sqrt{A}}{Q}s + A}{As^2 + \frac{\sqrt{A}}{Q}s + 1}$$ Since the analysis is going to be done by hand, the asymptotic approximation method of Bode plot analysis can be followed. ...


3

Yes, of course. Any delay will look like this where the size of the delay determines the slope of the phase. If the the delay turns out to be an integer number of samples, than this very easy to implement. You can also do fractional delays but that's more work and can only be done approximately.


3

L. R. Rabiner and B. Gold, “Theory and Application of Digital Signal Processing,” Prentice-Hall, Englewood Cliffs, 1975 has a development of it in Chapter 2. They start with a general Lagrange structure and then move to the Frequency Sampling Structure that appears to match what Rick has in his book.


2

Because of the comment, I obviously must have seen this question nearly 5 years ago, but I don't remember it really. But one advantage that windowed-sinc has over P-McC or LS for a brick-wall interpolating filter is that the windowed-sinc can be guaranteed to pass through zero at all integer values except 0. That means the interpolated signal always goes ...


2

First of all, the correct equation for an RRC pulse is given here. You are correct that you need to define the sampling frequency Fs and the symbol interval Ts. The number of samples per symbol interval is then Ts*Fs, which I assume to be an integer. You also need to define beta, and the pulse duration D. For simplicity, let's assume D is given as a multiple ...


2

The quantity you might be looking for is signal-front delay, which is the delay of the beginning of a signal passing through a linear system. It is simply the largest value $\tau_{sf}$ (in samples) for which $$h[n]=0,\qquad n<\tau_{sf}\tag{1}$$ is satisfied, where $h[n]$ is the system's impulse response. If an input, or change in the input, starts at $n_0$...


2

D'oh. This turned out to be pretty obvious, and I should have gotten it from reading more closely. I would have deleted this out of shame, but instead will share the correction in hopes it saves someone else the same headache. The controlling equations for the LR2 high and low pass transfer functions are correct, but one of the signals needs to be ...


2

I might be a tad late to this, but I'll only reply to the part about the "similarities" between the (analog) Bessel and Gaussian. They are not the same. The Bessel filter is meant to approximate an ideal delay: $$B(s)=\mathrm{e}^{-s\tau}\tag{1}$$ while the Gaussian filter tries to approximate a Gaussian bell: $$|G(j\omega)|^2=\mathrm{e}^{-\alpha\...


2

The purpose of the loudness filter is to compensate for the level dependency of the a human's "frequency response". Most music is mixed at pretty high levels, say at 80-90 dB SPL. If you play this back at much lower levels, say 40 dB SPL, it will sound very bass deficient. The loudness filter compensates for this by boosting the bass at lower ...


2

The modifier normal is meant to distinguish the form from the transposed form. So there is a normal direct form I, a transposed direct form I, and similarly for the direct form II. As far as I know, this terminology is not universal, and I've only come across it in books (co-)written by Manolakis or Ingle.


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