comm.RaisedCosineReceiveFilter

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

Описание

comm.RaisedCosineReceiveFilter Система object™ применяет формирование импульса путем десятикратного уменьшения входного сигнала с помощью фильтра конечной импульсной характеристики (FIR) повышенного косинуса. КИХ-фильтр имеет (FilterSpanInSymbols x 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

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

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

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

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

Фактор децимации в виде целого числа в области значений [1, InputSamplesPerSymbol]. Это значение должно равномерно разделиться на InputSamplesPerSymbol. Частота дискретизации выходного сигнала уменьшается децимацией, учитывают таким образом что длина (y) / длина (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, определив номер выходных выборок на символ к 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')

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

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

Десятикратно уменьшите сигнал при помощи SRRC, получают объект фильтра.

 postRx = rxfilter(y);

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

Десятикратно уменьшите биполярный сигнал с помощью фильтра квадратного корня повысил косинус (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')

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

r = rxfilter(y);

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

stem(r)

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

rxfilter = comm.RaisedCosineReceiveFilter;
fvtool(rxfilter)

Используйте 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)

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

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

Объекты

Функции

Введенный в R2013b