音频信号去噪(实验报告)

上传人:小** 文档编号:61671100 上传时间:2018-12-09 格式:PDF 页数:11 大小:1.24MB
返回 下载 相关 举报
音频信号去噪(实验报告)_第1页
第1页 / 共11页
音频信号去噪(实验报告)_第2页
第2页 / 共11页
音频信号去噪(实验报告)_第3页
第3页 / 共11页
音频信号去噪(实验报告)_第4页
第4页 / 共11页
音频信号去噪(实验报告)_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《音频信号去噪(实验报告)》由会员分享,可在线阅读,更多相关《音频信号去噪(实验报告)(11页珍藏版)》请在金锄头文库上搜索。

1、 音频信号去噪音频信号去噪 信号与系统信号与系统实验实验报告报告 学院: 弘深学院 班级: 电子信息实验班 学号: 20136927 姓名: 文政 指导老师: 欧静兰 2015 年 5 月 3 日 弘深学院电子信息实验班 文政 20136927 1 | 10 音频信号去噪音频信号去噪 目录目录 一、课题目的 2 二、课题要求 2 三、设计原理 2 1.高斯白噪声 2 2.工具软件使用. 2 四、实验过程 3 1.读取音频信号,绘制时域波形 . 3 2.绘制原音频频域图像 . 3 3.制作叠加白噪声的音频 . 4 4.绘制含白噪声的音频图像 . 4 5.滤波器除噪声. 4 6.绘制除白噪声的音频

2、图像 . 4 7.除杂前后的时域与频域对比 . 5 五、实验结果及分析 . 5 附录 8 (MATLAB 源程序代码) . 9 弘深学院电子信息实验班 文政 20136927 2 | 10 一、课题目的 1、熟悉 MATLAB 语言的基本用法; 2、掌握 MATLAB 语言中音频数据与信息的读取与播放方法; 3、掌握在 MATLAB 中设计滤波器的方法; 4、掌握噪声产生的方法; 5、掌握 MATLAB 语言中信号频谱的绘制方法。 二、课题要求 1、噪声加入后,听觉上歌曲声音明显变差; 2、采用低通滤波的方法滤除噪声后歌曲声音明显变清晰; 3、音乐格式选择 .wav; 4、绘制出原始音频信号一

3、个声道的时域图和频谱图; 5、绘制出加噪声后混合信号同一声道的时域图和频谱图; 6、绘制出滤波后音频信号同一声道的时域图和频谱图。 三、设计原理 选取一段.wav 格式的音乐或歌曲,用 matlab 将选取的音频文件读出来,在 读出的音频信号中加入随机高斯噪声, 再将带有噪声的音乐信号通过低通滤波器 滤除噪声,还原音乐。 1.高斯白噪声 所谓“高斯白噪声”中的“高斯”是指概率分布是正态函数,而“白噪声” 是指它的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。 因此,高斯白噪声的幅度分布服从高斯分布,而它的功率谱密度又是均匀分 布。 2.工具软件使用 本文使用 MATLAB(使用版本

4、 MATLAB R2014b)软件对音频信号加高斯白噪 声后制作滤波器去噪。 (1)使用MATLAB 内置函数audioread(rain.mp3)读取rain.mp3文件,并将其放 入矩阵wave中,获得抽样频率FS; (2)使用MATLAB内置函数sound(wave,FS),播放wave矩阵所包含的音频信 弘深学院电子信息实验班 文政 20136927 3 | 10 息; (3)使用MATLAB内置函数audiowrite(rain_1.wav,wave,FS),将wave矩阵数据输 出到文件rain_1.wav; (4)使用MATLAB内置函数floor(length(sound_1)

5、/2),对声道长度对半向下取 整; (5)使用MATLAB内置函数a randn(size(sound_1),产生白躁生函数,其均值 为0,方差为a; (6)使用MATLAB内置函数fft(noise),对noise进行快速傅里叶变换; (7)使用MATLAB内置函数angle(noise),对noise进行角变换; (8)使用MATLAB内置函数fftshift(noise),对noise进行中心对称; (9)使用MATLAB内置函数abs(noise),对noise进行取模;利用plot函数进行 图像的绘制; 四、实验过程 1.读取音频信号,绘制时域波形 程序如下: clear all w

6、ave, FS=audioread(rain.mp3);%读取音频文件,wave矩阵保存声道信 息,FS保存抽样频率信息 sound_1=wave(:,1);%声道1 sound_2=wave(:,2);%声道2 t=0:(length(sound_1)-1);%取时域横轴t plot(t,sound_1);xlabel(t_1);title(未处理);%时域图 sound(wave,FS)%音频文件播放 audiowrite(rain_1.wav,wave,FS);%输出音频文件 2.绘制原音频频域图像 程序如下: Fourier = fftshift(fft(sound_1,length(

7、sound_1);%对信号进行快速 Fourier变换 halflengthofsound1=length(sound_1); Pyy_1=log10(abs(Fourier)*2/halflengthofsound1; f=(-halflengthofsound1/2:halflengthofsound1/2- 1)*1/halflengthofsound1; figure;plot(f,Pyy_1);xlabel(Frequency_1(Hz);title( 未 处 理 弘深学院电子信息实验班 文政 20136927 4 | 10 );%axis(0 3000 0 10) %频谱图,axi

8、s 输出 x,y 轴显示范围 3.制作叠加白噪声的音频 程序如下: a=0.05;%噪声幅度 noise=a*randn(size(sound_1);%产生白躁生函数,其均值为0,方差为0.05; sound_x=sound_1+noise;%将噪声叠加在原音频声道上; wave_noise(:,1)=sound_x; wave_noise(:,2)=sound_2;%组合两个声道,形成二维矩阵; figure;plot(t,sound_x,r);xlabel(t_noise);title(加白噪声);% 时域图 sound(wave_noise,FS)%播放噪声音频文件; audiowrit

9、e(rain_noise.wav,wave_noise,FS);%输出音频文件 4.绘制含白噪声的音频图像 程序如下: Fourier1 = fftshift(fft(sound_x,length(sound_x);%对信号进行快速 Fourier变换 halflengthofsoundx=length(sound_x); Pyy_x=log10(abs(Fourier1)*2/halflengthofsoundx; f_x=(-halflengthofsoundx/2:halflengthofsoundx/2- 1)*1/halflengthofsoundx; figure;plot(f_x

10、,Pyy_x,r);xlabel(Frequency_x(Hz);title(加 白噪声);%axis(0 3000 0 10) %频谱图,axis 输出x,y轴显示范围 5.滤波器除噪声 程序如下: N=5;wc=0.1; m,n=butter(N,wc); wave_noise_recover(:,1)=filter(m,n,sound_x); wave_noise_recover(:,2)=sound_2; figure;plot(t,wave_noise_recover(:,1),g);xlabel(t_recover);titl e(去噪);%时域图 sound(wave_noise

11、_recover,FS) audiowrite(rain_noise_recover.wav,wave_noise_recover,FS);%输出音频 文件 6.绘制除白噪声的音频图像 程序如下: Fourier_recover = fftshift(fft(wave_noise_recover(:,1),length(wave_noise_recover(:,1) );%对信号进行快速Fourier变换 halflengthofsound_recover=length(wave_noise_recover); Pyy_recover=log10(abs(Fourier_recover)*2/

12、halflengthofsound_recover ; 弘深学院电子信息实验班 文政 20136927 5 | 10 f_recover=(- halflengthofsound_recover/2:halflengthofsound_recover/2- 1)*1/halflengthofsound_recover; figure;plot(f_recover,Pyy_recover,g);xlabel(Frequency_recover(H z);title(去噪);%axis(0 3000 0 10) %频谱图,axis 输出x,y轴显示范围 7.除杂前后的时域与频域对比 代码如下: c

13、ompare_t(:,1)=abs(wave_noise_recover(:,1)-abs(wave_noise(:,1);% 取处理声道信息,作差值后取绝对值,得到对比值 compare_t(:,2)=wave_noise(:,2);%未处理声道不做处理; figure;plot(t,compare_t(:,1),k);xlabel(t_compare);title(时域差 值图);axis(0 inf 0 1);%时域图差值图 compare_f(:,1)=abs(Pyy_recover-Pyy_x); figure;plot(f_recover,compare_f(:,1),k);xla

14、bel(f_compare);title (频域差值图);%axis(0 inf 0 inf);%频域图差值图 五、实验结果及分析 运行代码脚本,即可得到了所需图像: 图 1 原声时域波形图 图 2 原声频域波形 弘深学院电子信息实验班 文政 20136927 6 | 10 图 3 加白噪声时域波形 图 4 加白噪声频域波形 图 5 去噪时域波形 弘深学院电子信息实验班 文政 20136927 7 | 10 图 6 去噪频域波形 图 7 恢复前后时域差值图 图 8 恢复前后频域差值图 弘深学院电子信息实验班 文政 20136927 8 | 10 加燥前的原音乐频谱是具有鲜明特性的波形,其频率主

15、要集中在0.3,0.3 之间,而增加了白噪声之后,其0.3,0.05 0.05,0.3之间的频谱被白噪声 覆盖,时域图显示出个时间段的幅度都有所增加。播放出来的声音很嘈杂。 由于白噪声的功率谱密度在整个频域内均匀分布,所有频率具有相同的能 量密度。从我们耳朵的频率响应听起来它是非常明亮的“咝”声。 (每高一个八 度,频率就升高一倍。因此高频率区的能量也显著增强) 白噪声: 功率谱密度恒定:() = 0 信号自相关:() = 0() 数学期望:() = 0 是宽平稳随机信号,且具有良好的各态历经性。 为了尽可能的消除这种噪声,还原原声,我们选用低通滤波器,来滤除掉 高频噪声。从图中可以清楚的看到

16、,高频部分的频谱经过滤波器滤波后,在频 谱图上出现了明显的变化,仅仅保留了0.3,0.3的部分。在时域上,也可以很 清楚的看到,波形有所恢复。由于无法消除原有音乐所在频率段增加的白噪 声,因此,无法完全恢复到原有状态,但是,音乐播放效果有明显的改善。 弘深学院电子信息实验班 文政 20136927 9 | 10 附录 (MATLAB 源程序代码) clear all wave, FS=audioread(rain.mp3);%读取音频文件,wave矩阵保存声道信息,FS保存抽样频 率信息 sound_1=wave(:,1);%声道1 sound_2=wave(:,2);%声道2 t=0:(length(sound_1)-1);%取时域横轴t p

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号