Sale!

ECE-210-A Assignment IV solution

Original price was: $35.00.Current price is: $30.00. $25.50

Category:

Description

5/5 - (9 votes)

1. Professor Mintchev has just assigned you 20 tedious Gram Schmidt Orthonormalization problems! Luckily, you are a master of MATLAB so you decide to build a function which can handle
them all for you in short time. You must complete this assignment, and you have two weeks to do
so. Note: This homework has been assigned in all three ECE-210 sections.
• Create a function called gramSchmidt. The input to the function should be a 2-D array, each
column of which is a vector in the original linearly independent set of vectors. Implement
GS to create an orthonormal set of vectors from these. Store them as columns in an output
matrix, similar to the input format. Feel free to use the norm function if needed.
• After you’ve created this function, you’d like a way to test if it works. Create another function
called isOrthonormal which has a single 2-D array as the input. The function should return
1 if all columns are orthonormal and 0 otherwise. Be careful with this – direct floating point
equality comparison is a bad idea. Instead apply a threshold to the difference of the two
numbers like so: if |x − xˆ| >  then … The eps function might be useful here. You can add a
nice big fudge factor to make the tolerance big enough that it works, just don’t make it huge.
(Note that there is also the matter of spanning the same space as the original matrix, don’t
worry about this condition)
• Finally, we would like to estimate another vector as a linear combination of these orthonormal
vectors. (Project the vector onto the space of the orthonormal vectors.) Implement a function
called orthoProj which takes a vector to be estimated and and array of orthonormal columns
as arguments and outputs the estimated vector.
• Test all of the above functions on some random complex vectors. (use rand to make a random
vector) First test the case where there are more elements in each vector than the number of
vectors. Then test the case where the number of vectors is equal to the number of elements
in a vector. Compare the errors.
• Uniformly sample sin(x) on [0, 2π]. Generate 5 Gaussians with the equation
1

2πσ2
exp
−(x − µ)
2
σ
2
Give each Gaussian standard deviation 1 (σ = 1) and pick the mean from a linearly spaced
vector ranging from 0 to 2π. (µ ∈ {0, π/2, π, 3π/2, 2π}) Consider using ndgrid for compact
code. Plot the Sinusoid and Gaussians on the same plot. Give axis labels and a title. Use
gramSchmidt to create an orthonormal set of vectors from the Gaussians. Use orthoProj to
estimate the sinusoid from that set of vectors. Create a 2×1 subplot. Plot the sinusoid and
the estimated sinusoid together on the upper plot. Plot the orthonormal basis functions on
the lower plot. Give all plots proper labels and titles.
1