I have been reading this interesting Article and I have a question about it: https://www.dsprelated.com/showarticle/607.php
My goal is to compute the N point DFT of a cosine signal and a sine signal. Looking at the article, I understand up to equation (4)
And I understand how to use the geometric series to solve this series and I get:
x(m) = (A/2)*( [1- exp(-j*2*pi*(m-k)) ] / [1- exp(-j*2*pi*(m-k)/N) ] + [1- exp(-j*2*pi*(m+k)) ] / [1- exp(-j*2*pi*(m+k)/N) ] )
(correct me if I am wrong) but it looks like this equation only has an interesting value at m=k. So taking L'Hospital (to handle the 0/0) and evaluating at k=m (a lot of things nicely cancel out)
(A/2) * [ 1/(1/N) + 1/( (1/N) * exp(-j*2*pi*(k+k)/N) ) ]
= (A/2) * [N + N * exp(-j*4*pi*k/N)]
Thus x(m) = .5*A*N*[1 + exp(-j*4*pi*k/N)]
Does that look right so far? My problem is that when I take the IDFT of the above x(m), I don't get the original x(n) = A*cos(...) signal. This makes me think that I am messing the math up somewhere. Can you help show me what I am missing?
This blog article of mine completes what you started.
Note: The simplification assumption done with equation (20) is extremely significant.
without diving in math equations what happened to variable (n) that appears in first equations but disappears in the final equation:
x(m) = .5*A*N*[1 + exp(-j*4*pi*k/N)]
N is resolution, k is for bin frequency.
surely you need to account for input sequence samples per frame and all bins.
Thanks for your reply. There is no 'n' because I have transition from x(n) -> DFT -> x(m), when I solve the series it eliminates the n variable. Does that make sense? I am just following https://www.dsprelated.com/showarticle/771.php steps (14) through (17).
The second sum in (4) is zero when m=k, because in that case exp(-j*2*pi*(m+k))=1. You don't need L'Hospital for that, look in the article that you linked. Therefore X(k)=A*N/2. The second sum is non-zero only for m=N-k, and X(N-k)=A*N/2. All other X(m)=0.
Thank you for your post.
What you said makes sense to me. So basically, my equation:
x(m) = (A/2)*( [1- exp(-j*2*pi*(m-k)) ] / [1- exp(-j*2*pi*(m-k)/N) ] +
[1- exp(-j*2*pi*(m+k)) ] / [1- exp(-j*2*pi*(m+k)/N) ] )
becomes a piecewise definition as follows:
x(m) = .5*A*N, m=k
x(m) = .5*A*N,m=N-k
x(m) = 0 otherwise.
To me, this means that we should be able to write x(m) as follows:
x(m) = .5*A*N*[δ(m-k)+δ(m-(N-k))]
If this is true, I should be able to take the IDFT of x(m) and get A*cos(2*pi*n*k/N). Let's check it:
x(n) = (1/N)*∑m=0 to N-1 of .5*A*N*[δ(m-k)+δ(m-(N-k))]*e^(j*2*pi*n*m/N)
x(n)=.5*A*(∑δ(m-k)*e^(j*2*pi*n*m/N) + ∑δ(m-(N-k))*e^(j*2*pi*n*m/N))
= e^(j*2*pi*n*1)*e^(j*2*pi*n*(-k)/N) = 1*e^(-j*2*pi*n*k/N)
Thus (eq5) becomes (eq7) below
and finally using Euler's equation,
Does this look right to you?
I am going to attempt the same process but with sin(...) to ensure that I have the concept down. Thank you so much for your help.
You stay safe as well. I wonder if people will be reading these posts a year from now and realize that we are talking about the virus. Let's hope this all goes away quickly.
You got it. Except that there's no .5 term in the last equation, it is used for transition from exp to cos.
Interestingly, there's finally this one thing that managed to unite most of the world!
The equations of mine I referred you to earlier are degenerate at integer frequencies as the article explains, and the integer solution is well known. For values very near integers, the equations are a bit numerically unstable. This article gives an alternative form of the solution in those cases:
An Alternative Form of the Pure Real Tone DFT Bin Value Formula
In essence, the 0/0 gets factored out. I would argue that is a tad more interesting.
Indeed, stay safe.