MATLAB函数 |
您所在的位置:网站首页 › matlabfft2函数用法 › MATLAB函数 |
文章目录
语法说明示例衰减低频信号FIR 低通滤波器任意幅度滤波器
输入参数`n` - 滤波器阶数`f,m` - 幅频特性`npt` - 网格点数`lap` - 重复频率点周围区域的长度`window` - 窗
输出参数`b` - 滤波器系数
算法参考扩展功能C/C++ 代码生成
另请参阅
fir2:基于频率取样法的 FIR 滤波器设计 语法b = fir2(n,f,m) b = fir2(n,f,m,npt,lap) b = fir2(___,window) 说明b = fir2(n,f,m) 返回幅频特性由向量 f 和 m 指定的 n 阶 FIR 滤波器。该函数将所需的频率响应线性插值到密集的网格上,然后使用傅立叶逆变换和 Hamming 窗来获得滤波器系数。举例 b = fir2(n,f,m,npt,lap) 指定 npt,即插值网格中的点数;而 lap,即 fir2 插入重复频率点周围区域的长度,它指定了频率响应中阶跃的形式。举例 b = fir2(___,window) 除了指定上述语法中的任何输入自参数外,还指定在设计中使用的窗向量。举例 注意: 使用 fir1 来设计基于窗窗函数的标准低通,带通,高通,带阻和多频带滤波器。 示例 衰减低频信号加载MAT文件 chirp。该文件包含以 Fs = 8192 Hz 采样的信号 y。该信号的大部分功率高于 Fs/4 = 2048 Hz,或奈奎斯特频率的一半。向信号中添加随机噪声。 load chirp y = y + randn(size(y))/25; t = (0:length(y)-1)/Fs;设计一个 34 阶 FIR 高通滤波器,以衰减低于 Fs/4的信号分量。指定归一化截止频率为 0.48,约等于 1966 Hz。将滤波器的频率响应可视化。 f = [0 0.48 0.48 1]; mhi = [0 0 1 1]; bhi = fir2(34,f,mhi); freqz(bhi,1,[],Fs)
设计一个归一化截止频率为 0.6 π \pi π rad / sample 的 30 阶低通滤波器。在同一张图上绘制实际频率响应与理想频率响应。 f = [0 0.6 0.6 1]; m = [1 1 0 0]; b1 = fir2(30,f,m); [h1,w] = freqz(b1,1); plot(f,m,w/pi,abs(h1)) xlabel('\omega / \pi') lgs = {'Ideal','fir2 default'}; legend(lgs)
设计具有以下频率响应的FIR滤波器: 频率为 0 到 0.18 π \pi π rad / sample 的正弦信号。F1 = 0:0.01:0.18; A1 = 0.5+sin(2*pi*7.5*F1)/4; 频率在 0.2 π \pi π rad / sample 和 0.78 π \pi π rad / sample 之间的分段线性节。F2 = [0.2 0.38 0.4 0.55 0.562 0.585 0.6 0.78]; A2 = [0.5 2.3 1 1 -0.2 -0.2 1 1]; 频率在 0.79 π \pi π rad / sample 与奈奎斯特频率之间的二次节。F3 = 0.79:0.01:1; A3 = 0.2+18*(1-F3).^2;使用 Hamming 窗设计滤波器。 指定过滤阶数为 50。 N = 50; FreqVect = [F1 F2 F3]; AmplVect = [A1 A2 A3]; ham = fir2(N,FreqVect,AmplVect);使用成型参数为 3 的 Kaiser 窗再次计算。 kai = fir2(N,FreqVect,AmplVect,kaiser(N+1,3));使用 designfilt 函数重新设计滤波器。默认情况下,designfilt 使用矩形窗。计算 1024 点的滤波器的零相响应。 d = designfilt('arbmagfir','FilterOrder',N, ... 'Frequencies',FreqVect,'Amplitudes',AmplVect); [zd,wd] = zerophase(d,1024);显示三个滤波器的零相响应,外加理想的响应。 zerophase(ham,1) hold on zerophase(kai,1) plot(wd/pi,zd) plot(FreqVect,AmplVect,'k:') legend('Hamming','Kaiser','designfilt','ideal')滤波器阶数,指定为整数标量。 对于通带处于奈奎斯特频率的情况,fir2 始终使用偶数阶。如果此时指定奇数值 n,则 fir2 将 n 增加 1。 数据类型:double f,m - 幅频特性幅频特性,指定为具有相同长度的向量。 f 是频率点的矢量,范围从 0 到 1,其中 1 对应于奈奎斯特频率。f 的第一个点必须为 0,最后一个点必须为 1。f 必须以升序排序。允许重复的频率点,并将其视为频率响应中的阶跃。 m 是一个向量,包含了在 f 中指定的每个频点处所需的幅度响应。 数据类型:double npt - 网格点数网格点数,指定为正整数标量,默认为 512。npt 必须大于滤波器阶数的二分之一:npt > n/2。 数据类型:double lap - 重复频率点周围区域的长度重复频率点周围区域的长度,指定为正整数标量,默认为 25。 数据类型:double window - 窗窗,指定为列向量。 窗向量必须具有 n + 1 个元素。 如果未指定窗,则 fir2 将使用 Hamming 窗。 有关可用窗口的列表,请参见加窗法。 如果尝试设计使用通带为奈奎斯特频率的奇数阶滤波器,则 fir2 不会自动增加窗的长度。 举例:kaiser(n+1,0.5) 指定一个用于 n 阶滤波器的成型因子为 0.5 的 Kaiser 窗。 举例:hamming(n+1) 等价于未指定窗。 数据类型:double 输出参数 b - 滤波器系数滤波器系数,以长度为 n + 1 的行向量返回。这些系数以 Z 变换变量 z z z 的降幂排序: B ( z ) = \bm{B}(z)= B(z)= b(1) + b(2) z z z + … + b(n+1) z − n z^{-n} z−n 算法fir2 使用频率取样法来设计滤波器。该函数将所需的频率响应线性内插到长度为 npt 的密集、均匀间隔的网格上。fir2 还在f的重复值附近设置了重叠点区域,以提供陡峭但平滑的过渡。该函数将对网格进行快速傅里叶逆变换并乘以 window,以获得滤波器系数。 参考[1] Jackson, L. B. Digital Filters and Signal Processing. 3rd Ed. Boston: Kluwer Academic Publishers, 1996. [2] Mitra, Sanjit K. Digital Signal Processing: A Computer Based Approach. New York: McGraw-Hill, 1998. 扩展功能 C/C++ 代码生成使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。 用法说明和限制: 所有输入必须为常数。 如果表达式或变量的值不变,则也允许使用。 另请参阅butter | cheby1 | cheby2 | designfilt | ellip | filter | fir1 | firpm | hamming | maxflat | yulewalk 在 R2006a 之前推出 原文参考:https://ww2.mathworks.cn/help/signal/ref/fir2.html |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |