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 object and other objects of type uitoolbar, uimenu. The axes object 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 object and other objects of type uitoolbar, uimenu. The axes object 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 object and other objects of type uitoolbar, uimenu. The axes object 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 object. The axes object 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