exponenta event banner

FIR Nyquist (L-й диапазон) Дизайн фильтра

В этом примере показано, как проектировать фильтры Nyquist для нижних частот. Он также сравнивает эти фильтры с приподнятыми косинусными и квадратными корнями, приподнятыми косинусными фильтрами. Эти фильтры широко используются при формировании импульсов для цифровых систем передачи. Они также находят применение в банках интерполяции/прореживания и фильтрации.

Сравнение откликов по величине

График показывает амплитудную характеристику равнозначного фильтра Найквиста и приподнятого косинусного фильтра. Оба фильтра имеют порядок 60 и коэффициент отката 0,5. Поскольку эквиропльный фильтр имеет оптимальный эквиропльный стоп-диапазон, он имеет большее затухание стоп-диапазона для того же порядка фильтра и ширины перехода. Фильтр с увеличенным косинусом получается путем усечения аналитической импульсной характеристики и он не является оптимальным в каком-либо смысле.

NBand = 4;
N = 60;           % Filter order
R = 0.5;          % Rolloff factor
TW = R/(NBand/2); % Transition Bandwidth
f1 = fdesign.nyquist(NBand,'N,TW',N,TW);
eq = design(f1,'equiripple','Zerophase',true,'SystemObject',true);
coeffs = rcosdesign(R,N/NBand,NBand,'normal');
coeffs = coeffs/max(abs(coeffs))/NBand;
rc     = dsp.FIRFilter('Numerator',coeffs);
fvt = fvtool(eq,rc,'Color','white');
legend(fvt,'Equiripple NYQUIST design','Raised Cosine design');

Фактически, в этом примере необходимо увеличить порядок конструкции с приподнятым косинусом примерно до 1400, чтобы достичь аналогичного ослабления.

Сравнение импульсной характеристики

Здесь мы сравниваем импульсные реакции. Обратите внимание, что импульсная характеристика в обоих случаях равна нулю каждый четвертый образец (за исключением среднего образца). Фильтры Найквиста также известны как фильтры L-й полосы, поскольку частота отсечки равна Pi/L, а импульсная характеристика равна нулю для каждой L-й выборки. В этом случае у нас есть фильтры 4-й полосы.

f1.FilterOrder = 38;
eq1 = design(f1,'equiripple','Zerophase',true,'SystemObject',true);
coeffs = rcosdesign(R,f1.FilterOrder/NBand,NBand,'normal');
coeffs = coeffs/max(abs(coeffs))/NBand;
rc1 = dsp.FIRFilter('Numerator',coeffs);
fvt = fvtool(eq1,rc1,'Color','white','Analysis','Impulse');
legend(fvt,'Equiripple NYQUIST','Raised Cosine');
title('Impulse response, Order=38, Rolloff = 0.5');

Nyquist Filters с наклонной стоп-полосой

Равноудаленные конструкции позволяют контролировать наклон полосы останова фильтра. Например, следующие конструкции имеют наклоны 0, 20 и 40 дБ/( рад/образец) затухания:

f1.FilterOrder = 52;
f1.Band = 8;
f1.TransitionWidth = .05;
eq1 = design(f1,'equiripple','SystemObject',true);
eq2 = design(f1,'equiripple','StopbandShape','linear',...
    'StopbandDecay',20,'SystemObject',true);
eq3 = design(f1,'equiripple','StopbandShape','linear',...
    'StopbandDecay',40,'SystemObject',true);
fvt = fvtool(eq1,eq2,eq3,'Color','white');
legend(fvt,'Slope=0','Slope=20','Slope=40')

Минимально-фазовое проектирование

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

f1.FilterOrder = 30;
f1.Band = NBand;
f1.TransitionWidth = TW;
eq1 = design(f1,'equiripple','Minphase',true,'SystemObject',true);
coeffs = rcosdesign(R,N/NBand,NBand);
coeffs = coeffs / max(coeffs) * (-1/(pi*NBand) * (pi*(R-1) - 4*R));
srrc   = dsp.FIRFilter('Numerator',coeffs);
fvt = fvtool(eq1,srrc,'Color','white');
legend(fvt,'Minimum-phase equiripple design',...
    'Square-root raised-cosine design');

Уменьшение коэффициента отката

Отклик фильтра с увеличенным косинусом улучшается по мере уменьшения коэффициента отката (показан здесь для отката = 0,2). Это происходит из-за узкого основного лепестка частотной характеристики прямоугольного окна, который используется при усечении импульсной характеристики.

f1.FilterOrder = N;
f1.TransitionWidth = .1;
eq1 = design(f1,'equiripple','Zerophase',true,'SystemObject',true);
R = 0.2;
coeffs = rcosdesign(R,N/NBand,NBand,'normal');
coeffs = coeffs/max(abs(coeffs))/NBand;
rc1   = dsp.FIRFilter('Numerator',coeffs);
fvt = fvtool(eq1,rc1,'Color','white');
legend(fvt,'NYQUIST equiripple design','Raised Cosine design');

Дизайн Nyquist с окнами-импульсами-откликами

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

f1.TransitionWidth = TW;
kaiserFilt = design(f1,'kaiserwin','SystemObject',true);

Конструкция окна Kaiser требует того же порядка (60), что и конструкция equiripple, чтобы соответствовать спецификациям. (Помните, что в противоположность этому нам требовался экстраординарный фильтр с приподнятым косинусом 1400-го порядка, чтобы соответствовать спецификации стоп-полосы.)

fvt = fvtool(eq,rc,kaiserFilt,'Color','white');
legend(fvt,'Equiripple design',...
    'Raised Cosine design','Kaiser window design');

Фильтры Найквиста для интерполяции

Помимо цифровой передачи данных, фильтры Найквиста привлекательны для целей интерполяции. Причина в том, что каждая L-выборка имеет нулевую выборку (за исключением средней выборки), как упоминалось выше. В этом есть два преимущества, оба очевидны, глядя на многофазное представление.

fm = fdesign.interpolator(4,'nyquist');
kaiserFilt = design(fm,'kaiserwin','SystemObject',true);
fvt = fvtool(kaiserFilt,'Color','white');
fvt.PolyphaseView = 'on';

Многофазный субфильтр # 4 является фильтром allpass, фактически это чистая задержка (выбор импульсной характеристики в FVTool или просмотр коэффициентов фильтра в FVTool), так что: 1. Все его множители равны нулю, за исключением единицы, что приводит к эффективной реализации этой многофазной ветви. 2. Входные выборки проходят через интерполяционный фильтр без модификации, даже если фильтр не является идеальным.

Связанные темы