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?
5 次查看(过去 30 天)
显示 更早的评论
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);
0 个评论
采纳的回答
Star Strider
2016-6-26
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.
6 个评论
Star Strider
2016-6-30
My pleasure.
The equation you posted specifically states integrating on the interval [0,pi], so your code is correct.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Digital Filter Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!