主要内容gydF4y2Ba

cfirpmgydF4y2Ba

复杂和非线性相位equiripple冷杉滤波器设计gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

bgydF4y2Ba= cfirpm (gydF4y2BangydF4y2Ba,gydF4y2BafgydF4y2Ba,gydF4y2BafrespgydF4y2Ba)gydF4y2Ba返回一个长度gydF4y2BangydF4y2Ba+ 1冷杉滤波器的最佳逼近理想的频率响应返回的gydF4y2BafrespgydF4y2Ba是由它的功能调用处理函数(gydF4y2Ba@frespgydF4y2Ba)。gydF4y2Ba

bgydF4y2Ba= cfirpm (gydF4y2BangydF4y2Ba,gydF4y2BafgydF4y2Ba,gydF4y2BafrespgydF4y2Ba,gydF4y2BawgydF4y2Ba)gydF4y2Ba使用指定的权重gydF4y2BawgydF4y2Ba在每个频带体重健康。gydF4y2Ba

bgydF4y2Ba= cfirpm (gydF4y2BangydF4y2Ba,gydF4y2BafgydF4y2Ba,gydF4y2Ba一个gydF4y2Ba)gydF4y2Ba指定振幅gydF4y2Ba一个gydF4y2Ba在频带边缘gydF4y2BafgydF4y2Ba。这个语法返回相同的结果gydF4y2Bab = cfirpm (n、f} {@multiband,)gydF4y2Ba。gydF4y2Ba

bgydF4y2Ba= cfirpm (gydF4y2BangydF4y2Ba,gydF4y2BafgydF4y2Ba,gydF4y2Ba一个gydF4y2Ba,gydF4y2BawgydF4y2Ba)gydF4y2Ba积极应用一组可选的重量,每一个乐队,在优化使用。如果你不指定gydF4y2BawgydF4y2Ba函数设置权重,团结。gydF4y2Ba

例子gydF4y2Ba

bgydF4y2Ba= cfirpm (gydF4y2Ba___gydF4y2Ba,gydF4y2Ba信谊gydF4y2Ba)gydF4y2Ba对脉冲响应对称约束的设计。除了指定gydF4y2Ba信谊gydF4y2Ba,指定一个输入组合的任何以前的语法。gydF4y2Ba

bgydF4y2Ba= cfirpm (gydF4y2Ba___gydF4y2Ba,gydF4y2Ba调试gydF4y2Ba)gydF4y2Ba显示或隐藏了中间结果在滤波器设计。gydF4y2Ba

bgydF4y2Ba= cfirpm (gydF4y2Ba___gydF4y2Ba,gydF4y2BalgridgydF4y2Ba)gydF4y2Ba控制频率的网格的密度。gydF4y2Ba

bgydF4y2Ba= cfirpm (gydF4y2Ba___gydF4y2Ba,' skip_stage2 ')gydF4y2Ba禁用阶段的优化算法,只有当执行gydF4y2BacfirpmgydF4y2Ba函数确定一个最优解并没有达到标准gydF4y2BafirpmgydF4y2Baerror-exchange。禁用该算法可以提高计算的速度,但会降低精度。默认情况下,启用了第二阶段的优化。gydF4y2Ba

例子gydF4y2Ba

(gydF4y2BabgydF4y2Ba,gydF4y2BaδgydF4y2Ba)= cfirpm (gydF4y2Ba___gydF4y2Ba)gydF4y2Ba返回最大波纹高度gydF4y2BaδgydF4y2Ba。gydF4y2Ba

(gydF4y2BabgydF4y2Ba,gydF4y2BaδgydF4y2Ba,gydF4y2Ba选择gydF4y2Ba)= cfirpm (gydF4y2Ba___gydF4y2Ba)gydF4y2Ba返回计算的可选的结果gydF4y2BacfirpmgydF4y2Ba函数。gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

设计一个31-tap线性相位低通滤波器。显示其大小和相位响应。gydF4y2Ba

b = cfirpm(30日[1 -0.5 -0.4 0.7 0.8 1],@lowpass);fvtool (b, 1gydF4y2Ba“OverlayedAnalysis”gydF4y2Ba,gydF4y2Ba“阶段”gydF4y2Ba)gydF4y2Ba

{“字符串”:“图1图:级响应(dB)和相位响应包含一个坐标轴对象。坐标轴对象与标题级响应(dB)和相位响应包含一个类型的对象。”、“特克斯”:“级响应(dB)和相位响应”、“乳胶”:[]}gydF4y2Ba

使用gydF4y2BacfirpmgydF4y2Ba设计一个滤波器gydF4y2BaNgydF4y2Ba= 22,近似非线性相位allpass系统归一化频率间隔gydF4y2Ba wgydF4y2Ba ∈gydF4y2Ba (gydF4y2Ba - - - - - -gydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba 1gydF4y2Ba ]gydF4y2Ba 。计算滤波器的频率响应。gydF4y2Ba

n = 22;w = [1];b = cfirpm (n, w,gydF4y2Ba“allpass”gydF4y2Ba);[h f] = freqz (b, 1 []gydF4y2Ba“整体”gydF4y2Ba);gydF4y2Ba

的gydF4y2BacfirpmgydF4y2Ba算法给出的滤波器响应近似gydF4y2Ba 经验值gydF4y2Ba (gydF4y2Ba - - - - - -gydF4y2Ba jgydF4y2Ba πgydF4y2Ba wgydF4y2Ba NgydF4y2Ba /gydF4y2Ba 2gydF4y2Ba +gydF4y2Ba jgydF4y2Ba 4gydF4y2Ba πgydF4y2Ba wgydF4y2Ba |gydF4y2Ba wgydF4y2Ba |gydF4y2Ba )gydF4y2Ba 。情节的实部和虚部的频率响应和覆盖目标响应。gydF4y2Ba

女朋友= linspace (1256);d = exp (1 j *π*广发* n / 2 + 4 j *π*女朋友。* abs (gf));图次要情节(2,1,1)情节(f /π,真正的(h),gydF4y2Ba…gydF4y2Bagf + 1, fftshift(真正的(d)),gydF4y2Ba“。”gydF4y2Ba)ylabel (gydF4y2Ba“真正的”gydF4y2Ba)ylim(1.1 *[1])次要情节(2,1,2)情节(f /π,图像放大(h),gydF4y2Ba…gydF4y2Bagf + 1, fftshift(图像放大(d)),gydF4y2Ba“。”gydF4y2Ba)ylabel (gydF4y2Ba“虚”gydF4y2Ba)ylim (1.1 * [1])gydF4y2Ba

图包含2轴对象。坐标轴对象1包含2线类型的对象。坐标轴对象包含2线类型的对象。gydF4y2Ba

图的大小和相位响应冷杉过滤器。表达在数据库级响应和相位响应度。gydF4y2Ba

freqz (b 1 [],gydF4y2Ba“整体”gydF4y2Ba)gydF4y2Ba

图包含2轴对象。坐标轴对象1与标题相包含一个类型的对象。坐标轴对象2级标题包含一个类型的对象。gydF4y2Ba

30使用自定义设计一个低通滤波器的频率响应函数gydF4y2BafrespgydF4y2Ba。的代码gydF4y2BafrespgydF4y2Ba功能是可用的例子。gydF4y2Ba

[b,三角洲]= cfirpm(30日linspace (1, 1, 32), @fresp);gydF4y2Ba

使用gydF4y2BaFVToolgydF4y2Ba可视化滤波器的幅度响应。gydF4y2Ba

fvtool (b, 1)gydF4y2Ba

{“字符串”:“图1图:级响应(dB)包含一个坐标轴对象。坐标轴对象与标题级响应(dB)包含一个类型的对象。”、“特克斯”:“级响应(dB)”,“乳胶”:[]}gydF4y2Ba

用户定义的gydF4y2BafrespgydF4y2Ba功能:设计一个低通滤波器gydF4y2Ba

的gydF4y2BafrespgydF4y2Ba函数允许您选择设计一个低通滤波器,高通滤波器,或微分器。过滤器订单gydF4y2BaNgydF4y2Ba和频率数组gydF4y2BaFgydF4y2Ba必须被指定。如果电网频率gydF4y2Ba女朋友gydF4y2Ba和权重gydF4y2BaWgydF4y2Ba未指明的,函数自动确定这些值。gydF4y2Ba

函数gydF4y2Ba(dh, dw) = fresp (N, F, GF, W) W = (1, 1) * (W (:)。');W = W (:);类型=gydF4y2Ba低通滤波器的gydF4y2Ba;杂志= 0(大小(W));gydF4y2Ba开关gydF4y2Ba类型gydF4y2Ba情况下gydF4y2Ba低通滤波器的gydF4y2Ba杂志(10:end-10) = 1;gydF4y2Ba情况下gydF4y2Ba“高反差保留”gydF4y2Ba杂志(1:10)= 1;杂志(end-10:结束)= 1;gydF4y2Ba情况下gydF4y2Ba“区别”gydF4y2Ba杂志= abs (linspace(π-π,长度(杂志)));gydF4y2Ba结束gydF4y2Badh = interp1 (F(:),杂志,GF)。* exp (1 j *π*广发* N / 2);dw = interp1 (F (:), W, GF);gydF4y2Ba结束gydF4y2Ba

输入参数gydF4y2Ba

全部折叠gydF4y2Ba

过滤器订单,指定为一个真正的积极的标量。gydF4y2Ba

归一化频率点,指定为一个实值向量的元素范围[1],1对应的标准化的奈奎斯特频率。频率必须在增加订单,gydF4y2BafgydF4y2Ba甚至一定长度。频带跨度gydF4y2Baf (gydF4y2BakgydF4y2Ba)gydF4y2Ba来gydF4y2BafgydF4y2Ba(gydF4y2BakgydF4y2Ba+ 1)gydF4y2BakgydF4y2Ba奇数。的时间间隔gydF4y2BafgydF4y2Ba(gydF4y2BakgydF4y2Ba+ 1)gydF4y2BafgydF4y2Ba(gydF4y2BakgydF4y2Ba+ 2)gydF4y2BakgydF4y2Ba奇怪的是gydF4y2Ba过渡的乐队gydF4y2Ba或gydF4y2Ba不关心gydF4y2Ba在优化区域。gydF4y2Ba

频率响应,指定为一个函数处理。有关更多信息,请参见gydF4y2Ba预定义的频率响应函数gydF4y2Ba和gydF4y2Ba用户定义的频率响应函数gydF4y2Ba。gydF4y2Ba

想要的振幅在指定的点gydF4y2BafgydF4y2Ba,指定为一个向量。所需的振幅频率之间的双点gydF4y2BafgydF4y2Ba(gydF4y2BakgydF4y2Ba),gydF4y2BafgydF4y2Ba(gydF4y2BakgydF4y2Ba+ 1)gydF4y2BakgydF4y2Ba奇怪的是线段连接的点(gydF4y2BafgydF4y2Ba(gydF4y2BakgydF4y2Ba),gydF4y2Ba一个gydF4y2Ba(gydF4y2BakgydF4y2Ba)和(gydF4y2BafgydF4y2Ba(gydF4y2BakgydF4y2Ba+ 1),gydF4y2Ba一个gydF4y2Ba(gydF4y2BakgydF4y2Ba+ 1)。gydF4y2Ba

重量用来调整适应每一个频段,指定为一个实值向量。的长度gydF4y2BawgydF4y2Ba一半的长度吗gydF4y2BafgydF4y2Ba存在,所以一个体重/乐队。如果你不指定gydF4y2BawgydF4y2Ba函数设置权重,团结。gydF4y2Ba

对称约束对滤波器的脉冲响应设计,指定这些值之一:gydF4y2Ba

  • “没有”gydF4y2Ba——施加对称约束。这个选项是默认的,如果你通过任何负面带频率函数或者gydF4y2BafrespgydF4y2Ba不提供一个默认值。gydF4y2Ba

  • “甚至”gydF4y2Ba——对一个真正的甚至脉冲响应。这个选项是默认为高通滤波、低通allpass,带通,bandstop inverse-sinc,多波段设计。gydF4y2Ba

  • “奇怪”gydF4y2Ba——强加一个真正的和奇怪的脉冲响应。这个选项是默认的希尔伯特和微分电路的设计。gydF4y2Ba

  • “真实”的gydF4y2Ba——对共轭对称的频率响应。gydF4y2Ba

如果你以外的指定一个值gydF4y2Ba“没有”gydF4y2Ba,你必须指定乐队边缘只有正频率(负频率区域填写从对称)。如果你不指定gydF4y2Ba信谊gydF4y2Ba,函数查询gydF4y2BafrespgydF4y2Ba默认设置。任何用户提供的gydF4y2BafrespgydF4y2Ba函数必须返回一个有效的gydF4y2Ba信谊gydF4y2Ba选择当它过去了gydF4y2Ba“违约”gydF4y2Ba作为过滤器的顺序gydF4y2BangydF4y2Ba。gydF4y2Ba

显示的中间结果在滤波器设计,指定为gydF4y2Ba“关闭”gydF4y2Ba,gydF4y2Ba“跟踪”gydF4y2Ba,gydF4y2Ba“阴谋”gydF4y2Ba,或gydF4y2Ba“两个”gydF4y2Ba。gydF4y2Ba

频率的网格密度,指定为一个细胞一个整数的数组。电网频率gydF4y2Ba2 ^ nextpow2 (lgrid * n)gydF4y2Ba频率点。gydF4y2Ba

输出参数gydF4y2Ba

全部折叠gydF4y2Ba

滤波器系数,返回一个行向量的长度gydF4y2BangydF4y2Ba+ 1。gydF4y2Ba

最大纹波的高度,作为一个标量返回。gydF4y2Ba

可选的结果计算gydF4y2BacfirpmgydF4y2Ba函数,返回一个包含这些字段的结构。gydF4y2Ba

场gydF4y2Ba

描述gydF4y2Ba

opt.fgridgydF4y2Ba

电网频率向量用于滤波器优化设计gydF4y2Ba

opt.desgydF4y2Ba

为每个点所需的频率响应gydF4y2Baopt.fgridgydF4y2Ba

opt.wtgydF4y2Ba

为每个点权重gydF4y2Baopt.fgridgydF4y2Ba

opt.HgydF4y2Ba

为每个点实际的频率响应gydF4y2Baopt.fgridgydF4y2Ba

opt.errorgydF4y2Ba

在每个点上的错误gydF4y2Baopt.fgridgydF4y2Ba

opt.iextrgydF4y2Ba

向量指标进gydF4y2Baopt.fgridgydF4y2Ba对极值频率gydF4y2Ba

opt.fextrgydF4y2Ba

向量极值频率gydF4y2Ba

更多关于gydF4y2Ba

全部折叠gydF4y2Ba

预定义的频率响应函数gydF4y2Ba

预定义的gydF4y2BafrespgydF4y2Ba的频率响应函数包括常见的滤波器的设计在这一节中。有关如何创建一个自定义的更多信息gydF4y2BafrespgydF4y2Ba功能,请参阅gydF4y2Ba创建函数处理gydF4y2Ba。gydF4y2Ba

的所有预定义的频率响应函数,对称的选择gydF4y2Ba信谊gydF4y2Ba默认为gydF4y2Ba“甚至”gydF4y2Ba如果gydF4y2BafgydF4y2Ba不包含负频率和gydF4y2BadgydF4y2Ba=gydF4y2Ba0gydF4y2Ba。否则gydF4y2Ba信谊gydF4y2Ba默认为gydF4y2Ba“没有”gydF4y2Ba。有关详细信息,请参见gydF4y2Ba信谊gydF4y2Ba。的所有预定义的频率响应函数,gydF4y2BadgydF4y2Ba指定一个群时延补偿的滤波器响应的群延迟gydF4y2BangydF4y2Ba/ 2 +gydF4y2BadgydF4y2Ba取样间隔的单位。负值创造更少的延迟,和积极的价值观创造更多的延迟。默认情况下,gydF4y2BadgydF4y2Ba=gydF4y2Ba0gydF4y2Ba。gydF4y2Ba

  • @lowpassgydF4y2Ba,gydF4y2Ba@highpassgydF4y2Ba,gydF4y2Ba@allpassgydF4y2Ba,gydF4y2Ba@bandpassgydF4y2Ba,gydF4y2Ba@bandstopgydF4y2Ba

    这些函数共享一个共同的语法,以gydF4y2Ba@lowpassgydF4y2Ba。gydF4y2Ba

    b = cfirpm (n、f、@lowpass…)gydF4y2Ba和gydF4y2Ba

    b = cfirpm (n, f, {@lowpass d},…)gydF4y2Ba设计一个线性相位(gydF4y2BangydF4y2Ba/ 2 +gydF4y2BadgydF4y2Ba延迟)过滤器。gydF4y2Ba

    请注意gydF4y2Ba

    为gydF4y2Ba@bandpassgydF4y2Ba过滤器、频率向量的第一个元素必须小于或等于零和最后一个元素必须大于或等于零。gydF4y2Ba

  • @multibandgydF4y2Ba设计线性相位滤波器频率响应与任意波段振幅。gydF4y2Ba

    b = cfirpm (n、f {@multiband,},…)gydF4y2Ba和gydF4y2Ba

    b = cfirpm (n、f {@multiband, a, d},…)gydF4y2Ba指定向量gydF4y2Ba一个gydF4y2Ba包含所需的带边的振幅gydF4y2BafgydF4y2Ba。所需的振幅频率之间的双点gydF4y2BafgydF4y2Ba(gydF4y2BakgydF4y2Ba),gydF4y2BafgydF4y2Ba(gydF4y2BakgydF4y2Ba+ 1)gydF4y2BakgydF4y2Ba奇怪的是线段连接的点(gydF4y2BafgydF4y2Ba(gydF4y2BakgydF4y2Ba),gydF4y2Ba一个gydF4y2Ba(gydF4y2BakgydF4y2Ba)和(gydF4y2BafgydF4y2Ba(gydF4y2BakgydF4y2Ba+ 1),gydF4y2Ba一个gydF4y2Ba(gydF4y2BakgydF4y2Ba+ 1)。gydF4y2Ba

  • @differentiatorgydF4y2Ba设计一个线性相位微分器。对于这些设计,必须在零频过渡带,带权重设置频率成反比。gydF4y2Ba

    b = cfirpm (n、f {@differentiator, fs},…)gydF4y2Ba和gydF4y2Ba

    b = cfirpm (n、f {@differentiator fs d},…)gydF4y2Ba指定采样率gydF4y2BafsgydF4y2Ba用于确定微分器的斜率的回应。如果省略了,gydF4y2BafsgydF4y2Ba默认为1。gydF4y2Ba

  • @hilbfiltgydF4y2Ba设计线性相位滤波器响应希尔伯特变换。希尔伯特的设计,必须在过渡带零频。gydF4y2Ba

    b = cfirpm (n、f、@hilbfilt…)gydF4y2Ba和gydF4y2Ba

    b = cfirpm (N, F, {@hilbfilt d},…)gydF4y2Ba设计一个线性相位(gydF4y2BangydF4y2Ba/ 2 +gydF4y2BadgydF4y2Ba延迟)希尔伯特变换过滤器。gydF4y2Ba

  • @invsincgydF4y2Ba设计线性相位inverse-sinc滤波器响应。gydF4y2Ba

    b = cfirpm (n、f {@invsinc,},…)gydF4y2Ba和gydF4y2Ba

    b = cfirpm (n、f {@invsinc, a, d},…)gydF4y2Ba指定增益gydF4y2Ba一个gydF4y2Basinc函数,计算sinc (gydF4y2Ba一个gydF4y2Ba*gydF4y2BaggydF4y2Ba),gydF4y2BaggydF4y2Ba包含优化电网频率归一化的范围[1]。默认情况下,gydF4y2Ba一个gydF4y2Ba= 1。群时延补偿是gydF4y2BadgydF4y2Ba这样的滤波器响应的群延迟gydF4y2BangydF4y2Ba/ 2 +gydF4y2BadgydF4y2Ba在单位的取样间隔gydF4y2BangydF4y2Ba是过滤器的顺序。负值创造更少的延迟,和积极的价值观创造更多的延迟。默认情况下,gydF4y2BadgydF4y2Ba= 0。gydF4y2Ba

用户定义的频率响应函数gydF4y2Ba

代替预定义的频率响应函数gydF4y2BafrespgydF4y2Ba,您可以使用一个用户定义的函数。gydF4y2Ba

的gydF4y2BacfirpmgydF4y2Ba函数调用用户定义函数使用这个语法。gydF4y2Ba

(dh, dw) =gydF4y2BafrespgydF4y2Ba(n、f gf, w, p1, p2,…)gydF4y2Ba

  • ngydF4y2Ba是过滤器的顺序。gydF4y2Ba

  • fgydF4y2Ba是向量的频带边缘出现1和1之间的单调,在1对应于奈奎斯特频率。gydF4y2Ba

  • 女朋友gydF4y2Ba是一个向量的网格点线性插值在每个指定频段gydF4y2BacfirpmgydF4y2Ba。输入gydF4y2Ba女朋友gydF4y2Ba决定了电网的频率响应函数必须被评估。的gydF4y2BacfirpmgydF4y2Ba函数返回这个数据gydF4y2BafgridgydF4y2Ba场的gydF4y2Ba选择gydF4y2Ba结构。gydF4y2Ba

  • wgydF4y2Ba是一个向量的,积极的重量,每一个乐队,期间使用优化。gydF4y2BawgydF4y2Ba在调用是可选的gydF4y2BacfirpmgydF4y2Ba。如果你不指定这个输入,gydF4y2BacfirpmgydF4y2Ba设置它之前统一权重传递gydF4y2BafrespgydF4y2Ba。gydF4y2Ba

  • dhgydF4y2Ba和gydF4y2BadwgydF4y2Ba是所需的复杂的频率响应和带权重向量,分别评估在每个频率的网格gydF4y2Ba女朋友gydF4y2Ba。gydF4y2Ba

  • p1, p2,……gydF4y2Ba是可选的参数,可以通过吗gydF4y2BafrespgydF4y2Ba。gydF4y2Ba

此外,gydF4y2BacfirpmgydF4y2Ba功能进行初步的调用gydF4y2BafrespgydF4y2Ba确定默认的对称gydF4y2Ba信谊gydF4y2Ba。gydF4y2BacfirpmgydF4y2Ba使这个调用使用这种语法。gydF4y2Ba

信谊=gydF4y2BafrespgydF4y2Ba(“违约”,{n, f, [], w, p1, p2,…})gydF4y2Ba
对称的参数可用于确定一个适当的默认。您可以使用本地函数gydF4y2Ba低通滤波器gydF4y2Ba用于生成新的频率响应函数作为模板。找到gydF4y2Ba低通滤波器gydF4y2Ba函数,输入gydF4y2Ba编辑cfirpmgydF4y2Ba在命令行和搜索gydF4y2Ba低通滤波器gydF4y2Ba在gydF4y2BacfirpmgydF4y2Ba函数的代码。你可以复制功能,修改它,重命名它,并将其保存在你的路径。gydF4y2Ba

算法gydF4y2Ba

的gydF4y2BacfirpmgydF4y2Ba功能使您可以指定任意频域约束的设计可能是复杂的gydF4y2Ba冷杉过滤器。切比雪夫(或极小极大)过滤器错误进行了优化,生产equiripple冷杉滤波器的设计。gydF4y2Ba

一个扩展版的雷交换方法实现复杂的情况。这种交换方法获得最优滤波器的equiripple自然滤波器是受限制的gydF4y2BangydF4y2Ba+ 2极值。过滤不收敛时,算法切换到一个ascent-descent算法接管完成收敛到最优解。为进一步的细节,请参见参考资料。gydF4y2Ba

引用gydF4y2Ba

[1]Demjanjov, v F。,和V. N. Malozemov.介绍极大极小gydF4y2Ba。纽约:约翰·威利& Sons, 1974。gydF4y2Ba

[2]卡拉姆反对,剩下gydF4y2Ba切比雪夫意义上的复杂的数字FIR滤波器的设计gydF4y2Ba。乔治亚理工学院的博士论文,1995年3月。gydF4y2Ba

[3]卡拉姆反对,剩下,和J. H. McClellan. "Complex Chebyshev Approximation for FIR Filter Design."IEEEgydF4y2Ba®gydF4y2Ba交易在电路和系统II:模拟和数字信号处理gydF4y2Ba42岁的没有。3(1995年3月):207 - 216。gydF4y2Ba

扩展功能gydF4y2Ba

版本历史gydF4y2Ba

之前介绍过的R2006agydF4y2Ba

另请参阅gydF4y2Ba

|gydF4y2Ba|gydF4y2Ba|gydF4y2Ba