function r = rxFilter(y, rolloff, span, sps) %% Receiver matched (root raised cosine) filter. %% Inputs: %% - y: received waveform %% - rolloff: rolloff factor in root raised cosine filter. %% - span: filter span (number of symbols) %% - sps: samples per symbol %% Output: %% - r: filtered signal (energy not normalized), %% normalize and then sample. filter = comm.RaisedCosineReceiveFilter... ('Shape', 'Square root', ... 'RolloffFactor', rolloff, ... 'FilterSpanInSymbols', span, ... 'InputSamplesPerSymbol', sps, ... 'DecimationFactor', 1); r = filter([y; zeros(span * sps, 1)]); r = r(span * sps / 2 + 1 : end); % truncate filter transients end