数字信号处理课程设计报告(样本).doc_第1页
数字信号处理课程设计报告(样本).doc_第2页
数字信号处理课程设计报告(样本).doc_第3页
数字信号处理课程设计报告(样本).doc_第4页
数字信号处理课程设计报告(样本).doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字信号处理 课程设计报告 课题名称: 语音信号的处理与滤波 系 别: 学 号: 姓 名: 班 级: 指导教师: 2007年10月25日 目录摘录.3正文.4 一、设计内容.4 二、设计原理.4 三、设计过程.7 1、语音信号的录制.7 2、取点频谱分析.8 3、低通滤波器设计.10 4、滤滤前后信号对比.12结论.14参考文献.15摘要 随着计算机和信息科学的飞速发展,信号处理逐渐发展成为一门独立的学科,成为信息科学的重要组成部分,在语音处理、雷达、图像处理、通信、生物医学工程等众多领域中得到广泛应用。 Matlab语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的喜爱。特别是Matlab还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行语音信号分析、处理和设计。 数字信号处理课程在现代科学中具有很大重要性及自身特点,理解与掌握课程中的基本概念、基本原理、基本分析方法,对用Matlab进行数字信号处理课程设计的思路,具有很大帮助。 语音信号的处理与滤波是数字信号处理课程中常出现的课题,也是现代科学中值得深入究研的一个课题。 语音信号的处理与滤波的设计主要是用Matlab作为工具平台,设计中涉及到声音的录制、播放、存储和读取,语音信号的抽样、频谱分析,滤波器的设计及语音信号的滤波,通过数字信号处理课程的理论知识的综合运用。从实践上初步实现对数字信号的处理。 关键词:抽样频率;滤波器;抽样点;频谱分析 正文一、设计内容:1、熟悉并掌握MATLAB中有关声音(wave)录制、播放、存储和读取的函数。2在MATLAB环境中,使用声音相关函数录制2秒左右自己的声音,抽样率是8000Hz/s。(考虑如何解决一个实际问题:录制刚开始时,常会出现实际发出声音落后录制动作半拍的现象,如何排除对这些无效点的采样?)3分别取8000个和16000个数据进行频谱分析,得到幅度和相位谱,比较二者异同并分析原因。4针对电话信道(最高3500Hz),设计一个FIR或IIR滤波器进行滤波,把抽样率转变为7000Hz/s,并进行频谱分析,得到幅度和相位谱。5把处理后的所有数据储存为声音文件,与原始声音进行比较。二、设计原理1、 语音信号的采样l 语音信号的录制语音信号的录制可通过MATLAB工具也可以通过windows自带的录音机录制一段自己的声音。在MATLAB里面,用函数wavrecord录制一段时间自定的声音,用函数wavwrite存储原始语音信号。其调用格式如下:X=wavrecord(n ,fs ,ch ,dtype) ;式中n 为抽样点数,决定了录音长度;fs为抽样频率,默认值为11025Hz,还可根据要求自己选择合适的抽样率;ch为声道数,默认值为1,表示单声道,如果指定为2,则抽样为双声道立体声数据;dtype为抽样数据的存储格式,用字符串指定,可以是double、single、int16、int8,指定存储格式的同时也就规定了每个抽样值量化的精度,int8 对应8 位精度抽样,其它都是16 位抽样精度。语音信号的存储可用函数wavwrite实现,其调用格式如下: wavwrite(X,Fs,f:课程设计sound.wav);式中X为所录制的语音信号,Fs为抽样频率,引号内表示存储路径l 语音信号的频谱分析对语音信号进行频谱分析,是认识语音信号和处理语音信号的重要方法。下面将采用频谱来分析语音信号。对一个语音时域离散信号x(n),其频谱函数是x(n)的傅里叶变换。傅里叶变换定义为:其中j为虚数单位,称为数字频率。由于处理的信号是有限长的,即,故实际采用的是离散傅里叶变换DFT 。 长度为N的序列x(n),其DFT定义为:,其中如果x(n)为一个周期序列,得到的X(k)为x(n)的周期频谱。若x(n)不是周期序列,先对x(n)进行周期性扩展,把它看成某个周期性信号的一个周期,得到的X(k)是x(n) 频谱在一个周期的采样。DFT有一种快速算法FFT,称为快速傅里叶变换。MATLAB中采用的就是FFT算法。2、滤波器设计滤波器的设计一般可分为无限冲激响应数字滤波器(IIR)和有限冲激响应数字滤波器(FIR)。本课题设计主要用FIR滤波器来设计。l IIR数字滤波器IIR数字滤波器的系统函数是Z的有理函数,可表示为系统函数的设计就是要确定系数或者零、极点,以使滤波器满足给定的性能要求。这种设计方法如下:(1)用模拟滤波器理论来设计数字滤波器。在IIR数字滤波器的设计中较多采用这种方法。(2)用计算机辅助设计,优化技术设计。即要求所设计的数字滤波器的输入x(n)等于x(t)的抽样信号x(Tn)时,输出y(n)也恰好等于y(t)的抽样信号。l FIR数字滤波器(1)FIR数字滤波器的算法描述 FIR数字滤波器又称卷积滤波器,因为它在时域上的输入x(n)和输出信号y(n)的数学关系是卷积运算:y(n)= hd(n)*x(n)。其中hd(n)是FIR滤波器的单位冲激响应函数,其表达式是由理想滤波器频响的幅度函数H(w)进行傅里叶逆变换得到的,式中wc为滤波器的截止频率。 (2)FIR滤波器的窗函数设计法窗函数法的基本思想是,由于滤波器的时间响应函数hd(n)是无限长的,不能用FIR滤波的方法实现,所以要截取hd(n)幅度较大的部分,舍弃hd(n)幅度较小的部分来近似表示hd(n)。截取方法是用某一种窗函数和截取hd(n)的一段进行卷积以得到实际滤波器的相应hd(n)。窗函数不同,窗口宽度不同,实际频响会有较大区别。如加海明窗的频响曲线的通带和阻带特性比矩形窗好;窗口宽度N的阶数高,也能提高滤波器频响性能,但实时信号处理的时间会相应增加。因此,应根据滤波参数要求确定选用窗函数的类型和阶数。 (3)逼近 确定了技术指标后,就可以建立一个目标数字滤波器模型。通常采用理想的数字滤波器模型。之后,利用数字滤波器的设计方法,设计一个实际滤波器模型来逼近给定的目标。 (4)性能分析和计算机仿真上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求,或利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。(5)线性相位FIR滤波器具体的窗函数法设计方法 线性相位FIR滤波器通常采用窗函数法设计。窗函数法设计FIR滤波器的基本思想是:根据给定的滤波器技术指标,选择滤波器长度N和窗函数w(n),使其具有最窗宽度的主瓣和最小的旁瓣。其核心是从给定的频率特性,通过加窗确定有限长单位脉冲响应序列h(n)。工程中常用的窗函数共有6种,即矩形窗、巴特勒特(bartlett)窗、汉宁(hanning)窗、海明(hamming)窗、布莱克曼(blackman)窗和凯泽(kaiser)窗。三、设计过程(程序实现)l 语音信号的录制l 语音信号的录制Fs=8000; %抽样频率time=3; %录音时间fprintf(按Enter键录音%ds,time); %文字提示pause; %暂停命令fprintf(录音中.);x=wavrecord(time*Fs,Fs,double); %录制语音信号fprintf(录音结束); %文字提示fprintf(按Enter键回放录音); pause; %暂停命令wavplay(x,Fs); %播放语音信号wavwrite(x,Fs,f:课程设计sound.wav); %存储语音信号在录音过程中,出现了这样一个现象:录制刚开始时,常会出现实际发出声音落后录制动作半拍的现象。出现这种现象的原因主要是录音开始时,人的反应慢了半拍,导致出现了一些无效点。要去掉这些无效点,可用函数wavread()来滤除。调用格式如下: y= wavread(f:课程设计sound.wav,3423 20050); subplot(2,1,1);plot(y);title(滤除无效点后的语音信号)l 取8000点进行频谱分析y=wavread(f:课程设计sound.wav); %读取原始语音信号u=fft(y,8000); %对语音信号做8000点的FFT变换subplot(2, 2, 1); %分割窗口plot(abs(u); %绘出语音信号的幅度谱 axis(0, 4000 ,0,80); %显示X轴、Y轴取值范围 title(8000点幅度谱); %加图形说明 grid; %添加网格 subplot(2, 2, 2); %分割窗口plot(angle(u); %绘出语音信号的相位谱 axis(0, 4000 ,-4,4); %显示X轴、Y轴取值范围 title(8000点相位谱); %加图形说明 grid; %添加网格l 取16000点进行频谱分析y=wavread(f:课程设计sound.wav); %读取原始语音信号u=fft(y,16000); %对语音信号做16000点的FFT变换subplot(2, 2, 3); %分割窗口plot(abs(u); %绘出语音信号的幅度谱 axis(0, 8000 ,0,150); %显示X轴、Y轴取值范围 title(16000点幅度谱); %加图形说明 grid; %添加网格 subplot(2, 2, 4); %分割窗口plot(angle(u); %绘出语音信号的相位谱 axis(0, 8000 ,-4,4); %显示X轴、Y轴取值范围 title(16000点相位谱); %加图形说明 grid %添加网格 8000点和16000点数的频谱分析图取8000点和16000点进行频谱分析,可以发现两幅度谱和相位谱图形状大致相同,但在取数点的始段,16000点比8000点的振幅大,因为取16000点比取8000点数多,16000点显示得更详细,更接近真实值,而8000点相对于16000点来说只是大致趋向真实值而已。 l 滤波器的设计function hd = ideallp(Wc,N); %自定义函数% hd = ideallp(Wc,N)% -% hd = 点0 到 N-1之间的理想脉冲响应% wc = 截止频率(弧度) % N = 理想滤波器的长度%tao = (N-1)/2; % 理想脉冲响应的对称中心位置n = 0: (N-1); % 设定脉冲响应长度m = n - tao + eps; % 加一个小数以避免零作除数hd = sin(Wc*m) ./ (pi*m); % 理想脉冲响应function db,mag,pha,W=freqz_m(b,a); %自定义函数%db为相对振幅(dB);mag为绝对振幅;pha为相位响应;W频率样本点向量。H,W=freqz(b,a,1000, whole);%b和a分别为H(z)分子和分母多项式系数;H=(H(1:501);W=(W(1:501);mag=abs(H);db=20*log10(mag+eps)/max(mag);pha=angle(H);%。Wp=2* 3000/7000; Ap=1; %滤波器性能指标Wr=2* 2400/7000; Ar=50;Width= Wp-Wr; %过渡带宽度Wc= (Wr+Wp)/2; %理想滤波器的截止频率N1=ceil(6.6*pi/Width); %滤波器长度N=N1+mod(N1+1,2); %确保N为奇数n=0:1:N-1; %步长hd=ideallp(Wc,N); %理想单位脉冲响应window=hamming(N); %海明窗h=window.*hd; %截取得到实际单位脉冲响应db,mag,pha,W=freqz_m(h,1); %计算实际滤波器的幅频响应subplot(2,1,1); %分割窗口stem(n,h); %绘出实际单位脉冲响应title(实际脉冲响应h(n); %加标题说明grid; %添加网格subplot(2,1,2); %分割窗口plot(W/pi,db); %绘出实际滤波器的幅频响应title(幅度响应(db); %加标题说明grid %添加网格%滤波后信号的频谱分析fs=8000; %抽样频率y=wavread(f:课程设计sound.wav); %读取原始语音信号y1=fftfilt(h,y); %将语音信号送入滤波器滤波,y1为输出 y2=fft(y1); %将滤波后的信号做FFT变换subplot(2,1,1); %分割窗口plot(abs(y2); %绘出幅度图axis(0, 12000 ,0,200); %显示X轴、Y轴取值范围title(滤波后信号的幅度谱图); %加标题说明grid; %添加网格subplot(2,1,2); %分割窗口plot(angle(y2); %绘出相位图axis(0, 12000 ,-4,4); %显示X轴、Y轴取值范围title(滤波后信号的相位谱图); %加标题说明grid; %添加网格wavwrite(y1,fs,f:课程设计sound1.wav); %储存滤波后的语音信号 实际滤波器的幅度响应滤波器的长度为121,最小阻带衰减53dB,满足滤波器设计要求。 滤波后信号的幅度、相位谱图l 原始信号与滤波后的信号相比较ys=wavread(f:课程设计sound.wav); %读取原始语音信号ys1= wavread(f:课程设计sound1.wav); %读取滤波后语音信号fprintf(按Enter键播放原始语音信号); %文字提示pause; %暂停命令wavplay(ys,fs); %播放原始语音信号fprintf(按Enter键播放滤波后语音信号); %文字提示pause; %暂停命令wavplay(ys1,fs); %播放滤波后语音信号yf=fft(ys); %对原始声音进行FFT变换subplot(2,1,1); %分割窗口plot(abs(yf); %绘出原始信号的振幅图axis(0, 12000 ,0,200); %显示X轴、Y轴取值范围title(滤波前的振幅图); %加图形标题说明yf1=fft(ys1); %对滤波后的声音进行FFT变换subplot(2,1,2); %分割窗口plot(abs(yf1); %绘出滤波后信号的振幅图axis(0, 12000 ,0,200); %显示X轴、Y轴取值范围title(滤波后的振幅图); %加图形标题说明通过滤波前后两信号的比较,通过上面的振幅图可以很清晰地观察到经过滤波后与滤波前存在明显差别,滤波后的图比较平稳,原始语音信号比滤波后的信号清晰,滤波后的声音显得比较低沉,因为原始信号经过低通滤波器后,低通滤波器已经把信号高频部分滤掉了,只剩下低频部分。结论经过一个星期的设计,本人基本按质按量完成了课程设计的各项工作。通过本次课程设计,使我加深了对数字信号处理这门课和MATLAB这个软件工具的认识。语音信号处理是以MATLAB为工具平台、数字信号处理为基础而形成的一门综合性学科,处理的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论