音频信号的谱分析及去噪Word文件下载.docx
《音频信号的谱分析及去噪Word文件下载.docx》由会员分享,可在线阅读,更多相关《音频信号的谱分析及去噪Word文件下载.docx(9页珍藏版)》请在冰点文库上搜索。
![音频信号的谱分析及去噪Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/2/84fea674-a22d-4d36-8b4b-d5ed50206d89/84fea674-a22d-4d36-8b4b-d5ed50206d891.gif)
学生班级:
通信0702学生姓名:
杨帆学号:
20077497
音频信号的谱分析及去噪
设计要求
基本要求:
●录制一段音频(如歌曲,说话声等),采用Matlab工具对此音频信号用FFT作谱分析。
●录制一段加入噪声的音频(如在歌声中加入尖锐的口哨声或者其他噪声),采用Matlab工具对此音频信号用FFT作谱分析。
●选择合适的指标,设计FIR数字滤波器,将音频中加入的噪声信号减弱或滤除。
扩展要求:
●将处理后的音频信号重新生成.wav文件,收听该音频,根据效果调整滤波器指标重新设计滤波器。
说明:
●录制音频信号可以采用Windows附件中的录音机,在Matlab中打开音频文件可以调用wavread函数,生成.wav文件可以调用wavwrite函数。
●设计FIR数字滤波器可以采用matlab函数或者工具箱中FDA工具。
2010.6.28-2010.7.9指导教师:
课程设计学生日志
时间
设计内容
2010.6.29
查阅资料
2010.6.30
学习参考资料
2010.7.1
确定设计方案
2010.7.2
程序:
录制语音信号,采用Matlab工具对此音频信号用FFT作谱分析
2010.7.3
调用语音信号并且加入尖叫声,两者进行叠加产生新的音频信号
2010.7.4
选择合适的指标,设计FIR数字滤波器
2010.7.5
编写调试程序,验证设计结果
2010.7.6
撰写报告
课程设计考勤表
周
星期一
星期二
星期三
星期四
星期五
课程设计评语表
指导教师评语:
成绩:
指导教师:
年月日
一.设计目的和意义
通过本课程设计的学习,复习所学的专业知识,并使课堂学习的理论知识应用于实践,为完成方向设计以及毕业设计任务打下基础。
掌握数字信号处理的基本概念,基本理论和基本方法。
本次设计将有助于学生对音频信号的谱分析及提取有更深入的了解。
掌握Matlab设计FIR数字滤波器的方法。
熟悉MATLAB在数字信号处理中的运用。
二.设计原理
1.语音信号的调用
利用录音软件cooledit进行录音。
录音结束后,以文件名为“FIRST”保存到C:
\MATLAB6.5\work中。
产生出音频文件之后,通过其他软件使文件转换为.WAV格式,这是Windows操作系统规定的声音文件存储标准。
Matlab软件平台下,可以利用wavread函数对语音信号进行采样。
Wavread函数调用格式:
y=wavread(file)%读取File所规定的Wav文件,返回采样值放在向量y中。
y=wavread(file,[N1N2]);
用于读取语音,采样值放在向量y中,[N1N2]表示读取从N1点到N2点的采样值(若只有一个N的点则表示读取前N点的采样值)放在向量y中。
[y,fs,bits]=wavread(file)%采样值放在向量y中,fs表示采样频率(hz),bitsb表示采样位数。
sound(y,fs,bits);
用于对声音的回放。
向量y则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。
语音信号采样如下:
[x,fs,bits]=wavread('
FIRST.wav'
);
sound(x,fs,bits);
2、FIR滤波器原理
1、设计数字滤波器的任务就是寻求一个因果稳定的线性时不变系统,并使系统函数H(z)具有指定的频率特性。
本次设计的滤波器需要对叠加有噪声的语音信号滤除或者减弱噪声
数字滤波器从实现的网络结构或者从单位冲激响应分类,可以分成无限长单位冲激响应(IIR)数字滤波器和有限长单位冲激响应(FIR)数字滤波器。
2、函数fftfilt
函数fftfilt的调用格式为
y=fftfilt(b,x)。
该格式是利用基于FFT的重叠相加法对数据进行滤波,这种频域滤波技术只对FIR滤波器有效。
该函数是通过向量b描述的滤波器对x数据进行滤波。
x是等待滤波的信号;
b是FIR滤波器的H(z)的分子多项式系数。
3、关于用butter函数求系统函数分子与分母系数的几种形式。
(1)[b,a]=butter(N,wc,'
high'
):
设计N阶高通滤波器,wc为它的3dB边缘频率。
(2)[b,a]=butter(N,wc):
当wc为具有两个元素的矢量wc=[w1,w2]时,它设计2N阶带通滤波器。
[b,a]=butter(N,wc,'
stop'
若wc=[w1,w2],则它设计2N阶带阻滤波器,。
如果在这个函数输入变元的最后,加一个变元“s”,表示设计的是模拟滤波器。
为了设计任意的选项巴特沃斯滤波器,必须知道阶数N和3dB边缘频率矢量wc。
这可以直接利用信号处理工具箱中的buttord函数来计算。
如果已知滤波器指标wp,ws,Rp和As,则调用格式为[N,wc]=buttord(wp,ws,Rp,As)
不同类型(高通、低通、带通和带阻)滤波器对应的Wp和Ws值遵循以下规则:
1.高通滤波器:
Wp和Ws为一元矢量且Wp>
Ws;
2.低通滤波器:
Wp和Ws为一元矢量且Wp<
3.带通滤波器:
Wp和Ws为二元矢量且Wp<
Ws,如Wp=[0.2,0.7],Ws=[0.1,0.8];
4.带阻滤波器:
Wp和Ws为二元矢量且Wp>
Ws,如Wp=[0.1,0.8],Ws=[0.2,0.7]。
三.设计步骤
1.调用录制的语音音频信号,采用Matlab工具对此音频信号用FFT作谱分析
[x1,fs,bits]=wavread('
%读取音频信号
sound(x1,fs,bits);
%播放音频信号
y1=fft(x1,4096);
%做傅里叶变换,函数执行4096点的FFT。
figure
(1)
plot(x1)%做原始语音信号的时域图形
title('
原始语音信号'
xlabel('
时间n'
ylabel('
幅值n'
figure
(2);
subplot(1,1,1);
plot(abs(y1(1:
512)))%做原始语音信号的FFT频谱图
原始语音信号FFT频谱'
)
图1录制的语音音频(1号音频)信号
2.调用语音信号和尖叫声叠加的音频信号,采用Matlab工具对此音频信号用FFT作谱分析
[x2,fs,bits]=wavread('
SECOND.wav'
%调用2号语音信号
sound(x2,fs,bits);
%播放2号语音信号
y2=fft(x2,4096);
%作傅里叶变换,函数执行4096点的FFT。
plot(x2)%做叠加语音信号的时域图形
叠加语音信号'
plot(abs(y2(1:
512)))%做叠加语音信号的FFT频谱图
图2语音信号叠加尖叫音频信号(2号音频文件)的波形
3.选择合适的指标,设计FIR数字滤波器,将音频中加入的噪声信号减弱或滤除
X2=wavread('
N=5;
wc=[0.3,0.6];
%滤波器的阶数
[b,a]=butter(N,wc);
%设计butter窗函数滤波器
y=fftfilt(b,x2);
Y=fft(y,4096);
figure(3)
subplot(211);
plot(y);
滤波后信号的波形'
subplot(212);
plot(abs(Y));
滤波后信号的频谱'
图3滤波后得到的信号的波形及其频谱
四.设计结果分析
在调试程序时,可以从信号滤波前后的波形图以及频谱图上看出变化。
或者也可以用sound()函数来播放滤波后的语音,从听觉上直接感受语音信号的变化,但由于环境噪声的限制,某些情况下我们是很难听出异同的,但是此次程序的语音信号在滤波前后变化明显。
图1为录制的语音音频(1号音频)信号,无干扰能够通过MATLAB正常播放。
图2为语音信号叠加尖叫音频信号(2号音频文件)的波形,能够明显听出噪音。
前两个语音信号听得很清楚,可以直观的听出两个信号的不同,第三个信号即处理后的信号声音很小,仔细听后可以听出相对第二个信号已有了明显的变化。
五.设计心得
因为这次设计是在期末考试之后的原因,设计时间比较紧张,设计过程也比较粗糙。
一开始看到题目的时候,只有一个初步的了解,知道自己应该往哪方面去做。
但是在做的时候发现,在设计FIR滤波器的时候遇到了很大的障碍,完全无从下手。
通过思考后发现,滤波器的模型网上有很多,但是参数确没有办法确定。
认真去看课本和到图书馆找相关书籍,认真仔细的去理解FIR滤波器原理以及网上用窗函数编写的FIR滤波器,由于时间比较紧迫最后只能能够大概的了解了网上用窗函数设计的FIR滤波器。
之前在录制语音信号的时候遇到了如何产生WAV格式语音的问题,在网上查找相关资料后已经得到解决,同时在调用语音信号上也遇到了困难,在查找了相关资料后,才知道原来MATLAB自带调用语音文件的函数,查阅相关格式后进行调式,在这一步遇到的困难不是很大。
通过本次课程设计,让我认识到,虽然自己的课程设计相对要简单些,但是对于设计中存在的问题一定要学会查阅资料,其实在网上就有很多关于设计的资料,这次课程的一部分就是从网上借鉴而来的,虽然是借鉴,但是同样需要知道每一个程序每一个过程的意义。
课程设计的关键就是在于学习,对于这次课程设计我认为自己学到了很多也掌握了很多自己以前没有掌握的知识。
六.参考资料
[1]刘树棠译.信号与系统(第二版).西安交通大学出版社.2006.5
[2]郑阿奇.MATLAB实用教程.电子工业出版社,2007
[3]网络.
[4]网络.
[5]程佩青.数字信号处理教程(第三版).清华大学出版社,2007.2