Viewing a single comment thread. View all comments

blutfink t1_j5vvd3w wrote

Of course. As in professionally, for decades. Note that for that to work, you need the full, complex-valued FR of a system. The amplitude response does not contain phase information.

That’s why people add the impulse response as supporting information: A plot of the complex-valued response (either 3D or as two real-valued graphs) is not intuitive for humans.

Here is a quick explanation of how the responses are calculated in REW.

5

No-Tune-9435 t1_j5vwfa2 wrote

Perfect. What ~time gate would that signal have sufficiently decayed? (per your DTFT link)

1

blutfink t1_j5vz4wj wrote

Proper decaying/windowing is performed via element-wise multiplication with a window function. All we want is that the signal is smoothly approaching zero at the edges. Since this is approximately the case for typical impulse responses of audio systems, it won’t change the result that much if you don’t window it at all.

To help your intuition, convince yourself that the FT of a centered Gaussian bell curve is itself a Gaussian bell curve. Note that the “low frequencies” in this graph are near the center.

3

No-Tune-9435 t1_j5vzhjj wrote

You didn’t answer my question at all though. If we want to represent an FR from 20-20khz, what time window would be appropriate for the impulse response? Or have you actually not done this math before?

1

TaliskerBay22 t1_j5w0hju wrote

Look here is an example, the time domain lasts for a ms and the Fourier response extends from 0 to some tens of KHz. Plug it in Matlab and tweak it as you like

% Define time-domain signal
dt = 0.000001; % time step (s)
t = 0:dt:0.001; % time vector (s)
x = cos(50000.*t-0.0004).*exp(-(t-0.0003).^2/0.00006^2); % time-domain signal
% Perform FFT
X = fft(x); % FFT of time-domain signal
f = (0:length(X)-1)/(dt*length(X)); % frequency vector (Hz)
% Plot results
figure;
subplot(2,1,1);
plot(t,x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Time-domain signal');
subplot(2,1,2);
Amplitude=abs(X);
semilogy(f(1:length(X)/20),Amplitude(1:length(X)/20));
xlabel('Frequency (Hz)');
ylabel('Amplitude');
title('Frequency-domain signal (FFT)');

4

blutfink t1_j5w0fke wrote

In the extreme case? Infinitesimally short time. The FT of a Dirac pulse is a flat, constant response from 0 Hz to infinity Hz (or, in the case of DFT, Nyquist frequency).

As I said, the FT of a Gaussian is a Gaussian. Really sharp in the time domain means really wide in the frequency domain. If you do not understand why that is, your intuition about FTs will be flawed.

3

blutfink t1_j5w2dc2 wrote

Maybe this helps: The impulse response in OPs post image basically does not have to be windowed at all, it’s decently close to zero at the edges. Plug it into a FT and you’ll get a decently accurate FR.

3