# Adding channel effects to a signal

I have a a channel matrix "H" that is circulant. I have data blocks. I want to add the channel effects to the signal.

When H was only a vector of channel coefficients I would say:

%Going Through The Channel
After_channel= filter(H,1,Data);


but now that H is a matrix the line above wouldn't work.

I'm not sure what to do

This is a small example of how to implement this in Matlab:

h=[0.4070; 0.8150; 0.4070]; % Channel: Proakis A
d=[1; -1; 1; 1]; % Data
H=convmtx(h,4);  % Channel Matrix

y1=H*d; % Matrix approach

y2=conv(h,d); % Convolution

y1-y2


When you use the channel matrix (it is probably a convolution matrix), you just need to multiply it by the signal. Note that the output from this operation will not be equal the output from the filter function. The filter function generates an output from the same size of the input signal, so if your signal has a length of N, just the first N samples obtained from the multiplication will be the same. See the code posted by @Harris.