Конечная импульсная характеристика Найквист (L-ая полоса) Создание фильтра

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

Величина сравнения откликов

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

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 для достижения аналогичного ослабления.

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

Здесь мы сравниваем импульсные характеристики. Заметьте, что импульсная характеристика в обоих случаях равна нулю каждую 4-ю выборку (кроме средней выборки). Фильтры Nyquist также известны как фильтры 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 с наклонной стоповой полосой

Проекты Equiripple позволяют контролировать наклон полосы стопора фильтра. Например, следующие проекты имеют уклоны 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);

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

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

Фильтры Nyquist для интерполяции

Помимо цифровой передачи данных, фильтры Nyquist привлекательны для интерполяции. Причина в том, что у каждого 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. Входные выборки передаются через интерполяционный фильтр без изменений, хотя фильтр не идеален.

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте