基于MATLAB的语音信号FIR数字滤波处理

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

目录

1 绪论 (2)

2课程设计的具体实现 (4)

2.1 语音信号的录制 (4)

2.2 FIR滤波器的设计方法 (4)

3语音信号的时频分析 (5)

3.1语音信号载入MATLAB (5)

3.2语音信号时域和频域分析 (6)

3.3设计FIR数字滤波器 (7)

3.3.1 窗函数hamming设计带通滤波器 (8)

3.3.2 窗函数hanning设计带通滤波器 (9)

3.3.3 窗函数Blackman设计带通滤波器 (10)

3.3.4 窗函数Boxcar设计带通滤波器 (11)

3.4滤波之后的时域和频域分析 (12)

3.4.1 窗函数hamming设计带通滤波器滤波 (13)

3.4.2 窗函数hanning设计带通滤波器滤波 (13)

3.4.3 窗函数Blackman设计带通滤波器滤波 (14)

3.4.4 窗函数Boxcar设计带通滤波器滤波 (15)

3.5回放语音信号 (16)

结论 (16)

参考文献 (18)

1 绪论

数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等优点。

数字滤波器, 是数字信号处理中及其重要的一部分。随着信息时代和数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应( FIR,Finite Impulse Response)滤波器

和无限冲激响应( IIR,Infinite Impulse Response)滤波器。

FIR滤波器结构上主要是非递归结构,没有输出到输入的反馈,系统函数H (z)在处收敛,极点全部在z = 0处(因果系统),因而只能用较高的阶数达到高的选择性。FIR数字滤波器的幅频特性精度较之于IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过fir滤波器后他们的时间差不变,这是很好的性质。FIR数字滤波器是有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。 FIR滤波器因具有系统稳定,易实现相位控制,允许设计多通带(或多阻带)滤波器等优点收到人们的青睐。

IIR滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。同时,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。

滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。随着

MATLAB软件及信号处理工具箱的不断完善,MATLAB很快成为应用学科等领域不可或缺的基础软件。它可以快速有效地实现数字滤波器的设计、分析和仿真,极减轻了工作量,有利于滤波器设计的最优化。

2课程设计的具体实现

2.1 语音信号的录制

声音格式有很多种类,而MATLAB能够识别的有两种:*.wav和*au。利用不同方式录制的音频文件格式不正确时,需要利用专门的软件处理。一种简便的方法是利用“千千静听”播放器进行格式转换。

利用PC 机上的声卡和WINDOWS 操作系统可以进行数字信号的采集。将话筒输入计算机的语音输入插口上,启动录音机。按下录音按钮,接着对话筒说话“电子信息工程”,说完后停止录音,屏幕左侧将显示所录声音的长度。点击放音按钮,可以实现所录音的重现。以文件名“fengxiao”。可以看到,文件存储器的后缀默认为. wav ,这是WINDOWS 操作系统规定的声音文件存的标准,以下以wav格式进行。

2.2 FIR滤波器的设计方法

FIR滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为:

(1) 通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。

(2) 由性能指标确定窗函数W(n)和窗口长度N。

(3) 求得实际滤波器的单位脉冲响应h(n), h(n)即为所设计FIR滤波器系数向量b(n)。

(4) 检验滤波器性能。

根据滤波前后的时域和频域波形,比较去噪性能。

3语音信号的时频分析

3.1语音信号载入MATLAB

利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。再对其进行采样,记住采样频率和采样点数。

Wavread的函数调用格式为:

[y,fs,nbits]=wavered (‘wav文件的存放路径’);

%把语音信号加载入Matlab 仿真软件平台中,并返回采样频率fs。

3.2语音信号时域和频域分析

时域波形用plot(y)就可以画出。

MATLAB提供了快速傅里叶变换算法FFT计算DFT的函数fft,其调用格式如下:

Xk=fft(xn,N)

参数xn为被变换的时域序列向量,N是DFT变换区间长度,当N大于xn的长度时,fft函数自动在xn后面补零。,当N小于xn的长度时,fft函数计算xn的前N个元素,忽略其后面的元素。

在本次设计中,我们利用fft对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。其程序如下:

clc;

clear all;

[x1,Fs,bits]=wavread('F:\学习\新建文件夹\2.wav');sound(x1,Fs); figure(1);

subplot(2,1,1);plot(x1); %做原始语音信号的时域图形

title('原始语音信号时域波形');

xlabel('time n');

ylabel('yinliang n');axis([0,200000,-0.4,0.4]);

y1=fft(x1); %做length(x1)点的FFT

y1=fftshift(y1);%平移,是频率中心为0

derta_Fs = Fs/length(x1);%设置频谱的间隔,分辨率

subplot(2,1,2);plot([-Fs/2:derta_Fs: Fs/2-derta_Fs],abs(y1));%

相关文档
最新文档