A list of puns related to "Discrete Fourier Transform"
Coming from an electrical engineering background, I get that de DFT is heavily used on signal processing and system analysis. I think it is also used in vibration analysis in mechanical/civil engineering.
However, I have to teach DFT and Fourier series to students from other branches of engineering and I'd like to give them some real-world applications other than EE. These students don't have a great background on physics, so the application must be rather simple to explain. If you could link me a paper / book in which the subject is discussed that would be great. Thanks in advance!
https://github.com/ChrisThrasher/fourier-draw
This is my 3rd SFML project this year. I had a lot of fun with this one and enjoy playing with it. If you haven't seen the first two, check them out.
https://github.com/ChrisThrasher/mandelbrot
https://github.com/ChrisThrasher/boids
Two new things I had to figure out where click-and-drag mechanics and how to draw lines.
Click-and-drag mechanics ended up being pretty simple because I just needed to query the left mouse button. I didn't have to use the event system to pull this off.
Line drawing was more complicated and I'm not sure I solved it the best way. I'm drawing lines as sequences of lines with circles in between to help smooth it out. The results looks as good as I hoped but I have to think there's a better way to do it.
Hello! I'm trying to make the DFT (and after that the FFT) algorithm from scratch in C, by only taking the complex mathematical formula and test it on some simple signals.
So far I have only tried on a generated 10,000 Hz pure sinewave, but already there I'm getting a weird problem, and I think that it's because there's something that I don't quite understand in how the DFT is supposed to work.
Here's the source code.
The weird thing that I'm getting is that when I compute the DFT of the pure sinewave, I get 2 symmetrical peaks instead of one on the real array.
After that, I also discovered that I get 2 point-symmetrical peaks on the imaginary array:
It turns out that if I individually sum the real and complex parts into a single array, the last peaks cancel out just a little bit. At one point I had tested a case where they did cancel out, but this one isn't the case.
I was expecting to get only one peak representing the frequency of 10,000 Hz - but not placed at point or index 10,000 because I computed the DFT back into the original array.
I feel like that last bit is important: am I getting 2 peaks because of the size of the output array, 8192 samples, being the same as the size of the input array?
Finally, it could also be because of how I make the input. When I generate the sinewave, it's only an array of floats. I made the complex part being exactly identical to the real part, making the sinewave oscillate on the complex diagonal, which results in the graphs above.
A friend of mine who had tried and succeeded to make the FFT algorithm in C++ told me that the signal he tried it on was a sine on the reals and a cosine on the imaginaries. So I generated a "cosinewave" (?) for the imaginary part, and this time, adding the real and complex parts together results in the second peak completely cancelling out:
[DFT plot of summed up real and imaginary part of second attempt](https://preview.redd.it/3yzktlja0rg71.png?w
... keep reading on reddit β‘https://i.redd.it/thvnxea9lao61.gif
So this is more of just a fun post: I'm curious if anyone had any applications or ideas which used fractional operators . I also wanted to show of my gif.
A bit of background on what's in the GIF and fractional operators in general.
Recall that the 2D discrete Fourier transform, F, is a linear operator on a space of matrices (or d by d arrays). If we apply the Fourier transform 4 times it returns the identity function i.e. F^4 = F(F(F(F))) = I. Note that people have figured out how to let these exponents take non-integer values! This corresponds to fractional Fourier transforms. So for example the half Fourier transform F^(1/2) is something that functions like the square root of the Fourier transform. If we let G = F^(1/2) then we have that G(G)=F, or maybe a bit more concretely, for any matrix/image X, we have that G(G(X)) = F(X). These special exponents behave like regular old exponents in a lot of ways and it has been observed that one can construct F^a for arbitrary real-valued a.
The GIF I've posed takes an image of a pagoda X and applies increasing fractional degrees of Fourier transforms. Specifically the graph shows shows F^a (X) as a goes from 0 to 4.
Links, more on fractional operators
Conclusion
I'm curious if anyone has any interesting ideas...
So I've been tasked to construct a DFT Matrix using a for loop, not the built-in code. I've figured it out for the most part, as shown below:
unity = 5;
mat = zeros(unity);
for r = 1:unity
for c = 1:unity
mat(r,c) = (exp(1)^((-2*pi*1i)/unity))^(r*c);
end
end
mat
However, my result is essentially some transpose of the actual DFT over the antidiagonal.
mat =
0.3090 - 0.9511i -0.8090 - 0.5878i -0.8090 + 0.5878i 0.3090 + 0.9511i 1.0000 + 0.0000i
-0.8090 - 0.5878i 0.3090 + 0.9511i 0.3090 - 0.9511i -0.8090 + 0.5878i 1.0000 + 0.0000i
-0.8090 + 0.5878i 0.3090 - 0.9511i 0.3090 + 0.9511i -0.8090 - 0.5878i 1.0000 + 0.0000i
0.3090 + 0.9511i -0.8090 + 0.5878i -0.8090 - 0.5878i 0.3090 - 0.9511i 1.0000 + 0.0000i
1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i
Instead of this:
ans =
1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i 1.0000 + 0.0000i
1.0000 + 0.0000i 0.3090 - 0.9511i -0.8090 - 0.5878i -0.8090 + 0.5878i 0.3090 + 0.9511i
1.0000 + 0.0000i -0.8090 - 0.5878i 0.3090 + 0.9511i 0.3090 - 0.9511i -0.8090 + 0.5878i
1.0000 + 0.0000i -0.8090 + 0.5878i 0.3090 - 0.9511i 0.3090 + 0.9511i -0.8090 - 0.5878i
1.0000 + 0.0000i 0.3090 + 0.9511i -0.8090 + 0.5878i -0.8090 - 0.5878i 0.3090 - 0.9511i
How can I fix this?
EDIT:
Solved!
mat(r,c) = (exp(1)^((-2*pi*1i)/unity))^((r-1)*(c-1));
The key to remember here is that the final term of a DFT matrix is the unity to the (N-1)(N-1) power.
I have heard several claims that the fast Fourier transform (FFT) algorithm is one of the cornerstones of numerical computing. Wikipedia says "In 1994, Gilbert Strang described the FFT as "the most important numerical algorithm of our lifetime".
However, I don't understand the basis of these claims. The FFT only reduces worst-case complexity from O(n^2) (brute force computation from the DFT definition) to O(n log n), similar to efficient sorting algorithms. I like merge sort as much as the next guy, but I probably wouldn't consider it to be the most important algorithm of our lifetime. So I'm not sure why we'd apply that title to FFT.
For instance, in digital signal processing for music, a sample is typically divided into bins of several thousand samples as most, which yields more than enough frequency resolution for any kind of processing you wish to do. With inputs that small, I don't imagine there'd be a computational limitation. You'd have to run ancient hardware with massive frequency resolution in hard real time applications.
I'd be interested in hearing about such practical applications where FFT is strictly necessary.
I am trying to implement a numerical solver for a PDE, that uses DFT as one of its steps. It's your standard field propagation in a waveguide under paraxial approximation (with some dispersion and nonlinear operators). The idea is to convert the PDE into frequency domain and then solve it with some ODE-solvers. The frequencies that show up from DFT do have a physical meaning: they are the (scaled) frequencies of the electrical field.
But I am having trouble translating the DFT frequencies into the physical frequencies. The issue is that I cannot get a "broad spectrum" because of time duration limitations of the input pulse.
So we know that for a DFT, the maximum frequency is related to time duration of the function as:
wmax = 2*pi/Tmax
and the maximum possible frequency that can be sampled is wmax/2
(Nyquist theorem). The problem is, that this wmax
is very small compared to the frequencies in the spectral domain I want to study. If I take a central wavelength of input pulse at say 900 nm, wmax
for a pulse duration of T0 = 40 fs
(time-domain window say Tmax = 200 fs
, from -100 fs to +100 fs) barely goes 1 nm away from this 900 nm spectral component.
How does one numerically find these higher/lower frequencies, say as high as 2 octave from central frequency? If I decrease Tmax
, am I not limiting the original pulse and distorting the signal?
I recently submitted this information to several cyber companies after a 4 year investigation and would like to share it with you all, in hopes, to help.
The cyber criminals seem to be using a model of attack that looks very similar to models used by APT3, APT28, 29 and so forth, but these criminals are operating in Southern California and left physical evidence after break-ins were discovered.
Their model of attack uses HyperGame Theory Model of deception as a basis and may be going after targets throughout Southern California and pointing blame, by use of model, towards other documented Cyber Offensive Groups such as the Dukes. Anyway, I am going to paste a recent email that I've sent to a few cyber companies about this newly undocumented cyber model that was discovered. If you're the right person, you may find it worth passing along that a criminal cyber mercenary group (similar to DeathStalker in that they don't seem to be associated with gov cyber and are targeting people and businesses for money.)
/******************************** EMAIL BELOW *********************************/
I have information to submit that is in relation to several cyber offensives in Southern California and may be affecting Canada and other locations as well.Β Β First and foremost, this is privileged information and I can be reached in person, phone or email to discuss my findings further.Β There is an active cyber attack against me and others and additional surveillance or signal overlap couldΒ be dangerous. Please do not interject until we have spoken.To begin, the use of the word Ultrasonic may be incorrect, as the use of ultrasonic signal injection is simply one aspect of the attack model that will be described.I discovered a newΒ cyber attack model during an investigation that began in Fullerton, CA. This email is lengthy and I've included video links and links to information and studies reinforcing my findings. Some of these findings may cross over into current investigations regarding the US and Canadian Embassies in Cuba.A model of attack was discovered that combines several advanced cyber techniques which increase the power output within a bu
... keep reading on reddit β‘I'm studying DFT right now and I was watching a video on youtube.
and it explained it pretty clearly but I was wondering if I sampled 10 times a second (10hz) then the frequencies we know about are just 0hz-4hz, then why are there frequencies at the other end in 8hz and 9hz ?
Also is it always true that we have to double the values for the frequencies below the nyquist limit?
Hello,
I am trying to develop an intuitive understanding of the Discrete Fourier Transform of unevenly sampled, known as NUDFT. I failed to find a resource that taught how it works at a noob level. I want to understand the Deeming [https://link.springer.com/article/10.1007/BF00681947] and Kurtz [http://articles.adsabs.harvard.edu/cgi-bin/nph-iarticle_query?1985MNRAS.213..773K&defaultprint=YES&filetype=.pdf] algorithm. The codes are quite opaque the way they are written because they don't define their variable well in the papers. Any help would be really appreciated.
Thanks :)
Hello r/math. I've been working on a problem and I can't seem to find any sources that treat it with my desired amount of rigor.
As the title says, I'm interested in determining the distributions of the DFT of sampled noise. To be precise, suppose I have a series of I.I.D. normal variables with mean 0 and some unknown variance π^2 and I apply the DFT algorithm. What is the output?
What I've tried:
\*edit\* I can't seem to get my summations to format nicely, so I'm removing the sub and superscript. Assume β always refers to the summation from n=0 to n = N-1
X*_k_* = 1/N β *N*(0, π^2) * e^(-2πink/N)
We can think of *N*(0, π^2) * e^(-2πink/N) as multiplying a normal distribution by a constant, and this is also normal with variance multiplied by the constant squared:
X*_k_* = 1/N β *N*(0, π^(2)e^(-4πink/N))
This is the sum of normals, which is a normal with variance equal to the sum of variances (and mean sum of means, but means are all 0)
X*_k_* = 1/N *N*(0, π^2 * βe^(-4πink/N))
for k = 0, this simplifies easily:
X*_0_* = 1/N *N*(0, π^(2)N) = 1/βN *N*(0, π^2 )
and this makes sense. For longer sampling periods, the 0 frequency bin should have smaller variance (more likely to be closer to 0).
However, for k = 1, it seems to me that βe^(-4πink/N) reduces to 0, which would mean I have a normal variable with 0 variance. I'm arriving at this conclusion by a geometric argument, where I simply trace out the vectors in the complex plane. This seems to describe a regular polygon with N/2 sides (N is always a power of 2 for my application) that begins and ends at the origin, transcribed twice.
In fact, for every k that is a factor of N I believe it reduces to 0. If k is not a factor of N, then I'm not sure. This doesn't seem correct.
I'm starting to wonder if I've treated the noise incorrectly. I've approximated it as a continuous normal variable, but in practice it would have to be discrete (any sample I take is quantized into a finite number of bits). This would make the math much more cumbersome but might give more meaningful results.
Any help or links to similar work would be much appreciated! I've found a lot of hand wavy papers on the subject but that's not really what I'm looking for.
https://ccrma.stanford.edu/~jos/mdft/
I'll just consider it magic, thanks.
How do I Interpret the result of a discrete Fourier transform? To my understanding if I have a discrete signal, I can use the discrete Fourier transform to find out of what frequencies this signal consists. So I assume it can tell me how it relates to a sine/cosine.
For example if I have the result of a DFT f' = (0, 1 - 2i, 0, 1+2i) what does it tell me about my original signal? Now I know that the original signal was 2sin(x) + cos(x) but how would I get this information based on f'?
Fourier Series, Fourier Integral, Fourier Transform, Discrete Fourier Transform, Fast Fourier Transform
I recently submitted this information to several cyber companies after a 4 year investigation and would like to share it with you all, in hopes, to help.
The cyber criminals seem to be using a model of attack that looks very similar to models used by APT3, APT28, 29 and so forth, but these criminals are operating in Southern California and left physical evidence after break-ins were discovered.
Their model of attack uses HyperGame Theory Model of deception as a basis and may be going after targets throughout Southern California and pointing blame, by use of model, towards other documented Cyber Offensive Groups such as the Dukes. Anyway, I am going to paste a recent email that I've sent to a few cyber companies about this newly undocumented cyber model that was discovered. If you're the right person, you may find it worth passing along that a criminal cyber mercenary group (similar to DeathStalker in that they don't seem to be associated with gov cyber and are targeting people and businesses for money.)
/******************************** EMAIL BELOW *********************************/
I have information to submit that is in relation to several cyber offensives in Southern California and may be affecting Canada and other locations as well.Β Β First and foremost, this is privileged information and I can be reached in person, phone or email to discuss my findings further.Β There is an active cyber attack against me and others and additional surveillance or signal overlap couldΒ be dangerous. Please do not interject until we have spoken.
To begin, the use of the word Ultrasonic may be incorrect, as the use of ultrasonic signal injection is simply one aspect of the attack model that will be described.
I discovered a newΒ cyber attack model during an investigation that began in Fullerton, CA. This email is lengthy and I've included video links and lin
... keep reading on reddit β‘We live in a world engulfed with digital (audio) signals π§ π§. To make sense of these signals, we canβt use the (Continuous) Fourier Transform. We should adapt this powerful tool to the digital domain. Hence, the Digital Fourier Transform (DFT). Discover the secrets of DFT in my new video!
This video is part of the Audio Processing for Machine Learning series. This course aims to teach you how to process audio data π§ and extract relevant audio features for your machine learning applications π€π€.
Hereβs the video:
https://www.youtube.com/watch?v=ZUi_jdOyxIQ&list=PL-wATfeyAMNqIee7cH3q1bh4QJFAaeNv0&index=13
We live in a world engulfed with digital (audio) signals π§ π§. To make sense of these signals, we canβt use the (Continuous) Fourier Transform. We should adapt this powerful tool to the digital domain. Hence, the Digital Fourier Transform (DFT). Discover the secrets of DFT in my new video!
This video is part of the Audio Processing for Machine Learning series. This course aims to teach you how to process audio data π§ and extract relevant audio features for your machine learning applications π€π€.
Hereβs the video:
https://www.youtube.com/watch?v=ZUi_jdOyxIQ&list=PL-wATfeyAMNqIee7cH3q1bh4QJFAaeNv0&index=13
https://preview.redd.it/ujy81dgakc951.png?width=681&format=png&auto=webp&s=2c276de1d0c7e825d2b50846b347868a4de247fc
See question. Not sure where to start with this
https://preview.redd.it/zqt0gngj3lz41.png?width=628&format=png&auto=webp&s=c8d3b31af1f2dff40e72321832c58852d7ea02e7
Please note that this site uses cookies to personalise content and adverts, to provide social media features, and to analyse web traffic. Click here for more information.