资源描述:
《音频信号分析及去噪》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西南科技大学课程设计报告课程名称:数字通信课程设计设计名称:音频信号的谱分析及去噪姓名:学号:班级:通信0801指导教师:胥磊起止日期:2011.6.21-2011.7.3西南科技大学信息工程学院制课程设计任务书学生班级:通信0801学生姓名:学号:设计名称:音频信号的谱分析及去噪起止日期:2011.6.21-2011.7.3指导教师:胥磊设计要求:基本要求:l录制一段音频(如歌曲,说话声等),采用Matlab工具对此音频信号用FFT作谱分析。l录制一段加入噪声的音频(如在歌声中加入尖锐的口哨声或者其他噪声),采用Matlab工具对此音频信号用FFT
2、作谱分析。l选择合适的指标,设计FIR数字滤波器,将音频中加入的噪声信号减弱或滤除。扩展要求:l将处理后的音频信号重新生成.wav文件,收听该音频,根据效果调整滤波器指标重新设计滤波器。课程设计学生日志时间设计内容6月28日查阅资料,明确题目内涵6月29日录制音频,编写程序6月30日检查程序,再次确认设计正确与否。开始写报告7月4日复习于答辩课程设计考勤表周星期一星期二星期三星期四星期五课程设计评语表指导教师评语:成绩:指导教师:年月日音频信号的谱分析及去噪一、设计目的和意义1、录制音频,采用matlab工具对此信号做谱分析。2、录制一段加噪的信号,
3、对加噪信号进行谱分析。3、选择合适的指标对加噪信号进行滤波。4、学会使用wavread、wavwrite等函数。二、设计原理1、对于录制的音频信号的读入可以使用函数wavread。由于音频信号是连续的,故绘图应用plot函数。使用函数fft可以得到音频信号的频谱图。2、由于音频信号是连续且长度未知,故可以采用巴特沃斯滤波器。滤掉高频部分的噪音,剩下的就是原信号了。3、将去噪后的信号写成wav格式的文件可以使用wavwrite函数。三、详细设计步骤l录制一段音频(如歌曲,说话声等),采用Matlab工具对此音频信号用FFT作谱分析。1、录制一段音频信号
4、并命名为fl.wav存放在课程设计1的文件夹中。2、使用wavread函数读出此信号。3、用函数FFT进行傅里叶变换,得到频谱图。4、绘制时域图和频域图。l录制一段加入噪声的音频(如在歌声中加入尖锐的口哨声或者其他噪声),采用Matlab工具对此音频信号用FFT作谱分析。1、重新录制1中的音频文件,录制时加入噪声信号。2、使用wavread函数读出此信号。3、用函数FFT进行傅里叶变换,得到频谱图。4、绘制时域图和频域图。l选择合适的指标,设计FIR数字滤波器,将音频中加入的噪声信号减弱或滤除。扩展要求:1、根据2得到的频谱图,选择合适的通带截止频率
5、和阻带截止频率。根据上述指标设计出合适的滤波器,将信号通过滤波器,得到去噪后的信号。滤波函数可用fftfilt。l将处理后的音频信号重新生成.wav文件,收听该音频,根据效果调整滤波器指标重新设计滤波器。1、使用wavwrite函数将去噪后的函数重新生成wav格式的音频文件。2、播放音频文件,根据效果修改滤波器中的参数,直到得到与原信号几乎相同的音频文件。设计程序见附件。附程序:附件%得到无噪声的原始信号和有噪声的加噪信号clcclearforn=1:999%a(n)=sin(0.5906*n)+sin(1.0245*n)a(n)=sin(0.590
6、6*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('
7、X(k)
8、');title('无
9、噪声谱分析');%axis([010000400]);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('
10、X(k)
11、');title('有噪声谱分析');subplot(2,1,2);
12、plot(x);%绘时域图xlabel('t');ylabel('y');title('有噪信号');%子函