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

合集下载

matlab窗函数代码

matlab窗函数代码

matlab窗函数代码在信号处理和数字滤波器设计中,窗函数是一种常用的工具,用于限制信号的时间或频率特性。

MATLAB提供了多种窗函数的函数,为用户提供了便捷的窗函数生成方法。

本文将介绍使用MATLAB实现窗函数的代码,并展示窗函数在信号处理中的一些应用。

一、窗函数的概念和作用窗函数,顾名思义,是将信号与一个窗口函数进行相乘的操作。

窗口函数通常是一个在有限时间或有限频率范围内非零的函数,其作用是在截断信号的同时减小频谱泄露或干扰的效果。

窗函数主要用于以下几个方面:1. 信号截断:在信号处理中,常常需要将信号截断到特定的时间或频率范围内,窗函数可以实现这一功能。

2. 频谱分析:窗函数可以减少频谱泄露的问题,提高频谱分析的准确性。

3. 滤波器设计:窗函数可以用于设计数字滤波器,限制滤波器的频率响应,降低滤波器的波纹和旁瓣响应。

4. 信号调制:窗函数可以对信号进行调制,从而改变信号的频谱特性。

二、常见的窗函数在MATLAB中,常见的窗函数有以下几种:1. 矩形窗函数(rectwin):矩形窗函数是最简单的窗口函数,其在指定范围内等于1,在其他范围内等于0。

矩形窗函数常常用于频谱分析和滤波器设计中。

MATLAB代码实现:```matlabN = 256; % 窗口长度w = rectwin(N); % 生成矩形窗函数```2. 汉宁窗函数(hann):汉宁窗函数是一种改进的窗口函数,其在给定范围内平滑过渡,减少频谱泄露和旁瓣响应。

MATLAB代码实现:```matlabN = 256; % 窗口长度w = hann(N); % 生成汉宁窗函数```3. 汉明窗函数(hamming):汉明窗函数也是一种改进的窗口函数,类似于汉宁窗函数,但其衰减更快。

MATLAB代码实现:```matlabN = 256; % 窗口长度w = hamming(N); % 生成汉明窗函数```4. 埃尔米特窗函数(hermite):埃尔米特窗函数在MATLAB中用chebwin函数实现,其在给定范围内呈现类似埃尔米特多项式的特性。

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

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

几种常见窗函数及其MATLAB程序实现2013-12-16 13:58 2296人阅渎评论(0)收藏举报:=分类:Matlab (15) ▼数字信号处理屮通常是取其有限的时间片段进行分析,而不足对无限长的信号进行测:W:和运算。

具体做法是从信号屮截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。

信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。

在FFT分析屮为了减少或消除频谱能y:泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。

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

频谱中的如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。

不同的窗函数对信号频谱的影响是不一样的,这主要是因力不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。

信号的加窗处理,重要的问题是在于根据信号的性质和研究目的来选川窗函数。

图1是几种常川的窗函数的时域和频域波形,其屮矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低,如果仅耍求糈确读出主瓣频率,而不考虑幅值精度,则可选川矩形窗,例如测量物体的自振频率等;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高:如果分析窄带信号,且有较强的干扰噪声,则应选川旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。

表1是儿种常用的窗函数的比较。

如果被测信号是随机或者未知的,或者是一般使用者对窗函数不大了解,要求也不是特别高时,可以选择汉宁窗,因为它的泄漏、波动都较小,并且选择性也较高。

但在用于校准时选用平顶窗较好,因为它的通带波动非常小,幅度误差也较小。

MATLAB常用函数的使用(解释加实例)

MATLAB常用函数的使用(解释加实例)

MATLAB常用函数的使用(解释加实例)1.常用数学函数:- `sqrt(x)`:求一个数的平方根。

例如,`sqrt(9)`的结果是3- `sin(x)`:计算角度x的正弦值。

例如,`sin(pi/2)`的结果是1- `cos(x)`:计算角度x的余弦值。

例如,`cos(pi/2)`的结果是0。

- `exp(x)`:计算e的x次方。

例如,`exp(1)`的结果是2.71832.数组操作函数:- `length(array)`:返回数组的长度。

例如,`length([1, 2, 3])`的结果是3- `sum(array)`:计算数组元素的和。

例如,`sum([1, 2, 3])`的结果是6- `max(array)`:找出数组中的最大值。

例如,`max([1, 2, 3])`的结果是3- `sort(array)`:对数组进行排序。

例如,`sort([3, 2, 1])`的结果是[1, 2, 3]。

3.矩阵操作函数:- `eye(n)`:生成一个n阶单位矩阵。

例如,`eye(3)`的结果是一个3x3的单位矩阵。

- `zeros(m, n)`:生成一个m行n列的全零矩阵。

例如,`zeros(2, 3)`的结果是一个2x3的全零矩阵。

- `ones(m, n)`:生成一个m行n列的全1矩阵。

例如,`ones(2, 3)`的结果是一个2x3的全1矩阵。

- `rand(m, n)`:生成一个m行n列的随机矩阵。

例如,`rand(2,3)`的结果是一个2x3的随机矩阵。

4.文件操作函数:- `load(filename)`:从文件中加载数据。

例如,`load('data.mat')`将从名为"data.mat"的文件中加载数据。

- `save(filename, data)`:将数据保存到文件中。

例如,`save('data.mat', x)`将变量x保存到名为"data.mat"的文件中。

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轴在左方%hanningwn1 = 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轴在左方%hammingwn1 = 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轴在左方%Blackmanwn1 = 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矩形窗三角窗汉宁窗海明窗布拉克曼窗。

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

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

几种常见窗函数及其MATLAB程序实现2013-12-16 13:58 2296人阅读评论(0) 收藏举报分类:Matlab(15)数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。

具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。

信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。

在FFT分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。

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

频谱中的如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。

不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。

信号的加窗处理,重要的问题是在于根据信号的性质和研究目的来选用窗函数。

图1是几种常用的窗函数的时域和频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低,如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用矩形窗,例如测量物体的自振频率等;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。

表1 是几种常用的窗函数的比较。

如果被测信号是随机或者未知的,或者是一般使用者对窗函数不大了解,要求也不是特别高时,可以选择汉宁窗,因为它的泄漏、波动都较小,并且选择性也较高。

但在用于校准时选用平顶窗较好,因为它的通带波动非常小,幅度误差也较小。

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

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

几种常见窗函数及其MATLAB程序实现2013-12-16 13:582296人阅读评论(0)收藏举报分类:Matlab(15)数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。

具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。

信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。

在FFT分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。

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

频谱中的如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。

不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。

信号的加窗处理,重要的问题是在于根据信号的性质和研究目的来选用窗函数。

图1是几种常用的窗函数的时域和频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低,如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用矩形窗,例如测量物体的自振频率等;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。

表1 是几种常用的窗函数的比较。

如果被测信号是随机或者未知的,或者是一般使用者对窗函数不大了解,要求也不是特别高时,可以选择汉宁窗,因为它的泄漏、波动都较小,并且选择性也较高。

但在用于校准时选用平顶窗较好,因为它的通带波动非常小,幅度误差也较小。

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

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。

(仅供参考)各种窗函数设计

(仅供参考)各种窗函数设计
程序
n=51; window=hamming(n); [h,w]=freqz(window,1); subplot(1,2,1); stem(window); subplot(1,2,2); plot(w/pi,20*log(abs(h)/abs(h(1))));
哈明窗及其频谱特性
2.5 布莱克曼窗函数
本章对经常用到的6个窗函数矩形窗函数三角窗函数汉宁窗函数海明窗函数布莱克曼窗函数和凯塞窗函数先是做了基本概念上的阐释然后对其matlab实现函数做出了说明最后又结合具体的实例对这些窗函数的频域特性等进行了介绍
窗函数
本文对数字信号处理过程中用到的有关窗函数进行了说明�这些窗函数主要有�矩形 窗函数、三角窗函数、汉宁窗函数、海明窗函数、布莱克曼窗函数和凯塞窗函数等。
例�生成一个长度为 50 的布莱克曼窗�并观察其频率特性(使用归一化的幅值和频 率)�结果如图所示。
程序
n=51; window=blackman(n); [h,w]=freqz(window,1); subplot(1,2,1); stem(window);
subplot(1,2,2); plot(w/pi,20*log(abs(h)/abs(h(1))));

� �
2k � n
1
,
� �
2(n

k

1)
,
1� k � n 2
n�k�n
�n
2
它的频率响应为�
2
� � WR e j�


j�
� �
e�
N �1 � �
2�

2
� �
N �1� �

sin

6种窗函数基本参数

6种窗函数基本参数

6种窗函数基本参数窗函数是一种在信号处理、频谱分析和滤波器设计中经常使用的数学工具。

它是一种在有限时间区间内为信号施加权重的函数,可以用来调整信号在频谱域中的性质。

窗函数的选择可以影响信号的频谱特性,因此选择适当的窗函数是非常重要的。

在信号处理中,有多种常用的窗函数,下面将介绍其中的6种常用窗函数及其基本参数:1. 矩形窗函数(Rectangular Window):矩形窗函数是最简单的窗函数之一,其窗函数为常数值1,表示在有限时间窗口内等比例地对信号进行加权。

其数学表达式为:\[w(n)=1\]其中,\(n\)为窗函数的序号,代表时间点。

2. 汉宁窗函数(Hanning Window):汉宁窗函数是一种常用的窗函数,具有较好的频率分辨率和副瓣抑制能力。

其数学表达式为:\[ w(n) = 0.5 - 0.5\cos\left(\frac{2\pi n}{N-1}\right) \]其中,\(N\)为窗口长度。

3. 汉明窗函数(Hamming Window):汉明窗函数也是一种常用的窗函数,与汉宁窗函数相似但有所不同。

其数学表达式为:\[ w(n) = 0.54 - 0.46\cos\left(\frac{2\pi n}{N-1}\right) \]其中,\(N\)为窗口长度。

4. 布莱克曼窗函数(Blackman Window):布莱克曼窗函数是一种频谱主瓣宽度较窄的窗函数,能够有效抑制副瓣。

其数学表达式为:\[ w(n) = 0.42 - 0.5\cos\left(\frac{2\pi n}{N-1}\right) + 0.08\cos\left(\frac{4\pi n}{N-1}\right) \]其中,\(N\)为窗口长度。

5. 凯塞窗函数(Kaiser Window):凯塞窗函数是一种可调节的窗函数,参数\(\beta\)用来控制主瓣宽度和副瓣抑制的平衡。

其数学表达式为:\[ w(n) = \frac{I_0\left[\beta\sqrt{1-\left(\frac{2n}{N-1}-1\right)^2}\right]}{I_0(\beta)} \]其中,\(I_0(\cdot)\)为修正贝塞尔函数,\(\beta\)为形状参数。

matlab 常用函数

matlab 常用函数

matlab 常用函数MATLAB常用函数MATLAB是一种强大的数学软件,它提供了许多常用的函数,这些函数可以帮助用户快速地完成各种数学计算和数据分析。

本文将介绍一些MATLAB常用函数及其用法。

1. plot函数plot函数是MATLAB中最常用的函数之一,它可以用来绘制二维图形。

使用plot函数时,需要输入x和y的值,然后MATLAB会自动绘制出相应的图形。

例如,下面的代码可以绘制出一个正弦曲线: x = 0:0.1:2*pi;y = sin(x);plot(x,y);2. linspace函数linspace函数可以用来生成一组等间隔的数值。

例如,下面的代码可以生成一个从0到1之间的10个等间隔的数值:x = linspace(0,1,10);3. rand函数rand函数可以用来生成一组随机数。

例如,下面的代码可以生成一个3行4列的随机矩阵:A = rand(3,4);4. sum函数sum函数可以用来计算矩阵或向量中所有元素的和。

例如,下面的代码可以计算一个向量中所有元素的和:x = [1 2 3 4 5];s = sum(x);5. mean函数mean函数可以用来计算矩阵或向量中所有元素的平均值。

例如,下面的代码可以计算一个向量中所有元素的平均值:x = [1 2 3 4 5];m = mean(x);6. max函数max函数可以用来找出矩阵或向量中的最大值。

例如,下面的代码可以找出一个向量中的最大值:x = [1 2 3 4 5];m = max(x);7. min函数min函数可以用来找出矩阵或向量中的最小值。

例如,下面的代码可以找出一个向量中的最小值:x = [1 2 3 4 5];m = min(x);8. eig函数eig函数可以用来计算矩阵的特征值和特征向量。

例如,下面的代码可以计算一个矩阵的特征值和特征向量:A = [1 2; 3 4];[V,D] = eig(A);9. fft函数fft函数可以用来进行快速傅里叶变换。

MatLab中常用的数学函数和操作技巧

MatLab中常用的数学函数和操作技巧

MatLab中常用的数学函数和操作技巧MatLab是一种功能强大的数学软件,被广泛应用于科学计算、数据分析和工程设计等领域。

在MatLab中,有许多常用的数学函数和操作技巧,可以帮助用户更高效地进行数值计算和数据处理。

本文将介绍一些常用的MatLab数学函数和操作技巧,并通过示例详细说明它们的用法和应用场景。

1. 向量和矩阵的创建和操作MatLab中的向量和矩阵是非常常用的数据结构,可以通过一些简单的函数和操作来创建和操作。

1.1 创建向量和矩阵可以通过直接赋值或使用linspace、zeros、ones、eye等函数来创建向量和矩阵。

例如,要创建一个长度为10的行向量,可以使用以下代码:``` matlabvec = linspace(1, 10, 10);```1.2 向量和矩阵的运算可以使用+、-、*、/等运算符来进行向量和矩阵的加、减、乘、除等运算。

另外,还可以使用transpose、dot等函数来进行向量和矩阵的转置和点乘等操作。

例如,要计算两个向量的点乘,可以使用以下代码:``` matlabvec1 = [1, 2, 3];vec2 = [4, 5, 6];result = dot(vec1, vec2);```2. 数据统计分析在科学计算和数据处理中,经常需要对数据进行统计分析,MatLab提供了许多函数和工具箱来实现这些功能。

2.1 基本统计函数MatLab提供了一些基本的统计函数,如mean、median、std、var等,可以用于计算数据的平均值、中位数、标准差和方差等。

例如,要计算向量的平均值和标准差,可以使用以下代码:``` matlabdata = [1, 2, 3, 4, 5];mean_value = mean(data);std_value = std(data);```2.2 统计图表绘制MatLab还提供了丰富的绘图函数,可以帮助用户更直观地分析和展示数据。

matlab窗函数代码

matlab窗函数代码

matlab窗函数代码MATLAB 窗函数代码用于信号处理中的频谱分析和滤波设计等领域。

窗函数在时域上对信号进行加权,使得信号在频谱上表现出更好的特性。

本文将介绍MATLAB 窗函数代码的使用方法和原理,并通过一步一步的回答来帮助读者了解窗函数的概念及其在信号处理中的应用。

第一步:了解窗函数的概念窗函数是一种在时域上对信号进行加权的方法,它在信号的前后端施加一个权重因子来减小信号的边界效应。

常用的窗函数包括矩形窗、汉宁窗、汉明窗、布莱克曼窗等等。

通过对信号进行窗函数加权后,信号在频谱上的表现会更加平滑,减少了频谱泄漏和频谱扩展等问题。

第二步:了解MATLAB 中窗函数的使用方法在MATLAB 中,我们可以使用窗函数对信号进行加权。

MATLAB 提供了一系列的窗函数函数,在使用前需要先了解各个窗函数的特性及其在不同应用场景中的适用性。

例如,可以通过`rectwin` 函数生成矩形窗函数,`hann` 函数生成汉宁窗函数,`hamming` 函数生成汉明窗函数等。

第三步:生成窗函数通过在MATLAB 中调用相应的窗函数函数,我们可以生成不同类型的窗函数。

例如,通过`window = rectwin(N)` 可以生成长度为N 的矩形窗函数,`window = hann(N)` 可以生成长度为N 的汉宁窗函数,`window= hamming(N)` 可以生成长度为N 的汉明窗函数。

第四步:对信号进行窗函数加权在获得窗函数后,我们可以将其应用于待处理的信号上。

例如,可以通过`y = x .* window` 将窗函数应用于信号x 上,得到加权后的信号y。

这样,信号在边界处的幅值会逐渐减小,减小了边界效应。

第五步:进行频谱分析窗函数加权后的信号常用于频谱分析中。

我们可以使用MATLAB 中的傅里叶变换函数`fft` 将信号从时域转换到频域。

例如,通过`Y = fft(y)` 将加权后的信号y 进行傅里叶变换,得到其频谱Y。

MATLAB常用函数及其使用方法

MATLAB常用函数及其使用方法

MATLAB常用函数及其使用方法1. 简介MATLAB被称为矩阵实验室,是一种用于数值计算和科学工程的高级编程语言和环境。

它在科学研究、数据分析、图像处理等领域被广泛使用。

本文将介绍MATLAB中一些常用的函数及其使用方法。

2. 数学函数2.1. abs函数abs函数用于计算数的绝对值。

例如:```a = -5;abs_a = abs(a);```2.2. sin函数sin函数用于计算正弦值。

例如:```angle = 30;sin_value = sin(angle);```2.3. exp函数exp函数用于计算e的幂次方。

例如:```x = 2;exp_value = exp(x);```3. 矩阵函数3.1. zeros函数zeros函数用于创建一个全零的矩阵。

例如:```matrix = zeros(3, 3);```3.2. ones函数ones函数用于创建一个全一的矩阵。

例如:```matrix = ones(3, 3);```3.3. eye函数eye函数用于创建一个单位矩阵。

例如:```matrix = eye(3);```4. 数据处理函数4.1. mean函数mean函数用于计算平均值。

例如:```data = [1, 2, 3, 4, 5];mean_value = mean(data);```4.2. median函数median函数用于计算中位数。

例如:```data = [1, 2, 3, 4, 5];median_value = median(data);```4.3. std函数std函数用于计算标准差。

例如:```data = [1, 2, 3, 4, 5];std_value = std(data);```5. 图像处理函数5.1. imread函数imread函数用于读取图像文件。

例如:```image = imread('image.jpg');```5.2. imshow函数imshow函数用于显示图像。

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轴在左方%hanningwn1 = 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轴在左方%hammingwn1 = 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轴在左方%Blackmanwn1 = 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矩形窗三角窗汉宁窗海明窗布拉克曼窗。

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

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

几种常见窗函数及其MATLAB程序实现2013-12-16 13:58 2296人阅读评论(0) 收藏举报分类:Matlab(15)数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。

具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。

信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。

在FFT分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。

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

频谱中的如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。

不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。

信号的加窗处理,重要的问题是在于根据信号的性质和研究目的来选用窗函数。

图1是几种常用的窗函数的时域和频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低,如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用矩形窗,例如测量物体的自振频率等;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。

表1 是几种常用的窗函数的比较。

如果被测信号是随机或者未知的,或者是一般使用者对窗函数不大了解,要求也不是特别高时,可以选择汉宁窗,因为它的泄漏、波动都较小,并且选择性也较高。

但在用于校准时选用平顶窗较好,因为它的通带波动非常小,幅度误差也较小。

matlab 窗函数宽度 -回复

matlab 窗函数宽度 -回复

matlab 窗函数宽度-回复Matlab中的窗函数宽度指的是窗函数在时间或频率域上的延展范围。

窗函数是一种在信号处理中常用的工具,用于在频域分析和时域滤波等应用中起到平滑和抑制频谱泄漏的作用。

本文将逐步介绍窗函数的基本概念和常见窗函数的宽度计算方法,并以Matlab示例演示其应用。

1. 窗函数的基本概念窗函数是一种能量有限、非周期的函数,通常与输入信号进行逐点乘法运算,用于将输入信号截断或平滑。

窗函数通过克服输入信号的边缘不连续性以及频谱泄漏的问题,在频域上提供更好的频谱分辨率。

2. 常见窗函数的宽度计算方法2.1. 矩形窗函数(Rectangular Window)矩形窗函数是最简单的窗函数,其在时间域上呈现出一段长度为N的矩形脉冲。

由于矩形窗函数没有主瓣压缩,其频谱泄漏较大,因此频域分辨率较低。

矩形窗函数的宽度等于窗函数的长度N。

2.2. 汉宁窗函数(Hanning Window)汉宁窗函数是一种常用的平滑窗函数,其在时间域上呈现出一个对称的余弦形状。

汉宁窗函数的主瓣宽度和矩形窗函数相同,都是等于窗函数的长度N。

2.3. 汉明窗函数(Hamming Window)汉明窗函数也是一种常用的平滑窗函数,其在时间域上呈现出一个对称的类似于汉宁窗函数的形状。

汉明窗函数的主瓣宽度和矩形窗函数相同,都是等于窗函数的长度N。

2.4. 高斯窗函数(Gaussian Window)高斯窗函数是一种在频域上具有较小主瓣宽度和较低频谱泄漏的窗函数。

其主瓣宽度由窗函数参数σ决定,宽度等于4σ。

2.5. 狄利克雷窗函数(Dirichlet Window)狄利克雷窗函数是一种频域具有较窄主瓣的窗函数,主要用于频率选择性窗口技术。

其主瓣宽度由窗函数的参数K和长度N决定,宽度约为2K/N。

3. Matlab中窗函数的应用示例为了更好地理解窗函数的宽度计算方法以及其在实际应用中的效果,下面以Matlab代码实现对一个正弦信号的频谱分析为例,使用不同的窗函数并计算其宽度。

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

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

几种常见窗函数及其MATLAB程序实现2013-12-16 13:58 2296人阅读评论(0) 收藏举报分类:Matlab(15)数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。

具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。

信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。

在FFT分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。

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

频谱中的如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。

不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。

信号的加窗处理,重要的问题是在于根据信号的性质和研究目的来选用窗函数。

图1是几种常用的窗函数的时域和频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低,如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用矩形窗,例如测量物体的自振频率等;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。

表1 是几种常用的窗函数的比较。

如果被测信号是随机或者未知的,或者是一般使用者对窗函数不大了解,要求也不是特别高时,可以选择汉宁窗,因为它的泄漏、波动都较小,并且选择性也较高。

但在用于校准时选用平顶窗较好,因为它的通带波动非常小,幅度误差也较小。

MTLAB中窗函数

MTLAB中窗函数

MTLAB中窗函数1. 矩形窗矩形窗属于时间变量的零次幂窗。

矩形窗使用最多,习惯上不加窗就是使信号通过了矩形窗。

这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄漏,甚至出现负谱现象。

N 为窗口的长度,应用矩形窗相当于没有任何窗,因为矩形窗只能在有限的时间段内截断信号而且矩形窗拥有最大的频谱泄漏。

矩形窗对分析瞬时现象很有用,即信号持续时间比矩形窗宽度短。

1,01()()0,N n N w n R n ≤≤-?==?其他窗谱:112()()()N N j j j nR R n W e w n eW eωωωω----===∑幅度函数:sin2()sin2R N W ωωω=特点:主瓣宽度最窄4Nπ,旁瓣幅度大2. 三角窗三角窗亦称费杰(Fejer )窗,是幂窗的一次方形式。

与矩形窗比较,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣。

该窗无特殊应用。

21012()212112n N n N w n n N n N N -?≤≤??-=?-?-≤≤-?-?窗谱:12()()N j j W eW e ωωω--=幅度函数:2sin 24()1sin 2R N W N N ωωω??=特点:主瓣宽度宽8Nπ,旁瓣幅度较小3. 汉宁窗(升余弦窗)汉宁窗又称升余弦窗,汉宁窗可以看作是3个矩形时间窗的频谱之和,或者说是 3个 sinc(t) 型函数之和,而括号中的两项相对于第一个谱窗向左、右各移动了π/T ,从而使旁瓣互相抵消,消去高频干扰和漏能。

可以看出,汉宁窗主瓣加宽并降低,旁瓣则显著减小,从减小泄漏观点出发,汉宁窗优于矩形窗.但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。

汉宁窗与矩形窗的谱图对比,可以看出,汉宁窗主瓣加宽(第一个零点在2π/T 处)并降低,旁瓣则显著减小。

第一个旁瓣衰减一32dB ,而矩形窗第一个旁瓣衰减-13dB 。

此外,汉宁窗的旁瓣衰减速度也较快,约为60dB/(10oct ),而矩形窗为20dB/(10oct )。

MATLAB窗函数

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。

二、窗函数的使用在MA TLAB下,这些窗函数分别为:1.矩形窗:w=boxcar(n),产生一个n点的矩形窗函数。

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

几种常见窗函数及其MATLAB程序实现2013-12-16 13:58 2296人阅读评论(0) 收藏举报分类:Matlab(15)数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。

具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。

信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。

在FFT分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。

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

频谱中的如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。

不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。

信号的加窗处理,重要的问题是在于根据信号的性质和研究目的来选用窗函数。

图1是几种常用的窗函数的时域和频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低,如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用矩形窗,例如测量物体的自振频率等;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。

表1 是几种常用的窗函数的比较。

如果被测信号是随机或者未知的,或者是一般使用者对窗函数不大了解,要求也不是特别高时,可以选择汉宁窗,因为它的泄漏、波动都较小,并且选择性也较高。

但在用于校准时选用平顶窗较好,因为它的通带波动非常小,幅度误差也较小。

下面是几种窗函数归一化DTFT幅度的MATLAB程序:附上DTFT函数(dtft.m):function [ X ] = dtft( x,n,w )% Computes Discrete-time Fourier Transform% [X] = dtft(x,n,w)% X = DTFT values computed at w.frequencies% x = finite duration sequence over n% n = sample position vector% w = frequency location vectorX = x*exp(-j*n'*w);%end矩形窗:%DTFT of a Rectangular Window, M=10,25,50,101clc; 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=10M=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=25M=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([-1 1 0 1.1]); title(['M=25']); set(gca,'XTick',wtick,'YTick',magtick);% M=50M=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([-1 1 0 1.1]); xlabel('\omega/\pi'); ylabel('|X|');title('M=50'); set(gca,'XTick',wtick,'YTick',magtick);% M=101M=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,101clc; close all;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 = 10M=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 1 0 1.1]); ylabel('|X|'); title(['M = 10']);set(gca,'XTick',wtick,'YTick',magtick);% M = 25M=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 = 50M=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 0 1.1]); xlabel('\omega/\pi'); ylabel('|X|'); title(['M = 50']);set(gca,'XTick',wtick,'YTick',magtick);% M = 100M=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 1 0 1.1]);xlabel('\omega/\pi'); title(['M = 101']);set(gca,'XTick',wtick,'YTick',magtick);海宁窗:% Hann Window% DTFT of a Hann Window, M = 10,25,50,101clc;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 = 10M=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 = 25M=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 1 0 1.1]); title(['M = 25']);set(gca,'XTick',wtick,'YTick',magtick);% M = 50M=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 = 101M=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([-1 1 0 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 = 10M=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 = 25M=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([-1 1 0 1.1]); title(['M = 25']);set(gca,'XTick',wtick,'YTick',magtick);% M = 50M=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 1 0 1.1]); xlabel('\omega/\pi'); ylabel('|X|'); title(['M=50']);set(gca,'XTick',wtick,'YTick',magtick);% M = 101M=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 0 1.1]); xlabel('\omega/\pi');title(['M=101']);set(gca,'XTick',wtick,'YTick',magtick);文案大全。

相关文档
最新文档