y = rectpulse(x,nsamp)
y = rectpulse(x,nsamp) applies rectangular pulse shaping to x to produce an output signal having nsamp samples per symbol. Rectangular pulse shaping means that each symbol from x is repeated nsamp times to form the output y. If x is a matrix with multiple rows, the function treats each column as a channel and processes the columns independently.
Note: To insert zeros between successive samples of x instead of repeating the samples of x, use the upsample function instead.
An example in Combine Pulse Shaping and Filtering with Modulation uses this function in conjunction with modulation.
The code below processes two independent channels, each containing three symbols of data. In the pulse-shaped matrix y, each symbol contains four samples.
nsamp = 4; % Number of samples per symbol nsymb = 3; % Number of symbols s = RandStream('mt19937ar', 'Seed', 0); ch1 = randi(s, [0 1], nsymb, 1); % Random binary channel ch2 = [1:nsymb]'; x = [ch1 ch2] % Two-channel signal y = rectpulse(x,nsamp)
The output is below. In y, each column corresponds to one channel and each row corresponds to one sample. Also, the first four rows of y correspond to the first symbol, the next four rows of y correspond to the second symbol, and the last four rows of y correspond to the last symbol.
x = 1 1 1 2 0 3 y = 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 0 3 0 3 0 3 0 3