comm.RaisedCosineReceiveFilter

Примените формирование импульса путем десятикратного уменьшения сигнала с помощью повышенного фильтра косинуса

Описание

Raised Cosine Receive Filter Система object™ применяет формирование импульса путем десятикратного уменьшения входного сигнала с помощью повышенного КИХ-фильтра косинуса.

Десятикратно уменьшать входной сигнал:

  1. Задайте и настройте свой повышенный косинус, получают объект фильтра. Смотрите Конструкцию.

  2. Вызовите step десятикратно уменьшать входной сигнал согласно свойствам comm.RaisedCosineReceiveFilter. Поведение step характерно для каждого объекта в тулбоксе.

Примечание

Запуск в R2016b, вместо того, чтобы использовать step метод, чтобы выполнить операцию, заданную Системным объектом, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполните эквивалентные операции.

Конструкция

H = comm.RaisedCosineReceiveFilter возвращается повышенный косинус получают Системный объект фильтра, H, который десятикратно уменьшает входной сигнал. Фильтр использует эффективную многофазную КИХ-структуру децимации и имеет модульную энергию.

H = comm.RaisedCosineReceiveFilter(PropertyName,PropertyValue, ...) возвращается повышенный косинус получают объект фильтра, H, с каждым заданным набором свойств к заданному значению.

Свойства

Shape

Отфильтруйте форму

Задайте форму фильтра как один из Normal или Square root. Значением по умолчанию является Square root.

RolloffFactor

Фактор спада

Задайте фактор спада как скаляр между 0 и 1. Значением по умолчанию является 0.2.

FilterSpanInSymbols

Отфильтруйте промежуток в символах

Задайте количество символов промежутки фильтра как положительная скалярная величина с целочисленным знаком. Значением по умолчанию является 10. Поскольку повышенный фильтр косинуса идеала имеет бесконечную импульсную характеристику, объект обрезает импульсную характеристику до значения, которое вы задаете для этого свойства.

InputSamplesPerSymbol

Введите выборки на символ

Задайте количество входных выборок, которые представляют символ. Значением по умолчанию является 8. Это свойство принимает положительное двойное или одно скалярное значение с целочисленным знаком. Повышенный фильтр косинуса имеет (FilterSpanInSymbols x InputSamplesPerSymbol + 1) касания.

DecimationFactor

Фактор децимации

Задайте фактор, которым объект уменьшает уровень выборки входного сигнала. Значением по умолчанию является 8. Это свойство принимает положительное значение целочисленного скаляра между 1 и InputSamplesPerSymbol. Значение должно равномерно разделиться на InputSamplesPerSymbol. Количество входных строк должно быть кратным фактору децимации. Если вы устанавливаете DecimationFactor к 1, затем объект только применяет фильтрацию без субдискретизации.

DecimationOffset

Задайте количество отфильтрованных выборок отбрасывания Системного объекта перед субдискретизацией. Значением по умолчанию является 0. Это свойство признает, что целое число оценило скаляр между 0 и DecimationFactor − 1.

Gain

Усиление линейного фильтра

Задайте линейное усиление фильтра в виде положительного числа. Значением по умолчанию является 1. Объект проектирует повышенный фильтр косинуса, который имеет модульную энергию, и затем применяет линейное усиление, чтобы получить итоговые значения касания.

Методы

coefsВозвращает коэффициенты для фильтров
сбросСбросьте внутренние состояния Системного объекта
шагВыведите подкошенные значения входного сигнала
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

свернуть все

Фильтр выход повышенного фильтра передачи косинуса квадратного корня с помощью повышенного косинуса совпадающего квадратного корня получает фильтр. Входной сигнал имеет восемь выборок на символ.

Создайте повышенный фильтр передачи косинуса и установите OutputSamplesPerSymbol свойство к 8.

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

Создайте повышенный косинус, получают фильтр и устанавливают InputSamplesPerSymbol свойство к 8 и DecimationFactor свойство к 8.

rxfilter = comm.RaisedCosineReceiveFilter('InputSamplesPerSymbol',8, ...
    'DecimationFactor',8);

Используйте coeffs функция, чтобы определить коэффициенты фильтра для обоих фильтров.

txCoef = coeffs(txfilter);
rxCoef = coeffs(rxfilter);

Запустите инструмент визуализации фильтра и отобразите ответы величины двух фильтров. Заметьте, что у них есть идентичные ответы.

 fvtool(txCoef.Numerator,1,rxCoef.Numerator,1);
 legend('Tx Filter','Rx Filter')

Сгенерируйте случайный биполярный сигнал и затем интерполируйте.

 preTx = 2*randi([0 1],100,1) - 1;
 y = txfilter(preTx);

Десятикратно уменьшите сигнал с помощью повышенного косинуса, получают Системный объект фильтра.

 postRx = rxfilter(y);

Задержка фильтра равна FilterSpanInSymbols свойство. Настройте для задержки, чтобы сравнить сигнал фильтра pre-Tx с сигналом фильтра post-Rx.

delay = txfilter.FilterSpanInSymbols;
x = (1:(length(preTx)-delay));
plot(x,preTx(1:end-delay),x,postRx(delay+1:end))
legend('Pre-Tx Filter','Post-Rx Filter')

Вы видите, что два сигнала перекрывают друг друга, поскольку получить фильтр является соответствующим к фильтру передачи.

Десятикратно уменьшите биполярный сигнал с помощью повышенного фильтра косинуса квадратного корня, импульсная характеристика которого является усеченной к шести длительности символа.

Создайте повышенный фильтр передачи косинуса и установите FilterSpanInSymbols свойство к 6. Объект обрезает импульсную характеристику до шести символов.

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

Сгенерируйте случайный биполярный сигнал и отфильтруйте его с помощью txfilter.

x = 2*randi([0 1],25,1) - 1;
y = txfilter(x);

Создайте совпадающий повышенный косинус, получают Системный объект фильтра.

rxfilter = comm.RaisedCosineReceiveFilter('FilterSpanInSymbols',6);

Запустите инструмент визуализации фильтра, чтобы показать импульсную характеристику получить фильтра.

fvtool(rxfilter,'Analysis','impulse')

Фильтр выходной сигнал фильтра передачи с помощью совпадающего получает объект фильтра, rxfilter.

r = rxfilter(y);

Постройте интерполированный сигнал. Из-за промежутка фильтра существует задержка шести символов, прежде чем данные пройдут через фильтр.

stem(r)

Создайте повышенный косинус, получают фильтр с усилением полосы пропускания единицы.

Создайте повышенный косинус, получают Систему фильтра object™. Получите коэффициенты фильтра с помощью coeffs функция.

rxfilter = comm.RaisedCosineReceiveFilter;
b = coeffs(rxfilter);

Фильтр с усилением полосы пропускания единицы имеет коэффициенты фильтра, таким образом, что сумма коэффициентов равняется 1. Поэтому установите Gain свойство к инверсии суммы b.Numerator.

rxfilter.Gain = 1/sum(b.Numerator);

Проверьте, что сумма коэффициентов от получившегося фильтра равняется 1.

bNorm = coeffs(rxfilter);
sum(bNorm.Numerator)
ans = 1.0000

Постройте частотную характеристику фильтра. Обратите внимание на то, что это показывает усиление полосы пропускания 0 дБ, который является усилением единицы.

fvtool(rxfilter)

Расширенные возможности

Смотрите также

|

Введенный в R2013b