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™, можно выполнить многоскоростную повышенную фильтрацию косинуса с потоковой передачей поведения. Для этого используйте Систему object™ фильтры, comm.RaisedCosineTransmitFilter и comm.RaisedCosineReceiveFilter.

Ссылки

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

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

Введенный в R2013b