FIR滤波器结合快速卷积滤波

一、要求

选择子作业1中的音频信号,自行给定滤波器的单位取样响应,采用快速卷积实现对音频信号的滤波,比较滤波前后信号的波形和回放的效果。

二、实现思路

设计FIR滤波器

  • 分析原始音频信号的频谱,观察有用信号和噪声的分布,选择滤波器类型(低通、高通、带通、带阻等)
  • 设定幅频响应下降三分贝的截止频率和滤波器阶数
  • 选择合适的窗函数(包括Rectangular、Hanning、Hamming、Bartlett、Blackman、Kaiser、Gaussian、Flat-top等)
  • 获得滤波器的单位采样响应hn

快速卷积

  • 计算原始音频信号x与滤波器的单位采样响应hn的线性卷积长度,L=length(x)+length(hn)
  • 设计FFT的长度N>=L
  • 对x和hn分别做N点FFT变换获得Xk、Hk
  • 将Xk与Hk相乘得到Yk
  • 将Yk做IFFT逆变换得到yn,即完成快速卷积

三、实现过程

FIR滤波器

设FIR滤波器的单位冲激响应h(n)为一个N点序列,0≤n≤N-1,则滤波器的系统函数为:
H(z)=∑k=0N−1h(k)∗z−kH(\mathrm{z})=\sum_{k=0}^{N-1}h(\mathrm{k})*\mathrm{z}^{-k} H(z)=k=0∑N−1​h(k)∗z−k
直接型FIR滤波器的差分方程为:
y(n)=∑m=0N−1h(m)x(n−m)\mathrm{y(n)}=\sum_{m=0}^{N-1}\mathrm{h(m)x(n-m)} y(n)=m=0∑N−1​h(m)x(n−m)
由差分方程可知只需要求出FIR滤波器的单位冲激响应h(n),设置滤波阶数3db通带截止频率fc,采用汉明窗函数处理,再使用fir1函数将其与待滤波信号卷积即可完成滤波,具体实现代码如下。

%% hamming窗低通滤波器设计
fc=7.95e3; %下降3分贝截止频率
hn=fir1(1000,fc*2/Fs,"low");
hn=hn';
Nh=length(hn);

FIR滤波器的单位冲击响应如下图所示:

快速卷积

线性卷积在满足圆周卷积点数大于等于线性卷积长度的条件下可以用圆周卷积计算,而圆周卷积可以使用DFT计算,而DFT有快速算法FFT,因此可以利用FFT算法减少运算量快速计算线性卷积。先将做卷积的两个信号补零到指定长度,然后分别做FFT变换,根据卷积定理可得时域上做卷积,就是在频域上做乘积,将两者频谱相乘后做IFFT即可实现快速卷积,整个过程如下图所示:

实现快速卷积的代码如下所示:

%% 快速卷积和线性卷积
L=Nx+Nh-1;
Xk=fft(x,L);%计算x的L点FFT,结果为X(k)
Hk=fft(hn,L);%计算hn的L点FFT,结果为H(k)
Yk=Xk.*Hk;%计算YK
y1n=ifft(Yk,L);%对YK调用IFFT,求得y1(n)
y2n=conv(x,hn);%计算y2(n)的卷积

四、结果展示

线性卷积和FFT快速卷积滤波前后对比图

五、结果分析

  • 由上图可知普通线性卷积的结果和快速卷积的结果一样,但快速卷积大大提高了运算速率,减少了运算量,提高了运算效率。
  • 离散傅立叶变换(DFT)实现了频域的离散化,方便了计算机处理,在数字信号处理中有着非常重要的作用。但直接计算DFT的运算量与变换长度N的平方成正比,计算量太大。而快速傅立叶变换FFT则是快速计算DFT的有效算法,大大提高了DFT的运算效率,在信号频谱的分析、滤波器频率响应的计算,以及线性卷积的快速计算等方面起着非常重要的作用。

代码开源

源代码包有需要可以自行下载,里面包括源代码、滤波后的音频和PDF参考文档。

FIR滤波器结合快速卷积滤波相关推荐

  1. Matlab:FIR滤波器设计和音频信号滤波去噪

    1. 窗函数法 [x,fs,bits]=wavread('test01.wav'); %sound(x,fs,bits); %按指定的采样率和每样本编码位数回放 N=length(x) % 计算信号x ...

  2. [Matlab]FIR滤波器设计:(FIR滤波器的结构)

    [Matlab]FIR滤波器设计:(FIR滤波器的结构) FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,又称为非递归型滤波器,是一种在数字信号领域应用非常广 ...

  3. 5.2 FIR滤波器的卷积(脉冲响应、频率响应,幅频响应,暂态-搞不清楚的有救了啊)

    -5.2 FIR滤波器的卷积 如果将抽头系数的个数用M表示:卷积公式如下: 上述困扰大多大学生的卷积公式如何理解呢? h(k)就是滤波器的信道系数,x(n-k)是所谓经过延迟k个器件后的数据. 这句话 ...

  4. FIR数字滤波器的FPGA实现(二)-串行FIR滤波器设计(1)

    (二)FIR数字滤波器的FPGA实现-串行FIR滤波器设计 文章目录 (二)FIR数字滤波器的FPGA实现-串行FIR滤波器设计 0 串行FIR滤波器基本原理 1 基于移位寄存器的串行 FIR 滤波器 ...

  5. 基于MATLAB的FIR滤波器的设计及应用(图像去噪)

    基于MATLAB的FIR滤波器的设计及应用(图像去噪) 一.实现功能 1.学会MATLAB的使用,掌握MATLAB的程序设计方法: 2.掌握数字信号处理的基本概念.基本理论和基本方法: 3. 在MAT ...

  6. 基于MATLAB的FIR滤波器的图像去噪设计

    一.实验目的 1.学会MATLAB的使用,掌握MATLAB的程序设计方法: 2.掌握数字信号处理的基本概念.基本理论和基本方法: 3. 在MATLAB环境下产生噪声信号: 4.掌握MATLAB设计FI ...

  7. fir 滤波参数的含义_详解FIR滤波器与IIR滤波器的具体区别

    姓名:高新诚       学号:17021223282 原文链接:http://mp.weixin.qq.com/s/tC_mdXIeusuggDV1tn3sOw [嵌牛导读]:在大学中学习到了FIR ...

  8. fir1截止频率计算_如何快速设计一个FIR滤波器(二)

    一.理想低通滤波器单位脉冲响应是什么样 在如何快速设计一个FIR滤波器(一)中,我们介绍了一种简单设计FIR的方法--零极点法.这个方法非常简单,稍加培训,用笔和纸就能完成:当然缺点也很显而易见:零极 ...

  9. 实验三采用快速卷积法对先前的生成的混杂噪声的音频信号进行滤波

    实验三采用快速卷积法对先前的生成的混杂噪声的音频信号进行滤波 要求:选择子作业1中的音频信号,自行给定滤波器的单位取样响应,采用快速卷积实现对音频信号的滤波,比较滤波前后信号的波形和回放的效果. 最终 ...

  10. matlab 滤波窗函数,Matlab窗函数设计FIR滤波器

    一.设计目的 1.熟悉FIR滤波器设计的基本方法. 2.掌握用窗函数设计FIR滤波器的基本原理和方法,熟悉MATLAB语言. 3.熟悉线性相位FIR滤波器的幅频特性和相位特性. 4.了解各种不同窗函数 ...

最新文章

  1. erdas几何校正_ERDAS遥感图像的几何校正
  2. 用python写希尔排序_python希尔排序介绍(实例)
  3. iPhone 用户请注意:你的邮件 App 得禁用,刚曝光的安全漏洞,iOS 6 以上设备全中招...
  4. mvc UrlHelper
  5. 使用ServiceStackRedis链接Redis简介
  6. Freemarker 页面静态化技术使用入门案例
  7. 博科:物理与虚拟网络的统一管理
  8. Android实现思维导图功能,Android实现思维导图
  9. 模拟退火(SA)算法实例介绍(JAVA)
  10. ATTCK 1一个烂尾的学习记录
  11. JavaFx教程-01初识javaFX
  12. 传感器如何将消息发送给云服务器,通过 NodeMCU (ESP8266) 将传感器数据上传至 MQTT 云服务...
  13. 怎样才算是婚姻般配?
  14. 19级算法训练赛第七场
  15. 跟领导怎么相处,怎么找话题,或者说跟自己年长的同事或者上司,怎么沟通?
  16. 批量上传图片_微信公众号关键词回复图片突破200条规则,怎么设置?
  17. 5. SpringSecurity用户认证源码 与 实现短信验证码(自定义SpringSecurity组件)
  18. 粉丝投稿 | [CPU+目标检测] OpenVINO 实现 Robomaster 自瞄
  19. tuneup utilities 2012怎么用?全是英文 怎么使用?
  20. linux命令gunzip_Linux gunzip命令示例教程

热门文章

  1. Word也能制作座位表?掌握这个技巧安排座位不慌乱
  2. ​杨利伟:在《太空一日》:我没有看到长城,但祖国的各个省份我大都看到了...
  3. 博弈论——4.1三人博弈的纳什均衡练习题
  4. 网络服务器充斥大量信息,使网络服务器中充斥着大量要求回复的信息,消耗带宽,导致网络或系统停止正常服务,这属于什么攻 - 普法考试题库问答...
  5. Chrome 插件下载网站+6个实用插件推荐
  6. win10自带邮箱无法登录QQ邮箱
  7. win7无法连接打印机拒绝访问_小编告诉你打印机拒绝访问无法连接
  8. 卡内基梅隆大学计算机系难考,考出托福成绩 成功申请卡内基梅隆大学计算机科学专业...
  9. win7下建立的虚拟机无法连上网络,提示本地连接受限制
  10. zzulioj 1183: 平面点排序(一)(结构体专题)