文档库 最新最全的文档下载
当前位置:文档库 › Matlab的窗函数,矩形窗,三角窗,汉明窗,汉宁窗,布莱克曼窗

Matlab的窗函数,矩形窗,三角窗,汉明窗,汉宁窗,布莱克曼窗

Matlab的窗函数,矩形窗,三角窗,汉明窗,汉宁窗,布莱克曼窗
Matlab的窗函数,矩形窗,三角窗,汉明窗,汉宁窗,布莱克曼窗

%N =51

%求矩形窗的频率响应图

wn = rectwin(51) ; %矩形窗函数

%20*log10(abs(WN))

[h1,w] = freqz(wn,1);

figure(1);

plot(w/pi,20*log10(abs(h1/max(h1))));

axis([0 1 -100 0]);

xlabel('归一化频率/\pi');

ylabel('20log_{10}|W(e^{j\omega})| /dB');

title('矩形窗的傅里叶变换');

set(gca,'YTick',[-100 -80 -60 -40 -20 0])

set(gca,'XTick',[0 :0.2: 1])

set(gca,'XAxisLocation','top'); %设置X轴在上方set(gca,'YAxisLocation','left'); %设置Y轴在左方text(1,-108,'\pi');%gtext('\pi');

%求三角窗的频率响应图

wn1 = bartlett(51);

[h1,w1] = freqz(wn1,1);

figure(2);

plot(w/pi,20*log10(abs(h1/max(h1))));

axis([0 1 -100 0]);

xlabel('归一化频率/\pi');

ylabel('20log_{10}|W(e^{j\omega})| /dB');

title('三角窗的傅里叶变换');

set(gca,'YTick',[-100 -80 -60 -40 -20 0])

set(gca,'XTick',[0 :0.2: 1])

set(gca,'XAxisLocation','top');%设置X轴在上方set(gca,'YAxisLocation','left'); %设置Y轴在左方%hanning

wn1 = hanning(51) ;

[h1,w1] = freqz(wn1,1);

figure(3);

plot(w/pi,20*log10(abs(h1/max(h1))));

axis([0 1 -100 0]);

xlabel('归一化频率/\pi');

ylabel('20log_{10}|W(e^{j\omega})| /dB');

title('Hanning的傅里叶变换');

set(gca,'YTick',[-100 -80 -60 -40 -20 0]);

set(gca,'XTick',[0 :0.2: 1]);

set(gca,'XAxisLocation','top');%设置X轴在上方set(gca,'YAxisLocation','left'); %设置Y轴在左方%hamming

wn1 = hamming(51) ;

[h1,w1] = freqz(wn1,1);

figure(4);

plot(w/pi,20*log10(abs(h1/max(h1))));

axis([0 1 -100 0]);

xlabel('归一化频率/\pi');

ylabel('20log_{10}|W(e^{j\omega})| /dB');

title('Hamming的傅里叶变换');

set(gca,'YTick',[-100 -80 -60 -40 -20 0])

set(gca,'XTick',[0 :0.2: 1])

set(gca,'XAxisLocation','top');%设置X轴在上方set(gca,'YAxisLocation','left'); %设置Y轴在左方%Blackman

wn1 = blackman(51) ;

[h1,w1] = freqz(wn1,1);

figure(5);

plot(w/pi,20*log10(abs(h1/max(h1))));

axis([0 1 -100 0]);

xlabel('归一化频率/\pi');

ylabel('20log_{10}|W(e^{j\omega})| /dB');

title('Blackman的傅里叶变换');

set(gca,'YTick',[-100 -80 -60 -40 -20 0])

set(gca,'XTick',[0 :0.2: 1])

set(gca,'XAxisLocation','top');%设置X轴在上方set(gca,'YAxisLocation','left'); %设置Y轴在左方

参考书:数字信号处理教程(第三版) 程佩青清华大学出版社2009年11月第9次印刷

P340的图7-11

矩形窗三角窗汉宁窗海明窗布拉克曼窗

频谱分析中如何选择合适的窗函数

频谱分析中如何选择合适的窗函数 1、信号截断及能量泄漏效应 数字信号处理的主要数学工具是傅里叶变换。应注意到,傅里叶变换是研究整个时间域和频率域的关系。然而,当运用计算机实现工程测试信号处理时,不可能对无限长的信号进行测量和运算,而是取其有限的时间片段进行分析。做法是从信号中截取一个时间片段,然后用观察的信号时间片段进行周期延拓处理,得到虚拟的无限长的信号,然后就可以对信号进行傅里叶变换、相关分析等数学处理。 周期延拓后的信号与真实信号是不同的,下面从数学的角度来看这种处理带来的误差情况。设有余弦信号x(t)在时域分布为无限长(- ∞,∞),将截断信号的谱XT(ω)与原始信号的谱X(ω)相比,它已不是原来的两条谱线,而是两段振荡的连续谱。这表明原来的信号被截断以后,其频谱发生了畸变,原来集中在f0处的能量被分散到两个较宽的频带中去了,这种现象称之为频谱能量泄漏(Leakage)。 信号截断以后产生的能量泄漏现象是必然的,因为窗函数w(t)是一个频带无限的函数,所以即使原信号x(t)是限带宽信号,而在截断以后也必然成为无限带宽的函数,即信号在频域的能量与分布被扩展了。又从采样定理可知,无论采样频率多高,只要信号一经截断,就不可避免地引起混叠,因此信号截断必然导致一些误差,这是信号分析中不容忽视的问题。 如果增大截断长度T,即矩形窗口加宽,则窗谱W(ω)将被压缩变窄(π/T减小)。虽然理论上讲,其频谱范围仍为无限宽,但实际上中心频率以外的频率分量衰减较快,因而泄漏误差将减小。当窗口宽度T趋于无穷大时,则谱窗W(ω)将变为δ(ω)函数,而δ(ω)与X(ω)的卷积仍为H(ω),这说明,如果窗口无限宽,即不截断,就不存在泄漏误差。 为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截断,截断函数称为窗函数,简称为窗。泄漏与窗函数频谱的两侧旁瓣有关,如果两侧p旁瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱,为此,在时间域中可采用不同的窗函数来截断信号。 2、常用窗函数 实际应用的窗函数,可分为以下主要类型: 幂窗:采用时间变量某种幂次的函数,如矩形、三角形、梯形或其它时间函数x(t)的高次幂;三角函数窗:应用三角函数,即正弦或余弦函数等组合成复合函数,例如汉宁窗、海明窗等;指数窗。:采用指数时间函数,如e-st形式,例如高斯窗等。

实验六、用窗函数法设计FIR滤波器

实验六 用窗函数法设计 FIR 滤波器 一、实验目的 (1) 掌握用窗函数法设计FIR 数字滤波器的原理和方法。 (2) 熟悉线性相位FIR 数字滤波器特性。 (3) 了解各种窗函数对滤波特性的影响。 二、实验原理 滤波器的理想频率响应函数为H d (e j ω ),则其对应的单位脉冲响应为: h d (n) = ?-π π ωωωπ d e e H n j j d )(21 窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼h d (n)。由于h d (n)往往是无 限长序列,且是非因果的,所以用窗函数。w(n)将h d (n)截断,并进行加权处理: h(n) = h d (n) w(n) h(n)就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数H(e j ω )为: H(e j ω ) = ∑-=-1 )(N n n j e n h ω 如果要求线性相位特性,则h (n )还必须满足: )1()(n N h n h --±= 可根据具体情况选择h(n)的长度及对称性。 用窗函数法设计的滤波器性能取决于窗函数w(n)的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。 三、实验步骤 1. 写出理想低通滤波器的传输函数和单位脉冲响应。 2. 写出用四种窗函数设计的滤波器的单位脉冲响应。 3. 用窗函数法设计一个线性相位FIR 低通滤波器,用理想低通滤波器作为逼近滤波器,截止频率ωc =π/4 rad ,选择窗函数的长度N =15,33两种情况。要求在两种窗口长度下,分别求出h(n),打印出相应的幅频特性和相频特性曲线,观察3dB 带宽和阻带衰减; 4 用其它窗函数(汉宁窗(升余弦窗)、哈明窗(改进的升余弦窗)、布莱克曼窗) 设计该滤波器,要求同1;比较四种窗函数对滤波器特性的影响。 四、实验用MATLAB 函数 可以调用MATLAB 工具箱函数fir1实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft 来计算滤波器的频率响应函数。

几种常见窗函数及其MATLAB程序实现

几种常见窗函数及其MATLAB程序实现 2013-12-16 13:58 2296人阅读评论(0) 收藏举报 分类: Matlab(15) 数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。在FFT分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。 泄漏与窗函数频谱的两侧旁瓣有关,对于窗函数的选用总的原则是,要从保持最大信息和消除旁瓣的综合效果出发来考虑问题,尽可能使窗函数频谱中的主瓣宽度应尽量窄,以获得较陡的过渡带;旁瓣衰减应尽量大,以提高阻带的衰减,但通常都不能同时满足这两个要求。 频谱中的如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。信号的加窗处理,重要的问题是在于根据信号的性质和研究目的来选用窗函数。图1是几种常用的窗函数的时域和频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低,如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用矩形窗,例如测量物体的自振频率等;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。表1 是几种常用的窗函数的比较。 如果被测信号是随机或者未知的,或者是一般使用者对窗函数不大了解,要求也不是特别高时,可以选择汉宁窗,因为它的泄漏、波动都较小,并且选择性也较高。但在用于校准时选用平顶窗较好,因为它的通带波动非常小,幅度误差也较小。

实验11 用MATLAB设计FIR数字滤波器

实验11 用MATLAB 设计FIR 数字滤波器 一、实验目的: 1、加深对窗函数法设计FIR 数字滤波器的基本原理的理解。 2、学习用MA TLAB 语言的窗函数法编写设计FIR 数字滤波器的程序。 3、了解MATLAB 语言有关窗函数法设计FIR 数字滤波器的常用函数用法。 二、实验内容及步骤 2、选择合适的窗函数设计FIR 数字低通滤波器,要求: w p =0.2π,R p =0.05dB ; w s =0.3π,A s =40dB 。描绘该滤波器的脉冲响应、窗函数及滤波器的幅频响应曲线和相频响应曲线。 分析:根据设计指标要求,并查表11-1,选择汉宁窗。程序清单如下: function hd=ideal_lp(wc,N) wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp; tao=(N-1)/2; n=[0:(N-1)]; m=n-tao+eps; hd=sin(wc*m)./(pi*m); function[db,mag,pha,grd,w]=freqz_m(b,a); [H,w]=freqz(b,a,1000,'whole'); H=(H(1:501))';w=(w(1:501))'; mag=abs(H); db=20*log10((mag+eps)/max(mag)); pha=angle(H); grd=grpdelay(b,a,w); wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp; wc=(ws+wp)/2; 课程名称:数字信号处理 实验成绩: 指导教师: 实 验 报 告 院系: 信息工程学院 班级: 电信二班 学号: 姓名: 日期:

用窗函数法设计FIR数字滤波器

用窗函数法设计FIR 数字滤波器 一、实验目的 1.掌握用窗函数法设计FIR 数字滤波器的原理和方法。 2.熟悉线性相位FIR 数字滤波器特征。 3.了解各种窗函数对滤波特性的影响。 二、实验仪器 微型计算机 matlab 软件 三、实验原理和方法 如果所希望的滤波器的理想频率响应函数为 )(ωj d e H ,则其对应的单位脉冲响应为 )(n h d =π21 ωωωππd e e H j j d )(?- (2-1) 窗函数设计法的基本原理是用有限长单位脉冲响应序列)(n h 逼近)(n h d 。由于)(n h d 往往是无限长序列,且是非因果的,所以用窗函数)(n ω将)(n h d 截断,并进行加权处理,得到: )(n h =)(n h d )(n ω (2-2) )(n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列, 其频率响应函数)(ωj d e H 为: )(ωj d e H =∑-=-1 0)(N n j e n h ω (2-3) 式中,N 为所选窗函数)(n ω的长度。 由第七章可知,用窗函数法设计的滤波器性能取决于窗函数)(n ω的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见第七章。 这样选定窗函数类型和长度N 后,求出单位脉冲响应)(n h =)(n h d ·)(n ω,并按式(2-3)求出)(ωj e H 。)(ωj e H 是否满足要求,要进行验算。一般在)(n h 尾部加零使长度满足于2的整数次幂,以便用FFT 计算)(ωj e H 。如果要观察细节,补零点数增多即可。如果)(ωj e H 不满足要求,则要重新选择窗函数类型和长度N ,再次验算,直至满足要求。 如果要求线性相位特性,则)(n h 还必须满足 )1()(n N h n h --±= (2-4) 根据上式中的正负号和长度N 的奇偶性又将线性相位FIR 滤波器分成四类。要根据设计的滤波特性正确选择其中一类。例如,要设计线性低通特征,可选择)1()(n N h n h --=一类,而不能选)1()(n N h n h ---=一类。 四、实验内容

MATLAB各种“窗函数”定义及调用

MATLAB窗函数大全 1.矩形窗(Rectangle Window)调用格式:w=boxcar(n),根据长度n 产生一个矩形窗w。 2.三角窗(Triangular Window)调用格式:w=triang(n),根据长度n 产生一个三角窗w。 3.汉宁窗(Hanning Window)调用格式:w=hanning(n),根据长度n 产生一个汉宁窗w。 4.海明窗(Hamming Window)调用格式:w=hamming(n),根据长度n 产生一个海明窗w。 5.布拉克曼窗(Blackman Window)调用格式:w=blackman(n),根据长度n 产生一个布拉克曼窗w。 6.恺撒窗(Kaiser Window)调用格式:w=kaiser(n,beta),根据长度n 和影响窗函数旁瓣的β参数产生一个恺撒窗w。 窗函数: 1.矩形窗:利用w=boxcar(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。‘w=boxcar(n)’等价于‘w=ones(1,n)’. 2.三角窗:利用w=triang(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。 w=triang(N-2)等价于bartlett(N)。

3.汉宁窗:利用w=hanning(n)得到窗函数,其中n为窗函数的长度,而返回值w 为一个n 阶的向量,包含了窗函数的n个系数。 4.海明窗:利用w=hamming(n)得到窗函数,其中n为窗函数的长度,而返回值w 为一个n 阶的向量,包含了窗函数的n个系数。它和汉宁窗的主瓣宽度相同,但是它的旁瓣进一步被压低。 5.布拉克曼窗:利用w=blackman(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。它的主瓣宽度是矩形窗主瓣宽度的3倍,为12*pi/N,但是它的最大旁瓣值比主瓣值低57dB。 6.切比雪夫窗:它是等波纹的,利用函数w=chebwin(N,R)方式设计出N阶的切比雪夫2窗函数,函数的主瓣值比旁瓣值高RdB,且旁瓣是等波纹的。 7.巴特里特窗:利用w=bartlett(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。 8.凯塞窗:利用w=kaiser(n,beta)的形式得到窗函数。

窗函数法设计FIR数字滤波器

数字信号处理实验报告 ---实验4窗函数法设计FIR数字滤波器 一、实验目的 1.了解常用的几种窗函数,能正确选择适当的窗函数进行滤波器设计; 2.掌握窗函数法设计数字低通滤波器。 二、实验原理 1.常用的窗函数: 矩形窗函数为boxcar和rectwin,调用格式: w= boxcar(N) w= rectwin(N) 其中N是窗函数的长度,返回值w是一个N阶的向量。 三角窗函数为triang,调用格式: w= triang(N) 汉宁窗函数为hann,调用格式: w= hann(N) 海明窗函数为hamming,调用格式: w= hamming(N) 2.各个窗函数的性能比较

三、实验内容 题一:生成四种窗函数:矩形窗、三角窗、汉宁窗、海明窗,并观察其频率响应。 题二:根据下列技术指标,设计一个FIR数字低通滤波器:wp=0.2π,ws=0.4π,ap=0.25dB, as=50dB,选择一个适当的窗函数,确定单位冲激响应,绘出所设计的滤波器的幅度响应。 四、上机程序及运行结果 题一:n=30; %矩形窗及其频响 window1=rectwin(n); [h1,w1]=freqz(window1,1); subplot(4,2,1); stem(window1);title('矩形窗');subplot(4,2,2); plot(w1/pi,20*log(abs(h1))/abs(h1(1)));title('矩形窗频响'); %三角窗及其频响 window2=triang(n); [h2,w2]=freqz(window2,1); subplot(4,2,3);stem(window2);title('三角窗'); subplot(4,2,4); plot(w2/pi,20*log(abs(h2))/abs(h2(1)));title('三角窗频响'); %汉宁窗及其频响 window3=hann(n); [h3,w3]=freqz(window3,1); subplot(4,2,5);stem(window3);title('汉宁窗'); subplot(4,2,6); plot(w3/pi,20*log(abs(h3))/abs(h3(1)));title('汉宁窗频响'); %海明窗频响 window4=hamming(n);

实验四 窗函数法设计FIR数字滤波器

实验四 窗函数法设计FIR 数字滤波器 一、实验目的 1、掌握窗函数法设计FIR 数字滤波器的原理及具体方法。 2、掌握频率取样法设计FIR 数字滤波器的原理和基本方法。 3、学习利用窗函数法和频率取样法设计低通、带通、高通、带阻数字滤波器。 二、实验环境 计算机、MATLAB 软件 三、实验基础理论 窗函数设计FIR 滤波器 1.基本原理 窗函数设计法的基本思想为,首先选择一个适当的理想的滤波器()j d H e ω ,然后 用窗函数截取它的单位脉冲响应(n)d h ,得到线性相位和因果的FIR 滤波器。这种方法的重点是选择一个合适的窗函数和理想滤波器,使设计的滤波器的单位脉冲响应逼近理想滤波器的单位脉冲响应。 2.设计步骤 (1)给定理想滤波器的频率响应()j d H e ω ,在通带上具有单位增益和线性相位, 在阻带上具有零响应。一个带宽为()c c ωωπ<的低通滤波器由下式给定: π ωωωωωωω≤<=≤=-||,0)(,||,)(c j d c ja j d e H e e H 其中α为采样延迟,其作用是为了得到一个因果系统。 (2)确定这个滤波器的单位脉冲响应 ) ()) (sin()(a n a n n h c d --= πω 为了得到一个(n)h 长度为N 的因果的线性相位FIR 滤波器,我们令 2 1 -= N a (3)用窗函数截取(n)d h 得到所设计FIR 数字滤波器:)()()(n R n h n h N d = 3.窗函数的选择 常用的窗函数有矩形(Rectangular )窗,汉宁(Hanning )窗,海明(Hamming )窗、布莱克曼(Blackman )窗、凯瑟(Kaiser )窗等 表4-1 MATLAB 中产生窗函数的命令

实验3 用MATLAB窗函数法设计FIR滤波器

实验10 用MATLAB 窗函数法设计FIR 滤波器 一、实验目的 ㈠、学习用MA TLAB 语言窗函数法编写简单的FIR 数字滤波器设计程序。 ㈡、实现设计的FIR 数字滤波器,对信号进行实时处理。 二、实验原理 ㈠、运用窗函数法设计FIR 数字滤波器 与IIR 滤波器相比,FIR 滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。设FIR 滤波器单位脉冲响应)(n h 长度为N ,其系统函数)(z H 为 ∑-=-=1 0)()(N n n z n h z H )(z H 是1-z 的)1(-N 次多项式,它在z 平面上有)1(-N 个零点,原点0=z 是)1(-N 阶重极点。因此,)(z H 永远是稳定的。稳定和线性相位特性是FIR 滤波器突出的优点。 FIR 滤波器的设计任务是选择有限长度的)(n h ,使传输函数)(ωj e H 满足技术要求。主要设计方法有窗函数法、频率采样法和切比雪夫等波纹逼近法。本实验主要介绍用窗函数法设计FIR 数字滤波器。 图7-10-1 例1 带通FIR 滤波器特性 ㈡、 用MATLAB 语言设计FIR 数字滤波器 例1:设计一个24阶FIR 带通滤波器,通带为0.35<ω<0.65。其程序如下 b=fir1(48,[0.35 0.65]); freqz(b,1,512)

可得到如图7-10-1 所示的带通FIR滤波器特性。由程序可知,该滤波器采用了缺省的Hamming窗。 例2:设计一个34阶的高通FIR滤波器,截止频率为0.48,并使用具有30dB波纹的Chebyshev窗。其程序如下 Window=chebwin(35,30); b=fir1(34,0.48,'high',Window); freqz(b,1,512) 可得到如图7-10-2 所示的高通FIR滤波器特性。 图7-10-2 例2 高通FIR滤波器特性 例3:设计一个30阶的低通FIR滤波器,使之与期望频率特性相近,其程序如下 f=[0 0.6 0.6 1]; m=[1 1 0 0]; b=fir2(30,f,m); [h,w]=freqz(b,1,128); plot(f,m,w/pi,abs(h)) 结果如图7-10-3所示。 图7-10-3 例3 理想和实际滤波器特性 例4:使用Hamming窗设计一个50阶的FIR带通滤波器,通带为0.3<ω<0.7,试用绝对和相对两种形式显示其幅频特性。 w1=0.3;w2=0.7;n=50; Window=hamming(n+1); b=fir1(n,[w1 w2],Window); [h,w]=freqz(b,1); GB=real(20*log10(h)); subplot(2,1,1);plot(w/pi,abs(h),'linewidth',2 );

窗函数比较

数字信号处理中加窗的影响及窗函数的选择原则分析 摘要:简要介绍了数字信号处理中主要应用的几种窗函数的定义及特性,并分析了加窗在数字信号处理中对谱估计质量的影响,通过对不同信号加窗的分析,总结了窗函数的选择原则。最后谈谈关于本课程的一些理解和感想。 关键字:数字信号;窗函数;谱估计;信号处理 一、 引言 数字信号处理是当前信息处理技术一个十分活跃的分支,由于计算机和大规模集成电路技术的发展,使得它成为神经网络、故障诊断等现代科学技术领域中一种重要的工具。传统的信号处理主要是建立在连续时间信号和连续时间系统基础上的。数字信号处理则是研究用数字序列表示信号波形,并且用数字的方式去处理这些序列。由于数字信号处理具有完善的重现性和极高的稳定性,只要有足够的字长,就能实现高精度和大动态范围的信号处理。这就显示了模拟系统无法比拟的优越性[3]。 在数字信号处理中,实际需检测的物理信号或过程通常是非时限的,但由于计算速度和处理工作量以及计算机存贮容量等方面的限制,我们只能从中选取有限时长的数据样本加以处理。也就是说在数字信号的处理过程中,原始的非时限信号必然要被截断,这相当于使本来无限长的原始数据序列通过一定的数据窗口,必然会对数据处理的结果造成不良的影响, 即产生窗口效应。本文将就这种窗口效应以及为抑制这种效应、改善数据处理效果而合理应用窗函数的原则加以探讨[5]。 二、 几种典型的窗函数 一些典型窗函数的时域和频域表达式及其构成思路归类叙述如下[1]: 1、 矩形窗(Rectangular 窗) 矩形窗属于时间变量为零次幂窗,函数形式为 ?????>≤≤=T t T t T t w , 0;0,1)( 相应的谱窗为T T W ωωωsin 2)(= 矩形窗使用最多,习惯上不加窗就是使函数通过了矩形窗。这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄露,甚至出现负谱现象。

基于matlab的FIR数字滤波器设计(多通带,窗函数法)

数字信号处理 课程设计报告 设计名称:基于matlab的FIR数字滤波器设计 彪

一、课程设计的目的 1、通过课程设计把自己在大学中所学的知识应用到实践当中。 2、深入了解利用Matlab设计FIR数字滤波器的基本方法。 3、在课程设计的过程中掌握程序编译及软件设计的基本方法。 4、提高自己对于新知识的学习能力及进行实际操作的能力。 5、锻炼自己通过网络及各种资料解决实际问题的能力。 二、主要设计内容 利用窗函数法设计FIR滤波器,绘制出滤波器的特性图。利用所设计的滤波器对多个频带叠加的正弦信号进行处理,对比滤波前后的信号时域和频域图,验证滤波器的效果。 三、设计原理 FIR 滤波器具有严格的相位特性,对于信号处理和数据传输是很重要的。 目前 FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求高的时候是比较灵活方便的。 如果 FIR 滤波器的 h(n)为实数, 而且满足以下任意条件,滤波器就具有准确的线性相位: 第一种:偶对称,h(n)=h(N-1-n),φ (ω)=-(N-1)ω/2 第二种:奇对称,h(n)=-h(N-1-n), φ(ω)=-(N-1)ω/2+pi/2 对称中心在n=(N-1)/2处 四、设计步骤 1.设计滤波器 2.所设计的滤波器对多个频带叠加的正弦信号进行处理 3.比较滤波前后信号的波形及频谱 五、用窗函数设FIR 滤波器的基本方法 基本思路:从时域出发设计 h(n)逼近理想 hd(n)。设理想滤波器的单位响应在时域表达为hd(n),则Hd(n) 一般是无限长的,且是非因果的,不能

窗函数的选择

窗函数的选择 摘要:在信号分析时,我们一般会截取有限的波形数据做傅里叶变换,这个截断过程会产生泄漏,导致功率扩散到整个频谱范围,产生大量“雾霾数据”,无法得到正确的频谱结果。虽然知道加窗可以抑制泄漏,但复杂的窗函数表达式及抽象的主瓣旁瓣描述方法,另人更加迷惑,下面我们抛弃公式用通俗易懂的方式介绍窗函数的选择。 1. 加窗与窗函数 在数字信号处理中,常见的有矩形窗、汉宁窗、海明窗和平顶窗,这里不再赘述窗函数的表达式,只讨论窗函数的使用,下图直观地描述了信号加窗的过程及窗函数基本特征。 图 1 信号加窗后频率普图 直观地,在时域上看,加窗其实就是将窗函数作为调制波,输入信号作为载波进行振幅调制(简称调幅)。矩形窗对截取的时间窗内的波形未做任何改变,即只是截断信号原样输出。而其它三种窗函数都将时间窗内开始和结束处的信号调制到了零。 更普遍地,绝大部分窗函数形状都具有类似从中间到两边逐渐下降的形状,只是下降的速度等细节上有所区别。这个特征体现了加窗的目的——降低截断引起的泄漏,所有窗函数都是通过降低起始和结束处的信号幅度,来减小截断边沿处信号突变产生的额外频谱。 2. 窗函数的选择 从图 1中很明显看出,加窗后信号时域的变化显著,由于后续的处理一般是进行傅里叶变换,所以我们主要分析加窗对傅里叶变换结果的影响。傅里叶变换后主要的特征有频率、幅值和相位,而加窗对相位的影响是线性的,所以一般不用考虑,下面讨论对频率和幅值的影响。 加窗对频率和幅值的影响是关联的,首先需要记住一个结论:对于时域的单个频率信号,加窗之后的频谱就是将窗谱的谱峰位置平移到信号的频率处,然后进行垂直缩放。说明加窗的影响取决于窗的功率谱,再结合上图 1中最后一列窗函数的功率谱,容易理解其它介绍文章中常看到的对窗特征的主瓣、旁瓣等的描述。 再来看窗函数的功率谱,从上到下,窗函数的主峰(即主瓣)越来越粗,两边的副峰(即旁瓣)越来越少,平顶窗的名称也因主瓣顶峰较平而得名。主瓣宽就可能与附近的频率的谱相叠加,意味着更难找到叠加后功率谱中最大的频率点,即降低了频率分辨率,较难定位中心频率。旁瓣多意味着信号功率泄露多,主瓣被削弱了,即幅值精度降低了。

利用MATLAB进行基于窗函数的FIR数字滤波器的设计

西南石油大学实验报告 一实验目的: 学习利用MATLAB进行基于窗函数的FIR数字滤波器的设计。 二实验内容: 利用矩形窗、哈明窗、汉宁窗和布莱克曼窗设计一个FIR低通滤波器,已知ωc=0.25π,N=10 三实验步骤: 1、实验程序 N=10; M=128; b1=fir1(N,0.25,boxcar(N+1)); %用矩形窗作为冲激响应的窗函数 b2=fir1(N,0.25,hamming(N+1)); %用哈明窗作为冲激响应的窗函数 b3=fir1(N,0.25,blackman(N+1)); %用布莱克曼窗作为冲激响应的窗函数 b4=fir1(N,0.25,hanning(N+1)); %用汉宁窗作为冲激响应的窗函数 h1=freqz(b1,1,M); %矩形窗对应的频率响应 h2=freqz(b2,1,M); %哈明窗对应的频率响应 h3=freqz(b3,1,M); %布莱克曼窗对应的频率响应 h4=freqz(b4,1,M); %汉宁窗对应的频率响应 f=0:0.5/M:0.5-0.5/M; plot(f,abs(h1),'-.',f,abs(h2),f,abs(h3),'*',f,abs(h4),':'); legend('??D?′°','1t?÷′°','BLACKMAN','oo?t′°'); grid; ylabel('magnitude response'); xlabel('w/(2*pi)'); axis([0 0.5 0 1.2]); set(gca,'XTickMode','manual','XTick',[0,0.25,0.5]); set(gca,'YTickMode','manual','XTick',[0,0.5,1]);

利用MATLAB窗函数法设计一个可实现的FIR低通滤波器。

一、实验目的 1.掌握在MATLAB中窗函数的使用方法,了解不同窗函数之间的差别。 2.使用窗函数法设计一个可实现的FIR低通滤波器。 3.观察在相同长度下,不同的窗函数设计出来的滤波器有什么差别。 4.观察同一个窗在不同长度下设计出来的滤波器有什么差别。 二、实验条件 PC机,MATLAB7.0 三、实验内容 1)通过help查找窗函数在MATLAB中如何实现

通过example了解MATLAB中窗函数的实现,并且利用矩形窗,汉宁窗,哈明窗,布莱克曼窗和凯塞窗来进行接下来的实验。 2)设计物理可实现的低通滤波器 设计思路:因为要设计FIR有限脉冲响应滤波器,通常的理想滤波器的单位脉冲响应h是无限长的,所以需要通过窗来截断它,从而变成可实现的低通滤波器。程序如下:clc;clear all; omga_d=pi/5; omga=0:pi/30:pi; for N=3:4:51; w1= window(@blackman,N); w2 = window(@hamming,N); w3= window(@kaiser,N,2.5); w4= window(@hann,N); w5 = window(@rectwin,N); M=floor(N/2); subplot(311);plot(-M:M,[w1,w2,w3,w4,w5]); axis([-M M 0 1]); legend('Blackman','Hamming','kaiser','hann','rectwin'); n=1:M; hd=sin(n*omga_d)./(n*omga_d)*omga_d/pi; hd=[fliplr(hd),1/omga_d,hd]; h_d1=hd.*w1';h_d2=hd.*w2';h_d3=hd.*w3';h_d4=hd.*w4';h_d5=hd.*w5'; m=1:M; H_d1=2*cos(omga'*m)*h_d1(M+2:N)'+h_d1(M+1); H_d2=2*cos(omga'*m)*h_d2(M+2:N)'+h_d2(M+1); H_d3=2*cos(omga'*m)*h_d3(M+2:N)'+h_d3(M+1); H_d4=2*cos(omga'*m)*h_d4(M+2:N)'+h_d4(M+1); H_d5=2*cos(omga'*m)*h_d5(M+2:N)'+h_d5(M+1); subplot(312);plot(omga,[H_d1,H_d2,H_d3,H_d4,H_d5]); legend('Blackman','Hamming','kaiser','hann','rectwin'); subplot(313);plot(abs([fft(h_d1);fft(h_d2);fft(h_d3);fft(h_d4);fft(h_d5)] )'); pause(); end 程序分析: 整个对称窗的长度为N,然而为了在MATLAB中看到窗函数在负值时的形状需将N 变为它的一半,即为2M+1个长度。窗长设置为从3开始以4为间隔一直跳动51。则长度相同的不同窗函数在时域[-M,M]的形状如第一个图所示。 对窗函数进行傅里叶变换时,将零点跳过去先构造一个一半的理想滤波器的脉冲响应hd,再将零点位置求导得出的数赋值进去。将生成的hd左右颠倒形成了一个理想的滤波器的脉冲响应。将构造的理想滤波器的脉冲响应依次与之前定义的窗函数相乘,相乘出来的为列向量,用转置将其变成行向量,形成的h_d就是非理想的低通滤波器的脉冲响应序列。因为h_d为对称奇数长度序列,它的DTFT可以是二倍的离散余弦变化,而零点的位置则直接带入求出,两者相加则是H_d。 则第二个图表示的是五个矩阵向量在频域的变化,而第三个图表示的是五个非理想低

窗函数选择及六种窗函数

4.4窗函数的选择 如果在测试中可以保证不会有泄露的发生,则不需要用任何的窗函数(在软件中可选择uniform)。但是如同刚刚讨论的那样,这种情况只是发生在时间足够长的瞬态捕捉和一帧数据中正好包含信号整周期的情况。 如果测试信号有多个频率分量,频谱表现的十分复杂,且测试的目的更多关注频率点而非能量的大小。在这种情况下,需要选择一个主畔够窄的窗函数,汉宁窗是一个很好的选择。 如果测试的目的更多的关注某周期信号频率点的能量值,比如,更关心其EUpeak,EUpeak-peak,EUrms或者EUrms2,那么其幅度的准确性则更加的重要,可以选择一个主畔稍宽的窗,flattop窗在这样的情况下经常被使用。 对冲击实验的数据进行分析时,因为在数据帧开始段的一些重要信息会被一般的窗函数所衰减,因此可以使用force/exponential窗。Force窗一移去了数据帧末端的噪声,对激励信号有用。而exponential窗则确保响应信号在末端的振动衰减为零值。 如果被测信号是随机或者未知的,选择汉宁窗 clf;Nf=512; %窗函数复数频率特性的数据点数 Nwin=20; %窗函数数据长度 figure(1) for ii=1:4 switch ii case 1 w=boxcar(Nwin); %矩形窗 stext='矩形窗函数幅频'; case 2 w=hanning(Nwin); %汉宁窗 stext='hanning窗函数幅频'; case 3 w=hamming(Nwin); %海明窗

stext='hamming窗函数幅频'; case 4 w=triang(Nwin); %三角窗 stext='triang窗函数幅频 '; end [y,f]=freqz(w,1,Nf); %求解窗函数的幅频特性 mag=abs(y); %求得窗函数幅频特性 posplot=['2,2,' int2str(ii)]; subplot(posplot); plot(f/pi,20* log10(mag/max(mag))); %绘制窗函数的幅频特性xlabel('归一化频率');ylabel('振幅/dB'); title(stext);grid on; end

matlab实验窗函数

实验程序及运行结果: 1. 矩形窗 N=32; w=boxcar(N); nn=0:(N-1); stem(nn,w) Hanning窗 N=32; w=hanning(N); nn=0:(N-1); stem(nn,w) Hamming窗 N=32; w=hamming(N); nn=0:(N-1); stem(nn,w)

N=32; w=bartelett(N); nn=0:(N-1); stem(nn,w) Blackman窗 N=32; w=blackman(N); nn=0:(N-1); stem(nn,w) Triang窗 N=32; w=blackman(N); nn=0:(N-1); stem(nn,w)

N=32; b=8; w=kaiser(N,b); nn=0:(N-1); stem(nn,w) Chebwin窗 N=32; r1=30; r2=50; w1=chebwin(N,r1); w2=chebwin(N,r2); nn=0:(N-1); subplot(211); stem(nn,w1),title(' r=30'); subplot(212); stem(nn,w2),title(' r=50'); 2. 矩形窗 N=16; w=boxcar(N); [H,W]=dtft(w,2048); plot(W/pi,abs(H)) 05101520253035 05101520253035

Hanning窗 N=16; w=hanning(N); [H,W]=dtft(w,2048); plot(W/pi,abs(H)) Hamming窗 N=16; w=hamming(N); [H,W]=dtft(w,2048); plot(W/pi,abs(H)) Bartlett窗 N=16; w=bartlett(N); [H,W]=dtft(w,2048); plot(W/pi,abs(H)) -1-0.8-0.6-0.4-0.200.20.40.60.81

FIR滤波器的窗函数法模型选择与设计

武汉工程大学 电气信息学院 《信号与系统分析处理(基于Matlab)》实验报告[ 4 ] 专业班级实验时间2010 年 12月 3 日学生学号实验地点 学生姓名指导教师 实验项目FIR滤波器的窗函数法模型选择与设计 实验类别设计实验实验学时3学时 实验目的及要求1.掌握用窗函数法、频率采样法设计FIR滤波器的原理及方法,熟悉响 应的计算机编程; 2.熟悉线性相位FIR滤波器的幅频特性和相频特性; 3.了解各种不同窗函数对滤波器性能的影响。 成绩评定表 类别评分标准分值得分合计 上机表现 按时出勤、遵守纪律 认真完成各项实验内容 30分 报告质量程序代码规范、功能正确 填写内容完整、体现收获70分 说明: 评阅教师:

日期: 2010年 11 月 3 日 实验内容 一、实验内容 1.熟悉FIR滤波器的理论知识,掌握Simulink工具包中FIR滤波器设计工具的不同窗函数类型。 2.选择矩形窗、汉明窗、汉宁窗、布莱克曼窗、凯撒窗等,设计采样频率为48KHz,通带截止频率为20KHz 的FIR滤波器,观察不同窗函数的频谱图及滤波器特征。 3.设计仿真模型,加载语音范围的频率激励信号,通过上述窗函数模型,对比分析仿真结果。 二、实验方法与步骤 1. 窗口法 窗函数法设计线性相位FIR滤波器步骤 ?确定数字滤波器的性能要求:临界频率{ωk},滤波器单位脉冲响应长度N; ?根据性能要求,合理选择单位脉冲响应h(n)的奇偶对称性,从而确定理想频率响应H d(e jω)的幅频特性和相频特性; ?求理想单位脉冲响应h d(n),在实际计算中,可对H d(e jω)按M(M远大于N)点等距离采样,并对其求IDFT得h M(n),用h M(n)代替h d(n); ?选择适当的窗函数w(n),根据h(n)= h d(n)w(n)求所需设计的FIR滤波器单位脉冲响应; ?求H(e jω),分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述设计过程,以得到满意的结果。 窗函数的傅式变换W(e jω)的主瓣决定了H(e jω)过渡带宽。W(e jω)的旁瓣大小和多少决定了H(e jω)在通带和阻带范围内波动幅度,常用的几种窗函数有: ?矩形窗w(n)=R N(n); ?Hanning窗; ?Hamming窗 ; ?Blackmen窗 ; ?Kaiser窗 。 式中I o(x)为零阶贝塞尔函数。 2. 频率采样法 频率采样法是从频域出发,将给定的理想频率响应Hd(e jω)加以等间隔采样 然后以此Hd(k)作为实际FIR数字滤波器的频率特性的采样值H(k),即令 由H(k)通过IDFT可得有限长序列h(n) 将上式代入到Z变换中去可得

实验六 用窗函数设计FIR滤波器(附思考题程序)

实验六 用窗函数设计FIR 滤波器 1.实验目的 (1) 熟悉FIR 滤波器设计的方法和原理 (2) 掌握用窗函数法设计FIR 滤波器的方法和原理,熟悉滤波器的特性 (3) 了解各种窗函数滤波器特性的影响 2.实验原理 FIR 滤波器的设计方法主要有三种:窗函数法、频率取样法、切比雪夫等波纹逼近法。FIR 滤波器的设计是要寻求一系统函数)(z H ,使其频率响应)(ωj e H 逼近滤波器要求的理想频率响应()j d H e ω,其对应的单位脉冲响应)(n h d 。 (1)用窗函数设计FIR 滤波器的基本方法 在时域用一个窗函数截取理想的)(n h d 得到)(n h ,以有限长序列)(n h 近似逼近理想的)(n h d ;在频域用理想的)(ωj d e H 在单位圆上等角度取样得到h(k),根据h(k)得到H(z)将逼近理想的Hd(z)。 设理想滤波器)(ωj d e H 的单位脉冲响应为)(n h d 。以低通线性相位FIR 数字滤波器为 例。 )(n h d 一般是无限长的、非因果的,不能直接作为FIR 滤波器的单位脉冲响应。要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断)()()(n w n h n h d =,即截取为有限长因果序列,并用合适的窗函数进行加权作为FIR 滤波器的单位脉冲响应。按照线性相位滤波器的要求,h(n)必须是偶对称的。对称中心必须等于滤波器的延时常数,即 用矩形窗设计的FIR 低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,(现象称为吉布斯(Gibbs )效应)。 (2)典型的窗函数 (a )矩形窗(Rectangle Window) 其频率响应和幅度响应分别为: 21)2/sin()2/sin()(--=N j j e N e W ωωωω,) 2/sin()2/sin()(ωωωN W R = 在matlab 中调用w=boxcar(N)函数,N 为窗函数的长度 (b )三角形窗(Bartlett Window) 其频率响应为:212])2/sin()4/sin([2)(--=N j j e N N e W ωω ωω 在matlab 中调用w=triang(N)函数,N 为窗函数的长度 (c )汉宁(Hanning)窗,又称升余弦窗 其频率响应和幅度响应分别为:

窗函数的实现与分析

目录 摘要...................................................................... I 1.窗函数 (1) 2.窗函数的种类 (2) 2.1 基本窗函数 (4) 2.2 广义余弦窗 (5) 3.基于matlab的实现 (9) 3.1MATLAB软件简介 (9) 3.2各窗函数的图形 (11) 3.3各窗函数的幅频特性 (13) 4.频谱泄露 (15) 4.1频谱泄漏原理 (15) 4.2 产生机理 (15) 4.3窗函数的频谱泄漏的抑制方法 (16) 4.4窗函数的选择 (18) 5.实验结果分析 (19) 6.心得体会 (20) 参考文献 (21)

摘要 现代图像、语声、数据通信对线性相位的要求是普遍的。正是此原因,使得具有线性相位的FIR数字滤波器得到大力发展和广泛应用。 在实际进行数字信号处理时,往往需要把信号的观察时间限制在一定的时间间隔内,只需要选择一段时间信号对其进行分析。这样,取用有限个数据,即将信号数据截断的过程,就等于将信号进行加窗函数操作。而这样操作以后,常常会发生频谱分量从其正常频谱扩展开来的现象,即所谓的“频谱泄漏”。当进行离散傅立叶变换时,时域中的截断是必需的,因此泄漏效应也是离散傅立叶变换所固有的,必须进行抑制。而要对频谱泄漏进行抑制,可以通过窗函数加权抑制DFT的等效滤波器的振幅特性的副瓣,或用窗函数加权使有限长度的输入信号周期延拓后在边界上尽量减少不连续程度的方法实现。而在后面的FIR滤波器的设计中,为获得有限长单位取样响应,需要用窗函数截断无限长单位取样响应序列。另外,在功率谱估计中也要遇到窗函数加权问题。由此可见,窗函数加权技术在数字信号处理中的重要地位。

相关文档
相关文档 最新文档