exponenta event banner

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

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

Описание

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

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

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

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

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

Создание

Описание

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

пример

txfilter = comm.RaisedCosineTransmitFilter(Name,Value) задает свойства, используя одну или несколько пар имя-значение. Заключите каждое имя свойства в кавычки. Например, comm.RaisedCosineTransmitFilter('FilterSpanInSymbols',15) конфигурирует восходящий объект системы косинусного фильтра передачи с диапазоном фильтра, равным 15 символам.

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Синтаксис

Описание

пример

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

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

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

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

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

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

Интерполяция сигнала с использованием объекта фильтра передачи с возведением квадратного корня в косинус (SRRC) и отображение спектра отфильтрованного сигнала.

Создание случайных биполярных символов со скоростью 1e6 символов в секунду.

data = 2*randi([0 1],1e6,1) - 1;

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

txfilter = comm.RaisedCosineTransmitFilter
txfilter = 
  comm.RaisedCosineTransmitFilter with properties:

                     Shape: 'Square root'
             RolloffFactor: 0.2000
       FilterSpanInSymbols: 10
    OutputSamplesPerSymbol: 8
                      Gain: 1

Фильтрация данных с помощью фильтра SRRC.

filteredData = txfilter(data);

Создайте объект анализатора спектра с частотой выборки 8e6. Эта частота дискретизации соответствует частоте дискретизации отфильтрованного сигнала.

spectrumAnalyzer = dsp.SpectrumAnalyzer('SampleRate',8e6);

Просмотрите спектр отфильтрованного сигнала с помощью объекта анализатора спектра.

spectrumAnalyzer(filteredData)

Figure Spectrum Analyzer contains an axes and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes contains an object of type line. This object represents Channel 1.

Создание интерполированных сигналов из фильтра с квадратным корнем и увеличенным косинусом (SRRC) с различными диапазонами фильтра. Проверьте амплитудную характеристику различных конструкций фильтров.

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

txfilt2 = comm.RaisedCosineTransmitFilter('FilterSpanInSymbols',2);
txfilt4 = comm.RaisedCosineTransmitFilter('FilterSpanInSymbols',4);
txfilt6 = comm.RaisedCosineTransmitFilter('FilterSpanInSymbols',6);
txfilt8 = comm.RaisedCosineTransmitFilter('FilterSpanInSymbols',8);
txfilt16 = comm.RaisedCosineTransmitFilter('FilterSpanInSymbols',16);

taps2 = coeffs(txfilt2).Numerator;
taps4 = coeffs(txfilt4).Numerator;
taps6 = coeffs(txfilt6).Numerator;
taps8 = coeffs(txfilt8).Numerator;
taps16 = coeffs(txfilt16).Numerator;

Запустите инструмент визуализации фильтра для отображения импульсной характеристики. Укажите частоту дискретизации 1 кГц. Отображение двухсторонней центрированной реакции.

h = fvtool(taps2,1,taps4,1,taps8,1,taps16,1);
h.Fs = 1e3;
h.FrequencyRange = '[-Fs/2, Fs/2)';
legend('Span 2 symbols','Span 4 symbols','Span 8 symbols','Span 10 symbols')
title('Magnitude Response (dB) for Various Filter Spans')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) for Various Filter Spans contains 4 objects of type line. These objects represent Span 2 symbols, Span 4 symbols, Span 8 symbols, Span 10 symbols.

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

txfilter = comm.RaisedCosineTransmitFilter;
fvtool(txfilter)

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(txfilter);

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

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

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

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

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

fvtool(txfilter)

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