Documentation Center

  • Trial Software
  • Product Updates

comm.RaisedCosineTransmitFilter System object

Package: comm

Interpolate using raised cosine filter

Description

The Raised Cosine Transmit Filter System object™ interpolates an input signal using a raised cosine FIR filter.

To interpolate the input signal:

  1. Define and set up your raised cosine transmit filter object. See Construction.

  2. Call step to interpolate the input signal according to the properties of comm.RaisedCosineTransmitFilter. The behavior of step is specific to each object in the toolbox.

Construction

H = comm.RaisedCosineTransmitFilter returns a raised cosine transmit filter System object, H, which interpolates an input signal using a raised cosine FIR filter. The filter uses an efficient polyphase FIR interpolation structure and has unit energy.

H = RaisedCosineTransmitFilter(PropertyName,PropertyValue, ...) returns a raised cosine transmit filter object, H, with each specified property set to the specified value.

Properties

Shape

Filter shape

Specify the filter shape as one of Normal or Square root. The default is Square root.

RolloffFactor

Rolloff factor

Specify the rolloff factor as a scalar between 0 and 1. The default is 0.2.

FilterSpanInSymbols

Filter span in symbols

Specify the number of symbols the filter spans as an integer-valued, positive scalar. The default is 10. Because the ideal raised cosine filter has an infinite impulse response, the object truncates the impulse response to the value you specify for this property.

OutputSamplesPerSymbol

Output samples per symbol

Specify the number of output samples for each input symbol. The default is 8. This property accepts an integer-valued, positive scalar value. The raised cosine filter has (FilterSpanInSymbols x OutputSamplesPerSymbol + 1) taps.

Gain

Linear filter gain

Specify the linear gain of the filter as a positive numeric scalar. The default is 1. The object designs a raised cosine filter that has unit energy, and then applies the linear gain to obtain final tap values.

Methods

cloneCreate RaisedCosineTransmitFilter object with same property values
coeffsReturns coefficients for filters
isLockedLocked status for input attributes and nontunable properties
releaseAllow property value and input characteristics changes
resetReset internal states of System object
stepOutput interpolated values of input signal

Examples

expand all

Interpolate signal using square root raised cosine filter

Create an interpolated signal from a square root raised cosine filter in which there are eight samples per symbol.

Create a raised cosine filter, and set the OutputSamplesPerSymbol property to 8. For each input symbol there are eight output samples.

 hTxFlt1 = comm.RaisedCosineTransmitFilter('OutputSamplesPerSymbol', 8);

Launch the filter visualization tool, and show the impulse response.

 fvtool(hTxFlt1, 'Analysis', 'impulse')

Generate a random bipolar signal, and then interpolate.

 x = 2*randi([0 1], 100, 1) - 1;
 y = step(hTxFlt1, x); 

Plot the interpolated signal.

 plot(y); grid on

Specify filter span of raised cosine transmit filter

Create an interpolated signal from a square root raised cosine filter that is truncated to six symbol durations.

Create a raised cosine filter, and set the FilterSpanInSymbols property to 6. The object truncates the impulse response to six symbols.

 hTxFlt2 = comm.RaisedCosineTransmitFilter('FilterSpanInSymbols', 6);

Launch the filter visualization tool, and show the impulse response.

 fvtool(hTxFlt1, 'Analysis', 'impulse')

Generate a random bipolar signal, and then interpolate.

 x = 2*randi([0 1], 96, 1) - 1;
 y = step(hTxFlt2, x); 

Plot the interpolated signal.

 plot(y); grid on

Create a raised cosine transmit filter with unity passband gain

This example creates a raised cosine transmit filter with unity passband gain.

Generate a filter with unit energy. You can obtain the filter coefficients using the coeffs method.

h = comm.RaisedCosineTransmitFilter
b = coeffs(h);

A filter with unity passband gain has filter coefficients such that the sum of coefficients is 1. So, set the Gain property to the inverse of the sum of b.Numerator.

h.Gain = 1/sum(b.Numerator)

Double-check the resulting filter.

bNorm = coeffs(h);
sum(bNorm.Numerator)

Plot the filter frequency response. Note that it shows a passband gain of 0 dB, which is unity gain.

fvtool(h)

See Also

|

Was this topic helpful?