Matlab Homework Help!!! Lost! - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Matlab Homework Help!!! Lost!

Matlab12Matlab12 Posts: 3Member
Hey, I have been working on MATLAB hw that consists of 10 questions for a week now. I have only figured out questions 1-8, and I have 9 and 10 left to do which are the challenging programming questions for me.

Here they are:

9. (1) Convert the following C code to MATLAB (a MATLAB script). Your MATLAB code needs to explicitly use MATLAB's for loop and MATLAB's if statement. The result of the code is that the array (vector) x contains the 7 elements: 4, 4, 6, 8, 10, 10, 10.

int x[ ]= {2, 4, 6, 8, 10, 12, 14};
int i;
for (i = 0 ; i < 7 ; i++)
{
if ( x[i] > 10 )
x[i] = 10;
else if ( x[i] <= 4)
x[i] = 4;
}


10. (1) Develop a MATLAB function named cexpint that takes a data vector and an integer representing a frequency as input and returns a numerical approximation of the integral of:

( 2 / ( T - 1 ) ) * data( t ) * exp( 2 * pi * f * t * i / ( T - 1 ) )

where T is the number of items in the data vector, f is the frequency received as input, i is the imaginary number sqrt(-1), and t is the independent variable. The integral is to be performed for values of t that go from 0 to T - 1, which corresponds to the data items stored in the data vector but with a shift of 1 (in other words, data(1) is the datum for t = 0 and data(T) is the datum for t = T - 1). Your function should use the built-in MATLAB function trapz() to perform the numerical integration. Test your function using the following code (script):

n = 1024;
times = linspace(0,2*pi,n+1);
data = 0.25 + cos(times) + 0.5*sin(4*times) - 0.75*cos(32*times);
power = [];
freqs = 2.^[0:(log(n)/log(2)-1)];
for f = freqs
power = [power abs(cexpint(data,f))];
end
subplot(2,1,1)
plot(times,data)
xlabel('Time')
ylabel('Data')
subplot(2,1,2)
bar([0:log(n)/log(2)-1],power)
xlabel('log_2(Frequency)')
ylabel('Power')

Verify that your function works (the script produces a bar graph of the magnitude of sine and cosine components in the data vector, eg. 1 at frequency=1, 0.5 at freq = 4, etc... It represents the frequency spectrum of the data vector and the script essentially produces the Fourier transform of that vector) then paste the code of your function M-file below.

If you can give me any help of any kind, any hints I would be much obliged.

Thanks!!
Sign In or Register to comment.