Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Use Matlab and the commands fft(), fft2(), imrotate() and griddata(), to demonstrate the Central Slice Theorem. Note that the projection operation can be simulated using

Use Matlab and the commands fft(), fft2(), imrotate() and griddata(), to demonstrate the Central Slice Theorem. Note that the projection operation can be simulated using the sum() command along rows or columns in an array that represents the object domain, and the imrotate() command can be used to rotate your array to change the angle used for the projection calculation. (You should use the crop flag in imrotate() to keep the array size from changing. This will work better if you keep all of your nonzero object data inside a circle that is entirely inside your object array.) The command griddata() performs interpolation of data and can be used to interpolate polar data in the spatial frequency domain. For griddata() you will need to define 5 arrays. The first three are matched arrays: one that contains a list of the x-positions of your polar data, one that contains the y-positions of your polar data, and the third is the (frequency domain) set of your polar data that you want to interpolate to the cartesian grid points. The last two arrays should be the same size as your expected cartesian map of your output (spatial frequency) data: the first should be the list of x-coordinates for your desire cartesian grid and the second should be the list of y-coordinates for your cartesian grid.

Note that to get the imrotate() command to rotate your array properly, the height and width of your object array must have odd numbered sizes (this puts the origin exactly on the center sample), but the fft() and fft2() commands should have sizes that are powers of 2 to engage the fast algorithms (you will lose points if you do not use the fast algorithm). This can be resolved by making sure the last column and bottom row of data in your object array (with odd numbered sizes) are all zeros, then you can strip these off as needed to make the sizes a power of 2.

Remember the theoretical development of the Central Slice Theorem expects the origin of the spatial domain and spatial frequency domain to be in the center of the data, but fft() and fft2() always use the first element in the vector or array as the origin, so you will need to adjust your origins accordingly.

Both the imrotate() and griddata() commands can use different types of interpolation: nearest neighbor, (bi-) linear, and (bi-) cubic. You should explore the advantages and disadvantages of each of these.

For display, you should investigate the commands imshow() and mesh(). Note that imshow() expects all data values to lie between 0 and 1, but there is a flag you can set to tell the function to rescale your data. Note that your frequency domain data are probably complex valued, so you need to consider this when displaying them.

Your demonstration must include a qualitative and quantitative assessment of any calculation errors. For example, what is the size (magnitude) of the error in either a peak error or root mean square error calculation? (quantitative assessment) Does this error make sense, and is it negligible or not? (qualitative assessment)

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Professional SQL Server 2012 Internals And Troubleshooting

Authors: Christian Bolton, Justin Langford

1st Edition

1118177657, 9781118177655

More Books

Students also viewed these Databases questions