第一范文网 - 专业文章范例文档资料分享平台

音乐信号滤波去噪—用凯塞窗设计的FIR滤波器

来源:用户分享 时间:2025/5/25 3:45:48 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

《音乐信号滤波去噪——用凯塞窗设计的滤波器》 第5页 共19页

实现,而在IIR滤波器中使用有限精度会产生很大的问题,由于采用的是反馈电路,因此IIR通常用非常少的bit实现,设计者就能解决更少的与非理想算术有关的问题。 (5)可以用小数实现。不像IIR滤波器,FIR滤波器通常可能用小于1的系数来实现。(如果需要,FIR滤波器的总的增益可以在输出调整)。当使用定点DSP的时候,这也是一个考虑因素,它能使得实现更加地简单。

FIR滤波器的缺点在于它的性能不如同样阶数的IIR滤波器,不过由于数字计算硬件的飞速发展,这一点已经不成为问题。再加上引入计算机辅助设计,FIR滤波器的设计也得到极大的简化。基于上述原因,FIR滤波器比IIR滤波器的应用更广。

2.2窗口设计法

窗函数设计法的基本思想是用FIRDF逼近洗完的滤波特性。设希望逼近的滤波器的频率响应函数为

,其单位脉冲响应为

表示。为了设计简单方便,通常选择是无限长非因果序列,不能直接作为FIRDF为有限长的一段因果序列,并用合适的窗函

为具有片段常数特性的理想滤波器。因此的单位脉冲响应。窗函数设计法就是截取

数进行加权作为FIRDF的单位脉冲响应h(n)。

用窗函数法设计FIRDF的具体设计步骤如下: (1)构造希望逼近的频率响应函数(2)求出

(3)加窗得到FIRDF的单位脉冲响应h(n)。h(n)=w(n)。式中,w(n)称为窗函数,

其长度为N。如果要求设计第一类线性相位FIRDF,则要求h(n)关于(N-1)/2点偶对称。而

关于n=t点偶对称,所以要求t=(N-1)/2。同时要求w(n)关于(N-1)/2点偶对称。 用窗函数法设计第一类线性相位FIRDF的步骤: (1)选择窗函数类型和长度,写出才窗函数根据阻带最小衰减选择窗函数

的表达式。

的的类型,再根据过渡带宽度确定所选窗函数的长

度N。用窗函数法设计的FIRDF通带波纹幅度近似等于阻带波纹幅度。一般阻带最小衰减达到40dB以上,则通带最大衰减就小于0.1dB。所以用窗函数法设计FIRDF时,通常只考虑阻带最小衰减就可以了。

《音乐信号滤波去噪——用凯塞窗设计的滤波器》 第6页 共19页

(2)构造希望逼近的频率响应函数。

根据设计需要,一般选择线性相位理想滤波器(理想低通、理想高通、理想带通、理想带阻)。理想滤波器的截止频率?c近似为最终设计的FIRDF的过渡带中心频率,幅度函数衰减一半(约-6dB)。所以一般取边界频率。

(3)计算

(4)加窗得到设计结果:h(n)=

,和分别为通带边界频率和阻带

w(n)。

3设计步骤

3.1 设计流程

开始 用麦克风采集一段音乐将格式改为.wav 加入单频噪声 对语音信号进行频谱分析,画出时域和频域波形图 用汉宁窗设计FIR滤波器 画出其频率响用FIR滤波器对语音信号进行滤波 画出语音信号滤波前后波形并且进行比较分析 结束

《音乐信号滤波去噪——用凯塞窗设计的滤波器》 第7页 共19页

3.2 采集音乐信号

在网络中找到自己想要的歌曲文件,并下载下来,即可对音乐文件进行文件格式转换及声音属性的变化。

在转换过程中,将音乐格式设置为wav格式,属性设置为4.410kHz,8位,单声道,128KB/秒,然后点击确定。然后再点击文件/另存为,即可将该语音文件存在MATLAB文件下的work文件夹里。

然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用,让我们很快理解了采样频率、采样位数等概念。采集完成后在信号中加入一个单频噪声。

对应程序如下:

[x,fs,bits]=wavread(‘yuntian.wav’); % 输入参数为文件的全路径和文件名(因为语音文件直接放在Matlab下的work文件夹里,所以直接使用文件名即可),输出的第一个参数是每个样本的值,fs是生成该波形文件时的采样率,bits是波形文件每样本的编码位数。

sound(x,fs,bits); % 按指定的采样率和每样本编码位数回放所录语音文件 N=length(x); % 计算信号x的长度

fn=1900; % 单频噪声频率,此参数可自己设计 t=0:1/fs:(N-1)/fs; % 计算时间范围,样本数除以采样频率 x=x’; %将其转置

y=x+sin(fn*2*pi*t); %在原信号上添加噪声

sound(y,fs,bits); % 应该可以明显听出有尖锐的单频啸叫声

3.3滤波器设计

在该滤波器的设计中,我们给出该滤波器的性能指标如下:

fpd=1800; fsd=1850; fsu=1950; fpu=2000;Rp=1; As=40;

截止频率也可以任意自选,在单频噪声干扰附近即可。在这里,很重要的是通带截止db值的设置。这个值一定要根据我们使用的设计滤波器的方法来设定。因为我使用的是凯塞窗法,凯塞窗函数中,滤波器的过渡带宽为15.4?/M,最小阻带衰减为108db。所以,一定要将通带截止db值设置的小于108,所以,我将其设置为100db。

《音乐信号滤波去噪——用凯塞窗设计的滤波器》 第8页 共19页

在这里我是使用窗函数法设计上面要求的FIR滤波器。在Matlab中,利用凯塞窗设计FIR滤波器,利用Matlab中的函数freqz画出该滤波器的频率响应。

首先,我们利用数字信号处理里面学过的知识,根据自己选定的参数,用指定的方法设计FIR滤波器,得到FIR滤波器的阶数M。随后调用nuttallwin (M)函数产生M阶的凯塞窗。然后,调用自编ideal_lp函数计算理想带阻滤波器的脉冲响应。最后,再调用自编freqz_m(h_bs,1)函数即可计算得到该滤波器的频率特性。

我设计滤波器过程对应的程序如下:

fpd=1800;fsd=1850;fsu=1950;fpu=2000;Rp=1;As=40; % 带阻滤波器设计指标 fcd=(fpd+fsd)/2;fcu=(fpu+fsu)/2;df=min((fsd-fpd),(fpu-fsu)); % 计算上下边带中心频率,和频率间隔 wcd=fcd/fs*2*pi;wcu=fcu/fs*2*pi;dw=df/fs*2*pi;

% 将Hz为单位的模拟频率换算为rad为单位的数字频率 wsd=fsd/fs*2*pi;wsu=fsu/fs*2*pi;

M=ceil(6.6*pi/dw)+1; % 计算凯塞窗设计该滤波器时需要的阶数 n=0:M-1; % 定义时间范围

w_ham= nuttallwin (M); % 产生M阶的凯塞窗 hd_bs=ideal_lp(wcd,M)+ideal_lp(pi,M)-ideal_lp(wcu,M); % 调用自编函数计算理想带阻滤波器的脉冲响应

h_bs=w_ham'.*hd_bs; % 用窗口法计算实际滤波器脉冲响应

[db,mag,pha,grd,w]=freqz_m(h_bs,1); % 调用自编函数计算滤波器的频率特性 在将滤波器设计好,频率特性求出来之后,我编写如下程序,来画出该带阻滤波器的特性图。程序如下:

subplot(2,2,1);plot(w,db); grid on; xlabel('频率');ylabel('db'); subplot(2,2,2);plot(w,mag); grid on; xlabel('频率');ylabel('幅度'); subplot(2,2,3);plot(w,pha); grid on; xlabel('频率');ylabel('相位'); subplot(2,2,4);plot(h_bs);grid on;

音乐信号滤波去噪—用凯塞窗设计的FIR滤波器.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2xbs41935a2p7v440mhm_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top