exponenta event banner

rcosdesign

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

Описание

пример

b = rcosdesign(beta,span,sps) возвращает коэффициенты, b, которые соответствуют квадратному корню приподнятого косинусного FIR-фильтра с коэффициентом отката, указанным beta. Фильтр усечен до span символы, и каждый период символа содержит sps образцы. Порядок фильтра, sps*span, должно быть, ровная. Энергия фильтра равна 1.

пример

b = rcosdesign(beta,span,sps,shape) возвращает фильтр возведения косинуса квадратного корня при установке shape кому 'sqrt' и нормальный фильтр FIR с увеличенным косинусом при установке shape кому 'normal'.

Примеры

свернуть все

Задайте коэффициент отката 0,25. Усечение фильтра до 6 символов и представление каждого символа с 4 выборками. Убедитесь, что 'sqrt' является значением по умолчанию shape параметр.

h = rcosdesign(0.25,6,4);
mx = max(abs(h-rcosdesign(0.25,6,4,'sqrt')))
mx = 0
fvtool(h,'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.

Сравните нормальный приподнятый косинусный фильтр с косинусным фильтром квадратного корня. Идеальный (бесконечной длины) нормальный фильтр формирования импульса приподнятого косинуса эквивалентен двум идеальным фильтрам косинуса приподнятого квадратного корня в каскаде. Таким образом, импульсная характеристика КИХ-нормального фильтра должна напоминать импульсную характеристику квадратно-корневого фильтра, свернутого с самим собой.

Создайте нормальный приподнятый косинусный фильтр с откатом 0.25. Укажите, что этот фильтр охватывает 4 символа с 3 выборками на символ.

rf = 0.25;
span = 4;
sps = 3;

h1 = rcosdesign(rf,span,sps,'normal');
fvtool(h1,'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.

Обычный фильтр имеет нулевые пересечения при целых кратных sps. Таким образом, он удовлетворяет критерию Найквиста для нулевой межсимвольной интерференции. Фильтр квадратного корня, однако, не:

h2 = rcosdesign(rf,span,sps,'sqrt');
fvtool(h2,'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.

Сверните фильтр квадратного корня с самим собой. Усечь импульсную характеристику наружу от максимальной так, чтобы она имела ту же длину, что и h1. Нормализуйте отклик, используя максимум. Затем сравните свернутый фильтр квадратного корня с обычным фильтром.

h3 = conv(h2,h2);
p2 = ceil(length(h3)/2);
m2 = ceil(p2-length(h1)/2);
M2 = floor(p2+length(h1)/2);
ct = h3(m2:M2);

stem([h1/max(abs(h1));ct/max(abs(ct))]','filled')
xlabel('Samples')
ylabel('Normalized amplitude')
legend('h1','h2 * h2')

Figure contains an axes. The axes contains 2 objects of type stem. These objects represent h1, h2 * h2.

Свернутый отклик не совпадает с нормальным фильтром из-за его конечной длины. Увеличение span для достижения более тесного согласия между ответами и лучшего соблюдения критерия Найквиста.

В этом примере показано, как пропускать сигнал через фильтр косинуса квадратного корня.

Укажите параметры фильтра.

rolloff = 0.25;     % Rolloff factor
span = 6;           % Filter span in symbols
sps = 4;            % Samples per symbol

Создайте коэффициенты фильтра квадратного корня с увеличенным косинусом.

b = rcosdesign(rolloff, span, sps);

Создайте вектор биполярных данных.

d = 2*randi([0 1], 100, 1) - 1;

Выполните повторную выборку и фильтрацию данных для формирования импульсов.

x = upfirdn(d, b, sps);

Добавить шум.

r = x + randn(size(x))*0.01;

Фильтрация и понижение выборки принятого сигнала для согласованной фильтрации.

y = upfirdn(r, b, 1, sps);

Сведения об использовании квадратного корня с косинусными фильтрами для интерполяции и децимации сигналов см. в разделе Интерполяция и децимация с помощью фильтра RRC (Communications Toolbox).

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

свернуть все

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

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

Число символов, указанное как положительный целочисленный скаляр.

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

Число выборок на символ (коэффициент избыточной дискретизации), указанное как положительный целочисленный скаляр.

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

Форма приподнятого косинусного окна, указанная как 'normal' или 'sqrt'.

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

свернуть все

Коэффициенты косинусного фильтра, возвращаемые в виде вектора строки.

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

Совет

  • Если у вас есть лицензия на программное обеспечение Communications Toolbox™, вы можете выполнять многоскоростную косинусную фильтрацию с использованием потоковой передачи. Для этого используйте фильтры System object™, comm.RaisedCosineTransmitFilter и comm.RaisedCosineReceiveFilter.

Ссылки

[1] Трантер, Уильям Х., К. Сэм Шанмуган, Теодор С. Раппапорт и Курт Л. Косбар. Принципы моделирования систем связи с беспроводными приложениями. Река Верхнее Седло, Нью-Джерси: Прентис Холл, 2004.

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

.
Представлен в R2013b