Проектируйте ограниченную полосой дробную задержку конечной импульсной характеристики фильтре
проектирует дробную задержку конечной импульсной характеристики фильтр задержки h
= designFracDelayFIR(fd
,TBW
)fd
и комбинированную полосу пропускания, по меньшей мере TBW
, где TBW
<0.999
и определяется в нормированных частотных модулях. Функция автоматически определяет соответствующую длину конечной импульсной характеристики N для которой комбинированная полоса пропускания, по крайней мере TBW
.
Спроектируйте дробную задержку конечной импульсной характеристики фильтра с помощью designFracDelayFIR
функция. Передайте задержку и длину фильтра в качестве входных параметров в функцию. Измените длину фильтра и наблюдайте эффект на измеренную комбинированную полосу пропускания и номинальную групповую задержку.
Изменение длины фильтра
Длина фильтра устанавливается равной 8
Задайте задержку 0,25 и длину фильтра 8 и разработайте фильтр конечной импульсной характеристики дробной задержки.
fd = 0.25; len = [8 32 64]; [h1,i10,bw1] = designFracDelayFIR(fd,len(1))
h1 = 1×8
-0.0086 0.0417 -0.1355 0.8793 0.2931 -0.0968 0.0341 -0.0074
i10 = 3
bw1 = 0.5810
Номинальная групповая задержка фильтра i10+fd
равен 3,25 выборки. Измеренная комбинированная полоса пропускания фильтра составляет 0,5810 в нормированных частотных модулях.
Длина фильтра устанавливается равной 32
Повторите процесс с длиной фильтра 32 отвода.
[h2,i20,bw2] = designFracDelayFIR(fd,len(2))
h2 = 1×32
-0.0001 0.0004 -0.0009 0.0017 -0.0029 0.0046 -0.0071 0.0104 -0.0148 0.0208 -0.0291 0.0410 -0.0594 0.0926 -0.1752 0.8983 0.2994 -0.1252 0.0758 -0.0515 0.0367 -0.0266 0.0193 -0.0139 0.0098 -0.0067 0.0044 -0.0028 0.0016 -0.0009 0.0004 -0.0001
i20 = 15
bw2 = 0.8571
Номинальная групповая задержка фильтра теперь равна 15,25 выборок. При увеличении длины фильтра целочисленная задержка i0
также увеличивается, что приводит к увеличению номинальной задержки группы. Объединенная полоса пропускания фильтра увеличилась до 0,8571 в нормализованных частотных модулях.
Длина фильтра установлена на 64
Увеличьте длину фильтра до 64 отводов. Групповая задержка увеличивается до 31,25 выборок, и целочисленная задержка составляет 31 выборку. Измеренная комбинированная полоса пропускания фильтра дополнительно увеличивается до 0,9219. Это - охват полосы пропускания 92,19% от общей полосы пропускания. Когда длина фильтра продолжает увеличиваться, объединенная полоса пропускания имеет тенденцию ближе к 1.
[h3,i30,bw3] = designFracDelayFIR(fd,len(3))
h3 = 1×64
-0.0000 0.0001 -0.0001 0.0002 -0.0003 0.0004 -0.0006 0.0008 -0.0010 0.0013 -0.0017 0.0022 -0.0027 0.0034 -0.0042 0.0051 -0.0061 0.0074 -0.0088 0.0105 -0.0125 0.0149 -0.0177 0.0212 -0.0255 0.0311 -0.0386 0.0494 -0.0664 0.0979 -0.1787 0.8997 0.2999 -0.1277 0.0801 -0.0575 0.0442 -0.0352 0.0288 -0.0239 0.0200 -0.0168 0.0142 -0.0120 0.0101 -0.0085 0.0071 -0.0059 0.0049 -0.0040
i30 = 31
bw3 = 0.9219
Величина графика
Постройте график величины отклика трех фильтров с помощью fvtool
. Отметьте измеренную комбинированную полосу пропускания трех фильтров. Увеличивая длину фильтра, можно увидеть, что измеренная комбинированная полоса пропускания увеличивается.
hfv = fvtool(h1,1,h2,1,h3); ax = findall(hfv,"type","axes"); hline = findobj(ax(2),'Type','line'); xline(bw1, "LineStyle",'--', "LineWidth",2,'Color',hline(3).Color) xline(bw2, "LineStyle",'--', "LineWidth",2,'Color',hline(2).Color) xline(bw3, "LineStyle",'--', "LineWidth",2,'Color',hline(1).Color) title('Magnitude Responses in dB','FontSize',12) legend('Gain Response (N = 8)','Gain Response (N = 32)','Gain Response (N = 64)',... 'Measured Combined Bandwidth (N = 8)',... 'Measured Combined Bandwidth (N = 32)',... 'Measured Combined Bandwidth (N = 64)','Location','Southwest','FontSize',12);
Постройте график отклика задержки группы
Постройте график групповой задержки трех фильтров с помощью fvtool
. Отметьте номинальную групповую задержку i0 + fd из трех фильтров. Увеличивая длину фильтра, можно увидеть, что номинальная задержка группы увеличивается.
hfv = fvtool(h1,1,h2,1,h3,1,"Analysis","grpdelay"); ax = findall(hfv,"type","axes"); hline = findobj(ax(2),'Type','line'); yline(i10+fd, "LineStyle",'--', "LineWidth",2,'Color',hline(3).Color) yline(i20+fd, "LineStyle",'--', "LineWidth",2,'Color',hline(2).Color) yline(i30+fd, "LineStyle",'--', "LineWidth",2,'Color',hline(1).Color) title('Group Delay Responses','FontSize',12) legend('Group Delay Response (N = 8)','Group Delay Response (N = 32)','Group Delay Response (N = 64)',... 'Nominal Group Delay (N = 8)',... 'Nominal Group Delay (N = 32)',... 'Nominal Group Delay (N = 64)','Location','west','FontSize',12); ax(1).YLim = [-10,40];
Спроектируйте дробную задержку конечной импульсной характеристики фильтра с помощью designFracDelayFIR
функция. Передайте задержку и комбинированную пропускную способность в качестве входных параметров в функцию.
Задайте задержку 0,786 и целевую комбинированную полосу пропускания 0,8. Функция проектирует фильтр, который имеет длину 22 отвода, целочисленную задержку i0 из 10 выборок и комбинированную полосу пропускания m
bw 0,8044 в нормированных частотных модулях. Это значение mbw делает совокупный охват полосы пропускания равным 80,44% от частотного диапазона и превышает заданную целевую комбинированную полосу пропускания. Номинальная групповая задержка фильтра i0+fd
равен 10,786.
fd = 0.786; tbw = 0.8; [h,i0,mbw] = designFracDelayFIR(fd, tbw)
h = 1×22
0.0003 -0.0011 0.0026 -0.0052 0.0094 -0.0156 0.0248 -0.0386 0.0611 -0.1052 0.2512 0.9225 -0.1548 0.0769 -0.0455 0.0281 -0.0173 0.0102 -0.0057 0.0028 -0.0012 0.0003
i0 = 10
mbw = 0.8044
Постройте график импульсной характеристики конечной импульсной характеристики.
stem((0:length(h)-1),h); xlabel('h'); ylabel('h[n]'); title('Impulse Response of the Fractional Delay FIR')
Постройте график полученной величины характеристики и групповой задержки с помощью fvtool
. Отметьте номинальную групповую задержку и комбинированную полосу пропускания фильтра.
hfv = fvtool(h,'Analysis','magnitude','OverlayedAnalysis','grpdelay'); ax = findall(hfv,'type','axes'); xline(mbw, 'LineStyle',':', 'Color','b', 'LineWidth',2) xline(tbw, 'LineStyle','--', 'Color','m', 'LineWidth',2) yline(ax(1),i0+fd, 'LineStyle',':','Color','r','LineWidth',1) yticks(ax(1),[i0, i0+fd,i0+1:i0+9]); yticklabels(ax(1),'auto') legend('Gain Response','Measured Combined Bandwidth',... 'Target Combined Bandwidth','Group Delay Response','Nominal Group Delay', ... 'Location','west','FontSize',12) grid off
Спроектируйте дробную задержку конечной импульсной характеристики фильтра с помощью designFracDelayFIR
функция. Определите групповую задержку проектируемого фильтра. Создайте dsp.FIRFilter
объект, который использует эти разработанные коэффициенты и, следовательно, имеет ту же групповую задержку. Альтернативно, создайте дискретизированную последовательность известной функции. Передайте дискретизированную последовательность в конечной импульсной характеристике фильтр. Сравните выход конечной импульсной характеристики со сдвинутыми выборками известной функции. Задайте этот сдвиг, чтобы равняться групповой задержке конечной импульсной характеристики фильтра. Проверьте соответствие двух последовательностей.
Задайте задержку фильтра конечной импульсной характеристики дробной задержки 1/3 и длину 6 отводов.
fd = 1/3; len = 6;
Проектируйте фильтр с помощью designFracDelayFIR
функционирует и определяет центральный индекс i0 и комбинированную полосу пропускания bw
фильтра. Групповая задержка проектируемого фильтра i0
+ fd
или приблизительно 2.33 для полосы пропускания bw
.
[h,i0,bw] = designFracDelayFIR(fd,len)
h = 1×6
0.0293 -0.1360 0.7932 0.3966 -0.1088 0.0257
i0 = 2
bw = 0.5158
Создайте dsp.FIRFilter
Объекту и установите его числитель в коэффициенты h фильтра. Этот фильтр теперь эффективно является дробной задержкой конечной импульсной характеристики фильтра. Проверьте, что групповая задержка этого фильтра составляет приблизительно 2,33 для длительности полосы пропускания bw.
fdf = dsp.FIRFilter(h); grpdelay(fdf)
Сравнение со сдвинутой функцией
Задайте последовательность x как выборки известной функции.
f = @(t) (0.1*t.^2+cos(0.9*t)).*exp(-0.1*(t-5).^2);
n = (0:19)'; t = linspace(0,19,512);
x = f(n); % Samples
Постройте график выборочных значений x относительно исходной известной функции f (t).
scatter(n,x,20,'k','filled'); hold on; plot(t,f(t),'color',[0.5 0.5 0.5],'LineWidth',0.5) hold off; xlabel('Time') legend(["Input Samples","f(t)"]) title('Input Sequence with Known Underlying Analog Signal') ax = gca; ax.XGrid='on';
Пропустите дискретизированную последовательность x через конечную импульсную характеристику фильтр. Постройте график входной и выходной последовательностей.
y = fdf(x); subplot(2,1,1); stem(x); title('Input Sequence'); xlabel('n') subplot(2,1,2) stem(y); title('FIR Output Sequence'); xlabel('n')
Переместите вход последовательно по горизонтали i0
+ fd
, что равно групповой задержке конечной импульсной характеристики. Постройте график функции f (t-i0-FD). Проверьте, что входная и выходная последовательности падают примерно на сдвинутую функцию.
figure scatter(n,y,20,'red','filled') hold on; scatter(n+i0+fd,x,20,'black','filled') plot(t,f(t-i0-fd),'Color',[1,0.5,0.5],'LineWidth',0.1) xlabel('Time') legend(["Filter output","Shifted Input Samples","Shifted f(t-i0-fd)"]) hold off grid on title('Input and Output Sequences Aligned and Overlaid')
fd
- Дробная задержка фильтраДробная задержка фильтра, заданная как положительная скалярная величина в область значений [0,1]. Заданное значение дробной задержки определяет измеренную комбинированную полосу пропускания MBW
фильтра. Когда fd
установлено в 0
или 1
, разработанный фильтр имеет полную пропускную способность.
Типы данных: single
| double
N
- Длина конечной импульсной характеристикиДлина дробной задержки конечной импульсной характеристики фильтре, заданная как целое число, больше 1. В порядок, чтобы задать длину фильтра, необходимо задать второй входной параметр функции, которая будет целым числом, больше 1. Функция обрабатывает это значение как желаемую длину фильтра и возвращает фильтр, который N тапы длинные.
Типы данных: single
| double
TBW
- Целевая комбинированная полоса пропусканияЦелевая комбинированная полоса пропускания, заданная как положительная скалярная величина менее 0,999. Это значение комбинированной полосы пропускания, которую должна удовлетворять функция. Комбинированная полоса пропускания определяется как минимум полосы усиления и полосы задержки группы.
В порядок, чтобы задать целевую комбинированную полосу пропускания, необходимо задать второй входной параметр функции, чтобы она была действительным скаляром, который меньше 0.999
. Затем функция обрабатывает это значение как целевую комбинированную полосу пропускания, определяет соответствующую длину фильтра и проектирует фильтр соответственно.
Задайте более высокую целевую комбинированную полосу для более длинного фильтра. Для примера TBW
значение 0,9 приводит к выражению фильтра длиной 52. Для TBW
заданное значение 0,99, длина 724. Это значение более чем в 10 раз длиннее. Как TBW
имеет тенденцию к 1, длина фильтра теоретически имеет тенденцию к бесконечности.
Типы данных: single
| double
h
- Коэффициенты КИХ-фильтра с дробной задержкойКоэффициенты дробной задержки конечной импульсной характеристики фильтра, возвращенные как действительное N
- вектор-строка длин. Когда дробная задержка является единственным входом в функцию, функция проектирует фильтр длины 50. Шумовая полоса для этого фильтра по умолчанию составляет приблизительно 0,9. Когда задан второй входной параметр, функция проектирует фильтр согласно следующему:
Когда второй входной параметр функции задан как значение, больше 1, функция обрабатывает это значение как необходимую длину фильтра и возвращает фильтр, который N
taps long.
Когда второй входной параметр функции задан как значение меньше 0.999
функция рассматривает это значение как желаемую комбинированную полосу пропускания TBW
, определяет соответствующую длину фильтра и проектирует фильтр соответственно.
Типы данных: single
| double
i0
- Целочисленная задержкаЦелочисленная задержка разработанного конечная импульсная характеристика, возвращенная в виде целого значения. Целочисленная задержка является наименьшим целым сдвигом, необходимым для того, чтобы сделать симметричное окно Кайзера причинным. Это значение приблизительно равно половине длины фильтра, N/2. Для получения дополнительной информации см. Раздел Целочисленная задержка, i0.
Номинальная групповая задержка фильтра определяется i0
+ fd
.
Типы данных: single
| double
MBW
- Измеренная комбинированная полоса пропускания0.999
Измеренная комбинированная полоса пропускания, возвращенная как реальная положительная скалярная величина, который меньше 0.999
. Это значение комбинированной полосы пропускания проектируемого фильтра. Комбинированная полоса пропускания определяется как минимум полосы усиления и полосы задержки группы.
Когда вы задаете второй входной параметр, и значение меньше 0.999
функция рассматривает это значение как целевую комбинированную полосу пропускания TBW
. Функция проектирует фильтр таким образом, чтобы измеренная комбинированная полоса MBW
удовлетворяет или превышает целевую комбинированную полосу пропускания TBW
. Длина фильтра определяется таким образом, чтобы это ограничение полосы пропускания было выполнено.
Когда вы задаете второй входной параметр, и значение является целым числом, больше 1, функция обрабатывает это значение как необходимую длину N
фильтра. Измеренная комбинированная полоса пропускания в этом случае изменяется с заданной длиной. Больше значение N
, выше измеренная комбинированная полоса пропускания MBW
. Смотрите график ниже, который показывает это изменение. Когда длина фильтра увеличивается, объединенная полоса пропускания фильтра перемещается ближе к 1. Красная штриховая вертикальная линия помечает комбинированную полосу для каждой длины. Значение дробной задержки для каждого из этих фильтров установлено равным 0,3
Типы данных: single
| double
Дробный фильтр конечной импульсной характеристики задержки является конечной импульсной характеристикой приближения идеального фильтра сдвига синуса с заданным значением дробной (нецелочисленной) задержки fd
в пределах [0,1].
Идеальный фильтр сдвига моделирует полосно-ограниченный D/A интерполятор, за которым следует сдвинутая A/D равномерная выборка. Принимая равномерную частоту дискретизации и инвариантную интерполяцию сдвига, полученная общая система может быть выражена как фильтр свертки, аппроксимированный конечная импульсная характеристика. Другими словами, , который инкапсулирует D/A интерполяцию, сдвиг и A/D выборку цепи как изображено в рисунок.
где,
Частотная характеристика идеального фильтра сдвига задается следующим уравнением:
Идеальный фильтр сдвига имеет плоскую характеристику усиления единства и постоянную групповую задержку fd
, где fd
- заданное значение дробной задержки.
Конечная импульсная характеристика приближения получается путем усечения идеального фильтра и взвешивания усеченного фильтра окном Кайзера.
где, - окно Кайзера длины N
и имеет параметр формы β. Окно Кайзера спроектировано, чтобы оптимизировать конечную импульсную характеристику частотную характеристику, максимизируя объединенные полосы как отклика усиления, так и отклика групповой задержки.
Чтобы сделать конечную импульсную характеристику приближения причинно-следственным, дополнительный сдвиг i0
введено, делающее номинальную групповую задержку фильтра равной i0
+ fd
. Частотная характеристика усеченного фильтра задается, .
Для получения дополнительной информации см. Раздел Целочисленная задержка, i0.
i0
Целочисленная задержка, i0
, является наименьшим целочисленным сдвигом, который требуется для того, чтобы сделать симметричное окно Кайзера причинным.
Идеал sinc
Фильтр сдвига является фильтром allpass, который имеет бесконечную и некаузальную импульсную характеристику. Чтобы аппроксимировать этот фильтр, функция использует конечное индексное Окно Кайзера длины N
который симметричен вокруг источника и захватывает главную лепестку sinc
функция.
Из-за симметричного характера окна половина окна (приблизительно равная N/2) находится на отрицательной стороне источника, делая усечённый фильтр антикаузальным. Чтобы сделать усеченный фильтр причинным, сдвиньте антикаузальную (отрицательные индексы) часть конечной импульсной характеристики окна на целочисленную задержку, i0
, что приблизительно равно N/2.
Общая задержка причинной конечной импульсной характеристики i0
+ fd
, где fd
- заданное значение дробной задержки.
Для получения дополнительной информации об конечной импульсной характеристике приближения, смотрите Приближения Causal конечной импульсной характеристики Идеального Фильтра Сдвига Синка в Проект Fractional Delay конечной импульсной характеристики Filters.
Учитывая конечную импульсную характеристику H(ω) частотной характеристики, ширина полосы усиления является самым большим интервалом [0 Ba], над которым |<reservedrangesplaceholder1>| характеристики усиления близка к 1 до заданного значения допуска, tol.
Учитывая tol допуска и G групповой задержки, шумовая полоса групповой задержки является самым большим интервалом [0 Bg], так что групповая задержка близка к номинальному значению, fd
.
Комбинированная пропускная способность определяется как минимум между пропускной способностью усиления и пропускной способностью групповой задержки.
Комбинированная шумовая полоса зависит от дробной задержки fd
и длину конечной импульсной характеристики N
.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.