New answers tagged

1

You need to distinguish between circular and linear convolution. The DFT considers all signals to be periodic with the FFT length. Your all pass filter is non-causal. Due to the periodic nature of the FFT the non-causal part for $t < 0$ shows up at the end of the buffer. Applying linear convolution with $conv$ makes a mess: you get two copies of your ...


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


1

UPDATE: As Hilmar pointed out, OP did convolution in the time domain (as is clear in this code). This answer is misleading so will be deleted). You would not convolve the two responses as you are in the frequency domain. It is the time domain impulse response of the equalization filter that you would convolve with, and convolution in the time domain is the ...


0

Fourier Transform (FT) contains both the amplitude information and phase information. So the FT coefficients are complex numbers. But when you plot the FT results, you and most commercial software just plot the amplitude or the squared amplitude in the graph. Actually there is no nice way to plot the complex numbers in the 2D graph. This might make you ...


4

You can use the Hilbert transform, then multiply the real part with the sine of the angle you wish to transform, and the imaginary part wth the cosine. A quick code in Octave: t=[0:0.01:4]; s=hilbert(1-2*mod(t,1)); a=real(s); b=imag(s); phi=[0:0.5:6]; test=a.*sin(phi)+b.*cos(phi); plot(a+4,"",test'); I know there are Hilbert transforms made with ...


0

The following demonstrates an approach close to what the OP describes that does not lead to the time domain aliasing experienced. Specifically, the average delay of the filter is determined and for that linear slope of phase versus frequency- all frequencies that are not to be modified by the equalizer are to be replaced with that linear phase slope. (...


0

I computed and compared the minimum phase HRIR and the original one. This is my final code: def min_phase_coversion(HRIR): ''' :param HRIR: the desired HRIR impulse response to convert into minimum phase :return: the minimum phase version of the original HRIR ''' HRIR_fft = fft(HRIR,44100) #computing magnitude, tested with sinusoid,...


1

You seem to have 3 problems 1 - You have a phase wrap. It happens when the phase goes past 180 degrees. The phase will wrap back to -180 degrees. You can fix this by unwrapping the phase. 2 - Your phase is in normalized radians instead of being in radians or degrees. This is not a problem per se but when you try to unwrap the phase, you should be aware that ...


0

I think this is treating the $10^8\pi\cdot t$ as the carrier frequency and the $5 sin(2\pi\cdot 10^3 t)$ as the modulation. So the maximum phase difference of this signal to the carrier without modulation would be $\pm5$ radians. To compute the change in frequency you need to find the compute $\frac{d}{dt}$ of the argument of the cos (divided by $2\pi$) and ...


3

The spectrum is that of the base pulse used in the modulation, so in this case a rectangular pulse. A single rectangular pulse in time, as given by the Fourier Transform, is a Sinc in Frequency with the first nulls spaced at $1/T$ away from the center of the Sinc, where $T$ refers to the duration of the pulse in time. (Just as that shown by the OP). If the ...


Top 50 recent answers are included