音频信号分析及去噪
- 格式:doc
- 大小:81.50 KB
- 文档页数:12
西南科技大学
课程设计报告
课程名称:数字通信课程设计
设计名称:音频信号的谱分析及去噪
姓名:
学号:
班级:通信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;