коммуникация. 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