Coder Social home page Coder Social logo

Comments (3)

jmontalt avatar jmontalt commented on July 19, 2024

Hi @samaktbo,

  1. The number of modes can be specified using the argument grid_shape. It maps exactly to the nmodes argument of FINUFFT.
  2. No, the type-1 and type-2 transforms match those of FINUFFT, as well as the original naming from "Dutt A, Rokhlin V. Fast Fourier transforms for nonequispaced data. SIAM Journal on Scientific computing. 1993 Nov;14(6):1368-93". This is specified on the docs. Can I ask what confused you in this regard?

from tensorflow-nufft.

samaktbo avatar samaktbo commented on July 19, 2024

Oh! Thanks for the clarification, I ended up figuring out that probably the number of modes can be inferred form the grid shape. I think what was confusing me is that whenever I heard grid, I was thinking non-uniform points real-valued points, I only realized later that the integer lattice is also a grid. I think this is also partly why I thought the roles were switched.

The main reason I thought there had been a switch is because the example that is given (the MRI example) is doing the opposite of what I wanted to do (@davidwhogg helped me see this): in my project the number of modes is always uniform, but the points of evaluation (pixels) are non-uniform but it seems like in that example, the pixels are sampled uniformly but the desire is to have non-uniform modes. Would you say that is accurate?

from tensorflow-nufft.

jmontalt avatar jmontalt commented on July 19, 2024

Indeed, that is correct. In MRI, we often measure spatial frequencies in a set of non-uniform points, and then we need to evaluate the NUDFT to obtain an image (on a grid of pixels, naturally).

It is useful to remember that the transform_type only indicates whether you're going from uniform to non-uniform ('type_2') or non-uniform to uniform ('type_1'), but it says nothing about the direction of the transform in terms of signal/frequency domains. That is controlled independently by the fft_direction (use 'forward' for signal -> frequency and 'backward' for frequency -> signal).

When I have a chance I will try to add a couple more examples to help clarify this.

from tensorflow-nufft.

Related Issues (19)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.