Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Use Matlab and the commands fft ( ) , fft 2 ( ) , imrotate ( ) and griddata ( ) , to demonstrate the

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 (quantitative assessment), what is the size (magnitude) of the error in either a peak error
or root mean square error calculation? 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

Algorithmic Trading Navigating The Digital Frontier

Authors: Alex Thompson

1st Edition

B0CHXR6CXX, 979-8223284987

More Books

Students also viewed these Databases questions