cfirpmgydF4y2Ba
复杂非线性相位等纹波FIR滤波器设计gydF4y2Ba
语法gydF4y2Ba
B = cfirpm(n,f,@gydF4y2Ba
frespgydF4y2Ba
)gydF4y2Ba
B = cfirpm(n,f,@gydF4y2BafrespgydF4y2Ba
w)gydF4y2Ba
B = cfirpm(n,f,a)gydF4y2Ba
B = cfirpm(n,f,a,w)gydF4y2Ba
B = cfirpm(…,gydF4y2Ba“符号”gydF4y2Ba
)gydF4y2Ba
B = cfirpm(…,'skip_stage2')gydF4y2Ba
B = cfirpm(…,gydF4y2Ba“调试”gydF4y2Ba
)gydF4y2Ba
B = cfirpm(…,{lgrid})gydF4y2Ba
[b,delta] = cfirpm(…)gydF4y2Ba
[b,delta,opt] = cfirpm(…)gydF4y2Ba
描述gydF4y2Ba
cfirpmgydF4y2Ba
允许为可能复杂的设计指定任意频域约束gydF4y2Ba冷杉过滤器。切比雪夫(或极大极小)滤波器误差进行优化,产生等纹波FIR滤波器设计。gydF4y2Ba
B = cfirpm(n,f,@gydF4y2Ba
返回一个长度gydF4y2BafrespgydF4y2Ba
)gydF4y2Ban + 1gydF4y2Ba
FIR滤波器与函数返回的所需频率响应的最佳近似gydF4y2BafrespgydF4y2Ba
,它由函数句柄(gydF4y2Ba@frespgydF4y2Ba
).gydF4y2BafgydF4y2Ba
是频带边对的向量,指定范围为-1和1,其中1对应归一化奈奎斯特频率。频率必须是递增的,并且gydF4y2BafgydF4y2Ba
长度必须均匀。频带跨度gydF4y2Baf (k)gydF4y2Ba
来gydF4y2Baf (k + 1)gydF4y2Ba
为gydF4y2BakgydF4y2Ba
奇怪的;的时间间隔gydF4y2Baf (k + 1)gydF4y2Ba
来gydF4y2Baf (k + 2)gydF4y2Ba
为gydF4y2BakgydF4y2Ba
奇数是优化过程中的“过渡带”或“不关心”区域。gydF4y2Ba
预定义的gydF4y2BafrespgydF4y2Ba
频率响应功能包括一些常见的滤波器设计,如下所述。(见gydF4y2Ba创建函数句柄gydF4y2Ba(MATLAB)获取关于如何创建自定义的更多信息gydF4y2BafrespgydF4y2Ba
函数)。对于所有预定义的频率响应函数,对称选项gydF4y2Ba“符号”gydF4y2Ba
默认为gydF4y2Ba“甚至”gydF4y2Ba
如果不包含负频率gydF4y2BafgydF4y2Ba
而且gydF4y2BadgydF4y2Ba
=gydF4y2Ba0gydF4y2Ba
;否则gydF4y2Ba“符号”gydF4y2Ba
默认为gydF4y2Ba“没有”gydF4y2Ba
.(见gydF4y2Ba“符号”gydF4y2Ba
详情请参阅下面的选项。)对于所有预定义的频率响应函数,gydF4y2BadgydF4y2Ba
指定组延迟偏移量,使筛选器响应的组延迟为gydF4y2Ban / 2 + dgydF4y2Ba
以样本间隔为单位。负值产生更少的延迟;正值会产生更多的延迟。默认情况下gydF4y2BadgydF4y2Ba
=gydF4y2Ba0gydF4y2Ba
:gydF4y2Ba
@lowpassgydF4y2Ba
,gydF4y2Ba@highpassgydF4y2Ba
,gydF4y2Ba@allpassgydF4y2Ba
,gydF4y2Ba@bandpassgydF4y2Ba
,gydF4y2Ba@bandstopgydF4y2Ba
这些函数具有共同的语法,下面举例说明gydF4y2Ba
@lowpassgydF4y2Ba
.gydF4y2BaB = cfirpm(n,f,@lowpass,…)gydF4y2Ba
而且gydF4y2BaB = cfirpm(n,f,{@lowpass,d},…)gydF4y2Ba
设计一个线性相位(gydF4y2Ban / 2 + dgydF4y2Ba
延迟)过滤器。gydF4y2Ba请注意gydF4y2Ba
为gydF4y2Ba
@bandpassgydF4y2Ba
滤波器,频率向量中的第一个元素必须小于或等于零,最后一个元素必须大于或等于零。gydF4y2Ba@multibandgydF4y2Ba
设计了一种带幅任意的线性相位频响滤波器。gydF4y2BaB = cfirpm(n,f,{@multiband,a},…)gydF4y2Ba
而且gydF4y2BaB = cfirpm(n,f,{@multiband,a,d},…)gydF4y2Ba
指定向量gydF4y2Ba一个gydF4y2Ba
在带的边缘处包含所需的振幅gydF4y2BafgydF4y2Ba
.点对之间频率上的期望振幅gydF4y2Baf (k)gydF4y2Ba
而且gydF4y2Baf (k + 1)gydF4y2Ba
为gydF4y2BakgydF4y2Ba
奇数是连接这些点的线段gydF4y2Ba(f (k) (k))gydF4y2Ba
而且gydF4y2Ba(f (k + 1) (k + 1))gydF4y2Ba
.gydF4y2Ba@differentiatorgydF4y2Ba
设计了一个线性相位微分器。对于这些设计,零频率必须在一个过渡波段,并且波段权重设置为与频率成反比。gydF4y2BaB = cfirpm(n,f,{@微分器,fs},…)gydF4y2Ba
而且gydF4y2BaB = cfirpm(n,f,{@微分器,fs,d},…)gydF4y2Ba
指定采样率gydF4y2BafsgydF4y2Ba
用于确定微分器响应的斜率。如果省略了,gydF4y2BafsgydF4y2Ba
默认值为1。gydF4y2Ba@hilbfiltgydF4y2Ba
设计了一个线性相位希尔伯特变换滤波器响应。对于希尔伯特设计,零频率必须在过渡带内。gydF4y2BaB = cfirpm(n,f,@hilbfilt,…)gydF4y2Ba
而且gydF4y2Bab = cfirpm(N,F,{@hilbfilt,d},…)gydF4y2Ba
设计一个线性相位(gydF4y2Ban / 2 + dgydF4y2Ba
希尔伯特变换滤波器。gydF4y2Ba@invsincgydF4y2Ba
设计了一个线性相位反正弦滤波器的响应。gydF4y2BaB = cfirpm(n,f,{@invsinc,a},…)gydF4y2Ba
而且gydF4y2BaB = cfirpm(n,f,{@invsinc,a,d},…)gydF4y2Ba
指定增益gydF4y2Ba一个gydF4y2Ba
对于sinc函数,计算为sinc(gydF4y2Ba一个gydF4y2Ba
*gydF4y2BaggydF4y2Ba),gydF4y2BaggydF4y2Ba包含归一化到范围[- 1,1]的优化网格频率。默认情况下,gydF4y2Ba一个gydF4y2Ba
= 1。组延迟偏移量为gydF4y2BadgydF4y2Ba
,这样过滤器响应将有一个组延迟gydF4y2BaNgydF4y2Ba/ 2 +gydF4y2BadgydF4y2Ba
以采样间隔为单位,其中N为滤波器阶数。负值产生更少的延迟,而正值产生更多的延迟。默认情况下,gydF4y2BadgydF4y2Ba
= 0。gydF4y2Ba
B = cfirpm(n,f,@gydF4y2Ba
在向量中使用实数,非负权gydF4y2BafrespgydF4y2Ba
w)gydF4y2BawgydF4y2Ba
在每个频带中对拟合进行加权。的长度gydF4y2BawgydF4y2Ba
是长度的一半吗gydF4y2BafgydF4y2Ba
,所以每个波段正好有一个权重。gydF4y2Ba
B = cfirpm(n,f,a)gydF4y2Ba
是的同义词吗gydF4y2BaB = cfirpm(n,f,{@multiband,a})gydF4y2Ba
.gydF4y2Ba
B = cfirpm(n,f,a,w)gydF4y2Ba
应用一组可选的正权重,每个波段一个,以便在优化期间使用。如果gydF4y2BawgydF4y2Ba
,则将权重设置为unity。gydF4y2Ba
B = cfirpm(…,gydF4y2Ba
对设计的脉冲响应施加对称性约束,其中gydF4y2Ba“符号”gydF4y2Ba
)gydF4y2Ba“符号”gydF4y2Ba
可能是以下之一:gydF4y2Ba
“没有”gydF4y2Ba
表示无对称约束。如果通过了任何负带边缘频率,或如果gydF4y2BafrespgydF4y2Ba
不提供默认值。gydF4y2Ba“甚至”gydF4y2Ba
表示一个真实且均匀的脉冲响应。这是高通、低通、全通、带通、带阻、反正弦和多带设计的默认值。gydF4y2Ba“奇怪”gydF4y2Ba
表示实奇脉冲响应。这是希尔伯特和微分器设计的默认值。gydF4y2Ba“真实”的gydF4y2Ba
表示频率响应的共轭对称性gydF4y2Ba
如果有任何gydF4y2Ba“符号”gydF4y2Ba
其他选择gydF4y2Ba“没有”gydF4y2Ba
,则只应在正频率上指定带边;负频率区域由对称性填充。如果一个gydF4y2Ba“符号”gydF4y2Ba
选项未指定时,则gydF4y2BafrespgydF4y2Ba
函数查询默认设置。任何用户提供的gydF4y2BafrespgydF4y2Ba
函数应该返回一个有效的gydF4y2Ba“符号”gydF4y2Ba
选项gydF4y2Ba“违约”gydF4y2Ba
作为过滤器顺序gydF4y2BaNgydF4y2Ba
.gydF4y2Ba
B = cfirpm(…,'skip_stage2')gydF4y2Ba
禁用第二阶段优化算法,该算法仅在gydF4y2BacfirpmgydF4y2Ba
确定标准未达到最优解gydF4y2BafirpmgydF4y2Ba
error-exchange。禁用此算法可能会提高计算速度,但可能会降低准确性。缺省情况下,开启第二阶段优化。gydF4y2Ba
B = cfirpm(…,gydF4y2Ba
启用在过滤器设计期间显示中间结果,其中gydF4y2Ba“调试”gydF4y2Ba
)gydF4y2Ba“调试”gydF4y2Ba
可能是其中之一gydF4y2Ba“跟踪”gydF4y2Ba
,gydF4y2Ba“阴谋”gydF4y2Ba
,gydF4y2Ba“两个”gydF4y2Ba
,或gydF4y2Ba“关闭”gydF4y2Ba
.默认设置为gydF4y2Ba“关闭”gydF4y2Ba
.gydF4y2Ba
B = cfirpm(…,{lgrid})gydF4y2Ba
使用整数gydF4y2BalgridgydF4y2Ba
要控制频率网格的密度,这大致有gydF4y2Ba2 ^ nextpow2 (lgrid * n)gydF4y2Ba
频率点。的默认值。gydF4y2BalgridgydF4y2Ba
是gydF4y2Ba25gydF4y2Ba
.请注意gydF4y2Ba{lgrid}gydF4y2Ba
参数必须是一个1乘1的单元格数组。gydF4y2Ba
的任何组合gydF4y2Ba“符号”gydF4y2Ba
,gydF4y2Ba“skip_stage2”gydF4y2Ba
,gydF4y2Ba“调试”gydF4y2Ba
,gydF4y2Ba{lgrid}gydF4y2Ba
可指定选项。gydF4y2Ba
[b,delta] = cfirpm(…)gydF4y2Ba
返回最大波纹高度gydF4y2BaδgydF4y2Ba
.gydF4y2Ba
[b,delta,opt] = cfirpm(…)gydF4y2Ba
返回一个结构gydF4y2Ba选择gydF4y2Ba
的可选结果gydF4y2BacfirpmgydF4y2Ba
并包含以下字段。gydF4y2Ba
场gydF4y2Ba |
描述gydF4y2Ba |
---|---|
|
频率网格矢量用于滤波器的优化设计gydF4y2Ba |
|
每个点的期望频率响应gydF4y2Ba |
|
中的每个点的权重gydF4y2Ba |
|
每个点的实际频率响应gydF4y2Ba |
|
在每一点上的错误gydF4y2Ba |
|
指标的向量gydF4y2Ba |
|
极值频率的向量gydF4y2Ba |
可以使用用户自定义函数,而不是@的预定义频响函数gydF4y2BafrespgydF4y2Ba
.函数是从内部调用的gydF4y2BacfirpmgydF4y2Ba
使用以下语法gydF4y2Ba
(dh, dw) =gydF4y2BafrespgydF4y2Ba(n、f gf, w, p1, p2,…)gydF4y2Ba
地点:gydF4y2Ba
ngydF4y2Ba
是过滤器顺序。gydF4y2BafgydF4y2Ba
是在-1到1之间单调出现的频带边向量,其中1对应奈奎斯特频率。gydF4y2Ba女朋友gydF4y2Ba
是一个网格点的向量,已被线性插值在每个指定的频带gydF4y2BacfirpmgydF4y2Ba
.gydF4y2Ba女朋友gydF4y2Ba
确定响应函数必须在其上求值的频率网格。返回的数据与gydF4y2BacfirpmgydF4y2Ba
在gydF4y2BafgridgydF4y2Ba
的字段gydF4y2Ba选择gydF4y2Ba
结构。gydF4y2BawgydF4y2Ba
是一个真实的正权重向量,每个波段一个,在优化期间使用。gydF4y2BawgydF4y2Ba
是可选的gydF4y2BacfirpmgydF4y2Ba
;如果没有指定,它将在被传递到之前被设置为统一权重gydF4y2BafrespgydF4y2Ba
.gydF4y2BadhgydF4y2Ba
而且gydF4y2BadwgydF4y2Ba
是否在网格的每个频率处分别求出所需的复频率响应和带权向量gydF4y2Ba女朋友gydF4y2Ba
.gydF4y2Bap1gydF4y2Ba
,gydF4y2Bap2gydF4y2Ba
,gydF4y2Ba...gydF4y2Ba
,是可以传递给的可选参数gydF4y2BafrespgydF4y2Ba
.gydF4y2Ba
此外,初步呼叫gydF4y2BafrespgydF4y2Ba
来确定默认的对称属性gydF4y2Ba“符号”gydF4y2Ba
.该调用使用以下语法:gydF4y2Ba
信谊=gydF4y2BafrespgydF4y2Ba(“违约”,{n, f, [], w, p1, p2,…})gydF4y2Ba
根据需要,参数可用于确定适当的对称性默认值。可以使用local函数gydF4y2Ba低通滤波器gydF4y2Ba
作为生成新的频响函数的模板。要找到gydF4y2Ba低通滤波器gydF4y2Ba
函数,类型gydF4y2Ba编辑cfirpmgydF4y2Ba
在命令行中搜索gydF4y2Ba低通滤波器gydF4y2Ba
在gydF4y2BacfirpmgydF4y2Ba
代码。您可以复制函数、修改它、重命名它并将它保存到您的路径中。gydF4y2Ba
例子gydF4y2Ba
算法gydF4y2Ba
针对复杂的情况,实现了雷米兹交换方法的扩展版本。该交换方法在滤波器的等纹特性被限制为具有时,得到最优滤波器gydF4y2Ban + 2gydF4y2Ba
极值。当它不收敛时,算法切换到一个上升-下降算法来完成对最优解的收敛。有关更多细节,请参阅参考资料。gydF4y2Ba
参考文献gydF4y2Ba
卡拉姆,l。j。和j。h。麦克莱伦。FIR滤波器设计的复切比雪夫近似。gydF4y2BaIEEEgydF4y2Ba®gydF4y2Ba反式。电路与系统2gydF4y2Ba1995年3月,第207-216页。gydF4y2Ba
卡拉姆,L.J.gydF4y2Ba切比雪夫感觉下复杂数字FIR滤波器的设计gydF4y2Ba.佐治亚理工学院博士论文,1995年3月。gydF4y2Ba
[3]德米扬约夫,V.F和V.N.马洛泽莫夫。gydF4y2Ba极小极大简介gydF4y2Ba.纽约:John Wiley & Sons出版社,1974年。gydF4y2Ba
扩展功能gydF4y2Ba
另请参阅gydF4y2Ba
fir1gydF4y2Ba
|gydF4y2Ba的故事gydF4y2Ba
|gydF4y2BafirlsgydF4y2Ba
|gydF4y2BafirpmgydF4y2Ba