From: <ha...@us...> - 2009-07-20 20:39:24
|
Revision: 6036 http://octave.svn.sourceforge.net/octave/?rev=6036&view=rev Author: hauberg Date: 2009-07-20 20:39:23 +0000 (Mon, 20 Jul 2009) Log Message: ----------- Make qaskenco and qaskdeco handle NDArrays. Add tests (from David Bateman) Modified Paths: -------------- trunk/octave-forge/main/comm/inst/qaskdeco.m trunk/octave-forge/main/comm/inst/qaskenco.m Modified: trunk/octave-forge/main/comm/inst/qaskdeco.m =================================================================== --- trunk/octave-forge/main/comm/inst/qaskdeco.m 2009-07-20 13:32:17 UTC (rev 6035) +++ trunk/octave-forge/main/comm/inst/qaskdeco.m 2009-07-20 20:39:23 UTC (rev 6036) @@ -166,10 +166,10 @@ a = a'; endif - if (any(isnan(a))) + if (any(isnan(a(:)))) ## We have a non-square constellation, with some invalid points. ## Map to nearest valid constellation points... - indx = find(isnan(a)); + indx = find(isnan(a(:))); ix = ix(indx); qx = qx(indx); ang = atan2(quadr(indx),inphase(indx)); @@ -191,3 +191,25 @@ end_unwind_protect endfunction + +%!function dec = __fntestqask1__ (msg, m) +%! [inp, qudr] = qaskenco (msg, m); +%! dec = qaskdeco (inp, qudr, m); + +%!function __fntestqask2__ (m, dims) +%! msg = floor( rand(dims) * m); +%! assert (__fntestqask1__ (msg, m), msg); + +%!test __fntestqask2__ (2, [100,100]) +%!test __fntestqask2__ (4, [100,100]) +%!test __fntestqask2__ (8, [100,100]) +%!test __fntestqask2__ (16, [100,100]) +%!test __fntestqask2__ (32, [100,100]) +%!test __fntestqask2__ (64, [100,100]) + +%!test __fntestqask2__ (2, [100,100,3]) +%!test __fntestqask2__ (4, [100,100,3]) +%!test __fntestqask2__ (8, [100,100,3]) +%!test __fntestqask2__ (16, [100,100,3]) +%!test __fntestqask2__ (32, [100,100,3]) +%!test __fntestqask2__ (64, [100,100,3]) Modified: trunk/octave-forge/main/comm/inst/qaskenco.m =================================================================== --- trunk/octave-forge/main/comm/inst/qaskenco.m 2009-07-20 13:32:17 UTC (rev 6035) +++ trunk/octave-forge/main/comm/inst/qaskenco.m 2009-07-20 20:39:23 UTC (rev 6036) @@ -64,7 +64,7 @@ if (nargin == 1) M = msg; elseif (nargin == 2) - if ((min(msg) < 0) || (max(msg) > M-1)) + if ((min(msg(:)) < 0) || (max(msg(:)) > M-1)) error ("qaskenco: message invalid"); endif else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |