Hot answers tagged

4

As pointed out by Dan Boschen in a comment, these number aren't really surprising. Usually the DFT is defined as $$X[k]=\sum_{n=0}^{N-1}x[n]e^{-j2\pi kn/N}\tag{1}$$ where $x[n]$ is the input sequence and $N$ is the DFT length. So bin zero, i.e., $X[0]$, is just the average value of your input sequence multiplied by the DFT length. The maximum value of $|X[...


3

Zeroing out bins / attenuating them in discrete Fourier domain is universally a bad idea, due to the undesirable time-domain effects of that. Instead, use a audio processing program to apply an adjustable equalizer to the song of choice. Let's walk you through Free software: Get audacity; load your song in that, open "Effects"->"Equalizer" start with one ...


2

(1) is it possible that the point-wise multiplication of two discrete, band-limited functions is aliased itself? Yes. Or at least it's possible that the result won't fit in a tidy manner into your sampling rate. Because multiplying two signals together creates energy at different frequencies than the frequencies of the original (this is easiest to do by a ...


2

You explain in the comments that the signal is sampled at 50 KHz, then low pass filtered at 128 Hz with a 2nd order biquad filter and then resampled and stored at 256 Hz. If you weren't prudent with choice of sampling rate and low pass filtering, then the harmonics of 10 Hz could create a component at 5 Hz through aliasing. For example this would occur if ...


2

Since $\vert X_1 \vert$ is a real even function, its FFT (IFFT) is a real function. This is a basic property of Fourier transforms. The power spectrum can be real but not even, in which case the ifft will give complex coefficients. In the example you linked, they start with a non-even real signal and then take the FFT. This will give complex values ...


2

There are two issues / concerns with this approach in that you may not be getting what you want. The primary one is the equivalent of post detection averaging by using the post-processed results from a spectrum analyzer, and the second is that the result of your complex conjugate multiplied FFT is actually in the time domain since you started in the ...


2

I think your problem might be in this line: FFTSpectrum = fft(sampledsignal,N)'; Note that in MATLAB, ' is the complex conjugate transpose. Use .' to transpose a matrix without applying the complex conjugation.


2

Under the assumption that your words "extract the amplitude of those four components" actually mean "extract the spectral magnitudes of those four components", then the initial phases of the original four periodic signals do not matter. It's straightforward to prove this behavior by modeling your down-conversion process using software.


2

So called spectral leakage always occurs when transforming any finite length observation. That's because it's an artifact of windowing, and any non-infinite length observation (-t/2 ... +t/2) requires some sort of window, inherent rectangular or otherwise. A window function allow you to choose your artifact: from window "distortion" to Sinc effects, and/or ...


1

Please see this post that details most of the noise considerations for an ADC What are advantages of having higher sampling rate of a signal? In particular the relationship for the noise floor given a full scale sine wave: $$SNR = 6.02 \text{ dB/bit} + 1.76 \text{ dB}$$ Using your numbers: 1.5Vpp sinewave. If we assume this sinewave is full scale (any ...


1

Assuming the OP wants to manipulate a time domain function such that zeros are inserted in the frequency domain result, here is a simple approach: Simply replicate the time domain samples and then divide by the number of repetitions to normalize and this will result in the same frequency domain result as the series that was replicated, with additional zeros ...


1

I assume that your experiment where you saw no effect was with signals that underwent a linear phase vs frequency process in their delay (constant group delay). Under many situations the phase of the channel in the frequency domain is non-linear, causing different frequency components to experience different delays (group delay variation). When you frequency ...


1

The result is expected as you are simply appending zeros to the product fft(A1).*fft(A2) Which does the time domain interpolation as you describe. However the ifft of the above product results in a series of constant values in the time domain since it is a circular convolution. Appending additional zeroes simply interpolates this for more constant values (...


1

clear; N = 4; M = 2*N-1; a = 1:4; r = ones(1, N); % Rectangular window A1 = fft(a); W = fft(r, N); A2 = (A1).*W; A3 = ifft(A2, N); B = 3:6; x = xcorr(A3,B) A4 = fft(A3,M); % A3 is interpolated by a factor of M B2 = fft(B, M); Freq_Multiplication = (A4.*conj(B2)); x2 = fftshift(abs(ifft(Freq_Multiplication, M))) % Zeropadding A2 ...


1

You can pad zeros in frequency domain. But you need to take care about Nyquist bin when N is even. A3 = [A2(1:N/2) A2(N/2+1)/2 zeros(1, 2*N-length(A2)-1) A2(N/2+1)/2 A2(N/2+2:end)]; Here Nyquist bin is A2(N/2+1)/2 and zeros are padded in the middle of the spectrum For N-odd A3 = [A2(1:(N-1)/2+1) zeros(1, 2*N-length(A2)) A2((N-1)/2+2:end)]; This is only ...


1

An FFT extracts frequency bands, similar to a bank of (mediocre) bandpass filters. An FFT is just a bank of bandpass FIR filters, all of equal length, that because they are in default form rectangularly windowed, have very poor stop-band characteristics (except for deep notches at periodic orthogonal-in-window frequencies), but steep transitions. But ...


1

Fast Fourier transform does not extract any frequency bands. It only shows the frequency content of a given signal. But while applying FFT, one should be careful about choosing the sampling frequency. As an example, if a signal contains a frequency range of $0-100\,\text{Hz}$ and $f_{max}=100\,\text{Hz}$ $$f_{max} = \dfrac{F_s}{2}$$ and the sampling ...


1

Probably the value of the DCT coefficient and its frequency (i.e., a histogram plot). However, it's impossible to say that with certainty given the information you have provided. If you found that plot in the linked paper, then the definitions of the x- and y-axes are in all likelihood given therein. The paper is behind a paywall, so it's not helpful to ...


1

Discrete time sequence have frequency $$-\dfrac{1}{2}\leq f\leq \dfrac{1}{2}\tag{1}$$ Continuous time signal $x(t)=A\cdot\sin(2\pi Ft)\tag{2}$ The discrete sequence can be obtained from CT signal through periodic sampling. $$t=n\cdot T= \dfrac{n}{F_s}\tag{3}$$ Plugging the above relation in $(2)$ we get $$f=F/F_s\tag{4}$$ Again plugging the $f$ in $(1)...


1

The maximum frequency of a discrete-time signal is half the sampling frequency. A signal with maximum frequency in discrete time is an alternating sequence, and since its period is two sample intervals, its frequency is $f_s/2$. All frequencies in the discrete domain are normalized by that maximum frequency. This implies that a discrete-time system's ...


1

There are a few things going on here: Does this thought process look correct? Strictly, No. The main reason for this is that you are not performing a resampling step that is the differentiating point between the Discrete Fourier Transform (DFT) and order analysis. Is it correct to say that the final fft plot is in the frequency domain? From this link,...


1

If you use random real valued frequencies (e.g. just magnitudes), they all correspond to cosine functions, which all peak at zero (cos(0 * f) == 0). To get more random peak locations, use random complex frequencies as the input to your ifft2d, which randomizes the phase so all the peaks don't line up at zero.


1

import sounddevice as sd import scipy import numpy as np from scipy.io import wavfile as wav from scipy.io.wavfile import write ,read from scipy import fftpack as scfft from matplotlib import pyplot as plt fs = 44100 seconds = 3 myrecording = sd.rec(int(seconds * fs), samplerate=fs, channels=1) sd.wait() write('output.wav', fs, myrecording) fs_rate, ...


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