32

Adapted from an answer to a different question (as mentioned in a comment) in the hope that this question will not get thrown up repeatedly by Community Wiki as one of the Top Questions.... There is no "flipping" of the impulse response by a linear (time-invariant) system. The output of a linear time-invariant system is the sum of scaled and time-...


17

Encouraged by Hilmar, I've decided to update the answer with all the steps necessary to calculate the Reverberation Time from a scratch. Presumably, it will be useful for others interested in this area. Obviously, it is the simplest approach because more advanced are definitely beyond a scope. In the beginning, you must obtain the impulse response of a room....


12

Let $h(t)$ denote the impulse response of an LTI system. Then, for any input $x(t)$, the output is $$y(t) = \int_{-\infty}^\infty h(\tau)x(t-\tau)\,\mathrm d\tau.$$ In particular, the response to the input $x(t) = \exp(j2\pi ft)$ is $$\begin{align} y(t) &= \int_{-\infty}^\infty h(\tau)\exp(j2\pi f(t-\tau))\,\mathrm d\tau\\ &= \exp(j2\pi ft)\int_{-\...


11

When talking about modeling, there are two things that usually get modeled: 1. the guitar amp, and 2. the speaker cabinet. Only the latter is modeled by an impulse response, which means that the cabinet is simply represented by an LTI system and implemented by convolution. This is of course an approximation but it works fairly well. You can find a lot of ...


10

Real-time low-latency partitioned convolution reverb with a long impulse response works by dividing the impulse response into unequally sized partitions. The shortest partitions (blocks) are at the beginning of the impulse response, and the partition length grows towards the end of the impulse response: Each partition length can be processed separately, ...


10

Actually, I think I see why. $$X(j\Omega) = |X(j\Omega)|e^{-j\theta(\Omega)}$$ $|X(j\Omega)|$ is purely real, and therefore if we take the IFT it is even and symmetric. $\theta(\Omega)= a\Omega$ since the phase is linear, so $e^{-ja\Omega}$ merely shifts the corresponding even and symmetric magnitude in the time domain, so the resulting impulse response ...


8

No. The impulse response and frequency response of an LTI system are related by the Fourier transform, which is one-to-one.


8

If you're an EE student, you will have encountered the term LTI System (or you certainly will soon enough!): A system that, no matter the absolute time, outputs, given the same input, the same output; if you scale the input by a factor, the output is scaled by the same factor. Linear, time-invariant, so to speak. LTI systems can be applied to time-domain ...


7

Not an easy job. A loudspeaker produces a complicated 3 dimensional sound field, which heavily interacts with the environment. Even at a distance of a about 3 feet the reflected energy is significantly bigger than the direct energy at most frequencies. Typical loudspeaker measurements are On axis response in an anechoic chamber Full 3D response in an ...


7

Using a sinusoid is a bad idea. In order to precisely detect the time of arrival, you want a signal with wide bandwidth. Here's a brief description of a good approach: Transmit a known direct-sequence spread spectrum (DSSS) waveform (typically a phase-shift-keyed digital signal, either BPSK or QPSK). You should pick a spreading code that has good ...


7

If you know that the system is linear and time invariant, the easiest method (assuming that you have no noise added in the process) is to let the system act on an impulse function. The Fourier transform of the output is the frequency response of the system.


7

It looks like your transfer function is correct, but there's a small mistake in your partial fraction expansion: $$H(s)=\frac{2}{(s+4)(s+2)}=\frac{1}{s+2}-\frac{1}{s+4}\tag{1}$$ The corresponding impulse response is $$h(t)=(e^{-2t}-e^{-4t})u(t)\tag{2}$$ The response to $x(t)=te^{-2t}u(t)$ is indeed most easily computed by solving the convolution integral:...


7

Let me clarify some definitions first. There is no such thing as a "passive impulse response", there are only passive systems. If you like, you can call the impulse response of a passive LTI system "passive", but that's not common usage. From what I understand from your question, you probably mean by a "passive impulse response" an impulse response $h[n]$ ...


6

If a linear time-invariant system has (deterministic) input $x(t)$ and output $y(t)$, then the cross-correlation function $R_{y,x}$ of the output and input has value $h \star R_{x,x}$ where $R_{x,x}$ is the autocorrelation function of the input signal and $h$ is the impulse response of the linear system. For completeness, the autocorrelation function $R_{y,...


6

Shortly, we have two kind of basic responses: time responses and frequency responses. Time responses test how the system works with momentary disturbance while the frequency response test it with continuous disturbance. Time responses contain things such as step response, ramp response and impulse response. Frequency responses contain sinusoidal responses. ...


6

If the impulse response is $h[n], n\geq 0$, then the step response $s[m]$ at any time $m≥0$ is $$s[m]=h[0]+h[1]+h[2]+\cdots +h[m].$$ Note that if the filter is a finite impulse response (FIR) filter so that $h[m] = 0$ for $m > M$, then the step response at $M$ is $$s[M] = h[0]+h[1]+h[2]+\cdots +h[M]$$ and remains at this value forever afterwards, that is, ...


6

As Dilip pointed out in the comment above, you can get the impulse response using the inverse Fourier transform. However, a slightly easier method might be to use the Laplace domain instead; it's more amenable to easy inverse transforming via transform tables. First, recall that the frequency response is really just the $s$-plane transfer function evaluated ...


6

It is important to realize that due to the LTI property the response to an impulse $\delta(n)$ describes the system completely, because any input signal can be written as a weighted sum of shifted impulses: $$x(n)=\sum_kx(k)\delta(n-k)\tag{1}$$ Let $\mathcal{T}\{\cdot\}$ denote the system operator, so the response to a shifted impulse is $$\mathcal{T}\{\...


6

This is a nice question. I will try solving it using 2 approaches (Which are basically the same). The solution is the Least Squares Solution: $$ \hat{h} = \arg \min_{h} \frac{1}{2} \left\| h \ast x - y \right\|_{2}^{2} $$ We assume data is given in finite discrete form (As it is in practice). The convolution is done in valid mode (Like in MATLAB valid ...


6

In the general case you have $$H(z)=\frac{P(z)}{Q(z)}$$ where $P(z)$ and $Q(z)$ are polynomials in $z$. If - as is the case in your example - $Q(z)$ just has one single term, $H(z)$ is definitely FIR, because you can simply divide each term of $P(z)$ by that respective power of $z$, and the number of terms of $H(z)$ equals the number of terms of $P(z)$. ...


6

You can find the impulse response Let's take the case of a discrete system. If $s[n]$ is the unit step response of the system, we can write $$s[n]= u[n]\ast h[n]$$ where $h[n]$ is the impulse response of the system and $u[n]$ is the unit step function. Now using commutative property you can write $$s[n]=h[n]\ast u[n]$$ Expanding convolution we get $$s[...


6

$h_0(t)$ is inverse Fourier transform of $H(jw)$. Your formula is OK, you can continue your calculation to practice your math manipulation, why not. To check the result, you can remark that $H(jw)$ is rotated $sinc$ function. And $sinc$ must be the Fourier transform of a rectangular box function.


6

This is a fundamental topic and it needs a lot of explaination. I suggest you use the fading channel object of MATLAB, especially the Channel Visualization Tool. There are lots of examples with visualization in this link. MATLAB channel OBJECT


6

A causal first-order IIR filter is characterized by the following difference equation: $$y[n]=b_0x[n]+b_1x[n-1]-a_1y[n-1]\tag{1}$$ with $x[n]$ the input signal, and $y[n]$ the output signal. The impulse response of that system can be computed via the $\mathcal{Z}$-transform or otherwise, and it turns out to be $$h[n]=b_0\delta[n]+(-a_1)^{n-1}(b_1-b_0a_1)u[...


6

The DC value is simply the mean. Since the signal is periodic you only need to take the mean of one period. This can be simply done with $$h(t)=\left\{\begin{matrix} 1/T, 0 < t < T\\ 0, {\rm elsewhere} \end{matrix}\right. $$ Clearly (1) and (2) are different. (1) will not converge, so that doesn't work (2) is the best way for a function that's ...


5

Ok. You are touching on the topic of deconvolution. You can do this most easily by transforming the data into the frequency domain, doing some basic math and then converting back to the time domain. For example for case 1, if you transform the signals you have $ H(f) = Y(f)/X(f) $ so $h[n] = IDFT[Y(f)/X(f)]$ You can do similar manipulations to handle ...


5

The z domain transfer function of the system is the z transform of the system impulse response, so start by taking the Z transform of h[n] ... $$H[z] = -z^1 + 1 + 2z^{-1} + 2z^{-2} + z^{-3} -z^{-4}$$ You may be able to message this into a nicer form, but that isn't necessary. Next, to get the the frequency response, replace z with $e^{jw}$ So this ...


5

As Jason was saying in the comments, the power spectral density of white noise is flat. This is equivalent to saying that the autocorrelation of white noise is a delta dirac function (i.e. that there is no correlation, positive or negative, between one noise sample and another), not that the noise itself is a delta dirac function.


5

What you're looking for is called a pruned DFT. In principle, it is possible to calculate a subset of outputs from a DFT using fewer mathematical operations. In practice, however, existing highly-optimized FFT implementations like FFTW are designed for full-output transforms. You'll find in many cases, unless you're only concerned with a very small ...


5

It comes down to latency vs. complexity. If your filter is 10 seconds long, you need to store the audio data of the last ten seconds and then you are able to calculate the current output audio sample with a latency of basically zero (ignoring the time required for calculations here) simply by doing: $$y[0] = \sum_{k=0}^{l} x[-k] \dot h[k]$$ where $l$ is ...


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