语音信号处理课程设计-FIR和IIR数字滤波器设计

上传人:aa****6 文档编号:30009914 上传时间:2018-01-26 格式:DOC 页数:31 大小:1.12MB
返回 下载 相关 举报
语音信号处理课程设计-FIR和IIR数字滤波器设计_第1页
第1页 / 共31页
语音信号处理课程设计-FIR和IIR数字滤波器设计_第2页
第2页 / 共31页
语音信号处理课程设计-FIR和IIR数字滤波器设计_第3页
第3页 / 共31页
语音信号处理课程设计-FIR和IIR数字滤波器设计_第4页
第4页 / 共31页
语音信号处理课程设计-FIR和IIR数字滤波器设计_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《语音信号处理课程设计-FIR和IIR数字滤波器设计》由会员分享,可在线阅读,更多相关《语音信号处理课程设计-FIR和IIR数字滤波器设计(31页珍藏版)》请在金锄头文库上搜索。

1、11 绪论数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等优点。数字滤波器, 是数字信号处理中及其重要的一部分。随着信息时代和数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。数字滤波器种类很多,根据其实现的网络结构或者其

2、冲激响应函数的时域特性,可分为两种,即有限冲激响应( FIR,Finite Impulse Response)滤波器和无限冲激响应 ( IIR,Infinite Impulse Response)滤波器。FIR滤波器结 构 上 主 要 是 非 递 归 结 构 , 没 有 输 出 到 输 入 的 反 馈 , 系 统 函数 H (z)在 处 收 敛 , 极 点 全 部 在 z = 0处 ( 因 果 系 统 ) , 因 而 只 能 用 较 高 的 阶数 达 到 高 的 选 择 性 。 FIR数 字 滤 波 器 的 幅 频 特 性 精 度 较 之 于 IIR数 字 滤 波 器低 , 但 是 线 性 相

3、 位 , 就 是 不 同 频 率 分 量 的 信 号 经 过 fir滤 波 器 后 他 们 的 时 间差 不 变 , 这 是 很 好 的 性 质 。 FIR数 字 滤 波 器 是 有 限 的 单 位 响 应 也 有 利 于 对 数字 信 号 的 处 理 , 便 于 编 程 , 用 于 计 算 的 时 延 也 小 , 这 对 实 时 的 信 号 处 理 很 重要 。 FIR滤波器因具有系统稳定,易实现相位控制,允许设计多通带(或多阻带)滤波器等优点收到人们的青睐。IIR滤波器 采 用 递 归 型 结 构 , 即 结 构 上 带 有 反 馈 环 路 。 IIR滤 波 器 运 算 结构 通 常 由

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

5、的 变 换 , 将 模 拟滤 波 器 的 公 式 转 换 成 数 字 滤 波 器 的 公 式 。2滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。随着 MATLAB软件及信号处理工具箱的不断完善,MATLAB 很快成为应用学科等领域不可或缺的基础软件。它可以快速有效地实现数字滤波器的设计、分析和仿真,极大地减轻了工作量,有利于滤波器设计的最优化。2 课程设计内容选择一个语音信号作为分析的对象,或录制一段各人自己的语音信号,对其进行频谱分析;利用 MATLAB 中的随机函数产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析;设计 FIR 和 IIR 数字滤波器, 并对被噪声

6、污染的语音信号进行滤波, 分析滤波后信号的时域和频域特征,回放语音信号;最后,设计一个信号处理系统界面。在所设计的系统界面上可以选择滤波器的类型。3 课程设计的具体实现3.1 语音信号的采集利用PC 机上的声卡和WINDOWS 操作系统可以进行数字信号的采集。将话筒输入计算机的语音输入插口上,启动录音机。按下录音按钮,接着对话筒说话“语音信号处理”,说完后停止录音,屏幕左侧将显示所录声音的长度。点击放音按钮,可以实现所录音的重现。以文件名“speech” 保存入g : MATLAB work 中。可以看到,文件存储器的后缀默认为. wav ,这是WINDOWS 操作系统规定的声音文件存的标准。

7、3.2 语音信号的时频分析利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。再对其进行采样,记住采样频率和采样点数。下面介绍Wavread 函数几种调用格式。3(1)y=wavread(file)功能说明:读取 file 所规定的 wav 文件,返回采样值放在向量 y 中。(2)y,fs,nbits=wavread(file) 功能说明:采样值放在向量 y 中,fs 表示采样频率(hz) ,nbits 表示采样位数。(3)y=wavread(file,N)功能说明:读取钱 N 点的采样值放在向量 y 中。(4)y=wavread(file,N1,N2)功能说

8、明:读取从 N1 到 N2 点的采样值放在向量 y 中。接下来,对语音信号 OriSound.wav 进行采样。其程序如下: y,fs,nbits=wavered (OriSound); %把语音信号加载入 Matlab 仿真软件平台中然后,画出语音信号的时域波形,再对语音信号进行频谱分析。MATLAB 提供了快速傅里叶变换算法 FFT 计算 DFT 的函数 fft,其调用格式如下:Xk=fft(xn,N)参数 xn 为被变换的时域序列向量,N 是 DFT 变换区间长度,当 N 大于 xn的长度时,fft 函数自动在 xn 后面补零。 ,当 N 小于 xn 的长度时,fft 函数计算 xn 的

9、前 N 个元素,忽略其后面的元素。在本次设计中,我们利用 fft 对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。其程序如下:x,Fs,nbits=wavread(nm.wav);player=audioplayer(x,Fs);play(player);pause(10);stop(player);N=length(x);subplot(2,2,3);plot(x);title(原始信号波形 );subplot(2,2,2);Hs=spectrum.welch;psd(Hs,x,Fs,Fs);title(功率图);subplot(2,2,1);specgram(x);title(语谱

10、图);subplot(2,2,4);y=fft(x,N);4Xk=abs(y);plot(Xk(1:N/2);title(幅度图 );程序结果如下图:图1 原始信号波形及频谱3.3 语音信号加噪与频谱分析MATLAB 中产生高斯白噪声非常方便,有两个产生高斯白噪声的两个函数 。我们可以直接应用两个函数:一个是 WGN,另一个是 AWGN。WGN 用于产生高斯白噪声,AWGN 则用于在某一信号中加入高斯白噪声。也可直接用randn 函数产生高斯分布序列 。在本次课程设计中,我们是利用 MATLAB 中的随机函数 (rand 或 randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱

11、分析。Randn 函数有两种基本调用格式:Randn(n) 和 Randn(m,n),前者产生 nn 服从标准高斯分布的随机数矩阵,后者产生 mn 的随机数矩阵。在这里,我们选用Randn( m,n)函数。语音信号添加噪声及其频谱分析的主要程序如下:y,fs,nbits=wavread (nm.wav);N = length (y) ; %求出语音信号的长度Noise=0.01*randn(size(N); %随机函数产生噪声Si=y+Noise; %语音信号加入噪声 5sound(Si);subplot(2,1,1);plot(Si);title(加噪语音信号的时域波形);S=fft(Si)

12、; %傅里叶变换subplot(2,1,2);plot(abs(S); title(加噪语音信号的频域波形);程序结果如下图:图2 加噪后的波形及频谱分析3.4 设计 FIR 和 IIR 数字滤波器IIR 滤波器和 FIR 滤波器的设计方法完全不同。IIR 滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计方法进行的。其设计步骤是:先设计过渡模拟滤波器得到系统函数 H(s) ,然后将 H(s )按某种方法转换成数字滤波器的系统函数 H(z)。FIR 滤波器比鞥采用间接法,常用的方法有窗函数法、频率采样发和切比雪夫等波纹逼近法。对于线性相位滤波器,经常采用FIR 滤波器。对于数字高通

13、、带通滤波器的设计,通用方法为双线性变换法。可以借助6于模拟滤波器的频率转换设计一个所需类型的过渡模拟滤波器,再经过双线性变换将其转换策划那个所需的数字滤波器。具体设计步骤如下:(1)确定所需类型数字滤波器的技术指标。(2)将所需类型数字滤波器的边界频率转换成相应的模拟滤波器的边界频率,转换公式为 =2/T tan(0.5)(3)将相应类型的模拟滤波器技术指标转换成模拟低通滤波器技术指标。(4)设计模拟低通滤波器。(5)通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。(6)采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤波器。我们知道,脉冲响应不变法的主要缺点是会产生频谱

14、混叠现象,使数字滤波器的频响偏离模拟滤波器的频响特性。为了克服之一缺点,可以采用双线性变换法。下面我们总结一下利用模拟滤波器设计 IIR 数字低通滤波器的步骤:(1)确定数字低通滤波器的技术指标:通带边界频率、通带最大衰减,阻带截止频率、阻带最小衰减。(2)将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。(3)按照模拟低通滤波器的技术指标设计及过渡模拟低通滤波器。(4)用双线性变换法,模拟滤波器系统函数转换成数字低通滤波器系统函数。如前所述,IIR 滤波器和 FIR 滤波器的设计方法有很大的区别。下面我们着重介绍用窗函数法设计 FIR 滤波器的步骤。如下:(1)根据对阻带衰减及

15、过渡带的指标要求,选择串窗数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等) ,并估计窗口长度 N。先按照阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数。(2)构造希望逼近的频率响应函数。(3)计算 h(n).。7(4)加窗得到设计结果。接下来,我们根据语音信号的特点给出有关滤波器的技术指标:低通滤波器的性能指标:fp=1000Hz,fc=1200Hz,As=100db ,Ap=1dB高通滤波器的性能指标:fp=3500Hz,fc=4000Hz,As=100dB ,Ap=1dB ;带通滤波器的性能指标:fp1=1200Hz,fp2=3000hZ,fc1=10

16、00Hz,fc2=3200Hz,As=100dB,Ap=1dB在 Matlab 中,可以利用函数 fir1 设计 FIR 滤波器,利用函数 butter,cheby1和 ellip 设计 IIR 滤波器,利用 Matlab 中的函数 freqz 画出各步步器的频率响应。hn=fir1(M,wc,window),可以指定窗函数向量 window。如果缺省window 参数,则 fir1 默认为哈明窗。其中可选的窗函数有 Rectangular Barlrtt Hamming Hann Blackman 窗,其相应的都有实现函数。MATLAB 信号处理工具箱函数 buttp buttor butter 是巴特沃斯滤波器设计函数,其有 5 种调用格式,本课程设计中用

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号