exponenta event banner

коммуникация. RaisedCosineReceiveFilter

Применить формирование импульсов путем прореживания сигнала с помощью КИХ-фильтра повышенной косинусности

Описание

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

Для применения формирования импульса путем прореживания входного сигнала с помощью КИХ-фильтра с увеличенным косинусом:

  1. Создать comm.RaisedCosineReceiveFilter и задайте его свойства.

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

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

Создание

Описание

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

пример

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

Свойства

развернуть все

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

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

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Синтаксис

Описание

пример

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

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

развернуть все

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

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

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

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

развернуть все

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

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

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

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

release(obj)

развернуть все

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

Примеры

свернуть все

Фильтрация выходного сигнала фильтра передачи с возведением квадратного корня в косинус (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);

Задержка фильтра равна диапазону фильтра. Учтя задержку фильтра, отрегулируйте построенные на графике выборки для сравнения сигнала фильтра до приема с сигналом фильтра после приема. Поскольку объединенные фильтры 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), импульсная характеристика которого усекается для фильтрации интервала из шести длительностей символов.

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

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

Генерировать случайный биполярный сигнал. Фильтрация сигнала с помощью объекта фильтра FIR передачи 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