文章目录

  • 语法
  • 说明
  • 示例
    • 对音调进行低通滤波
    • 对音乐进行低通滤波
    • 低通滤波器的陡峭程度
  • 输入参数
    • `x` - 输入信号
    • `wpass` - 归一化通带频率
    • `fpass` - 通带频率
    • `fs` - 采样率
    • `xt` - 输入时间表
    • 名称-值对参数
      • `'ImpulseResponse'` - 脉冲响应的类型
      • `'Steepness'` - 过渡带陡峭程度
      • `'StopbandAttenuation'` - 滤波器阻带衰减
  • 输出参数
    • `y` - 滤波后的信号
    • `d` - 低通滤波器
  • 更多相关
    • 低通滤波器的陡度
  • 另请参阅
    • 应用程序
    • 函数

lowpass:对信号进行低通滤波


语法

y = lowpass(x,wpass)
y = lowpass(x,fpass,fs)
y = lowpass(xt,fpass)

y = lowpass(___,Name,Value)

[y,d] = lowpass(___)

lowpass(___)


说明

y = lowpass(x,wpass) 使用低通滤波器对输入信号 x 进行滤波,低通滤波器的归一化通带频率 wpass 以 π \pi π rad / sample 为单位。lowpass 使用阻带衰减为 60 dB 的最小阶滤波器,并补偿滤波器引入的延迟。 如果 x 是矩阵,该函数将对每一列分别进行滤波。

y = lowpass(x,fpass,fs) 指定 x 已经以 fs 赫兹的速率采样。fpass 是滤波器的通带频率,以赫兹为单位。举例

y = lowpass(xt,fpass) 使用带通频率为 fpass 赫兹的滤波器对时间表 xt 中的数据进行低通滤波。该函数对时间表中的所有变量以及每个变量内的所有列分别进行滤波。

y = lowpass(___,Name,Value) 使用名称-值对参数为上述任何语法指定附加选项。您可以更改阻带衰减,过渡带陡峭程度以及滤波器的脉冲响应类型。举例

[y,d] = lowpass(___) 还返回用于对输入进行滤波的 digitalFilter 对象 d。举例

lowpass(___) 没有输出参数,将在一张图上同时绘制输入信号和滤波后的信号。


示例


对音调进行低通滤波

创建一个以 1 kHz 采样 1 秒钟的信号。 该信号包含两个音调,一个音调为 50 Hz,另一个音调为 250 Hz,并将方差为 1/100 的高斯白噪声加入其中。 高频音调的幅度是低频音调的两倍。

fs = 1e3;
t = 0:1/fs:1;x = [1 2]*sin(2*pi*[50 250]'.*t) + randn(size(t))/10;

对信号进行低通滤波以消除高频音调。指定通带频率为 150 Hz。显示原始和滤波后的信号,以及它们的频谱。

lowpass(x,150,fs)


对音乐进行低通滤波

实现基本的数字音乐合成器,并使用它来播放传统歌曲。指定采样率为 2 kHz。 绘制歌曲的频谱图。

fs = 2e3;
t = 0:1/fs:0.3-1/fs;l = [0 130.81 146.83 164.81 174.61 196.00 220 246.94];
m = [0 261.63 293.66 329.63 349.23 392.00 440 493.88];
h = [0 523.25 587.33 659.25 698.46 783.99 880 987.77];
note = @(f,g) [1 1 1]*sin(2*pi*[l(g) m(g) h(f)]'.*t);mel = [3 2 1 2 3 3 3 0 2 2 2 0 3 5 5 0 3 2 1 2 3 3 3 3 2 2 3 2 1]+1;
acc = [3 0 5 0 3 0 3 3 2 0 2 2 3 0 5 5 3 0 5 0 3 3 3 0 2 2 3 0 1]+1;song = [];
for kj = 1:length(mel)song = [song note(mel(kj),acc(kj)) zeros(1,0.01*fs)];
end
song = song/(max(abs(song))+0.1);% To hear, type sound(song,fs)pspectrum(song,fs,'spectrogram','TimeResolution',0.31, ...'OverlapPercent',0,'MinThreshold',-60)


对信号进行低通滤波,将旋律与伴奏区分开。指定通带频率为 450 Hz。在时域和频域中绘制原始信号和滤波后的信号。

long = lowpass(song,450,fs);% To hear, type sound(long,fs)lowpass(song,450,fs)


绘制伴奏的声谱图。

figure
pspectrum(long,fs,'spectrogram','TimeResolution',0.31, ...'OverlapPercent',0,'MinThreshold',-60)


低通滤波器的陡峭程度

使用具有 200 Hz 通带频率的 IIR 低通滤波器,对采样率为 1 kHz 的白噪声进行滤波。使用不同的陡度值。绘制滤波信号的频谱。

fs = 1000;
x = randn(20000,1);[y1,d1] = lowpass(x,200,fs,'ImpulseResponse','iir','Steepness',0.5);
[y2,d2] = lowpass(x,200,fs,'ImpulseResponse','iir','Steepness',0.8);
[y3,d3] = lowpass(x,200,fs,'ImpulseResponse','iir','Steepness',0.95);pspectrum([y1 y2 y3],fs)
legend('Steepness = 0.5','Steepness = 0.8','Steepness = 0.95')


计算并绘制滤波器的频率响应。

[h1,f] = freqz(d1,1024,fs);
[h2,~] = freqz(d2,1024,fs);
[h3,~] = freqz(d3,1024,fs);plot(f,mag2db(abs([h1 h2 h3])))
legend('Steepness = 0.5','Steepness = 0.8','Steepness = 0.95')


输入参数


x - 输入信号

输入信号,指定为矢量矩阵

举例sin(2*pi*(0:127)/16)+randn(1,128)/100 指定一个混有噪声的正弦信号

举例[2 1].*sin(2*pi*(0:127)'./[16 64]) 指定一个两通道的正弦信号。

数据类型single | double
复数支持:是


wpass - 归一化通带频率

归一化的通带频率,指定为标量,应在区间 (0,1) 内。


fpass - 通带频率

通带频率,指定为标量,应在区间 (0,fs/2) 内。


fs - 采样率

采样率,指定为正实标量


xt - 输入时间表

输入时间表。xt 必须包含以秒为单位,类型为 duration 的递增、有限、等距的行时间。

如果时间表有缺少或重复的时间点,则可以使用《清除含有缺失、重复或不均匀时间的时间表(MATLAB)》中的提示进行修复。

举例timetable(seconds(0:4)',randn(5,1),randn(5,2)) 指定一个以 1 Hz 采样 4 秒的单通道随机信号和一个两通道随机信号。


名称-值对参数


指定可选的逗号分隔的 Name,Value 参数对。Name 是参数名称,Value 是相应的值。Name 必须出现在引号中。您可以按任意顺序指定多个名称和值对参数,例如 Name1,Value1,…NameN,ValueN

举例'ImpulseResponse','iir','StopbandAttenuation',30 使用最小阶 IIR 滤波器对输入信号进行滤波,该滤波器将高于 fpass 的频率衰减 30 dB。


'ImpulseResponse' - 脉冲响应的类型

滤波器的脉冲响应类型,指定为以逗号分隔的,由 'ImpulseResponse''fir''iir''auto'(默认为 'auto') 组成的一对参数。

  • 'fir' - 该函数设计一个最小阶线性相位的有限冲激响应(FIR)滤波器。 为了补偿延迟,该函数将 N / 2 N / 2 N/2 个零附加到输入信号,其中 N N N 是滤波器阶数。 然后,该函数对信号进行滤波并删除输出的前 N / 2 N / 2 N/2 个样本。

    在这种情况下,输入信号的长度必须至少是符合规格的滤波器的两倍。

  • 'iir' - 该函数设计一个最小阶无限冲激响应(IIR)滤波器,并使用 filtfilt 函数执行零相滤波并补偿滤波器延迟。

    如果信号的长度不小于符合规格的滤波器的三倍,则此功能将设计一个阶数较小的滤波器,从而使陡度较小。

  • 'auto' - 如果输入信号足够长,则该函数设计一个最小阶 FIR 滤波器,否则设计一个最小阶 IIR 滤波器。 具体来说,该函数遵循以下步骤:

    • 计算 FIR 滤波器必须满足规格的最低要求。如果信号的长度至少是所需滤波器阶数的两倍,请设计并使用该滤波器。
    • 如果信号不够长,则计算 IIR 滤波器必须满足规范的最小阶数。如果信号的长度至少是所需滤波器阶数的三倍,请设计并使用该滤波器。
    • 如果信号不够长,则将阶数截断为信号长度的三分之一,然后设计该阶数的 IIR 滤波器。阶数的减少是以过渡带陡度降低为代价的。
    • 对信号进行滤波并补偿延迟。

'Steepness' - 过渡带陡峭程度

过渡带陡度,指定为以逗号分隔的,由 'Steepness' 和在区间 [0.5,1) 的一个标量(默认为 0.85)组成的一对参数。

随着陡度的增加,滤波器响应接近理想的低通响应,但是最终的滤波器长度和滤波操作的计算成本也会增加。有关更多信息,请参见低通滤波器的陡度。


'StopbandAttenuation' - 滤波器阻带衰减

滤波器阻带衰减,指定为以逗号分隔的,包括 'StopbandAttenuation' 和 一个单位为 dB 的正标量(默认为 60dB)组成的一对参数。


输出参数


y - 滤波后的信号

滤波后的信号,以向量矩阵时间表的形式返回,其维度与输入信号的维度相同。


d - 低通滤波器

滤波操作中使用的低通滤波器,以 digitalFilter 的形式返回。

  • 通过 filter(d,x) 使用 d 过滤信号 x
  • 使用 FVTool 将滤波器响应可视化。
  • 使用 designfilt 根据频率响应规范来编辑或生成数字滤波器。

更多相关


低通滤波器的陡度

参数 'Steepness' 控制滤波器过渡带的宽度。陡度越低,过渡带越宽。陡度越高,过渡带越窄。

要理解滤波器的陡度,请参考以下定义:

  • 奈奎斯特频率 f N y q u i s t f_{\mathrm{Nyquist}} fNyquist​ 是信号的最高频率分量,以此为参考就可以以给定速率采样而不会发生混叠。当输入信号没有时间信息时, f N y q u i s t f_{\mathrm{Nyquist}} fNyquist​ 为 1( × π \times\pi ×π rad / sample),当输入信号为时间表或指定采样率时, f N y q u i s t f_{\mathrm{Nyquist}} fNyquist​ 为 fs/2 Hz。

  • 滤波器的阻带频率 f s t o p f_{\mathrm{stop}} fstop​,超过该频率后滤波器的衰减等于或大于使用 'StopbandAttenuation' 指定的值。

  • 滤波器的过渡带宽 W W W 为 f s t o p − f_{\mathrm{stop}} - fstop​− fpass

  • 大多数非理想滤波器也会使通带上的输入信号衰减。这种与频率有关的衰减的最大值称为通带纹波。用函数 lowpass 产生每个滤波器的通带纹波均为 0.1 dB。


当指定 s s s 为 'Steepness' 时,该函数如下计算过渡带宽

     W = ( 1 − s ) × ( f N y q u i s t − W=(1-s)\times (f_{\mathrm{Nyquist}} - W=(1−s)×(fNyquist​− fpass ) ) )

  • 'Steepness' 等于 0.5,过渡带宽即为 ( f s t o p − (f_{\mathrm{stop}} - (fstop​− fpass ) ) ) 的 50%
  • 随着 'Steepness' 接近于 1,过渡带宽逐渐变窄,直到达到 ( f s t o p − (f_{\mathrm{stop}} - (fstop​− fpass ) ) ) 的 1%(此时为最小值)。
  • 'Steepness' 的默认值为 0.85,对应过渡带宽为 ( f s t o p − (f_{\mathrm{stop}} - (fstop​− fpass ) ) ) 的 15%

另请参阅

应用程序

Signal Analyzer

函数

bandpass | bandstop | designfilt | filter | filtfilt | fir1 | highpass


在 R2018a 中推出


原文参考:https://ww2.mathworks.cn/help/signal/ref/lowpass.html

MATLAB函数——lowpass相关推荐

  1. 《数字图像处理》冈萨雷斯,Matlab函数汇总 .

    <数字图像处理>冈萨雷斯,Matlab函数汇总 . 图像显示 colorbar 显示彩条 getimage 由坐标轴得到图像数据 ice(DIPUM) 交互彩色编辑 image 创建和显示 ...

  2. 求介绍matlab函数用法的书,MATLAB初学者教程--函数用法的简单介绍

    1.4 函数用法的简单介绍 1.4.1什么是函数 似乎很多人一听到函数这个词就会想到数学中的某个概念,然后对于恐惧数学的同学就开始打退堂鼓.在matlab当中到处可以用到函数,它的出现可以让我们用很简 ...

  3. 【转】matlab函数_连通区域

    转载自einyboy的博文Matlab的regionprops详解 1. matlab函数bwareaopen──删除小面积对象 格式:BW2 = bwareaopen(BW,P,conn) 作用:删 ...

  4. matlab 开 闭 代码,C++中的MATLAB函数〔闭锁〕

    很抱歉恢复了一个老问题,但我目前正在研究一个开源C++库,它正好回答了这个问题: KeyCpp 是一个开源的C++库,它提供了Matlab或八度音阶的语法,用于一些有用的数值方法和一些绘图功能.目前有 ...

  5. 2021-01-28 粒子群优化算法-Python版本和Matlab函数 particleswarm 调用

    粒子群优化算法-Python版本和Matlab函数 particleswarm 调用 前两天分享了粒子群优化算法的原理和Matlab原理实现,本文分享一下Python代码下的PSO实现以及Matlab ...

  6. 转载:如何将一个新函数加到MATLAB函数库中

    如何将一个新函数加到MATLAB函数库中 nkszjx2 2017-09-29 11:25:26 13864 收藏 2 分类专栏: matlab 文章标签: matlab 库 </div> ...

  7. matlab中 ne k,KFoldCV.m 查找径向基神经网络模型的网络参数的程序MATLAB函数'ne 联合开发网 - pudn.com...

    KFoldCV.m 所属分类:matlab例程 开发工具:matlab 文件大小:1KB 下载次数:1 上传日期:2020-01-12 22:24:33 上 传 者:Kingvis 说明:  查找径向 ...

  8. MATLAB函数gensurf,matlab模糊逻辑(二)

    6.2 模糊推理结构FIS 6.2.1 不使用数据聚类方法从数据生成FIS结构 函数 genfis1 格式 fismat = genfis1(data) fismat = genfis1(data,n ...

  9. C/C++ VS中调用matlab函数的方法

    C/C++ VS中调用matlab函数的方法 [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/details/73743654 Matla ...

最新文章

  1. Windows 脚本系列之四—映射网络盘脚本
  2. [leetcode]Divide Two Integers
  3. windbg调试命令2(!gle、g、p)
  4. 华为产品技术学习笔记之路由原理(二)
  5. 【转载】selenium webdriver进行元素定位
  6. 外星人跑深度学习_上海港汇外星人店,51M2020开光追和DLSS2.0畅玩《赛博朋克2077》...
  7. 2016matlab安装
  8. 如何更好地玩转 GitHub?
  9. 生活中的数学(为生活建模)(三)—— 代数
  10. 利用随机数种子来使pytorch中的结果可以复现
  11. vue项目实战-尚品汇
  12. 详解开关量,模拟量,数字量区别
  13. 奇*信往期秋招笔试知识点总结
  14. 苹果打字怎么换行_苹果手机回车键是哪个
  15. css文本行高是哪个属性_CSS样式----CSS属性:字体属性和文本属性(图文详解)...
  16. 还有谁!!!?谁是Uber下一个要颠覆的行业?
  17. 浏览器兼容性问题总结
  18. MySQL基础学习(续)
  19. 泛微e-cology OA 系统远程代码执行漏洞
  20. 苹果损失一大将,也挖来了ARM大神…|一周热闻回顾

热门文章

  1. NSDate-日期类nbsp;OC——第七天(1)
  2. rqt teb参数动态调试工具_teb教程2
  3. CAD转换技巧:高版本CAD文件转换成低版本在线版最简单
  4. 外贸新手如何利用领英寻找你的潜在客户(建议收藏)
  5. IBM SPSS CLEMENTINE 下载安装
  6. 请领取你的免费云电脑:微软Windows实验虚拟机,每天可以免费使用两个小时,上Google搜资料很方便
  7. Fuel-openstack的搭建(二)
  8. 计算机存储—大话存储II读书
  9. 搜索引擎常用site语法baidu/google
  10. JetBrains .idea project directory (详细利用教程)