Jump to content
  • Advertisement
Sign in to follow this  
Reitano

Decomposition of a 2D spectrum

This topic is 3267 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have a problem for those with experience in 2D signal processing. Suppose I have a large 2D hermitian spectrum representing a 2D real signal (S). The straightforward way to calculate the signal S is by applying an IFFT to the entire spectrum. What I am trying to do instead is to subdivide the spectrum into non-overlapping bands, calculate the corresponding signals (Si) again with an IFFT, and then build S by combining Si. A schematic representation of the spectrum, subdivided into numbered bands, is (excuse my bad ASCII art):
^
|
|-----------|
| 4   |  3  |
|_____|_____|
|     |     |
|  1  |  2  |
|--------------------->
|     |     |
|  5  |  6  |
|-----------|
|  7  |  8  |
|-----------|

The left side of the spectrum is the conjugate of the right side and is ignored. Let's start with the bands (1,5). We can calculate the signal (S1+S5) by zeroing all other bands and calculating an IFFT of the spectrum (1,5), with half the size as the full one. This is the simple part. The problem comes in applying the same approach to the remaining couples of high-frequency bands - for example { (4,7), (2,6), (3,8) } . First, they have to be shifted to the low-frequencies (previously occupied by (1,5)) in order to use a half-sized IFFT. Second, the corresponding signal has to be brought back to the correct frequencies before being combined with the others to reconstruct the original signal S. But how?? I can't figure out the correct way to do this, considering the implicit periodic nature of the spectrum and signals, the hermitian requirement, etc. I am 100% positive this problem is shown and solved, at least in the 1D case, in my books on digital processing but unfortunately they're in other country. Can anybody help me in this or maybe point me to another forum? Thanks! Stefano Lanza

Share this post


Link to post
Share on other sites
Advertisement
You have an image which is, in the frequency domain, the sum of a number of images corresponding to the different frequency bands. Each of these images has one of your "bands" in it, and all the other bands are set to zero. Note that the size of these images is the size of your full image. You can think of each one as a smaller image for the 'band' that has been extended with zeros to be the correct size (which corresponds to ideal (sinc) interpolation in the spatial domain). Alternatively, you can think of each of these images as the original image, multiplied in the frequency domain by an image which is one in the block and zero everywhere else. This corresponds to convolution in the spatial domain by a 2d 'sinc' function.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!