I need to have output of qfunc as a handle function

1 view (last 30 days)
all,
I need to have output of qfunc as a handle function but I face following error:
error: """Error using qfunc
The argument of the Q function must be a real array."""
so does anybody know how can I use handle function in qfunction??????
myf = @(ebn0)BER32APSK(c,M,ebn0)-p;
and inside of BER32APSK I would have:
fsum = fsum + qfunc(sqrt(((d2)*(log2(M))*ebn0)/2));

Accepted Answer

Walter Roberson
Walter Roberson on 5 Dec 2017
One of d2 or log2(M) or ebn0 are not real-valued.
In particular check for the possibility that M is negative, as log of a negative number would give imaginary values.
  14 Comments
farah arabian
farah arabian on 6 Dec 2017
hey Walter....thanks for your comment body...the problem solved by taking x0=[1 200] and I was wrong for the range because my answer is 137.7241 dB.
Walter Roberson
Walter Roberson on 6 Dec 2017
I saw values over 1200 for sure, so I would recommend you use at least 1500 as the upper bound.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!