comm.RaisedCosineReceiveFilter

Примените импульсное формирование путем децимирования сигнала с помощью фильтра конечной импульсной характеристики приподнятого косинуса

Описание

The comm.RaisedCosineReceiveFilter Система object™ применяет формирование импульса путем децимирования входного сигнала с помощью фильтра с приподнятой косинусоидальной конечной импульсной характеристикой (КИХ). Фильтр конечной импульсной характеристики имеет (FilterSpanInSymbols × InputSamplesPerSymbol + 1) коэффициенты касания.

Для применения импульсного формирования путем децимирования входного сигнала с помощью фильтр конечной импульсной характеристики приподнятого косинуса:

  1. Создайте comm.RaisedCosineReceiveFilter Объекту и установите его свойства.

  2. Вызывайте объект с аргументами, как будто это функция.

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

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

пример

rxfilter = comm.RaisedCosineReceiveFilter(Name,Value) устанавливает свойства с помощью одной или нескольких пар "имя-значение". Заключайте каждое имя свойства в кавычки. Для примера, comm.RaisedCosineReceiveFilter('RolloffFactor',0.3) конфигурирует фильтр приема приподнятого косинуса с коэффициентом Системного объекта установленным на 0.3.

Свойства

расширить все

Если не указано иное, свойства являются нетронутыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируются, когда вы вызываете их, и release функция разблокирует их.

Если свойство настраивается, можно изменить его значение в любой момент.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Использование Системных объектов.

Форма фильтра, заданная как 'Square root' или 'Normal'.

Типы данных: char | string

Коэффициент отката, заданный как скаляр в области значений [0, 1].

Типы данных: double

Фильтрация диапазона в символах в виде положительного целого числа. Объект обрезает бесконечную импульсную характеристику (БИХ) идеального фильтр приподнятого косинуса до импульсной характеристики, которая охватывает количество символов, заданное этим свойством.

Типы данных: double

Входные выборки на символ, заданные как положительное целое число.

Типы данных: double

Десятикратное уменьшение, заданный как целое число в области значений [1, InputSamplesPerSymbol]. Это значение должно равномерно делиться на InputSamplesPerSymbol. Частота дискретизации выходного сигнала уменьшается на коэффициент десятикратного уменьшения, такой что длина (y)/length (x) равно DecimationFactor. Для матричного входного сигнала количество входа строк должно быть кратным коэффициенту десятикратного уменьшения.

Типы данных: double

Десятикратное уменьшение, заданное как целое число в области значений [0, (DecimationFactor − 1)]. Это свойство задает количество отфильтрованных выборок, которые объект отбрасывает перед понижающей дискретизацией.

Типы данных: double

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

Типы данных: double

Использование

Синтаксис

Описание

пример

y = rxfilter(x) применяет формирование импульсов путем децимирования входного сигнала с помощью приподнятой конечной импульсной характеристики фильтра косинуса. Вывод состоит из децимированных значений сигналов.

Входные параметры

расширить все

Входной сигнал, заданный как вектор-столбец или K матрица i-by N. K i - количество входных выборок на канал сигнала, и N - количество каналов сигнала.

Для K i-by- N матричного входа объект обрабатывает столбцы входной матрицы как N независимых каналов.

Типы данных: double | single
Поддержка комплексного числа: Да

Выходные аргументы

расширить все

Выходной сигнал, возвращенный как вектор-столбец или K матрица o-by N. K o равно K i/ DecimationFactor. K i - количество входных выборок на канал сигнала, и N - количество каналов сигнала.

Системный объект фильтрует каждый канал с течением времени и генерирует K o-by N выходную матрицу. Выходной сигнал является совпадающим типом данных, что и входной сигнал.

Функции объекта

Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj, используйте следующий синтаксис:

release(obj)

расширить все

coeffsКоэффициенты для фильтров
infoИнформация о фильтре Системный объект
orderПорядок дискретного времени фильтра Системного объекта
stepЗапуск алгоритма системного объекта
releaseОтпустите ресурсы и допустите изменения в значениях свойств системного объекта и входных характеристиках
resetСброс внутренних состояний Системного объекта

Примеры

свернуть все

Пропустите выход передающего фильтра SRRC с квадратным корнем и приподнятым косинусом (SRRC) с помощью согласованного приемного фильтра SRRC. Входной сигнал имеет восемь выборок на символ.

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

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

Создайте фильтр приема SRRC, установив количество входа отсчетов на символ равным 8, и коэффициент десятикратного уменьшения равный 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')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 2 objects of type line. These objects represent Tx Filter, Rx Filter.

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

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

Децимируйте сигнал при помощи объекта фильтра приема SRRC.

 postRx = rxfilter(y);

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

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')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Pre-Tx filter, Post-Rx filter.

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

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

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

Сгенерируйте случайный биполярный сигнал. Пропустите сигнал при помощи объекта SRRC конечной импульсной характеристики фильтра передачи.

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

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

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

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

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

Figure Filter Visualization Tool - Impulse Response contains an axes and other objects of type uitoolbar, uimenu. The axes with title Impulse Response contains an object of type stem.

Пропустите выход сигнал от передающего фильтра при помощи согласованного объекта приемного фильтра SRRC.

r = rxfilter(y);

Постройте график интерполированного сигнала. Результаты показывают задержку, равную диапазону фильтра (шесть символов), прежде чем данные пройдут через фильтр.

stem(r)

Figure contains an axes. The axes contains an object of type stem.

Создайте объект фильтра приема (SRRC) квадратного корня-приподнятого-косинуса. Используйте FVTool, чтобы построить график отклика фильтра. Результаты показывают, что линейный коэффициент усиления фильтра больше единицы. В частности, коэффициент усиления полосы пропускания превышает 0 дБ.

rxfilter = comm.RaisedCosineReceiveFilter;
fvtool(rxfilter)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains an object of type line.

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

b = coeffs(rxfilter);

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

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

Проверьте, что результирующие коэффициенты фильтра равны 1.

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

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

fvtool(rxfilter)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains an object of type line.

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

.

См. также

Объекты

Функции

Введенный в R2013b