音频信号分析及去噪

  • 格式:doc
  • 大小:81.50 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西南科技大学

课程设计报告

课程名称:数字通信课程设计

设计名称:音频信号的谱分析及去噪

姓名:

学号:

班级:通信0801

指导教师:胥磊

起止日期:2011.6.21-2011.7.3

西南科技大学信息工程学院制

课程设计任务书

学生班级:通信0801 学生姓名:学号:

设计名称:音频信号的谱分析及去噪

起止日期:2011.6.21-2011.7.3指导教师:胥磊

设计要求:

基本要求:

●录制一段音频(如歌曲,说话声等),采用Matlab工具对此音频信号用FFT作谱

分析。

●录制一段加入噪声的音频(如在歌声中加入尖锐的口哨声或者其他噪声),采用

Matlab工具对此音频信号用FFT作谱分析。

●选择合适的指标,设计FIR数字滤波器,将音频中加入的噪声信号减弱或滤除。扩展要求:

●将处理后的音频信号重新生成.wav文件,收听该音频,根据效果调整滤波器指

标重新设计滤波器。

课程设计学生日志

时间设计内容

6月28日查阅资料,明确题目内涵

6月29日录制音频,编写程序

6月30日检查程序,再次确认设计正确与否。开始写报告

7月4日复习于答辩

课程设计考勤表

周星期一星期二星期三星期四星期五

课程设计评语表指导教师评语:

成绩:指导教师:

年月日

音频信号的谱分析及去噪

一、设计目的和意义

1、录制音频,采用matlab工具对此信号做谱分析。

2、录制一段加噪的信号,对加噪信号进行谱分析。

3、选择合适的指标对加噪信号进行滤波。

4、学会使用wavread、wavwrite等函数。

二、设计原理

1、对于录制的音频信号的读入可以使用函数wavread。由于音频信号是连续的,

故绘图应用plot函数。使用函数fft可以得到音频信号的频谱图。

2、由于音频信号是连续且长度未知,故可以采用巴特沃斯滤波器。滤掉高频部

分的噪音,剩下的就是原信号了。

3、将去噪后的信号写成wav格式的文件可以使用wavwrite函数。

三、详细设计步骤

●录制一段音频(如歌曲,说话声等),采用Matlab工具对此音频信号用FFT作谱分析。

1、录制一段音频信号并命名为fl.wav存放在课程设计1的文件夹中。

2、使用wavread函数读出此信号。

3、用函数FFT进行傅里叶变换,得到频谱图。

4、绘制时域图和频域图。

●录制一段加入噪声的音频(如在歌声中加入尖锐的口哨声或者其他噪声),采用Matlab工具对

此音频信号用FFT作谱分析。

1、重新录制1中的音频文件,录制时加入噪声信号。

2、使用wavread函数读出此信号。

3、用函数FFT进行傅里叶变换,得到频谱图。

4、绘制时域图和频域图。

●选择合适的指标,设计FIR数字滤波器,将音频中加入的噪声信号减弱或滤除。

扩展要求:

1、根据2得到的频谱图,选择合适的通带截止频率和阻带截止频率。根据上述指标设计出

合适的滤波器,将信号通过滤波器,得到去噪后的信号。滤波函数可用fftfilt。

●将处理后的音频信号重新生成.wav文件,收听该音频,根据效果调整滤波器指标重新设计滤波

器。

1、使用wavwrite函数将去噪后的函数重新生成wav格式的音频文件。

2、播放音频文件,根据效果修改滤波器中的参数,直到得到与原信号几乎相同的音频文件。设计程序见附件。

附程序:附件

%得到无噪声的原始信号和有噪声的加噪信号clc

clear

for n = 1 : 999

% a(n) = sin(0.5906*n)+sin(1.0245*n)

a(n)=sin(0.5906*n); %无噪声信号

b(n)=sin(1.0245*n);

end;

a=a/2;

sound(a);

b=conv(a,b/2); %加噪

sound(b);

wavwrite(a,'a.wav'); %写文件

wavwrite(b,'b.wav');

%没有噪声的音频信号FFT分析

clc

[y,fs,nbit]=wavread('a.wav'); %读信号

sound(y);

Y=fft(y); %傅里叶变换hg=abs(Y);

figure(1);

subplot(2,1,1);

plot(hg); %绘图xlabel('k');

ylabel('|X(k)|');

title('无噪声谱分析');

% axis([0 1000 0 400]);

subplot(2,1,2);

plot(y);

xlabel('t');

ylabel('y');

title('原信号');

%有噪声的音频信号做FFT分析

clc

[x,fs,nbit]=wavread('b.wav'); %读信号

sound(x);

X=fft(x); %傅里叶变换hg2=abs(X); %幅频响应figure(2);

subplot(2,1,1);

plot(hg2); %绘频域图xlabel('k');

ylabel('|X(k)|');

title('有噪声谱分析');

subplot(2,1,2);

plot(x); %绘时域图xlabel('t');

ylabel('y');

title('有噪信号');

%子函数用凯泽窗设计的低通滤波器

function h=ditong(Rs,Wp,Wst)

dert_w=Wst-Wp;

N=ceil((10*pi/dert_w)+1);

beta=0.5842*(Rs-21)^0.4+0.07886*(Rs-21);

hd=ideal((Wst-Wp)/2,N);

B=kaiser(N,beta);

h=hd.*(B)'; %加窗后[H,m]=freqz(h,[1],1024,'whole'); %获取频率响应mag=abs(H); %幅值db=20*log10((mag+eps)/max(mag)); %分贝数pha=angle(H); %相位

%绘图

w=m/pi;