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

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

Описание

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

Интерполировать входной сигнал:

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

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

Примечание

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

Конструкция

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

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

Свойства

Shape

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

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

RolloffFactor

Фактор спада

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

FilterSpanInSymbols

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

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

OutputSamplesPerSymbol

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

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

Gain

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

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

Методы

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

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

Примеры

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

Этот пример показывает, как интерполировать сигнал с помощью Системного объекта comm.RaisedCosineTransmitFilter и отобразить его спектр.

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

txfilter = comm.RaisedCosineTransmitFilter
txfilter = 

  comm.RaisedCosineTransmitFilter with properties:

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

Сгенерируйте случайные данные, содержащие положительные и отрицательные значения.

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

Отфильтруйте данные при помощи фильтра RRC.

filteredData = txfilter(data);

Чтобы просмотреть спектр отфильтрованного сигнала, создайте спектр объект анализатора с частотой дискретизации 1 000 Гц.

spectrumAnalyzer = dsp.SpectrumAnalyzer('SampleRate',1000);

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

spectrumAnalyzer(filteredData)

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

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

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

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

fvtool(txfilter)

Сгенерируйте случайные данные, содержащие положительные и отрицательные значения и передайте его через фильтр.

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

Постройте интерполированный сигнал.

plot(y)
grid on

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

Сгенерируйте фильтр с модульной энергией. Можно получить коэффициенты фильтра с помощью функции coeffs.

txfilter = comm.RaisedCosineTransmitFilter;
b = coeffs(txfilter);

Постройте ответ фильтра. Вы видите, что его усиление больше, чем единица (больше чем 0 дБ).

fvtool(txfilter)

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

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

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

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

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

fvtool(txfilter)

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

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

|

Введенный в R2013b

Для просмотра документации необходимо авторизоваться на сайте