rcosdesign

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

Описание

пример

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

пример

b = rcosdesign(beta,span,sps,shape) возвращает квадратный корневой фильтр приподнятого косинуса, когда вы задаете shape на 'sqrt' и нормальный фильтр конечной импульсной характеристики приподнятого косинуса, когда вы задаете 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] Трантер, Уильям Х., К. Сэм Шанмуган, Теодор С. Раппапорт и Курт Л. Косбар. Принципы симуляции систем связи с беспроводными приложениями. Верхняя Седл-Ривер, Нью-Джерси: Prentice Hall, 2004.

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

.
Введенный в R2013b