文章目录

  • 一、滤波器的种类及简介
  • 二、设计流程
  • 三、滤波器设计实现与结果仿真
  • 参考文献
  • 基于MATLAB的FPR滤波器设计源代码

本课程设计通过分析FIR滤波器的基本原理,在MATLAB环境下利用窗函数法设计出FIR滤波器,实现FIR滤波器的仿真。首先是采集一段语音信号,对其进行时域和频域的分析,然后对所采集的语音信号加入噪声,并对加噪后的信号进行频谱分析,再用窗函数法设计出FIR滤波器,对加入噪声后的语音信号进行滤波处理,以去除噪声,并绘出滤波前后时域和频域的波形图,对其进行对比分析,通过仿真结果表明所设计的FIR滤波器可以有效的滤除干扰信号,设计结果满足性能指标要求。

一、滤波器的种类及简介

滤波器按照信号处理来分可以分为模拟滤波的数字滤波;按照通过信号的频段来分可以问为低通滤波器、高通滤波器、带通滤波器、带阻滤波器、全通滤波器;按照采用的元器件来分可以分为无源滤波器和有源滤波器;按照安放位置的不同可以分为上滤波器和面板滤波器。
模拟滤波器是一种使用模拟电路来实现的滤波设备,其主要作用是将电路中的信号经过滤波器后,只留下想要的频率成分,而滤掉其他频率成分。滤波器通常使用基本电学元件组成,如电感、电容、电阻等构建,其工作原理依赖于这些元件对电压和电流处理的方式。模拟滤波器通常用来处理连续时间的信号,如音频信号、射频信号等。与数字滤波器相比,模拟滤波器具有更高的精度和更宽的频率响应范围,但在工艺和稳定等方面存在一定的限制。
数字滤波器是指输入输出均为数字信号,通过数值运算处理改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的数字器件或程序。因此,数字滤波的概念和模拟滤波相同,只是信号的形式和实现滤波方法不同。正因为数字滤波通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活、不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊滤波功能。
低通滤波器是指将频率低于某个截止频率的信号通过,而将频率高于截止频率的信号进行滤波;而高通滤波器正好相反,高通滤波器指将频率高于某个截止频率的信号通过,而将滤除低于截止频率的信号进行滤波;带通滤波器是一种可以通过一段频率范围内的信号,同时过滤掉低于和高于这个频率的滤波器。带阻滤波器正好相反,它可以滤掉一定频率范围内的信号,而将低于和高于这个范围的信号通过;全波滤波器是一个可逆的滤波器,其特殊之处在于其输出的信号与输入的信号波形相似,但是相位不同。全波滤波器的作用是将信号中的所有频率成分通过,即不增强也不做任何衰减。因此全波滤波器通常用于相位校正、降噪处理、信号合成等方面。


无源滤波器基本上是由电容电感等“被动元件”构成,电路只有使用时提供给电路,滤波器电路不会向电源提供功率。传统的滤波器如RC滤波器和LC滤波器就是属于无源滤波器;有源滤波器则包含一个或多个放大器,并使用电源来提供放大器所需的能量。有源元件操作的有源滤波器性能相对于无源滤波器更优秀,具有更好的传输特性,更小的铜带衰减和更陡的阻带衰减。因此,有源滤波器在信号增强、滤波和滤波器级联方面得到了广泛应用。但是有源滤波器相对于无源滤波器来说,在电路设计和布局方面有计数层面的挑战性。
上滤波器是一种应用于车载音响系统的滤波器,可以消除发动机、风噪等原因引起的低频杂音。该滤波器通过增加低频衰减度,使得低频信号传输更清晰、更平稳。通常上滤波器安装在主机或者放大器的输出信号上;面板滤波器则是在音频或视频制作中经常使用的一种沉浸式滤波器,它可以同时调整信号的频率、幅度和相位特性。通常面板滤波器在混音或后期制作中使用,因为它可以快速精确的调整信号的特性。这种滤波器常常是木制的,并且集成了各种旋钮和控制面板,可以根据需要进行滤波器的高度和定制化程度。两种滤波器应用在不同领域,具有不同的特点和作用。

二、设计流程

本设计总体分为三大模块:语音信号采集与分析模块,语音信号加噪处理模块,滤波去噪模块。

总体设计流程为:采集一段语音信号。将语音信号的文件名命名为aa.wav,再用MATLAB中的wavread函数求出语音信号的三个参数,分别为:每个样本的值,生成该语音波形文件时的采样频率,波形文件样本的码数,再对语音信号以及加入了高频噪声后的语音信号做快速傅立叶变化,绘制出时域波形和频谱图。然后让加噪信号通过所设计的滤波器,绘制滤波前后时域波形对比图和幅频特性对比图,并回放滤波前后的语音信号来验证是否达到去噪的目的。

三、滤波器设计实现与结果仿真

3.1语音信号下载和转换读取
在网上下载一段MP3格式的音频,利用格式工厂将MP3文件转换成WAV文件,并重命名为“aa.wav”。利用 MATLAB 中的 wavread 命令来读入语音信号,将它赋值给某一向量。[y,fs,bits]=wavread(‘ aa.wav‘);用于读取语音,采样值放在向量 y 中, fs表示采样频率(Hz), bits 表示采样位数。
3.2原始语音信号的分析
本次设计首先获得时间长为9s的语音信号x。对x信号进行时域绘图,然后采样y=fft(x,m),其中m=length(x)。最后利用plot函数分别画出x信号的时域图和频域图。

3.3语音信号加噪处理
本设计主要加入一种2khz的高频噪声如下:noise_hig=0.02sin(2pi2000t/fs);
使用绘图命令即可画出语音信号加噪后的时域波形和频域波形。

由上图中可以明显看到,加了噪声的时域波形比未加之前幅度明显增大。从频谱来看,加了噪声的频谱在2KHz频率出有尖锐的幅度频率,这个频率会让我们听到音频信号明显的杂音。
3.4低通滤波器设计
由频谱图可以观察到,音频信号主要在低频段上,在2KHz处有一处尖锐的噪声,我们只需设计一个低通滤波器截止频率为1.7KHz以上的频率的音频全部滤除掉即可。源码如下:

fs = 44100; % 采样率
fc = 1700; % 截止频率
N =200; % 阶数
b = fir1(N, fc/(fs/2)); % 使用fir1函数设计低通滤波器系数
figure;
freqz(b, 1); % 绘制滤波器的频率响应特性

通过绘图工具,可以得出这个滤波器的波形图,如下图:

3.5 FIR数字滤波器对加噪语音信号滤波
用设计好的各滤波器分别对加噪的语音信号进行滤波[9],在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。函数fftfilt用的是重叠相加法实现线性卷积的计算。结果可以通过绘图工具看出滤波后的效果,对比滤波前的效果如下图所示。


可以看出噪声信号和滤波后的信号的时域图和频谱图可看出噪声信号中的噪声成分已成功的去除,并通过回放滤波以后的语音信号,也可以听出滤波后基本与原始语音信号相同,因而设计成功由滤波器的幅频和相频图可看出滤波器的设计也符合要求。

参考文献

[1]丁玉美,高西泉.数字信号处理(第二版).西安电子科技大学出版社
[2]王卫东.高频电子电路(第3版).电子工程出版社

基于MATLAB的FPR滤波器设计源代码

clc;
clear;
%读取音频文件,x-音频数据矩阵 fs-采样率
[x,fs]=audioread('D:\file\matlab_demo\aa.wav');
%sound(x,fs);%播放音频%绘制音频时域图
subplot 211;plot(x);
xlabel('时间(s)');title('原始信号时域');
xlim([-10000 660000]);%绘制音频信号的频谱图
n=length(x);%求音频数组纬度的长度
y=fft(x,n);%对录制信号进行傅里叶变换
y_mag=abs(y);
f=fs*(0:n-1)/n;
subplot 212;plot(f,y_mag);
xlabel('频率(hz)');title('原始信号频谱');
xlim([-10 2500]);%添加高频噪声
t=0:n-1;
noise_hig=0.02*sin(2*pi*2000*t/fs);%产生一个2KHZ的高频噪声
noise_hig=noise_hig';
x2=x+noise_hig;%将噪音添加到音频
%sound(x2,fs);%回放添加噪声信号的音频
figure;%创建新的图窗窗口
subplot 211;plot(x2);
xlabel('时间(s)');title('添加噪音信号时域');
xlim([-10000 660000]);
y2=fft(x2,n);%对加了噪音信号的音频进行傅里叶变换
subplot 212;plot(f,abs(y2));
xlabel('频率(hz)');title('添加噪音信号频谱');
xlim([-10 2500]);% 设计一个低通滤波器,滤除1.7KHz以上的频率
fs = 44100; % 采样率
fc = 1700; % 截止频率
N =200; % 阶数
b = fir1(N, fc/(fs/2)); % 使用fir1函数设计低通滤波器系数
figure;
freqz(b, 1); % 绘制滤波器的频率响应特性
x1get=filter(b,2,x2);
%sound(x1get,fs);%回放滤波后信号的音频
y1get=fft(x1get,n);%对除噪音的信号进行傅里叶变换
figure;
subplot(211);plot(x1get);
xlabel('时间(s)');title('滤除噪音信号时域');
xlim([-10000 660000]);
subplot(212);plot(f,abs(y1get));
xlabel('频率(hz)');title('滤除噪音信号频谱');
xlim([-10 2500]);

基于MATLAB的数字滤波器语音信号去噪相关推荐

  1. Matlab镜像建模产生啸叫信号,基于MATLAB有噪声语音信号的处理最终稿(样例3)...

    <基于MATLAB有噪声语音信号的处理.doc>由会员分享,可免费在线阅读全文,更多与<基于MATLAB有噪声语音信号的处理(最终稿)>相关文档资源请在帮帮文库(www.woc ...

  2. Matlab镜像建模产生啸叫信号,基于MATLAB有噪声语音信号的处理(最终稿)

    <基于MATLAB有噪声语音信号的处理.doc>由会员分享,可免费在线阅读全文,更多与<基于MATLAB有噪声语音信号的处理(最终稿)>相关文档资源请在帮帮文库(www.woc ...

  3. 【语音处理】基于matlab GUI低通滤波器语音信号加噪与去噪【含Matlab源码 1708期】

    ⛄一.语音处理简介(附课程作业报告) 1 语音信号的特点 通过对大量语音信号的观察和分析发现,语音信号主要有下面两个特点: ①在频域内,语音信号的频谱分量主要集中在300-3400Hz的范围内.利用这 ...

  4. 基于matlab的语音信号去噪毕业论文,MATLAB的FIR数字滤波器语音信号的去噪研究和仿真...

    摘要:语音信号作为人类语言交流的重要手段,语音处理的质量直接影响人们的正常通信.本文基于MATLAB对语音信号及加噪信号进行时域和频域分析,设计了FIR数字滤波器,完成对加噪信号滤波的处理.结果表明设 ...

  5. MATLAB基于小波变换的语音信号去噪算法改进

    MATLAB基于小波变换的语音信号去噪算法改进 概述 0. 需要调用的子函数 0.1 Gnoisegen函数 0.2 snrr函数 1. 语音信号输入和加噪 1.1 语音信号输入 1.2 语音信号加噪 ...

  6. matlab语音加入正弦噪声,基于Matlab的语音信号去噪声处理 毕业论文.doc

    基于Matlab的语音信号去噪声处理 毕业论文 本科毕业论文(设计) 题目:基于Matlab的语音信号去噪声处理 姓 名: 学 号: 1142051102 专 业: 电子信息工程 院 系: 电子通信工 ...

  7. MATLAB 用LMS算法实现语音去噪,在Matlab中实现基于LMS算法语音信号去噪

    ComputerKnowledgeand Technology 电脑知识与技术 第10卷第32期 (2014年11月) 本栏目责任编辑:谢媛媛软件设计开发 在Matlab中实现基于LMS算法语音信号去 ...

  8. matlab gui语音信号去噪的原理,多媒体实验报告语音信号的去噪增强处理

    一.实验目的●了解计算机存储信号的方式以及语音信号的特点.●掌握谱减法实现语音去噪增强的原理.二.实验设备条件●计算机(带话筒).●Matlab.三.实验要求1.利用windows自带的录音机录制一段 ...

  9. Matlab语音信号去噪程序,使用低通巴特沃斯滤波器

    Matlab语音信号去噪程序,使用低通巴特沃斯滤波器. 1.读取一段歌曲的信号,绘制时域频域图,并播放. 2.添加正弦噪声: 3.设计巴特沃斯低通滤波器: 4.使用滤波器去除噪声,并画出时域频域图,播 ...

最新文章

  1. Xcode错误“找不到开发人员磁盘映像”
  2. Redis 存储字符串和对象
  3. C++:不用申请变量交换两个变量的值
  4. 解锁bios学习总结
  5. 【STM32】SysTick定时器
  6. php安装soap扩展
  7. ln函数怎么看奇偶性_Python中函数的参数应该怎么理解?看完这篇文章情不自禁的想收藏...
  8. mybatis.generator逆向工程生成数据库访问mybatis代码
  9. 【ElasticSearch】Es 源码之 IndicesClusterStateService 源码解读
  10. 远程数据采集传输---RTU设备
  11. 2018-2019年计算机类会议截稿日期汇总(更新至20180914)
  12. mui实现分享功能_Hbuilder 云端打包app微信分享功能源码示例
  13. Mysql数据库学习笔记[完结]
  14. 关于Monkey稳定性测试,这是我看到最详细的文章
  15. 探析初代虚拟人Lil Miquela的陨落
  16. 如何在二维码下面显示对应数据
  17. APNS推送证书生成与验证
  18. Nativefier把网页打包成exe
  19. 汽车百科系列之(七): 你喜欢什么样的车身颜色
  20. 【js】JS数组复制或克隆新数组修改不影响原数组

热门文章

  1. win7计算机快速打开,快速开启Win7控制面板三大方法
  2. 笔记本卸载VMware后出现键盘和触摸板用不了
  3. 【unity HoloLens2】触碰了物体但没反应,触碰了一次却调用多次,HoloLens2的touch触发机制探究
  4. ZZULIOJ.1221: The Other Part of DNA
  5. Python学习基础笔记四十四——模块
  6. 图片编辑软件哪个好用,易可图轻松处理图片
  7. 清华大学五道口金融学院2020年博士生(普博项目)招生综合考核及录取办法
  8. Vi/Vim/GVim 常用命令总结
  9. 拉梅系数与正交曲线坐标系
  10. C语言和C++关键字总结——一篇就够了