# Tag Info

## New answers tagged fft

2

There's an error in your script. Your sampling frequency is not 100 Hz like you intended but is actually 99.9 Hz. Therefore you don't actually have a whole number of cycles in your FFT which creates some leakage. This leakage will also impact the phase estimation. If you want 1000 points at 100 Hz, the last point should not end at 10 seconds but at 10 ...

2

A signal that's discrete in frequency is periodic in time. By using an FFT you inherently make this assumption and the FFT calculates the spectrum of a signal that's infinitely repeated in time. The FFT is ONLY real valued if the time domain signal has even symmetry, i.e. $x(-t) = x(t)$. For a discrete periodic signal of period N this becomes $x[n] = x[N-n]$....

0

Relevant visual, and on FFT meaning. If you append a zero to a perfect cosine, you increase lengths of all FFT bases (real cosines, imag sines) by 1, so none of them perfectly correlate (multiply & sum) with the original cosine. Need extra frequencies (with intermediate phases, achieved by imag in FFT) to compensate.

0

When you want to simulate / visualise the frequency spectrum of a continuous-time signal (such as your $y = \sin(\omega t)$) using a digital computer, you first sample the continuous-time signal with an appropriate sampling-rate, then you apply a window to the resulting discrete-time sequence (say $y[n]$ in this case) so as to get a finite length block out ...

0

Yes, that's correct, the FFT is an algorithm that improves the efficiency of the DFT, and doing so by calculating the DFT recursively. The DFT is samples of the DTFT, by padding your sample you simply making your DTFT sample resolution bigger, therefor if you do not have any calculation limits, do that. Another option for you is to calculate the DFT straight ...

0

The following is written assuming you do the signal analysis on your PC, and only use the Arduino to acquire the samples and send them to your PC. Your Arduino Nano's microcontroller doesn't have the memory necessary to store a second of data. various sources state that FFT works with 2^n samples FFTs in length of powers of 2 are especially computationally ...

1

I post it as the answer, because the text does not fit into a comment format. First, I wonder what is a purpose of computing PSD for the signal acquired with the zero wind speed. You are correct in describing the data acquired when the inverter is turned on: the regular peaks separated by 0.25ms intervals betray the default switching frequency (4kHz) of the ...

2

Can I perform FFT on pieces of a very large signal, and then assemble the results to obtain the FFT of the total signal? This is the basis for the FFT algorithm, in that a large DFT can be more efficiently done as 2 DFT's each half the size (and so on and so on until the only thing left is 2 point DFT's). (The efficiency comes about since a DFT requires on ...

0

The other answer is great. I only wanted to add this in case the OP is interested in clicking the link below for more details and there is some very simple MATLAB code there which could be helpful given that they also included code in the question. Here are the basic steps that you need to do for a $M-$PSK signal: Raise the signal to the $M^{th}$ power. ...

0

Given the phase coherence over non-blanked intervals, a simple and effective approach would be to additionally window the non-blank intervals with a matching window corresponding to the length of the time samples in between blanked intervals. Since the window only tapers the amplitude and does not modify the phase, there will be no issue with different ...

0

Given the links in the question, the OP is interested in more details on implementing a squaring algorithm for carrier recovery. A squaring algorithm is a popular analog option for the recovery of BPSK and QPSK modulations based on its simplicity and is completely applicable to digital implementations as well, but it is not the only algorithm nor most ...

0

Let's start with your main question Is there processing gain for FMCW using heterodyne-style receiver as opposed to matched filter? The answer is a "yes" with a big asterisk next to it. It's important to note that there are two main ways to determine range in a radar system: Matched-filter: This is an ideally auto-correlation based method where ...

0

The link provided as a reference is broken. But, regardless of what the OP's source says, the Walsh-Hadamard transform method (multiply the data vector with a $2^n\times 2^n$ Hadamard matrix $H_n$ in Sylvester form $$H_n = \left[\begin{matrix} H_{n-1} & H_{n-1}\\ H_{n-1} & -H_{n-1}\end{matrix}\right]$$ does not give the cross-correlation of the data ...

0

When computing the PSD of a windowed function we must account for the increased width and hence overlap of the main lobe of the windows kernel. A single tone does not span multiple bins and thus the computed RMS level will be accurately determined from the coherent loss of the window, however a signal that has a spectral density that spans multiple bins (...

0

Is this normal? No Like a normal artifact of the fft? No Possibly something wrong with my data? Yes. Could be a data problem, could be a hardware problem, could be a SW problem, could be real. You seem to have a very large DC offset in your data. Without knowing what exactly your data, is I can't tell whether that's expected or if it's a problem.

3

Computing several versions in a family of transformations from the same data can be seen as an instance of "diversity enhancement". One may expect from it that interesting features may pop-up better and align, while uninformative ones will appear less coherent, so that a clever (often nonlinear) combination of the different "transformed ...

4

I've done that. Used a flat-top window to estimate the amplitude. Then used a (fftshift'ed) Blackman-Nutall window to estimate the phase. That particular combination gave me a better pair of estimates than using a single, say, von Hann windowed FFT. Even with interpolation of the FFT results. Other combinations might work better for other purposes. The ...

4

That makes little sense; the FFT (which is just an implementation of the DFT) is a linear operation; summing/weightedly averaging the same signal windowed with different windows is mathematically identical to just windowing with the summed/weightedly averaged window to begin with. It's literally the same. So, what you really want is to design / choose a ...

1

Since your input is discrete the spectrum is periodic with the DFT length. $X_0$ is your DC term, but so is $X_{512}$, $X_{1024}$, $X_{-512}$, etc. It really doesn't matter which exact period you pick: [0 511], [-255 256], [-256 255], etc. Any choice will work and you always get the same amount of data. Note that $X_{-256} = X_{256}$.

0

So you think that the energy of the windowed signal in the frequency domain equals to the original signal multiplied by a certain value related to RMS of the window function, which is wrong. According to Parseval's theorem, the total energy of a signal can be calculated by summing power-per-sample across time or spectral power across frequency: $$\sum_{n=0}^... 1 I'm giving a new answer because I suspect my previous answer was based on a misunderstanding of your question, but I'm not sure (so I'm not deleting the previous question right away). I think you meant to ask What are the limits to increasing the subcarrier count in an OFDM system? It seems like as-long-as-possible OFDM symbols are advantageous. And the ... 1 Sure, you can ! Practically, some systems are using OFDM system with number of subcarriers 4096, but the PAPR will be an issue in that case, and if your channel is fast-fading, the time-domain equalizer will be high-complex since one-tap frequency-domain equalizer will be useless. Usually, choosing the length of the symbols depends on the channel delay, e.g.... 0 Is there processing gain for anything at all using heterodyne-style receiver as opposed to matched filter? All else being equal -- no. By "all else being equal", I mean that you're not throwing away information. If you don't decimate, then heterodyning + post processing is going to, in the end, come up with the same result including signal/noise ... 0 Beat signal of a single target will be a sinusoid in the idealized world, Only for a TX waveform that has a constant slope in frequency domain (that means only with sawtooth-shaped frequency trajectory). so theoretically the signal processing gain of an FMCW pulse correlated with Tx waveform in this way should be analogous to FFT processing gain of a ... 1 No, that can't work. The guard interval has the purpose of "swallowing" the previous' symbol's impulse response. Your longer DFT distributes energy all over the symbol duration. This doesn't solve the problem. 3 The FFT is just an implementation of the DFT, which is an invertible operation on any vector composed of complex numbers. Since invertible operations need to be surjective: No, an FFT can't have less outputs than inputs. You are, probably, looking for something that "condenses" your data, e.g. looking for features, or projecting onto a smaller ... 0 Is my thought process correct? No. Frequency domain filtering is difficult and even if you get it right, I sincerely doubt that low-pass filtering will solve your problem Your data is very noisy. I looks like there are two noise sources: one with a "quantization" step of about 20 plus some smaller noise overlaid. Hard to tell without further ... 0 Due to the harsh volatility of the data, I need to perform fft to transfer my time series to the frequency domain, select a cutoff point to remove all the noise and then transfer back to the time domain. Is my thought process correct? You want to do the right thing, but the way you're approaching it is not good: FFT'ing data and then cutting off stuff leads ... 0 Is there a way to get my vectors Y1, Y2, Y3, etc... by computations in the frequency domain instead? Yes. Rough outline: you take a full length FFT if the zero padded window. For each frame you can implement the time shift a multiplication with e^jn\omega and then do a circular convolution and downsample. If you choose the window size well, you can do a ... 0 If you can be sure that your passive network is perfectly linear (does not create harmonics) you can just use the raw min/max values that you read from the ADC and compare them (correctly scaled) to the min/max values that you put into the DAC. Some inaccuries will arise for sure, ie. because the DAC and ADC are not perfectly linear. If your passive network ... 0 I think the term "baseband real signals" could be misleading here, because there is no carrier frequency given in the question and therefore no down conversion to baseband. If you calculate the FT of any real signal, the negative frequencies are always complex conjugate to the positive frequencies (as written above), so there is no additional ... 1 What you have to show is that$$W_3^2+W_3+1=0\tag{1}$$with W_3=e^{-j2\pi/3}. It's a straightforward exercise to prove (1). In general we have$$\sum_{k=0}^{N-1}W_N^k=0,\qquad N>1\tag{2}with W_N=e^{-j2\pi/N}. Eq. (2) can be shown by using the formula for the geometric sum. 0 The reason the two tone method works to measure group delay as given is because group delay is determined by the derivative of phase with respect to frequency. Since the system is linear phase (constant delay at all frequencies) then we can over any two frequencies determine the delay from the difference in phase between any two frequencies at the input and ... 0 This signal looks pretty clean. I would stick to time domain feature extraction. Maybe 1st and 2nd derivative of time domain data. If you're just counting, you can almost just use the magnitude and see that these steps have the most negative values or acceleration. You could use the negative peaks to center a search for the edges of the "step", ... 1 So, writing your F^b and F^{'b} as permutations p, p^{-1} of the DFT matrix F , IDFT F', and the cyclic prefixing and removal also as Matrix operation P, R (which boils down to cyclically extended or truncated identity matrices), and the circular convolution with the channel impulse response as circulant matrix C, \begin{align} x&=F^{'b}X=... 1 Applying ssq_cwt with extract_ridges, I obtain below. Improvable with better windowing, more samples. Smoothing can be applied on amplitude plot to make it more interpretable without losing much accuracy. import numpy as np from ssqueezepy import ssq_cwt, extract_ridges from ssqueezepy.visuals import plot, imshow # z = see OP's code; used np.random.seed(... 1 When forming a range-Doppler map using FMCW, you need to do both FFTs if you want to reliably detect a target. Let's say we collect an MxN data matrix, where we have M fast-time samples (range dimension) and N collected chirps (Doppler dimension). Here we've simulated a target at 150 m in range moving towards the radar at 75 m/s. There is no noise and we're ... 1 So, according to your text, H := F^bh,$$i.e. what you call the bit-reversed order FFT of the channel impulse response. Since "bit-reversed order" just implies you're permuting outputs of the FFT, F^b is just a row permutation \Pi_{BR} of the standard DFT matrix D. Since the "proper" DFT actually leads to a diagonal H (as a ... 0 Behind an FFT or a DCT operator, which can be implemented as a matrix product. Depending on the shape of your discrete vectors, you may have b=D\times a and c=F\times a. So you can find your answer with a suitable matrix product. You can also find fast algorithms by decomposing each of the above matrices in simpler matrix product, or using lifting-like ... 0 One possibility is to take the FFT magnitude of both, run a linear regression between the two magnitude vectors, and adjust the gain until the slope of the regression fit is 1. 4 Solving the Linear Combination of Real Harmonic Signal The data model is given by:$$ x \left( t \right) = \sum_{i = 1}^{M} {a}_{i} \sin \left( 2 \pi {f}_{i} t + {\phi}_{i} \right) + n \left( t \right) $$Where  M, {\left\{ {a}_{i} \right\}}_{i = 1}^{M}, {\left\{ {f}_{i} \right\}}_{i = 1}^{M}, {\left\{ {\phi}_{i} \right\}}_{i = 1}^{M}  are unknown ... 1 FFT is poorly-equipped for this task^{1}; time-frequency localization, like STFT or CWT, is preferred. Said representations can be refined further to trace out frequency and amplitude over time with synchrosqueezing. 1: I originally understood the question as tracking instantaneous amplitude and frequency modulations of a (non-stationary) signal, which isn'... 1 The standard method of dealing with spectral leakage is time domain windowing. This involves a fair bit of tradeoff: main lobe width, side lobe peaks & distribution, stop band attenuation, etc. These tradeoffs are controlled by choosing the window type and window parameters (if applicable). What the best trade off is, really depends on your specific ... 0 Doesn't look right. a 64-FFT with only the center 52 carriers occupied should look pretty "rectangular". I'd recommend not doing the upconversion. OFDM is designed to be an equivalent-baseband system, so you can definitely investigate whether your OFDM works directly in baseband. It's way more intuitive that way. 0 As Dan says, correlation finds similarities as well as differences - the more similar, the less different. The autocorrelations and cross-correlation of signals can be defined in the frequency domain as:$$ r_{xx}(k) = \mathbf{X}^H(k)\mathbf{X}(k)=\sum_{n=0}^{N-1} X^*(k;n)X(k;n) = ||\mathrm{X}(k)||^2  r_{xy}(k) = \mathbf{X}^H(k)\mathbf{Y}(k)=\sum_{n=0}^{...

1

Quantifying a difference in the frequency domain can be useful if the information on how your signals differ is better expressed in the Fourier space. If this assertion is valid in your case, hereafter are hints on methodology, and basically the sort of you can find in Shazam to distinguish music from a short listening period. By the way, I think that I have ...

4

The spectral efficiency of OFDM is strictly worse than that of a pulse-shaped QAM signal with the same rate. OFDM requires a guard interval, on which no useful information is transmitted. It is common to dedicate several subcarriers to pilot signals. It is often not pulse-shaped (or, more accurately, pulse-shaped with a rectangular pulse). Since each non-...

0

You can interpolate using the transform of your chosen window function as the interpolation kernel (similar to Sinc reconstruction), and then use successive approximation to find the peak of the interpolated spectrum. Pre-constructing a polyphase table using an extremely oversampled transform of your chosen window might or might not assist in this ...

1

As a precautionary statement, the FFT will give you coefficients of the frequency components closest to the integer multiples of $1/T$ in Hz where $T$ is the length of the sequence in seconds being used for the FFT. If the components are not on these integer boundaries, then you will get several results (called spectral leakage) where the actual components (...

1

The term "Hanning" is illiterate. The window is attributed to Julius von Hann. So it is a Hann window, or von Hann window. If you use overlap add/save fast convolution on von Hann windowed data where the windows are 50% overlapped, you get the same result as rectangular windows of data that are non-overlapped, except for the initial and ending ...

Top 50 recent answers are included