Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

This matlab function is to calculate the average power of a signal over a given

ID: 2317324 • Letter: T

Question

This matlab function is to calculate the average power of a signal over a given time
Project: Lab #2
2
range. The form of the function is:
function P = Find_power(t,x,a,b)
where the time signal is defined by the two matlab vectors t and x, and the time
interval is defined by parameters a and b. The output, P, is the power contained in the
signal for the time range over which it is defined. It should be written so that if the
parameters a and b are omitted, then the full range of the input signal is used. Also if
only a exists but b is omitted, take b to be the end of the time vector t.
Your function should check the input arguments to make sure they make sense. If an
error occurs, your code should print that there is an error and output the NULL value
for P. For example, if the time and sample vectors are not the same length, this should
cause an error. If the value for b<a then those values should be swapped before
proceeding with the energy calculation and the program should NOT result in an error.
If a is less than the first time value, it should be set to the first time value. If b is
greater than the last time value, it should be set to the last time value.
This function should operate properly whether the x vector is purely real or whether it
has an imaginary component.

Explanation / Answer

Solution:

Although matlab does not support concept of default arguments still we can process you problem upto some extent using number of argument. i.e you can't call function here like , f(t,x,,b) . this will definately throw error.

still the code has structure like :

----------------

function P = Find_power(t,x,a,b )


len1 = length(t);
len2 = length(x);

if len1 ~= len2
    error('length of time and signal vector must be same')
end


if nargin == 2
P = (norm(x)^2)/length(x);
end

if nargin== 3
    b = a;
    if b>t(len1)
        P='NULL'
    end
    if b<t(len1)
sam_size = abs(t(len1)-b);
   len = floor((sam_size*len1)/t(len1));
    P = (norm(x)^2)/len;
    end
end

if nargin ==4
   sam_size = abs(a-b);
   len = floor((sam_size*len1)/t(len1));
    P = (norm(x)^2)/len;
end

end

-----------

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote