wimax modeling in matlab
Me again
Solved the aforementioned problems - the "saturation" of the BER curve, i.e. it not following the common slope in SUI 4 - 6 is because the ISI is too severe to handle. And in the BPSK case - well, it sort of resolved itself after I shuffled the subsystems around
Now, I have new (and I presume, simpler) questions: the Least Squares pilot-aided estimator has very poor performance - it's useless, to be exact. At least in time-invariant channels - when the channel is time-variant, it performs better than preamble-aided LS (as expected), but it's still pretty much useless (BER is around 0.2).
And the MMSE equalizer that uses the LS estimate generated by the pilots has, well, even worse results.
This is the subsystem that does the LS estimate using pilots:
... and this is the MMSE subsystem:
wimax_spline is an S-function that does the interpolation, this is its Outputs function, the only relevant one:
function Outputs(block)
x=block.DialogPrm(1).Data; % pilot locations
Y=block.InputPort(1).Data; % estimated transfer function
xx=block.DialogPrm(2).Data'; % length of the interpolated vector
yy=interp1(x,Y,xx,'spline');
block.OutputPort(1).Data=yy;
%end Outputs
So, my questions are: what am I doing wrong? Or is this the best I can get using only 8 pilots? This is an example of the result of the interpolation (the black stems are the uninterpolated estimates, the red plot is the result of cubic spline, the blue one of the linear interpolation, and the green one is the MMSE estimate):
Same plot, now with the real channel frequency response (the magenta-colored plot):
Please help
ETA: oh, and, is there any way to optimize the m file S-functions without writing TLC files and compiling (that seems way too cumbersome), because using them slows down the simulation. A lot.