MATLAB: How can i integrate an array with respect to frequency w (omega)? the command “integral” requires function ‘fun’ to be declared as function of omega. how can i do this

digital filtersdigital signal processing

FB and W are frequency responses of two FIR filters fb and w. This is essentially what I am doing:
numer1=(abs(FBW-W)).^2; fun=@(omega) numer1; numer=integral(fun,0,pi,'ArrayValued',true);

Best Answer

What you believe you’re doing is not what you’re actually doing.
I’m just guessing here because I don’t have either ‘FB’ or ‘W’:
FBW = @(omega) ... SOMETHING ...;
W = @(omega) ... SOMETHING ELSE ...;
numer1 = @(omega) (abs(FBW(omega)-W(omega))).^2;
fun=@(omega) numer1(omega);
numer=integral(fun,0,pi,'ArrayValued',true);
Also, squaring abs is redundant (unless the argument is complex), because the square will be positive.
NOTE This is obviously UNTESTED CODE. You may have to experiment with it to get it to work in your application.
Related Question