编号:D294
大小:10M
环境:Matlab2020b
简介:基于Matlab两个谱减法实现高斯噪声滤除
示例1的主运行文件为soundHandle.m
示例2为soundHandle2.m
运行展示
示例1(宽带白噪声的滤除)
频谱分析
拿到信号,第一步一般是先观察信号的频谱。
宽带白噪声污染下的信号频谱
从上图可以看出,此噪声是一个宽带白噪声,幸运的是噪声并没有把有用的频谱成分淹没。
谱减法初步处理
通过观察,有用信号的频谱振幅基本都在 200 以上,所以只要截取频谱幅度大于 200 的部分,就可以基本保留原始信号的主要信息,并且可以较好地过滤掉宽带白噪声。
截取结果如下图所示。
以上初步处理结果试听后,发现声音中仍然有尖锐的声音,这可能是由上图中的 6kHz 到 8kHz 以及2kHz附近的高频噪声导致的,所以,为了滤除高频噪声,还需要使信号通过一个低通滤波器。
低通滤波处理
数字频率
数字频率即为归一化的频率,其定义为:
低通滤波器的设计
通过观察“初步处理后的频谱”,需要设置一个截止到1kHz的0.8kHz低通滤波器,因为信号的采样率为16kHz,所以数字频率分别为1kHz对应0.125,0.8kHz对应0.1。
设计出的FIR滤波器的分析如下图所示,上面的是幅频响应曲线,下面的是相频响应曲线。
观察幅频响应曲线可以发现该FIR滤波器在通带内保持平缓,在约0.125时截止。从相频响应曲线可以看到滤波器在通带内的响应具有线性相位,这点可以保证滤波时相位不失真。
滤波结果
滤波最终结果的频谱如下图所示,从图中可以看到大于1kHz的杂音都被去除了。
接下来就可以聆听一下滤波后的结果。
示例2(窄带噪声的滤除)
频谱分析
按照惯例,第一步肯定是频谱分析。
可以看到,信号被中心频率约为1.2kHz的窄带噪声所污染,同时,有用的频谱成分的幅度都在 1000 以下,所以用谱减法截取幅度在1000以下的频谱成分。
初步处理结果
初步处理结果如下图所示,截取后对音频进行试听,发现仍然有刺耳的交流成分,猜测是 1.2kHz 附近的
残留噪声在作怪,于是对信号进行二次截取。
最终处理结果
为了保留信号最重要的成分,二次截取选择的开始频率为 1kHz,截取幅度小于 450 的频谱成分。二次截取后的频谱如下图所示,此为滤波的最终结果。
接下来就可以聆听一下滤波后的结果了。
配套文件
我们提供完整项目文件清单如下:
文件目录
├ 1.项目源码
├ 2.运行截图
└ 3.演示视频
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者文档,可以与我们交换,分享有积分奖励和额外收入!
4. 本站提供的源码、文档等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"www.2zcode.com",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:网站内的所有源码都经过我们亲自测试,均可以正常使用.
索炜达.猿创 » 基于Matlab两个谱减法实现高斯噪声滤除
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 你们有qq群吗怎么加入?