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

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

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

2013—12-1613:582296人阅读评论(0)收藏举报

分类:

Matlab(15)

数字信号处理中通常就是取其有限得时间片段进行分析,而不就是对无限长得信号进行测量与运算。具体做法就是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。信号得截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都就是不能消除得。在FFT分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同得截取函数对信号进行截短,截短函数称为窗函数,简称为窗。

泄漏与窗函数频谱得两侧旁瓣有关,对于窗函数得选用总得原则就是,要从保持最大信息与消除旁瓣得综合效果出发来考虑问题,尽可能使窗函数频谱中得主瓣宽度应尽量窄,以获得较陡得过渡带;旁瓣衰减应尽量大,以提高阻带得衰减,但通常都不能同时满足这两个要求。

频谱中得如果两侧瓣得高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实得频谱.不同得窗函数对信号频谱得影响就是不一样得,这主要就是因为不同得窗函数,产生泄漏得大小不一样,频率分辨能力也不一样。信号得加窗处理,重要得问题就是在于根据信号得性质与研究目得来选用窗函数。图1就是几种常用得窗函数得时域与频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低,如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用矩形窗,例如测量物体得自振频率等;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高;如果分析窄带信号,且有较强得干扰噪声,则应选用旁瓣幅度小得窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减得函数,可采用指数窗来提高信噪比.表1就是几种常用得窗函数得比较.

如果被测信号就是随机或者未知得,或者就是一般使用者对窗函数不大了解,要求也不就是特别高时,可以选择汉宁窗,因为它得泄漏、波动都较小,并且选择性也较高。但在用于校准时选用平顶窗较好,因为它得通带波动非常小,幅度误差也较小。

下面就是几种窗函数归一化DTFT幅度得MATLAB程序:附上DTFT函数(dtft、m):

function [ X ]= dtft( x,n,w )

%putes Discrete-timeFourier Transform % [X]= dtft(x,n,w)

%X= DTFTvalues puted atw、frequencies

%x = finite duration sequence overn

%n =sample position vector

%w = frequency location vector

X= x*exp(-j*n’*w);

%

end

矩形窗:

%DTFT of aRectangular Window,M=10,25,50,101

clc;close all;

Hf_1=figure;set(Hf_1,'NumberTitle','off','Name','P0304a’);

w=linspace(-pi,pi,501);wtick=[—1:0、5:1];magtick=[0:0、5:1、1];

% M=10

M=10;n=0:M; x=ones(1,length(n));

X=dtft(x,n,w); magX=abs(X);magX=magX/max(magX);

subplot(2,2,1); plot(w/pi,magX,'LineWidth',1、5);axis([—1 1 0 1、1]);

ylabel('|X|’); title([’M=10']);

set(gca,'XTick',wtick,'YTick',magtick);

%M=25

M=25;n=0:M;x=ones(1,length(n));

X=dtft(x,n,w);magX=abs(X); magX=magX/max(magX);

subplot(2,2,2);plot(w/pi,magX,’LineWidth’,1、5); axis([-1101、1]);

title(['M=25']);set(gca,'XTick’,wtick,’YTick',magtick);

% M=50

M=50;n=0:M; x=ones(1,length(n));

X=dtft(x,n,w);magX=abs(X);magX=magX/max(magX);

subplot(2,2,3); plot(w/pi,magX,'LineWidth’,1、5);axis([-11 0 1、1]);

xlabel('\omega/\pi'); ylabel(’|X|');

title(’M=50’); set(gca,'XTick',wtick,'YTick',magtick);

%M=101

M=101;n=0:M;x=ones(1,length(n));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,4);plot(w/pi,magX,'LineWidth',1、5);axis([-1 1 0 1、1]);

xlabel('\omega/\pi’); ylabel('|X|');

title(['M=101’]);

三角窗:

% Triangular Window:

%DTFT of a Triangular Window,M = 10,25,50,101

clc; closeall;

Hf_1=figure; set(Hf_1,'NumberTitle',’off’,'Name',’P0304b');

w=linspace(-pi,pi,501);wtick=[—1:0、5:1]; magtick=[0:0、5:1、1];%M= 10

M=10; n=0:M; x=(1-(abs(M—1—(2*n))/(M+1)));

x=dtft(x,n,w); magX=abs(X);magX=magX/max(magX);

subplot(2,2,1);plot(w/pi,magX,'LineWidth',1、5);axis([—1 101、1]);

ylabel('|X|'); title(['M = 10']);

set(gca,’XTick',wtick,'YTick',magtick);

%M =25

M=25;n=0:M;x=(1-(abs(M-1-(2*n))/(M+1)));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,2); plot(w/pi,magX,’LineWidth',1、5); axis([—1 1 0 1、1]);

title(['M = 25']);set(gca,'XTick',wtick,'YTick',magtick);

%M =50

M=50;n=0:M;x=(1-(abs(M—1—(2*n))/(M+1)));

X=dtft(x,n,w); magX=abs(X);magX=magX/max(magX);

subplot(2,2,3);plot(w/pi,magX,'LineWidth’,1、5);axis([-1 1 01、1]);

xlabel(’\omega/\pi’);ylabel('|X|’); title(['M = 50']);

set(gca,’XTick',wtick,'YTick’,magtick);

% M= 100

M=101;n=0:M; x=(1-(abs(M—1-(2*n))/(M+1)));

X=dtft(x,n,w);magX=abs(X); magX=magX/max(magX);

subplot(2,2,4);plot(w/pi,magX,’LineWidth',1、5);axis([-1 101、1]);

xlabel(’\omega/\pi');title([’M =101']);

set(gca,’XTick',wtick,'YTick',magtick);

海宁窗:

% Hann Window

% DTFT of a HannWindow,M =10,25,50,101

clc;close all;

Hf_1 = figure;set(Hf_1,'NumberTitle’,'off','Name’,'P0304c');w=linspace(-pi,pi,501); wtick=[-1:0、5:1]; magtick=[0:0、5:1、1];

%M= 10

M=10;n=0:M; x=0、5*(1-cos((2*pi*n)/(M-1)));

X=dtft(x,n,w);magX=abs(X); magX=magX/max(magX);

subplot(2,2,1);plot(w/pi,magX,'LineWidth',1、5); axis([—1 1 0 1、1]);

ylabel('|X|’);title([’M = 10’]);

set(gca,'XTick',wtick,’YTick’,magtick);

% M= 25

M=25;n=0:M;x=0、5*(1-cos((2*pi*n)/(M-1)));

X=dtft(x,n,w);magX=abs(X);magX=magX/max(magX);

subplot(2,2,2); plot(w/pi,magX,'LineWidth’,1、5); axis([—1 10 1、1]);

title(['M=25’]);

set(gca,’XTick',wtick,'YTick’,magtick);

% M = 50

M=50;n=0:M; x=0、5*(1-cos((2*pi*n)/(M-1)));

X=dtft(x,n,w);magX=abs(X); magX=magX/max(magX);

subplot(2,2,3);plot(w/pi,magX,'LineWidth',1、5); axis([-1 1 0 1、1]);

xlabel('\omega/\pi’); ylabel('|X|’);title([’M =50’]);

set(gca,'XTick',wtick,'YTick',magtick);

% M =101

M=101;n=0:M;x=0、5*(1-cos((2*pi*n)/(M—1)));

X=dtft(x,n,w); magX=abs(X);magX=magX/max(magX);

subplot(2,2,4);plot(w/pi,magX,’LineWidth’,1、5); axis([—110 1、1]);xlabel('\omega/\pi');title(['M = 101']);

set(gca,’XTick’,wtick,’YTick',magtick);

哈明窗:

% Hamming Window:

clc;close all;

Hf_1=figure; set(Hf_1,’NumberTitle','off','Name',’P0304d');

w=linspace(—pi,pi,501); wtick=[—1:0、5:1];magtick=[0:0、5:1、1];

% M =10

M=10;n=0:M; x=(0、54-0、46*cos((2*pi*n)/(M-1)));

X=dtft(x,n,w); magX=abs(X);magX=magX/max(magX);

subplot(2,2,1);plot(w/pi,magX,'LineWidth',1、5); axis([-1 1 0 1、1]);

ylabel('|X|');title(['M = 10’]);

set(gca,'XTick’,wtick,’YTick',magtick);

%M =25

M=25; n=0:M; x=(0、54—0、46*cos((2*pi*n)/(M—1)));

X=dtft(x,n,w);magX=abs(X);magX=magX/max(magX);

subplot(2,2,2);plot(w/pi,magX,'LineWidth',1、5);axis([-11 0 1、1]);

title(['M = 25']);

set(gca,’XTick’,wtick,’YTick',magtick);

%M =50

M=50; n=0:M;x=(0、54—0、46*cos((2*pi*n)/(M-1)));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,3); plot(w/pi,magX,'LineWidth',1、5); axis([—1 101、1]);

xlabel(’\omega/\pi');ylabel(’|X|');title([’M=50’]);

set(gca,'XTick’,wtick,’YTick',magtick);

%M =101

M=101; n=0:M; x=(0、54-0、46*cos((2*pi*n)/(M—1)));

X=dtft(x,n,w); magX=abs(X); magX=magX/max(magX);

subplot(2,2,4); plot(w/pi,magX,’LineWidth’,1、5);axis([—1 1 01、1]);

xlabel('\omega/\pi');title(['M=101']);

set(gca,'XTick',wtick,’YTick',magtick);

实验六、用窗函数法设计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; 课程名称:数字信号处理 实验成绩: 指导教师: 实 验 报 告 院系: 信息工程学院 班级: 电信二班 学号: 姓名: 日期:

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数字滤波器

实验四 窗函数法设计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 );

基于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) 一般是无限长的,且是非因果的,不能

利用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。 则第二个图表示的是五个矩阵向量在频域的变化,而第三个图表示的是五个非理想低

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滤波器(附思考题程序)

实验六 用窗函数设计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)窗,又称升余弦窗 其频率响应和幅度响应分别为:

(实验三窗函数的特性分析)

实验报告 实验课程:数字信号处理实验开课时间:2020—2021 学年秋季学期 实验名称:窗函数的特性分析实验时间:2020年9月16日星期三 学院:物理与电子信息学院年级:大三班级:182 学号:1843202000234 姓名:武建璋 一、实验预习

(2)固定N=60,分别取beta=1,5,11。clc,clear,close all beat1=1;beat2=5;beat3=11; N=60; figure(1) subplot(3,2,[1,2]) W=kaiser(N,beat1); stem([0:N-1],W); subplot(3,2,[3,4]); Ww=kaiser(N,beat2); stem([0:N-1],Ww); subplot(3,2,[5,6]); WW=kaiser(N,beat3); stem([0:N-1],WW); figure(2) subplot(3,2,[1,2]) W1=fft(W,N) plot([0:N-1],abs(fftshift(W1))) subplot(3,2,[3,4]); W2=fft(Ww,N) plot([0:N-1],abs(fftshift(W2))) subplot(3,2,[5,6]); W3=fft(WW,N) plot([0:N-1],abs(fftshift(W3)))

4、某序列为x[k] = (11πk/20) + cos(9πk/20),使用fft函数分析其频谱。(1) 利用不同宽度N的矩形窗截短该序列,N分别为20,40,160,观察不同长度N 的窗对谱分析结果的影响。 clc,clear,close all N1=20;N2=40;N3=160; k1=0:N1;k2=0:N2;k3=0:N3; X1=0.5.*cos((11*pi*k1)/20)+cos((9*pi*k1)/20) X2=0.5.*cos((11*pi*k2)/20)+cos((9*pi*k2)/20) X3=0.5.*cos((11*pi*k3)/20)+cos((9*pi*k3)/20) figure(1) subplot(3,2,[1,2]) W1=fft(X1,N1) plot([0:N1-1],abs(fftshift(W1))) subplot(3,2,[3,4]); W2=fft(X2,N2) plot([0:N2-1],abs(fftshift(W2))) subplot(3,2,[5,6]); W3=fft(X3,N3) plot([0:N3-1],abs(fftshift(W3))) figure(2) subplot(3,2,[1,2]) W=abs(fftshift(W1)) stem([0:N1-1],W); subplot(3,2,[3,4]); Ww=abs(fftshift(W2))

MATLAB实验

周期图法估计平稳随机信号功率谱的MATLAB 实现 分析:使用周期图法估计功率谱的MATLAB 函数为psd()(已被pwelch()代替了,实验中使用后者): welch 方法为改进的功率谱法,是用相干平均对周期图法功率谱估计进行二次处理,改善功率谱的估计方差,welch 方法对取样序列采取重叠分段方法,MATLAB 实现函数为pwelch(): [pxx,w]=pwelch(x,window,noverlap,nfft) [pxx,f]=pwelch(x,window,noverlap,nfft,fs) 各参数的含义和其余谱估计方法相似,window 默认为hamming 窗,使用前者为产生在w 下的谱密度,w 的单位为rad/sample ,实信号w 范围为[0,π]复信号为[0,2π];后者fs 为采样频率,获得单位Hz 下的谱密度,f 的范围为[0,f/2]或 [0,fs],判断与w 相同。无输出参数时,MATLAB 画出相应的频谱图。 假设()()()()n v n n n x ++=ππ4.0cos 35.0cos 其中,v(n)为均值0方差1的随机噪声信号,用welch 法估计其功率谱密度。在使用pwelch 时一定要注意w 或f 与pxx 的对应关系,当采样频率fs 改变时,w 及f 要做出相

应的调整。结果如下图六.1(对应程序为shiyan6.m)。 实验中可以看出,随分段长度的增加,即时域窗函数长度的增加,功率谱估计的方差特性变差,为改变周期图法功率谱估计方差特性差的缺点,Thomson提出了功率谱的多窗估计法(Multitaper Method),图六.2为用多窗估计法对上例中的x(n)做功率谱估计(对应程序仍为shiyan6.m)。 MATLAB中使用多窗估计法估计功率谱的函数为pmtm(): [pxx,pxxc,w]=pmtm(x,nw,nfft,fs) pxx为功率谱估计,nw为离散扁长球体序列(Discrete Prolate Spheroidal Sequences, DPSS, or Slepian Sequences),默认值为4,其余参数的含义与以上相同。实验中可看出,随窗函数的增加,方差特性得到进一步改善,但是频率分辨率下降。

MATLAB窗函数

4.3 实验原理 数字滤波器的设计是数字信号处理中的一个重要内容。数字滤波器设计包括FIR(有限单位脉冲响应)滤波器与IIR(无限单位脉冲响应)滤波器两种。 与IIR滤波器相比,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。设FIR滤波器单位脉冲响应h(n)长度为N,其系统函数H(z)为: H(z)是z-1的N-1次多项式,它在z平面上有N-1个零点,原点z=0是N-1阶重极点,因此H(z)是永远稳定的。稳定和线性相位特性是FIR滤波器突出的优点。 FIR滤波器的设计任务是选择有限长度的h(n)。使传输函数H( )满足技术要求。FIR滤波器的设计方法有多种,如窗函数法、频率采样法及其它各种优化设计方法,本实验介绍窗函数法的FIR滤波器设计。 窗函数法是使用矩形窗、三角窗、巴特利特窗、汉明窗、汉宁窗和布莱克曼窗等设计出标准响应的高通、低通、带通和带阻FIR滤波器。 一、firl函数的使用 在MA TLAB 下设计标准响应FIR滤波器可使用firl函数。firl函数以经典方法实现加窗线性相位FIR滤波器设计,它可以设计出标准的低通、带通、高通和带阻滤波器。firl函数的用法为: b=firl(n,Wn,/ftype/,Window) 各个参数的含义如下: b—滤波器系数。对于一个n阶的FIR滤波器,其n+1个滤波器系数可表示为:b(z)=b(1)+b(2)z-1+…+b(n+1)z-n。 n—滤波器阶数。 Wn—截止频率,0≤Wn≤1,Wn=1对应于采样频率的一半。当设计带通和带阻滤波器时,Wn=[W1 W2],W1≤ω≤W2。 ftype—当指定ftype时,可设计高通和带阻滤波器。Ftype=high时,设计高通FIR滤波器;ftype=stop时设计带阻FIR滤波器。低通和带通FIR滤波器无需输入ftype参数。 Window—窗函数。窗函数的长度应等于FIR滤波器系数个数,即阶数n+1。 二、窗函数的使用 在MATLAB下,这些窗函数分别为: 1.矩形窗:w=boxcar(n),产生一个n点的矩形窗函数。 2.三角窗:w=triang(n),产生一个n 点的三角窗函数。 当n为奇数时,三角窗系数为w(k)= 当n为偶数时,三角窗系数为w(k)= 3.巴特利特窗:w=Bartlett(n),产生一个n点的巴特利特窗函数。 巴特利特窗系数为w(k)= 巴特利特窗与三角窗非常相似。巴特利特窗在取样点1和n上总以零结束,而三角窗在这些点上并不为零。实际上,当n为奇数时bartlett(n)的中心n-2个点等效于triang(n-2)。 4.汉明窗:w=hamming(n),产生一个n点的汉明窗函数。 汉明窗系数为w(k+1)=0.54-0.46cos()k=0,…,n-1 5.汉宁窗:w=hanning(n),产生一个n点的汉宁窗函数。 汉宁窗系数为w(k)=0.5[1-cos( )] k=1,…,n 6.布莱克曼窗:w=Blackman(n),产生一个n点的布莱克曼窗函数。 布莱克曼窗系数为w(k)=0.42-0.5cos(2π )+0.8cos(4π )] k=1,…,n 与等长度的汉明窗和汉宁窗相比,布莱克曼窗的主瓣稍宽,旁瓣稍低。 7.凯泽窗:w=Kaiser(n,beta),产生一个n点的凯泽窗数,其中beta为影响窗函数旁瓣的β参数,其最小的旁瓣抑制α与β的关系为: 0.1102(α-0.87) α>50 β= 0.5842(α-21)0.4+0.07886(α-21) 21≤α≤50 0 α<21 增加β可使主瓣变宽,旁瓣的幅度降低。 8.契比雪夫窗:w=chebwin(n,r)产生一个n点的契比雪夫窗函数。其傅里叶变换后的旁瓣波纹低于主瓣r个db数。 4.4 实验内容 1.软件仿真实验:编写并调试MA TLAB程序,观察不同窗,不同类型滤波器不同点数等共4种FIR滤波器的h(n),并记录幅频特性和相频特性。 2.硬件实验:用窗函数法设计标准响应的FIR滤波器,在计算机上观察窗函数幅频特性、幅频特性和相频特性,然后下载到实验箱。用示波器观察输入输出波形,测试滤波器的幅频响应特性。 4.5 MA TLAB参考程序和仿真内容 %*******************************************************************% % mode: 模式(1--高通;2--低通;3--带通;4--带阻) %n: 阶数,加窗的点数为阶数加1 %fp: 高通和低通时指示截止频率,带通和带阻时指示下限频率 %fs: 带通和带阻时指示上限频率 %window:加窗(1--矩形窗;2--三角窗;3--巴特利特窗;4--汉明窗; % 5--汉宁窗;6--布莱克曼窗;7--凯泽窗;8--契比雪夫窗) %r: 代

实验一 Matlab软件的使用

实验一 Matlab软件的使用 1、实验目的和要求 ㈠掌握Matlab软件的使用方法; ㈡常用离散时间信号的产生、显示和运算。 2、实验内容 ㈠Matlab软件常用命令和工具箱的使用,学会简单的编程; ㈡编程实现常用离散时间信号; ㈢离散时间信号的叠加、移位、线性卷积等基本运算。 3、实验原理 利用软件生成数字信号处理系统中所涉及的信号及信号的加、移位、卷积等运算。 4、主要仪器设备 计算机,Matlab软件。 实验步骤: 程序1: n=-5:30; x=[zeros(1,5),1,zeros(1,30)]; stem(n,x,'fill'); grid on 程序2: n=-5:30; x=[zeros(1,5),ones(1,8),zeros(1,23)]; stem(n,x,'fill'); grid on; 程序3: n=-15:20; x=[zeros(1,15),1,2,3,4,5,zeros(1,16)]; stem(n,x,'fill'); grid on; 程序4: N=10; M=10; L=N+M-1; x=[1,2,3,4,5,zeros(1,5)]; h=[1,2,1,2,zeros(1,6)]; y=conv(x,h); n=0:L-1; stem(n,y,'*k'); grid on ;

实验结果:1、 2、 3、 4、

实验二 DTFT和Z变换的Matlab实现 1、实验目的和要求 ㈠掌握DTFT和Z变换的Matlab实现的方法; ㈡进一步了解离散时域系统的时频特性。 2、实验内容 ㈠ DTFT和z变换的计算和基本性质; ㈡离散时域系统的仿真; ㈢利用函数实现离散时域系统的频率响应,分析零、极点的分布,进一步了解离散时域系统的时域特性。 3、实验原理 利用Matlab软件计算出系统函数的零极点分布、单位脉冲响应和系统频率响应等的图像并于笔算结果进行比较,找出异同。编译合适程序能计算取值范围不同的离散卷积。 4、主要仪器设备 计算机,Matlab软件。 实验步骤: 程序1: n=0:30; x=zeros(1,length(n)); h=zeros(1,length(n)); x([find((n>=0)&(n<=4))])=1; h([find((n>=0)&(n<=8))])=0.5; figure(1) subplot(3,1,1); stem(n,x); axis([0,30,0,2]); title('输入序列'); xlabel('n'); ylabel('x(n)'); subplot(3,1,2); stem(n,h); axis([0,30,0,2]);

实验4 基于MATLAB的FIR数字滤波器设计

实验4 基于MATLAB 的FIR 数字滤波器设计 实验目的:加深对数字滤波器的常用指标和设计过程的理解。 实验原理:低通滤波器的常用指标: P P P for H Ω≤Ω+≤Ω≤-,1)(1δδ πδ≤Ω≤Ω≤ΩS S for H ,)( 通带边缘频率P Ω,阻带边缘频率S Ω ,通带起伏 P δ, 通带峰值起伏] )[1(log 2010dB p p δα--=, 阻带起伏s δ,最小阻带衰减])[(log 2010dB s S δα-=。 数字滤波器有IIR 和FIR 两种类型,它们的特点和设计方法不同。 在MATLAB 中,可以用b=fir1(N,Wn,’ftype’,taper) 等函数辅助设计FIR 数字滤波器。N 代表滤波器阶数;Wn 代表滤波器的截止频率(归一化频率),当设计带通和带阻滤波器时,Wn 为双元素相量;ftype 代表滤波器类型,如’high ’高通,’stop ’带阻等;taper 为窗函数类型,默认为海明窗,窗系数需要实现用窗函数blackman, hamming,hanning chebwin, kaiser 产生。 例1 用凯塞窗设计一FIR 低通滤波器,通带边界频率π3.0=Ωp ,阻带边界频率π5.0=Ωs ,阻带衰减 不小于50dB 。 解 首先由过渡带宽和阻带衰减 来决定凯塞窗的N 和 π2.0=Ω-Ω=?Ωp s , , S P P S Passband Stopband Transition band Fig 1 Typical magnitude specification for a digital LPF

MATLAB窗函数法实现FIR的高通,带通和低通滤波器的程序要点

MATLAB课程设计报告 学院:地球物理与石油资源学院 班级:测井(基)11001 姓名:大牛啊啊啊 学号: 班内编号: 指导教师:陈义群 完成日期: 2013年6月3日

一、 题目 FIR 滤波器的窗函数设计法及性能比较 1. FIR 滤波器简介 数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR )滤波器和有限冲激响应(FIR )滤波器。与IIR 滤波器相比,FIR 滤波器的主要特点为: a. 线性相位;b.非递归运算。 2. FIR 滤波器的设计 FIR 滤波器的设计方法主要有三种:a.窗函数设计法;b.频率抽样发;c.最小平法抽样法; 这里我主要讨论在MA TLAB 环境下通过调用信号分析与处理工具箱的几类窗函数来设计滤波器并分析与比较其性能。窗函数法设计FIR 滤波器的一般步骤如下: a. 根据实际问题确定要设计的滤波器类型; b. 根据给定的技术指标,确定期望滤波器的理想频率特性; c. 求期望滤波器的单位脉冲响应; d. 求数字滤波器的单位脉冲响应; e. 应用。 常用的窗函数有 同。 时与布莱克曼窗结果相当时与海明窗结果相同; 时与矩形窗一致;当当885.84414.50] !)2/([1)(1 2 0===+=∑∞ =x x x m x x I m m 3.窗函数的选择标准 1. 较低的旁瓣幅度,尤其是第一旁瓣; 2. 旁瓣幅度要下降得快,以利于增加阻带衰减; 3. 主瓣宽度要窄,这样滤波器过渡带较窄。 函数,可定义为 是零阶式中Bessel x I n R I N n I n w window Kaiser n R N n N n n w window Balckman n R N n n w window Hamming n R N n n w window Hanning N N N N )() 5.2.9() (])(} )]1/(2[1{[)()4() 4.2.9()()]1 4cos(08.0)12cos(5.042.0[)()3() 3.2.9()()]1 2cos(46.054.0[)()2() 2.2.9() ()]1 cos(5.05.0[)()1(0020ββππππ--=-+--=--=--=

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。

相关主题
相关文档
最新文档