DSP Blockset
  Go to block:
    Search    Help Desk 
Partial Unbuffer    See Also

Unbuffer a portion of an input frame to a sequence of scalar outputs.

Library

Buffers, in General DSP

Description

The Partial Unbuffer block unbuffers a selected portion of the input frame into a sequence of scalar outputs. Multichannel (frame matrix) inputs are unbuffered into sample vectors, with the designated matrix rows being output in sequence. The sample-based output generally has a faster rate than the frame-based input.

Because the block unbuffers only a portion of the samples in each input frame, the sequence sample period (i.e., the sample-to-sample interval) at the output is longer than that at the input, Tso>Tsi.

Vector Inputs.    Vector inputs are unbuffered to a scalar sequence. The scalar output sample period for an input of frame size Mi is a factor of Mi/(M2-M1+1) longer than the input sample period, or

where M1 is specified by the First output index parameter and M2 and is specified by the Last output index parameter.

If all samples in the input frame are to be unbuffered (M1=1 and M2=Mi), you can use the Unbuffer block instead. To rebuffer the input samples to a larger or smaller frame size, use the Rebuffer block.

The Number of channels parameter, N, should typically be 1 for vector inputs, indicating that the input represents a single channel.

Matrix Inputs.    The block's operation for vector inputs extends naturally to matrix inputs. A Mi-by-N matrix input represents a collection of N frames, each containing Mi sequential time samples from an independent signal. The Number of channels parameter specifies the number of independent elements (columns, N) in the matrix. Matrix inputs are unbuffered row-wise so that each matrix row in the selected range becomes an independent time-sample in the vector output.

Initial Conditions

The Partial Unbuffer block's buffer is initialized with the value specified by the Initial conditions parameter, and the block begins unbuffering this frame (with element M1) at the start of the simulation. Inputs to the block are therefore delayed by one partial-buffer length (M2-M1+1 elements, or Mi*Tsi seconds).

If the block's output is a scalar (single channel), the Initial condition can be a scalar to be repeated at the output for the first M2-M1+1 sample times, or a vector containing M2-M1+1 samples to be output in sequence. If the block's output is a vector (N channels), the Initial condition can be a scalar value to be repeated across all elements of the initial output(s), a vector containing M2-M1+1 samples to be output in sequence for all channels, or an N-column matrix containing M2-M1+1 rows to be output in sequence.

The block generates an error if the Last output index is greater than the input frame size (M2>Mi), or if the First output index equals or exceeds the Last output index (M1M2).

Note
If you expect to generate code for the Partial Unbuffer block using the Real-Time Workshop, you should ensure that inputs are contiguous in memory. See the Contiguous Copy block for more information.

Dialog Box

Buffer size
The number of elements in the input frame (number of rows in matrix), Mi.
First output index
The index, M1, of the first input sample (matrix row) to propagate to the output.
Last output index
The index, M2, of the last input sample (matrix row) to propagate to the output.
Initial conditions
The value of the block's initial output, a scalar, vector, or matrix.
Number of channels
The number of columns in the input, N. Use 1 for a vector input containing consecutive time-samples.

See Also

Buffer
Rebuffer
Unbuffer


[ Previous | Help Desk | Next ]