We’re rewarding the question askers & reputations are being recalculated! Read more.

Hot answers tagged

3

Assuming: That you limit yourself to LTI filters. That you can characterize both the noise and the signal of interest. Then: (a) If you want to detect a signal of interest (e.g. detect footsteps), use a matched filter. (b) If you want to estimate the value of such signal, use a Wiener filter. These are "the best" you can do (under a bunch of assumptions)....


2

The continuous-time Fourier transform of a single rectangular pulse $p(t)$ of duration $[-d,d]$ is : $$ P(\Omega) = \frac{ 2 \sin(\Omega d) }{\Omega } = 2 d \cdot \text{sinc}( \frac{\Omega d}{\pi} ) \tag{1} $$ where $\Omega$ is the frequency in radians per second. You can not represent $p(t)$ or $P(\Omega)$ using a sampled-data computer system because $p(...


1

If you have an exactly conjugate-symmetric frequency domain vector, the values at DC and at Nyquist must be real-valued. The 'symmetric' flag of Matlab's ifft command makes sure that the result of the inverse FFT is real-valued, implying that the values at DC and Nyquist must also be real-valued. Let $X[k]$ be the length $N$ DFT of a real-valued sequence $...


1

Try the snippet below. In double precision the relative error should be around -300 dB. The absolute error depends on the scale of your signal. From your post it sounds you want to filter a long signal with a bunch of much shorter impulse responses. The best way to do this would be "overlap add", which is implemented by MATLAB's fftfilt function. nx = 2.^...


1

I don't know your overall goal but if you want to test the MSE associated with FFT / IFFT then you should perform the following num_of_samples = 2819519 ; fft_len = 2^nextpow2(2819519) ; X = fft(signal, fft_len); y = real( ifft(X, fft_len) ); mse = sum( (signal - y(1:num_of_samples) ).^2 )/num_of_samples


1

Not really. Unless you fully understand the math behind the DFT, you are likely to run into problems like circular vs linear convolution, time domain aliasing, excessive time domain ringing, etc. For "light weight" frequency selectivity application, time domain filter is typically a lot easier.


1

Note that the DFT transforms a periodic sequence into a periodic sequence. Hence, the result of your IFFT is intrinsically periodic and you should view it as such. The parts you are seeing at the end of it are thus just as well behind the start as they are before it. Hence, this part may as well be some form of pre-ringing, stemming from a nonzero group ...


1

When you know that the process that generated the data is non-linear (and you are lucky to be in full control of the acquisition), you can try Attractor Reconstruction. This technique attempts to reconstruct the trajectory a system may be taking through phase space, that results in the complex signal that is being recorded. The signal itself, may be showing ...


1

if I understood it right, given your 3D volumetric data $x[m,n,p]$, first you want to take a 2D forward DFT (via 2D FFT) in the first two variables $m,n$ (i.e., for each m-n plane along 3rd dimension) and then take a 1D inverse DFT of vectors along the third dimension. Note that in the first operation you replace each data plane with frequency plane and ...


1

The closer a synthesized frequency gets to half the sample rate, the better the reconstruction filter ones needs to reproduce a pure waveform. It looks like your plotting application has a poor reconstruction (upsampling to plot points) filter, causing the resulting plot to look irregular when the signal frequency gets much above about 1/8th the sample rate....


1

If allowed, I would view the signal in the frequency domain (2048 pt FFT for a single symbol, Fs=30.72Mhz). Anything outside the central 1200 carriers in the symbol is "noise" and shouldn't be there. You can filter the noise by setting the outer FFT bin amplitudes to 0, then convert back to the time-domain or perform other signal processing as desired. ...


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