音频信号去噪.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

实验目的:

1、熟悉MATLAB语言的基本用法;

2、掌握MATLAB语言中音频数据与信息的读取与播放方法;

3、掌握在MATLAB中设计滤波器的方法;

4、掌握噪声产生的方法;

5、掌握MATLAB语言中信号频谱的绘制方法。

实验原理:

选取一段.wav格式的音乐或歌曲,用matlab的wavread函数将选取的音频文件读出来,在读出的音频信号的左声道中利用awgn函数加入随机高斯噪声,再用函数fir1(N,wn)来设计低通滤波器,其中N表示滤波器的阶数,N越大滤波器性能越好,实际实现时越复杂;wn是滤波器的3dB截止频率。再将带有噪声的音乐信号通过低通滤波器滤除噪声,从而还原音乐,再用wavwrite函数形成滤波后的音频文件。

实验步骤:

程序代码Wave_test.m

clearall

clc

[y,Fs,nbits]=wavread(test.wav);%读取音频文件

size(y)

Fs

nbits

L=size(y,1);

t=size(y,1)/Fs

closeall;

figure;

subplot(211);

plot(1/Fs:1/Fs:t,y(:,1));%左声道时域波形图。

xlabel(Time(s));

title(左声道);

%***********

NFFT=2^nextpow2(L);

fft_y=fft(y(:,1),NFFT);%对左声道进行傅里叶变换

F_shift=fftshift(fft_y);

f=((-NFFT/2+1):(NFFT/2))/NFFT*Fs;%将横轴变为对应的频率轴

subplot(212);

plot(f,abs(F_shift));%画频谱图

%**********************************************

y(:,1)=awgn(y(:,1),1,measured);%对左声道信号添加高斯噪声

figure(2);

subplot(211);

plot(1/Fs:1/Fs:t,y(:,1));%添加噪声后左声道的时域图

%*****

subplot(212);

fft_noise_y=fft(y(:,1),NFFT);%傅里叶变换

noise_F_shift=fftshift(fft_noise_y);

plot(f,abs(noise_F_shift));%添加噪声后的左声道频谱图

wavwrite(y,Fs,test_addnoise.wav);%生成加噪的音频文件

%**********************************************************

figure(3);

rp=1;

rs=100;%阻带最小衰减

p=1-10.^(-rp/20);%通带波纹

s=10.^(-rs/20);%阻带波纹

wp=0.1;%通带截止频率

ws=0.2;%阻带截止

fpts=[wpws];

mag=[10];

dev=[ps];

[n,wn,beta,ftype]=kaiserord(fpts,mag,dev);%计算出凯塞窗的n,beta值

b=fir1(n,wn,kaiser(n+1,beta));%由fir1设计低通滤波器

freqz(b,1)%得到频率响应

figure(4);

y(:,1)=filter(b,1,y(:,1));%用设计的滤波器对加噪的左声道信号滤波

subplot(211);

plot(1/Fs:1/Fs:t,y(:,1));%滤波后的时域图

%******

fft_y=fft(y(:,1),NFFT);

F_shift=fftshift(fft_y);

f=((-NFFT/2+1):(NFFT/2))/NFFT*Fs;

subplot(212);

plot(f,abs(F_shift));%滤波后的频谱图

wavwrite(y,Fs,test_passnoise.wav);%生成滤波后的音频文件

结果与分析:

1.实验结果:

Figure1

Figure2

Figure3

Figure4

2.实验分析

(1)对音频声道的理解

选取的音频是一个双声道音频,而通过MATLAB读取音频文件后实际上形成的是一个N行两列的数组,每一个列数组就是一个声道的信息数据。通过提取两个列数组就可以提取出不同声道,进而对单一声道信号加噪去噪以及滤波操作。

(2)数字滤波

数字滤波是常用的音频处理技术。在设置好通、阻带截止频率以及通、阻带波纹后,再用函数fir1(n,wn,kaiser(n+1,beta))来设计凯塞窗低通滤波器,至于函数的参数,本实验利用kai

文档评论(0)

展翅高飞2020 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档