designFracDelayFIR
设计带限分数延迟FIR滤波器
语法
描述
h
= designFracDelayFIR (<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd)
设计了一种分数阶延时FIR延时滤波器fd,默认长度50,带宽约为0.9。
h
= designFracDelayFIR (<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd,<一个href="#mw_1803daf1-8f82-4da2-96cd-845eac2a09e2" class="intrnllnk">N)
设计了一种分数阶延时FIR延时滤波器fd和长度N> 1。该函数设计滤波器以实现指定的FIR长度。
h
= designFracDelayFIR (<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd,<一个href="#mw_d08ac4a3-afa6-4df8-b8a2-4cca7b5fcb3c" class="intrnllnk">TBW)
设计了一种分数阶延时FIR延时滤波器fd加起来带宽至少为TBW,在那里TBW<0.999用归一化频率单位表示。该功能自动确定适当的FIR长度N其中组合带宽至少为TBW.
[<一个href="#mw_96d1c327-a785-4117-b040-89a9c1999f94" class="intrnllnk">h,<一个href="#mw_64894daf-17cc-45a3-952c-ece34e124fcf" class="intrnllnk">我0
= designFracDelayFIR(___)
返回FIR过滤器的整数延时。这个值大约是<一个href="#mw_1803daf1-8f82-4da2-96cd-845eac2a09e2" class="intrnllnk">N/ 2。滤波器的标称群时延为<一个href="#mw_64894daf-17cc-45a3-952c-ece34e124fcf" class="intrnllnk">我0
+<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd.
[<一个href="#mw_96d1c327-a785-4117-b040-89a9c1999f94" class="intrnllnk">h,<一个href="#mw_64894daf-17cc-45a3-952c-ece34e124fcf" class="intrnllnk">我0
,<一个href="#mw_23d1f24c-9863-402d-a270-b30923e1aecd" class="intrnllnk">MBW= designFracDelayFIR(___)
返回过滤器的测量组合带宽h.
例子
设计具有指定时延和滤波器长度的分数延迟FIR滤波器
设计了一个分数延迟FIR滤波器designFracDelayFIR函数。将延迟和过滤器长度作为输入参数传递给函数。改变滤波器长度,观察对测量的组合带宽和标称群时延的影响。
改变滤镜长度
过滤器长度设置为8
指定延迟为0.25,滤波器长度为8,设计分数延迟FIR滤波器。
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
滤波器的名义组延迟一块+ 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.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
地块震级响应
绘制三个滤波器的结果震级响应。标记三个滤波器的测量组合带宽。通过增加滤波器长度,可以看到测量的综合带宽增加。
[H1,w] = freqz(H1, 1);H2 = freqz(H2,1);H3 = freqz(H3,1);图;plot(w/pi,mag2db(abs([H1 H2 H3])))持有在Hline =线;xline(bw1, LineStyle =“——”, LineWidth = 2, Color = hline(1,:)) xline(bw2, LineStyle =“——”, LineWidth = 2, Color = hline(2,:)) xline(bw3, LineStyle =“——”, LineWidth = 2, Color = hline(3,:))等待从标题(“震级响应(dB)”, FontSize = 12) xlabel(归一化频率(\乘以\ π rad/sample)) ylabel (“(dB)级”)网格图例(增益响应(N = 8),增益响应(N = 32),增益响应(N = 64),...测量综合带宽(N = 8),...测量综合带宽(N = 32),...测量综合带宽(N = 64)位置=“西南”)
图群延迟响应
绘制三个滤波器的组延迟响应。标记标称组延迟i0+fd在这三个过滤器中。通过增加滤波器长度,可以看到标称组延迟增加。
[g1,w] = grpdelay(h1,1);G2 = grpdelay(h2,1);G3 = grpdelay(h3,1);图;Plot (w/pi,[g1 g2 g3]) hline = lines;yline(i10+fd, LineStyle =“——”, LineWidth = 2, Color = hline(1,:)) yline(i20+fd, LineStyle =“——”, LineWidth = 2, Color = hline(2,:)) yline(i30+fd, LineStyle =“——”, LineWidth = 2, Color = hline(3,:))“群体延迟响应”,FontSize = 12) xlabel(归一化频率(\乘以\ π rad/sample)) ylabel (“群延迟”)网格图例(“群体延迟响应(N = 8)”,“群体延迟响应(N = 32)”,“群体延迟响应(N = 64)”,...名义群时延(N = 8),...名义群延迟(N = 32),...“名义群延迟(N = 64)”位置=“西方”,FontSize = 10);ylim ([-10, 40]);
设计具有指定时延和组合带宽的分数延迟FIR滤波器
设计了一个分数延迟FIR滤波器designFracDelayFIR函数。将延迟和组合带宽作为输入参数传递给函数。
指定延迟为0.786,目标组合带宽为0.8。该函数设计了一个过滤器,其长度为22个点,是一个整数延迟i010个样本,外加带宽米
bw 归一化频率单位为0.8044。这个mbw值使组合带宽覆盖率为频域的80.44%,超过指定的目标组合带宽。滤波器的名义组延迟i0 + fd
= 10.786。
Fd = 0.786;TBW = 0.8;[h,i0,mbw] = designFracDelayFIR(fd, tbw)
h =1×220.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
绘制FIR的脉冲响应。
茎((0:长度(h) 1), h);包含(“h”);ylabel (“h [n]”);标题(“分数延迟FIR的脉冲响应”)
绘制得到的震级响应和群延迟响应。标记标称组延迟和滤波器的组合带宽。
[H1,w] = freqz(h,1);G1 = grpdelay(h,1);图;yyaxis左情节(w /π,mag2db (abs (H1))) ylabel (“(dB)级”)举行在yyaxis正确的情节(w /π,G1) ylabel (“群延迟(样本)”) hline =线;xline(mbw, LineStyle =“:”,颜色=“b”, LineWidth = 2) xline(tbw, LineStyle =“——”,颜色=“米”, LineWidth = 2) yline(i0+fd, LineStyle =“:”,颜色=“r”, LineWidth = 1) yticks([i0, i0+fd,i0+1:i0+9]);持有从标题(“震级响应(dB)和群延迟”, FontSize = 10) xlabel(归一化频率(\乘以\ π rad/sample))传说(“获得响应”,“群体延迟响应”,“测量综合带宽”,...“目标综合带宽”,“名义群延迟”,...位置=“西方”, FontSize = 10)
分数延迟FIR滤波器设计及与移位输入的比较
设计了一个分数延迟FIR滤波器designFracDelayFIR函数。确定所设计滤波器的群时延。创建一个<一个href="//www.tianjin-qmedu.com/help/dsp/ref/dsp.firfilter-system-object.html" data-docid="dsp_ref#bs_u7t9-1" class="a">dsp。FIRFilter对象,该对象使用这些设计系数,因此具有相同的组延迟。或者,创建已知函数的采样序列。将采样序列传递给FIR滤波器。将FIR滤波器的输出与已知函数的移位样本进行比较。指定此移位等于FIR滤波器的组延迟。验证两个序列是否匹配。
指定分数延迟FIR滤波器的延迟为1/3,长度为6个点。
Fd = 1/3;Len = 6;
设计过滤器使用designFracDelayFIR函数并确定中心索引i0综合带宽bw过滤器的。您设计的滤波器的群时延为i0+fd的带宽约为2.33bw.
[h,i0,bw] = designFracDelayFIR(fd,len)
h =1×60.0293 -0.1360 0.7932 0.3966 -0.1088 0.0257
I0 = 2
Bw = 0.5158
创建一个dsp。FIRFilter对象,并将其分子设置为过滤器系数h.这个滤波器现在是有效的分数延迟FIR滤波器。验证该过滤器的组延迟响应在带宽持续时间内约为2.33bw.
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);%样本
绘制采样值x相对于原来的已知函数f(t).
散射(n, x 20“k”,“填充”);持有在;情节(t、f (t)“颜色”,[0.5 0.5 0.5],“线宽”, 0.5)从;包含(“时间”)传说([“输入样本”,“f (t)”])标题(“具有已知底层模拟信号的输入序列”) ax = gca;斧子。XGrid =“上”;
传递采样序列x通过FIR滤波器。绘制输入序列和输出序列。
Y = fdf(x);次要情节(2,1,1);茎(x);标题(输入序列的);包含(“n”) subplot(2,1,2) stem(y);标题(“FIR输出序列”);包含(“n”)
水平移动输入序列i0+fd,等于FIR滤波器的群时延。绘制函数f(t-i0-FD).验证输入和输出序列大致落在移位的函数上。
图散射(n, y, 20日“红色”,“填充”)举行在;散射(n + i0 + fd, x 20“黑”,“填充”)情节(t、f (t-i0-fd),“颜色”(1、0.5、0.5),“线宽”(0.1)包含“时间”)传说([“滤波器输出”,“移位输入样本”,“转移f (t-i0-fd)”)举行从网格在标题('输入和输出序列对齐和重叠')
输入参数
fd- - - - - -滤波器的分数延迟
在[0,1]范围内的正标量
滤波器的分数延迟,指定为范围[0,1]中的正标量。指定的延迟分数值决定了测量的组合带宽<一个href="#mw_23d1f24c-9863-402d-a270-b30923e1aecd" class="intrnllnk">MBW过滤器的。当fd设置为0或1时,所设计的滤波器具有全带宽。
数据类型:单|双
N- - - - - -FIR滤波器长度
大于1的整数
分数延迟FIR滤波器的长度,指定为大于1的整数。为了指定过滤器的长度,必须将函数的第二个输入参数指定为大于1的整数。该函数将此值视为所需的筛选器长度,并返回相应的筛选器N水龙头长。
数据类型:单|双
TBW- - - - - -目标组合带宽
小于0.999的正标量
目标组合带宽,指定为小于0.999的正标量。这是函数必须满足的组合带宽的值。组合带宽定义为的最小值<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">增益带宽和<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">组延迟带宽.
为了指定目标组合带宽,必须将函数的第二个输入参数指定为小于的实标量0.999.函数将此值作为目标组合带宽,确定相应的滤波器长度,并据此设计滤波器。
为更长的过滤器指定更高的目标组合带宽。例如TBW设置为0.9会产生一个长度为52的过滤器。为TBW它被设置为0.99,长度为724。该值大于10倍。作为TBW趋向于1时,滤波长度理论上趋向于无穷大。
数据类型:单|双
输出参数
h-分数延迟FIR滤波器系数行向量
分数延迟FIR滤波器的系数,作为实值返回<一个href="#mw_1803daf1-8f82-4da2-96cd-845eac2a09e2" class="intrnllnk">N-length行向量。当分数延迟是函数的唯一输入时,函数设计一个长度为50的滤波器。这个默认过滤器的带宽大约是0.9。当指定了第二个输入参数时,函数将按照以下方式设计过滤器:
当函数的第二个输入参数被指定为大于1的值时,函数将此值视为所需的筛选器长度,并返回为的筛选器N水龙头长。
当函数的第二个输入参数被指定为小于0.999时,函数将此值视为所需的组合带宽<一个href="#mw_d08ac4a3-afa6-4df8-b8a2-4cca7b5fcb3c" class="intrnllnk">TBW,确定相应的滤波器长度,并据此设计滤波器。
数据类型:单|双
i0—整数时延整数
设计的FIR滤波器的整型延时,以整型值返回。整数延迟是使对称Kaiser窗口具有因果关系所需的最小整数移位。这个值大约等于过滤器长度的一半,N/ 2。详情请参见<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">整数延迟,i0.
滤波器的标称群时延由我0+<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd.
数据类型:单|双
MBW-测量的综合带宽正标量小于0.999
测量的综合带宽,返回为小于的实正标量0.999.这是所设计滤波器的综合带宽值。组合带宽定义为的最小值<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">增益带宽和<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">组延迟带宽.
当您指定第二个输入参数并且值小于0.999时,函数将此值作为目标组合带宽<一个href="#mw_d08ac4a3-afa6-4df8-b8a2-4cca7b5fcb3c" class="intrnllnk">TBW.该功能设计的滤波器,使测量的综合带宽MBW满足或超过目标组合带宽TBW.滤波器长度的确定使带宽限制得到满足。
当您指定第二个输入参数并且值是大于1的整数时,函数将此值视为所需的长度<一个href="#mw_1803daf1-8f82-4da2-96cd-845eac2a09e2" class="intrnllnk">N过滤器的。在这种情况下,测量的组合带宽随着指定的长度而变化。更大的值N,为实测的综合带宽MBW.请看下面显示这种变化的图。随着滤波器长度的增加,滤波器的综合带宽向1靠拢。红色虚线表示每个长度的组合带宽。每个过滤器的延迟分数值设置为0.3
数据类型:单|双
更多关于
分数延迟FIR滤波器
分数延迟FIR滤波器是理想sinc移位滤波器的FIR近似值,具有指定的分数(非整数)延迟值<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd在[0,1]。
理想的移位滤波器模型是一个带限D/ a插值器,然后是移位a /D均匀采样。假设均匀采样率和移位不变插值,得到的整个系统可以表示为卷积滤波器,近似为FIR滤波器。换句话说,
,封装了D/A插值、移位和A/D采样链,如图所示。
在那里,
理想位移滤波器的频响由下式给出:
理想的移位滤波器具有平坦的单位增益响应和恒定的群时延fd,在那里fd指定的延迟分数值。
通过截断理想滤波器,并用凯撒窗对截断滤波器进行加权,得到FIR近似。
在那里,
凯撒窗的长度是多少N并且具有形状参数β。Kaiser窗口设计用于优化FIR频率响应,最大化增益响应和群延迟响应的组合带宽。
为了使FIR近似具有因果性,需要额外的移位我0
,使滤波器的名义群时延等于我0+fd.截断滤波器的频率响应为:
.
详情请参见<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">整数延迟,i0.
整数的延迟,我0
整数的延迟,我0,是使对称凯撒窗具有因果关系所需的最小整数移位。
理想的sinc移位滤波器是一种全通滤波器,具有无限大的非因果脉冲响应。为了近似这个滤波器,该函数使用了一个有限的索引凯撒窗的长度N它是围绕原点对称的并且捕获了主瓣sinc函数。
由于窗口的对称性质,窗口的一半(大约等于N/2)在原点的负侧,使得截断滤波器反因果。为了使截断的过滤器具有因果关系,将FIR窗口的反因果(负指数)部分移动一个整数延迟,我0,它近似等于N/ 2。
因果FIR滤波器的总时延为我0+fd,在那里fd指定的延迟分数值。
有关FIR近似的更多详细信息,请参阅中的理想sinc移位滤波器的因果FIR近似<一个href="//www.tianjin-qmedu.com/help/dsp/ug/design-of-fractional-delay-fir-filters.html" class="a">分数延迟FIR滤波器的设计.
增益带宽
给定FIR频率响应H(ω)时,增益带宽最大间隔为[0英航]的增益响应|H(ω)|在给定容差值前接近于1,托尔.
组延迟带宽
给定一个公差托尔还有一个群延迟反应G时,组延迟带宽最大间隔为[0Bg]使群延迟接近于标称值,<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd.
综合带宽
组合带宽定义为增益带宽与组延迟带宽之间的最小值。
组合带宽依赖于分数延迟fd和FIR滤波器的长度N.
扩展功能
C/ c++代码生成使用MATLAB®Coder™生成C和c++代码。
版本历史
R2021a中引入
设计了一种分数阶延时FIR延时滤波器h
= designFracDelayFIR (<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd
设计了一种分数阶延时FIR延时滤波器h
= designFracDelayFIR (<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd
N
设计了一种分数阶延时FIR延时滤波器h
= designFracDelayFIR (<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd
TBW
[<一个href="#mw_96d1c327-a785-4117-b040-89a9c1999f94" class="intrnllnk">
返回FIR过滤器的整数延时。这个值大约是<一个href="#mw_1803daf1-8f82-4da2-96cd-845eac2a09e2" class="intrnllnk">h
我
= designFracDelayFIR(N
我
+<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd
[<一个href="#mw_96d1c327-a785-4117-b040-89a9c1999f94" class="intrnllnk">
返回过滤器的测量组合带宽h
我
,<一个href="#mw_23d1f24c-9863-402d-a270-b30923e1aecd" class="intrnllnk">MBW
例子
设计具有指定时延和滤波器长度的分数延迟FIR滤波器
设计了一个分数延迟FIR滤波器designFracDelayFIR函数。将延迟和过滤器长度作为输入参数传递给函数。改变滤波器长度,观察对测量的组合带宽和标称群时延的影响。
改变滤镜长度
过滤器长度设置为8
指定延迟为0.25,滤波器长度为8,设计分数延迟FIR滤波器。
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
滤波器的名义组延迟一块+ 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.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
地块震级响应
绘制三个滤波器的结果震级响应。标记三个滤波器的测量组合带宽。通过增加滤波器长度,可以看到测量的综合带宽增加。
[H1,w] = freqz(H1, 1);H2 = freqz(H2,1);H3 = freqz(H3,1);图;plot(w/pi,mag2db(abs([H1 H2 H3])))持有在Hline =线;xline(bw1, LineStyle =“——”, LineWidth = 2, Color = hline(1,:)) xline(bw2, LineStyle =“——”, LineWidth = 2, Color = hline(2,:)) xline(bw3, LineStyle =“——”, LineWidth = 2, Color = hline(3,:))等待从标题(“震级响应(dB)”, FontSize = 12) xlabel(归一化频率(\乘以\ π rad/sample)) ylabel (“(dB)级”)网格图例(增益响应(N = 8),增益响应(N = 32),增益响应(N = 64),...测量综合带宽(N = 8),...测量综合带宽(N = 32),...测量综合带宽(N = 64)位置=“西南”)
图群延迟响应
绘制三个滤波器的组延迟响应。标记标称组延迟i0+fd在这三个过滤器中。通过增加滤波器长度,可以看到标称组延迟增加。
[g1,w] = grpdelay(h1,1);G2 = grpdelay(h2,1);G3 = grpdelay(h3,1);图;Plot (w/pi,[g1 g2 g3]) hline = lines;yline(i10+fd, LineStyle =“——”, LineWidth = 2, Color = hline(1,:)) yline(i20+fd, LineStyle =“——”, LineWidth = 2, Color = hline(2,:)) yline(i30+fd, LineStyle =“——”, LineWidth = 2, Color = hline(3,:))“群体延迟响应”,FontSize = 12) xlabel(归一化频率(\乘以\ π rad/sample)) ylabel (“群延迟”)网格图例(“群体延迟响应(N = 8)”,“群体延迟响应(N = 32)”,“群体延迟响应(N = 64)”,...名义群时延(N = 8),...名义群延迟(N = 32),...“名义群延迟(N = 64)”位置=“西方”,FontSize = 10);ylim ([-10, 40]);
设计具有指定时延和组合带宽的分数延迟FIR滤波器
设计了一个分数延迟FIR滤波器designFracDelayFIR函数。将延迟和组合带宽作为输入参数传递给函数。
指定延迟为0.786,目标组合带宽为0.8。该函数设计了一个过滤器,其长度为22个点,是一个整数延迟i010个样本,外加带宽米
bw 归一化频率单位为0.8044。这个mbw值使组合带宽覆盖率为频域的80.44%,超过指定的目标组合带宽。滤波器的名义组延迟i0 + fd
= 10.786。
Fd = 0.786;TBW = 0.8;[h,i0,mbw] = designFracDelayFIR(fd, tbw)
h =1×220.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
绘制FIR的脉冲响应。
茎((0:长度(h) 1), h);包含(“h”);ylabel (“h [n]”);标题(“分数延迟FIR的脉冲响应”)
绘制得到的震级响应和群延迟响应。标记标称组延迟和滤波器的组合带宽。
[H1,w] = freqz(h,1);G1 = grpdelay(h,1);图;yyaxis左情节(w /π,mag2db (abs (H1))) ylabel (“(dB)级”)举行在yyaxis正确的情节(w /π,G1) ylabel (“群延迟(样本)”) hline =线;xline(mbw, LineStyle =“:”,颜色=“b”, LineWidth = 2) xline(tbw, LineStyle =“——”,颜色=“米”, LineWidth = 2) yline(i0+fd, LineStyle =“:”,颜色=“r”, LineWidth = 1) yticks([i0, i0+fd,i0+1:i0+9]);持有从标题(“震级响应(dB)和群延迟”, FontSize = 10) xlabel(归一化频率(\乘以\ π rad/sample))传说(“获得响应”,“群体延迟响应”,“测量综合带宽”,...“目标综合带宽”,“名义群延迟”,...位置=“西方”, FontSize = 10)
分数延迟FIR滤波器设计及与移位输入的比较
设计了一个分数延迟FIR滤波器designFracDelayFIR函数。确定所设计滤波器的群时延。创建一个<一个href="//www.tianjin-qmedu.com/help/dsp/ref/dsp.firfilter-system-object.html" data-docid="dsp_ref#bs_u7t9-1" class="a">dsp。FIRFilter对象,该对象使用这些设计系数,因此具有相同的组延迟。或者,创建已知函数的采样序列。将采样序列传递给FIR滤波器。将FIR滤波器的输出与已知函数的移位样本进行比较。指定此移位等于FIR滤波器的组延迟。验证两个序列是否匹配。
指定分数延迟FIR滤波器的延迟为1/3,长度为6个点。
Fd = 1/3;Len = 6;
设计过滤器使用designFracDelayFIR函数并确定中心索引i0综合带宽bw过滤器的。您设计的滤波器的群时延为i0+fd的带宽约为2.33bw.
[h,i0,bw] = designFracDelayFIR(fd,len)
h =1×60.0293 -0.1360 0.7932 0.3966 -0.1088 0.0257
I0 = 2
Bw = 0.5158
创建一个dsp。FIRFilter对象,并将其分子设置为过滤器系数h.这个滤波器现在是有效的分数延迟FIR滤波器。验证该过滤器的组延迟响应在带宽持续时间内约为2.33bw.
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);%样本
绘制采样值x相对于原来的已知函数f(t).
散射(n, x 20“k”,“填充”);持有在;情节(t、f (t)“颜色”,[0.5 0.5 0.5],“线宽”, 0.5)从;包含(“时间”)传说([“输入样本”,“f (t)”])标题(“具有已知底层模拟信号的输入序列”) ax = gca;斧子。XGrid =“上”;
传递采样序列x通过FIR滤波器。绘制输入序列和输出序列。
Y = fdf(x);次要情节(2,1,1);茎(x);标题(输入序列的);包含(“n”) subplot(2,1,2) stem(y);标题(“FIR输出序列”);包含(“n”)
水平移动输入序列i0+fd,等于FIR滤波器的群时延。绘制函数f(t-i0-FD).验证输入和输出序列大致落在移位的函数上。
图散射(n, y, 20日“红色”,“填充”)举行在;散射(n + i0 + fd, x 20“黑”,“填充”)情节(t、f (t-i0-fd),“颜色”(1、0.5、0.5),“线宽”(0.1)包含“时间”)传说([“滤波器输出”,“移位输入样本”,“转移f (t-i0-fd)”)举行从网格在标题('输入和输出序列对齐和重叠')
设计具有指定时延和滤波器长度的分数延迟FIR滤波器
设计了一个分数延迟FIR滤波器 改变滤镜长度 过滤器长度设置为8 指定延迟为0.25,滤波器长度为8,设计分数延迟FIR滤波器。 滤波器的名义组延迟 过滤长度:32 重复这一过程,过滤器长度为32点。 滤波器的名义群延迟现在等于15.25个样本。通过增加过滤器长度,整数延迟 过滤器长度设置为64 增加过滤器长度到64个水龙头。组延迟增加到31.25个样本,整数延迟为31个样本。实测滤波器的综合带宽进一步提高到0.9219。即带宽覆盖率为总带宽的92.19%。随着滤波器长度的不断增加,综合带宽趋于1。 地块震级响应 绘制三个滤波器的结果震级响应。标记三个滤波器的测量组合带宽。通过增加滤波器长度,可以看到测量的综合带宽增加。 图群延迟响应 绘制三个滤波器的组延迟响应。标记标称组延迟Fd = 0.25;Len = [8 32 64];[h1,i10,bw1] = designFracDelayFIR(fd,len(1))
h1 =
I10 = 3
Bw1 = 0.5810
[h2,i20,bw2] = designFracDelayFIR(fd,len(2))
h2 =
I20 = 15
Bw2 = 0.8571
[h3,i30,bw3] = designFracDelayFIR(fd,len(3))
h3 =
I30 = 31
Bw3 = 0.9219
[H1,w] = freqz(H1, 1);H2 = freqz(H2,1);H3 = freqz(H3,1);图;plot(w/pi,mag2db(abs([H1 H2 H3])))持有
[g1,w] = grpdelay(h1,1);G2 = grpdelay(h2,1);G3 = grpdelay(h3,1);图;Plot (w/pi,[g1 g2 g3]) hline = lines;yline(i10+fd, LineStyle =
设计具有指定时延和组合带宽的分数延迟FIR滤波器
设计了一个分数延迟FIR滤波器 指定延迟为0.786,目标组合带宽为0.8。该函数设计了一个过滤器,其长度为22个点,是一个整数延迟 绘制FIR的脉冲响应。 绘制得到的震级响应和群延迟响应。标记标称组延迟和滤波器的组合带宽。米
bwi0 + fd
= 10.786。Fd = 0.786;TBW = 0.8;[h,i0,mbw] = designFracDelayFIR(fd, tbw)
h =
I0 = 10
MBW = 0.8044
茎((0:长度(h) 1), h);包含(
[H1,w] = freqz(h,1);G1 = grpdelay(h,1);图;yyaxis
分数延迟FIR滤波器设计及与移位输入的比较
设计了一个分数延迟FIR滤波器 指定分数延迟FIR滤波器的延迟为1/3,长度为6个点。 设计过滤器使用 创建一个 与移位函数比较 定义一个序列 绘制采样值 传递采样序列 水平移动输入序列dsp。FIRFilter
Fd = 1/3;Len = 6;
[h,i0,bw] = designFracDelayFIR(fd,len)
h =
I0 = 2
Bw = 0.5158
fdf = dsp.FIRFilter(h);grpdelay (fdf)
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);
散射(n, x 20
Y = fdf(x);次要情节(2,1,1);茎(x);标题(
图散射(n, y, 20日
输入参数
fd- - - - - -滤波器的分数延迟
在[0,1]范围内的正标量
滤波器的分数延迟,指定为范围[0,1]中的正标量。指定的延迟分数值决定了测量的组合带宽<一个href="#mw_23d1f24c-9863-402d-a270-b30923e1aecd" class="intrnllnk">MBW过滤器的。当fd设置为0或1时,所设计的滤波器具有全带宽。
数据类型:单|双
N- - - - - -FIR滤波器长度
大于1的整数
分数延迟FIR滤波器的长度,指定为大于1的整数。为了指定过滤器的长度,必须将函数的第二个输入参数指定为大于1的整数。该函数将此值视为所需的筛选器长度,并返回相应的筛选器N水龙头长。
数据类型:单|双
TBW- - - - - -目标组合带宽
小于0.999的正标量
目标组合带宽,指定为小于0.999的正标量。这是函数必须满足的组合带宽的值。组合带宽定义为的最小值<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">增益带宽和<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">组延迟带宽.
为了指定目标组合带宽,必须将函数的第二个输入参数指定为小于的实标量0.999.函数将此值作为目标组合带宽,确定相应的滤波器长度,并据此设计滤波器。
为更长的过滤器指定更高的目标组合带宽。例如TBW设置为0.9会产生一个长度为52的过滤器。为TBW它被设置为0.99,长度为724。该值大于10倍。作为TBW趋向于1时,滤波长度理论上趋向于无穷大。
数据类型:单|双
fd- - - - - -滤波器的分数延迟
在[0,1]范围内的正标量
在[0,1]范围内的正标量
滤波器的分数延迟,指定为范围[0,1]中的正标量。指定的延迟分数值决定了测量的组合带宽<一个href="#mw_23d1f24c-9863-402d-a270-b30923e1aecd" class="intrnllnk"> 数据类型:MBW
单
N- - - - - -FIR滤波器长度
大于1的整数
大于1的整数
分数延迟FIR滤波器的长度,指定为大于1的整数。为了指定过滤器的长度,必须将函数的第二个输入参数指定为大于1的整数。该函数将此值视为所需的筛选器长度,并返回相应的筛选器 数据类型:单
TBW- - - - - -目标组合带宽
小于0.999的正标量
小于0.999的正标量
目标组合带宽,指定为小于0.999的正标量。这是函数必须满足的组合带宽的值。组合带宽定义为的最小值<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">增益带宽 为了指定目标组合带宽,必须将函数的第二个输入参数指定为小于的实标量 为更长的过滤器指定更高的目标组合带宽。例如 数据类型:单
输出参数
h-分数延迟FIR滤波器系数行向量
分数延迟FIR滤波器的系数,作为实值返回<一个href="#mw_1803daf1-8f82-4da2-96cd-845eac2a09e2" class="intrnllnk">N-length行向量。当分数延迟是函数的唯一输入时,函数设计一个长度为50的滤波器。这个默认过滤器的带宽大约是0.9。当指定了第二个输入参数时,函数将按照以下方式设计过滤器:
当函数的第二个输入参数被指定为大于1的值时,函数将此值视为所需的筛选器长度,并返回为的筛选器N水龙头长。
当函数的第二个输入参数被指定为小于0.999时,函数将此值视为所需的组合带宽<一个href="#mw_d08ac4a3-afa6-4df8-b8a2-4cca7b5fcb3c" class="intrnllnk">TBW,确定相应的滤波器长度,并据此设计滤波器。
数据类型:单|双
i0—整数时延整数
设计的FIR滤波器的整型延时,以整型值返回。整数延迟是使对称Kaiser窗口具有因果关系所需的最小整数移位。这个值大约等于过滤器长度的一半,N/ 2。详情请参见<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">整数延迟,i0.
滤波器的标称群时延由我0+<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd.
数据类型:单|双
MBW-测量的综合带宽正标量小于0.999
测量的综合带宽,返回为小于的实正标量0.999.这是所设计滤波器的综合带宽值。组合带宽定义为的最小值<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">增益带宽和<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">组延迟带宽.
当您指定第二个输入参数并且值小于0.999时,函数将此值作为目标组合带宽<一个href="#mw_d08ac4a3-afa6-4df8-b8a2-4cca7b5fcb3c" class="intrnllnk">TBW.该功能设计的滤波器,使测量的综合带宽MBW满足或超过目标组合带宽TBW.滤波器长度的确定使带宽限制得到满足。
当您指定第二个输入参数并且值是大于1的整数时,函数将此值视为所需的长度<一个href="#mw_1803daf1-8f82-4da2-96cd-845eac2a09e2" class="intrnllnk">N过滤器的。在这种情况下,测量的组合带宽随着指定的长度而变化。更大的值N,为实测的综合带宽MBW.请看下面显示这种变化的图。随着滤波器长度的增加,滤波器的综合带宽向1靠拢。红色虚线表示每个长度的组合带宽。每个过滤器的延迟分数值设置为0.3
数据类型:单|双
h-分数延迟FIR滤波器系数行向量
分数延迟FIR滤波器的系数,作为实值返回<一个href="#mw_1803daf1-8f82-4da2-96cd-845eac2a09e2" class="intrnllnk"> 当函数的第二个输入参数被指定为大于1的值时,函数将此值视为所需的筛选器长度,并返回为的筛选器 当函数的第二个输入参数被指定为小于 数据类型:N
TBW
单
i0—整数时延整数
设计的FIR滤波器的整型延时,以整型值返回。整数延迟是使对称Kaiser窗口具有因果关系所需的最小整数移位。这个值大约等于过滤器长度的一半, 滤波器的标称群时延由 数据类型:fd
单
MBW-测量的综合带宽正标量小于0.999
测量的综合带宽,返回为小于的实正标量 当您指定第二个输入参数并且值小于 当您指定第二个输入参数并且值是大于1的整数时,函数将此值视为所需的长度<一个href="#mw_1803daf1-8f82-4da2-96cd-845eac2a09e2" class="intrnllnk"> 数据类型:TBW
N
单
更多关于
分数延迟FIR滤波器
分数延迟FIR滤波器是理想sinc移位滤波器的FIR近似值,具有指定的分数(非整数)延迟值<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd在[0,1]。
理想的移位滤波器模型是一个带限D/ a插值器,然后是移位a /D均匀采样。假设均匀采样率和移位不变插值,得到的整个系统可以表示为卷积滤波器,近似为FIR滤波器。换句话说,
,封装了D/A插值、移位和A/D采样链,如图所示。
在那里,
理想位移滤波器的频响由下式给出:
理想的移位滤波器具有平坦的单位增益响应和恒定的群时延fd,在那里fd指定的延迟分数值。
通过截断理想滤波器,并用凯撒窗对截断滤波器进行加权,得到FIR近似。
在那里,
凯撒窗的长度是多少N并且具有形状参数β。Kaiser窗口设计用于优化FIR频率响应,最大化增益响应和群延迟响应的组合带宽。
为了使FIR近似具有因果性,需要额外的移位我0
,使滤波器的名义群时延等于我0+fd.截断滤波器的频率响应为:
.
详情请参见<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">整数延迟,i0.
整数的延迟,我0
整数的延迟,我0,是使对称凯撒窗具有因果关系所需的最小整数移位。
理想的sinc移位滤波器是一种全通滤波器,具有无限大的非因果脉冲响应。为了近似这个滤波器,该函数使用了一个有限的索引凯撒窗的长度N它是围绕原点对称的并且捕获了主瓣sinc函数。
由于窗口的对称性质,窗口的一半(大约等于N/2)在原点的负侧,使得截断滤波器反因果。为了使截断的过滤器具有因果关系,将FIR窗口的反因果(负指数)部分移动一个整数延迟,我0,它近似等于N/ 2。
因果FIR滤波器的总时延为我0+fd,在那里fd指定的延迟分数值。
有关FIR近似的更多详细信息,请参阅中的理想sinc移位滤波器的因果FIR近似<一个href="//www.tianjin-qmedu.com/help/dsp/ug/design-of-fractional-delay-fir-filters.html" class="a">分数延迟FIR滤波器的设计.
增益带宽
给定FIR频率响应H(ω)时,增益带宽最大间隔为[0英航]的增益响应|H(ω)|在给定容差值前接近于1,托尔.
组延迟带宽
给定一个公差托尔还有一个群延迟反应G时,组延迟带宽最大间隔为[0Bg]使群延迟接近于标称值,<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd.
综合带宽
组合带宽定义为增益带宽与组延迟带宽之间的最小值。
组合带宽依赖于分数延迟fd和FIR滤波器的长度N.
分数延迟FIR滤波器
分数延迟FIR滤波器是理想sinc移位滤波器的FIR近似值,具有指定的分数(非整数)延迟值<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd在[0,1]。
理想的移位滤波器模型是一个带限D/ a插值器,然后是移位a /D均匀采样。假设均匀采样率和移位不变插值,得到的整个系统可以表示为卷积滤波器,近似为FIR滤波器。换句话说,
,封装了D/A插值、移位和A/D采样链,如图所示。
在那里,
理想位移滤波器的频响由下式给出:
理想的移位滤波器具有平坦的单位增益响应和恒定的群时延fd,在那里fd指定的延迟分数值。
通过截断理想滤波器,并用凯撒窗对截断滤波器进行加权,得到FIR近似。
在那里,
凯撒窗的长度是多少N并且具有形状参数β。Kaiser窗口设计用于优化FIR频率响应,最大化增益响应和群延迟响应的组合带宽。
为了使FIR近似具有因果性,需要额外的移位我0
,使滤波器的名义群时延等于我0+fd.截断滤波器的频率响应为:
.
详情请参见<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">整数延迟,i0.
分数延迟FIR滤波器是理想sinc移位滤波器的FIR近似值,具有指定的分数(非整数)延迟值<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk"> 理想的移位滤波器模型是一个带限D/ a插值器,然后是移位a /D均匀采样。假设均匀采样率和移位不变插值,得到的整个系统可以表示为卷积滤波器,近似为FIR滤波器。换句话说, 在那里,
理想位移滤波器的频响由下式给出:
理想的移位滤波器具有平坦的单位增益响应和恒定的群时延 通过截断理想滤波器,并用凯撒窗对截断滤波器进行加权,得到FIR近似。
在那里, 为了使FIR近似具有因果性,需要额外的移位 详情请参见<一个href="//www.tianjin-qmedu.com/help/dsp/ref/designfracdelayfir.html" class="intrnllnk">整数延迟,i0fd
,使滤波器的名义群时延等于
整数的延迟,我0
整数的延迟, 理想的 由于窗口的对称性质,窗口的一半(大约等于 因果FIR滤波器的总时延为 有关FIR近似的更多详细信息,请参阅中的理想sinc移位滤波器的因果FIR近似<一个href="//www.tianjin-qmedu.com/help/dsp/ug/design-of-fractional-delay-fir-filters.html" class="a">分数延迟FIR滤波器的设计
增益带宽
给定FIR频率响应H(ω)时,增益带宽最大间隔为[0英航]的增益响应|H(ω)|在给定容差值前接近于1,托尔.
给定FIR频率响应
组延迟带宽
给定一个公差托尔还有一个群延迟反应G时,组延迟带宽最大间隔为[0Bg]使群延迟接近于标称值,<一个href="#mw_d73bfe19-6e51-4962-90ad-7ced26a82244" class="intrnllnk">fd.
给定一个公差
fd
综合带宽
组合带宽定义为增益带宽与组延迟带宽之间的最小值。
组合带宽依赖于分数延迟fd和FIR滤波器的长度N.
组合带宽定义为增益带宽与组延迟带宽之间的最小值。
组合带宽依赖于分数延迟
扩展功能
C/ c++代码生成使用MATLAB®Coder™生成C和c++代码。
C/ c++代码生成使用MATLAB®Coder™生成C和c++代码。
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接: 在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站: 选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。如何获得最佳的网站性能
欧洲