How can I make the function STEP, which I am using with comm.LTEMIMOChannel to also decimate efficiently its output

How can I make the function STEP, which I am using with comm.LTEMIMOChannel to also decimate efficiently its output. Meaning I would like it to calculate the filter outputs only every "down_sample_phase" samples. Is it possible to be done efficiently.

Answers (1)

You cannot modify the step method of comm.LTEMIMOChannel. But you can do what you need by creating a very simple System object that inherits from comm.LTEMIMOChannel. For example:
classdef MYLTEMIMOChannel < comm.LTEMIMOChannel
methods(Access = protected)
function varargout = stepImpl(obj, x, varargin)
if obj.PathGainsOutputPort
[y, g] = stepImpl@comm.LTEMIMOChannel(obj, x, varargin);
varargout = {y, g};
else
varargout = {stepImpl@comm.LTEMIMOChannel(obj, x, varargin)};
end
% Put your decimation code here
end
end
end
The MYLTEMIMOChannel and comm.LTEMIMOChannel should behave the same. After you fill in your decimation code, you can replace comm.LTEMIMOChannel by MYLTEMIMOChannel in your code and call the step method to have the filter output decimated.

1 Comment

A very nice answer. Maybe this the direction I am looking for. But no yet still. If I will follow your idea than my channel will still be calculate at the high rate. Where I am interested only at one of the phases of the channel output.

This question is closed.

Asked:

Ram
on 9 Jan 2014

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!