Skip to main content
28 events
when toggle format what by license comment
Jan 4, 2021 at 21:12 comment added Royi If you mean expander as in adding zeros between samples, the derivation I wrote doesn't require that. You can interpolate to any grid you'd like. Regarding the length of the filter, could you clarify what you mean? What's the issue with the filter?
Jan 4, 2021 at 19:45 comment added Fat32 @Royi yes you have a point about the filter related symmetry condition, and indeed my question is also related with that filter. In particular, the DFT based interpolation can be considered to be a frequency domain implementation of the time-domain expander-LPfilter operation isn't it? Yet there's problem with the implementation length, and why that problem does not corrupt the ouput result is interesting ;-)
Jan 4, 2021 at 18:53 comment added Royi @Fat32, That's the problem. It's not a symmetry to solve. It is the Filter applied which split the values. This is where it comes from, not the other way around. Regarding your question, there are many implicit assumptions: Samples are sampled in a uniform grid, the data is band limited, etc...
Jan 4, 2021 at 17:06 comment added Fat32 @Royi I think what MatL. says is sufficient in his comments. The problem of symmetry (for real output) occurs only at the index N/2 (for N even). And is solved by splitting it into two and multiplying by 0.5. By the way, I may prefer to skip the symmetry and put that sample at $N/2$ at one side, and I have observerd that it can produce better interpolation than symetric case. Furthermore, and more interestingly, in my answer, and Matt's answer, and in your new explanative answer, there's a hidden (silent) problem that's probably unnoticed. Can you see what it's?
Jan 4, 2021 at 15:31 comment added Matt L. @Royi: Ok, I'll have a look ...
Jan 4, 2021 at 15:00 comment added Royi @MattL., I posted a full derivation for the reasoning behind the $ 0.5 $ factor. Have a look at dsp.stackexchange.com/questions/72433.
Dec 31, 2020 at 13:57 comment added Royi @MattL., We're talking about the output values. They are different from the input. All of them are different. So why would 2 of them need to be added? Why not split into 4 and say $ 0.25 + 0.25 + 0.25 + 0.25 = 1 $? This is just not good enough reasoning. The process changes the values of the DFT bins. The answer should derive, formally, why the factor $ 0.5 $ should be used. Derive, not say why it makes sense to have it split (Or at least define how this derivation looks like).
Dec 31, 2020 at 12:47 comment added Matt L. @Royi: $0.5+0.5=1$, i.e., no change. I give up.
Dec 31, 2020 at 12:45 comment added Royi What do you mean change? Of course we change it. We also change it by scaling it by $ 0.5 $. The point I made the remark is I know the Math to derive the splitting into half. I was asking you to either give your reasoning or, as you say, give other options (If you say there is more than 1).
Dec 31, 2020 at 12:42 comment added Matt L. @Royi: There are two things at play here. I agree that I probably didn't sufficiently motivate in my answer the way the bin at $N/2$ is split. The other thing is that you keep repeating that there's only one (your) way of understanding this, and that all others blindly use some kind of recipe. I tried to show that the problem is actually simple, and that splitting the bin at $N/2$ in any other way than scaled by $1/2$ either destroys real-valuedness, or changes the actual value of that DFT coefficient, which is non-sensical. I don't need constrained optimization to see or show this.
Dec 31, 2020 at 12:26 comment added Royi @MattL., It seems you're trying to tell me things I know. Mathematically, your reasoning for Symmetry isn't enough. As there are many options to keep symmetry besides splitting in half. I am telling you the right derivation comes from doing constrained optimization with 2 constraints: 1. Keep Conjugate Symmetry (For this element it is just symmetry). 2. Keep Parseval in place. I am adding information and correct derivation to your answer. No need to tell me why. I just gave a feedback it is missing in your answer :-).
Dec 31, 2020 at 11:44 comment added Matt L. @Royi: Yes, after zero-padding you scale all coefficients by $M/N$, but you don't scale individual coefficients by some factor, which wouldn't make any sense. And you'd do exactly that if you used $0.25$ or some other factor different from $0.5$ when splitting the bin at $N/2$.
Dec 31, 2020 at 10:05 comment added Royi Of course you scale the other coefficients when doing interpolation. You scale them to match Parseval of higher sampled signal. That's what I'm saying the real math reasoning. Parseval + Symmetry yield the $ 0.5 $ factor. Any of them on itself doesn't. People forget to mention this and only say you need to split.
Dec 31, 2020 at 9:39 comment added Matt L. @Royi: Well, you need the same factors to keep it real-valued, and obviously you don't want to change the original signal before interpolation, otherwise interpolation doesn't really make sense. So you can't just throw away half of the bin, that's why clearly the factors need to add up to 1. You wouldn't deliberately change the other DFT coefficients by scaling them, would you? The factors $1/2$ make $x_c(t)$ real-valued AND don't change the original DFT. These are the two (very simple) reasons why we use them. I agree that I haven't made this explicit in my answer.
Dec 30, 2020 at 22:58 comment added Royi Another way would be factor it by $ 0.25 $. It will also generate real value signal. The reasoning is both real value (Symmetry) and preserve energy (Parseval). Integrating both as constraints will yield the result. Anyhow, Once we'll have new question about this I will write the full answer which derives it.
Dec 30, 2020 at 21:34 comment added Matt L. @Royi: My argument wasn't that "it just works", it was that we require $x_c(t)$ to be real-valued, and one way to achieve that is to split the bin at $N/2$.
Dec 30, 2020 at 21:30 comment added Royi @MattL., I am looking for Mathematical reasoning. Derivation. Not what works. Read my comment above, I have my answers (Either the solution of constrained optimization or DFS point of view). I'd be happy for more :-).
Dec 30, 2020 at 21:26 comment added Matt L. @Royi: For even $N$, $x_c(t)$ would become complex-valued. One option to solve this is to split the bin at $N/2$ such that we sum over an odd number of elements. There are other options as well. One other possibility would be to just zero pad either to the right or to the left of $X[N/2]$, and then take the real part of the IDFT.
Dec 30, 2020 at 21:06 comment added Royi @robertbristow-johnson, See my comment above. I will lurk for another time someone asks it to answer my reasoning. But all I meant to say is, I have mine. I wonder what's Matt's reasoning. You links don't derive the $ 0.5 $ factor.
Dec 30, 2020 at 21:05 comment added Royi My remark was about the answer not being full. We all know we need to factor it by $ 0.5 $. We can also show "it works". But the reasoning is missing. By the way, my answer to that is composed of 2 reasons: 1. Solving estimation problem with 2 constraints (Parseval and Conjugate Symmetry) will lead to this. 2. DFT is basically DFS. What's the value of the ideal LPF on the jumping point in DFS analysis? Half the jump, there you go :-).
Dec 30, 2020 at 19:38 comment added robert bristow-johnson @Royi , here is a more complete answer that deals with what to do with Nyquist element.
Dec 30, 2020 at 19:30 comment added robert bristow-johnson @Royi , this answer is related to this issue, but it is not a derivation.
Dec 30, 2020 at 19:24 comment added robert bristow-johnson @Royi , first you have the inherent periodicity of the DFT. $X[k+N]=X[k] \quad \forall k \in \mathbb{Z}$, $x[n+N]=x[n] \quad \forall n \in \mathbb{Z}$ and for a real signal $x[n]$ (that is $\Im\{x[n]\} = 0 \quad \forall n \in \mathbb{Z}$ that means that complex conjugate symmetry $X[-k] = X[k]^* \quad \forall k$. Now what are you gonna do with $X[\pm\tfrac{N}2]$?
Dec 30, 2020 at 10:51 comment added Royi I think the interesting part is why to divide the Nyquist element by 2. I don't see the reason in the answer.
Dec 18, 2019 at 8:32 history edited Matt L. CC BY-SA 4.0
added 3 characters in body
Dec 17, 2019 at 15:19 history edited Matt L. CC BY-SA 4.0
added 6 characters in body
Dec 17, 2019 at 14:03 history edited Matt L. CC BY-SA 4.0
added 277 characters in body
Dec 17, 2019 at 13:30 history answered Matt L. CC BY-SA 4.0