matlab实验窗函数

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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,'Y AxisLocation','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,'Y AxisLocation','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,'Y AxisLocation','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,'Y AxisLocation','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,'Y AxisLocation','left'); %设置Y轴在左方参考书:数字信号处理教程(第三版) 程佩青清华大学出版社2009年11月第9次印刷P340的图7-11矩形窗三角窗汉宁窗海明窗布拉克曼窗。

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窗函数法设计一个可实现的FIR低通滤波器。

利用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个长度。

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矩形窗三角窗汉宁窗海明窗布拉克曼窗。

窗函数的实现及分析

窗函数的实现及分析

窗函数的实现及分析1窗函数1.1基本概念在实际进⾏数字信号处理时,往往需要把信号的观察时间限制在⼀定的时间间隔内,只需要选择⼀段时间信号对其进⾏分析。

这样,取⽤有限个数据,即将信号数据截断的过程,就等于将信号进⾏加窗函数操作。

⽽这样操作以后,常常会发⽣频谱分量从其正常频谱扩展开来的现象,即所谓的“频谱泄漏”。

当进⾏离散傅⽴叶变换时,时域中的截断是必需的,因此泄漏效应也是离散傅⽴叶变换所固有的,必须进⾏抑制。

⽽要对频谱泄漏进⾏抑制,可以通过窗函数加权抑制DFT 的等效滤波器的振幅特性的副瓣,或⽤窗函数加权使有限长度的输⼊信号周期延拓后在边界上尽量减少不连续程度的⽅法实现。

⽽在后⾯的FIR 滤波器的设计中,为获得有限长单位取样响应,需要⽤窗函数截断⽆限长单位取样响应序列。

另外,在功率谱估计中也要遇到窗函数加权问题。

窗函数的基本概念。

设x (n )是⼀个长序列,w (n )是长度为N 的窗函数,⽤w (n )截断x (n ),得到N 点序列x n (n ),即x n (n ) = x (n ) w (n )在频域上则有由此可见,窗函数w (n )不仅仅会影响原信号x (n )在时域上的波形,⽽且也会影响到频域内的形状。

1.2设计原理窗函数设计法的基本原理是⽤有限长单位脉冲响应序列()n h 逼近()n h d 。

由于()n h d 往往是⽆限长序列,⽽且是⾮因果的,所以⽤窗函数()n ω将()n h d 截断,并进⾏加权处理,得到:()n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数()ωj e H 为式中,N 为所选窗函数()n ω的长度。

⽤窗函数法设计的滤波器性能取决于窗函数()n ω的()()()()--=ππj j j d e π21e θθωθωW e X X N ()()()n n h n h d ω=()()nj N n j en h eH ωω∑-==1类型及窗⼝长度N的取值。

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

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

实验报告实验课程:数字信号处理实验开课时间:2020—2021 学年秋季学期实验名称:窗函数的特性分析实验时间:2020年9月16日星期三学院:物理与电子信息学院年级:大三班级:182 学号:1843202000234 姓名:武建璋一、实验预习(2)固定N=60,分别取beta=1,5,11。

clc,clear,close allbeat1=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 allN1=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))stem([0:N2-1],Ww);subplot(3,2,[5,6]);WW=abs(fftshift(W3))stem([0:N3-1],WW);(2) 利用汉明窗重做(1)。

实验六用窗函数法设计FIR滤波器分析解析

实验六用窗函数法设计FIR滤波器分析解析

实验六用窗函数法设计FIR滤波器分析解析一、引言数字滤波器是数字信号处理中的重要组成部分。

滤波器可以用于去除噪声、调整频率响应以及提取感兴趣的信号。

有许多方法可以设计数字滤波器,包括窗函数法、频域法和优化法等。

本实验将重点介绍窗函数法设计FIR滤波器的原理和过程。

二、窗函数法设计FIR滤波器窗函数法是设计FIR滤波器的一种常用方法。

其基本原理是将滤波器的频率响应与理想滤波器的频率响应进行乘积。

理想滤波器的频率响应通常为矩形函数,而窗函数则用于提取有限长度的理想滤波器的频率响应。

窗函数的选择在FIR滤波器的设计中起着重要的作用。

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

对于每种窗函数,都有不同的特性和性能指标,如主瓣宽度、副瓣抑制比等。

根据不同的应用需求,可以选择合适的窗函数。

窗函数法设计FIR滤波器的具体步骤如下:1.确定滤波器的阶数N。

阶数N决定了滤波器的复杂度,一般情况下,阶数越低,滤波器的简单度越高,但频率响应的近似程度也会降低。

2.确定滤波器的截止频率。

根据应用需求,确定滤波器的截止频率,并选择合适的窗函数。

3.根据窗函数长度和截止频率计算理想滤波器的频率响应。

根据所选窗函数的特性,计算理想滤波器的频率响应。

4.根据理想滤波器的频率响应和窗函数的频率响应,得到所需的FIR滤波器的频率响应。

将理想滤波器的频率响应与窗函数的频率响应进行乘积,即可得到所需滤波器的频率响应。

5.对所得到的频率响应进行逆傅里叶变换,得到时域的滤波器系数。

6.实现滤波器。

利用所得到的滤波器系数,可以通过卷积运算实现滤波器。

三、实验结果与分析本实验以Matlab软件为平台,利用窗函数法设计了一个低通滤波器。

滤波器的阶数为16,截止频率为500Hz,采样频率为1000Hz,选择了汉宁窗。

根据上述步骤,计算得到了所需的滤波器的频率响应和时域的滤波器系数。

利用这些系数,通过卷积运算,实现了滤波器。

为了验证滤波器的性能,将滤波器应用于输入信号,观察输出信号的变化。

matlab窗函数及fft

matlab窗函数及fft

在MATLAB中,窗函数和FFT(快速傅里叶变换)是信号处理和频域分析中常用的工具。

下面分别介绍一下MATLAB中的窗函数和FFT的基本用法:窗函数:窗函数在信号处理中用于抑制频谱泄漏和减小截断效应。

MATLAB 中提供了多种窗函数,如rectwin、hamming、hanning、blackman等。

下面是一个简单的例子,展示如何生成一个长度为N 的汉宁窗(Hanning Window):N = 256; % 窗口长度w = hanning(N); % 生成汉宁窗plot(w);title('Hanning Window');xlabel('Sample');ylabel('Amplitude');FFT:FFT 用于将信号从时域转换到频域,MATLAB 中使用fft 函数来实现。

以下是一个简单的示例,演示如何对一个包含正弦波的信号进行FFT:Fs = 1000; % 采样率T = 1/Fs; % 采样间隔L = 1000; % 信号长度t = (0:L-1)*T; % 时间向量f = 50; % 正弦波频率A = 1; % 正弦波振幅x = A*sin(2*pi*f*t); % 生成正弦波信号Y = fft(x); % 对信号进行FFTP2 = abs(Y/L); % 计算双边频谱P1 = P2(1:L/2+1); % 截取单边频谱P1(2:end-1) = 2*P1(2:end-1);frequencies = Fs*(0:(L/2))/L; % 频率轴figure; % 绘制频谱图plot(frequencies, P1);title('Single-Sided Amplitude Spectrum of x(t)');xlabel('Frequency (Hz)');ylabel('|P1(f)|');这个例子中,我们生成了一个包含50 Hz 正弦波的信号,并对其进行了FFT。

实验设计常用 matlab 函数

实验设计常用 matlab  函数

实验设计常用matlab 函数和程序调试一、随机函数rand, randi,randn,’seed’, randperm,shuffle, genTrialsfunction trials=genTrials(withinblock_repetitions, withinblock_factors,betweenblock_repetitions, betweenblock_factors)% Generating randomized trials based repetition and factors% syntax: genTrials(withinblock_repetition, betweenblock_repetition, withinblock_factors, [ betweenblock_factors])% eg: genTrials(2, 10, [2 3]); generate two factors (2 levels and 3 levels% resp. ) with within block repetition 2 and between block repetition 10if nargin < 2error('Incorrect number of arguments for genTrials function');elseif nargin == 2betweenblock_repetitions = 1;betweenblock_factors = [];elseif nargin == 3% when there's only betweenblock_repetitions, which is equal to swap% between block repetitions and factors -strongway 14. Dec. 2006betweenblock_factors = betweenblock_repetitions;betweenblock_repetitions = 1;endtrials = [];block_design = [];numblock = betweenblock_repetitions;if length(betweenblock_factors) > 0block_design = fullfact(betweenblock_factors);block_design = repmat(block_design, betweenblock_repetitions,1);idxb = randperm(length(block_design));block_design = block_design(idxb,:);numblock = length(block_design);endfor iblock = 1:numblock%generate within block trialsinblock_trials = fullfact(withinblock_factors);inblock_trials = repmat(inblock_trials,withinblock_repetitions,1);idx=randperm(size(inblock_trials,1));inblock_trials = inblock_trials(idx,:);if length(block_design)>0%add between factorsblockwise_factors = repmat(block_design(iblock,:),length(inblock_trials),1);inblock_trials = [inblock_trials blockwise_factors];endtrials = [trials; inblock_trials];end•特殊矩阵zeros, ones, eye, diag,rand,randn,magic二、数值计算函数abs,sin/sind,round/floor/ceil/fix,range, sign,max/min/mean/std•三、数据原始处理sort,sortrows, rot90, fliplr/flipud, horzat/vertcat repmat, reshape, size/length, linspace四、字符串操作函数: sprintf, sscanf, eval, strcmp, strcmpi,strcatsprintf(‘% [标志符][宽度] [.小数位数] [转义符]’, A)常见的标志符包括0和“-”,分别表示用0补齐位数和左对齐。

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。

Parzen窗matlab编程报告

Parzen窗matlab编程报告

Parze ‎n 窗mat ‎lab 仿真‎实验一、Parze ‎n 窗基本原‎理Parze ‎n 窗估计法‎是一种具有‎坚实理论基‎础和优秀性‎能的非参数‎函数估计方‎法,它能够较好‎地描述多维‎数据的分布‎状态。

其基本思想‎就是利用一‎定范围内各‎点密度的平‎均值对总体‎密度函数进‎行估计。

一般而言,设x 为d 维‎空间中任意‎一点,N 是所选择‎的样本总数‎,为了对x 处‎的分布概率‎密度进行估‎()^x p 计,以x 为中心‎作一个边长‎为的超立方‎h 体V ,则其体积为‎dV h =,为计算落入‎V 中的样本数‎k ,构造一个函‎数使得()11,,1,2,...,20,jj du uϕ⎧≤=⎪=⎨⎪⎩其他(1)并使满足条‎()u ϕ件()0u ϕ≥,且()1u du ϕ=⎰,则落入体积‎V 中的样本‎数为1Ni Ni x x kh ϕ=⎛⎫-= ⎪ ⎪⎝⎭∑,则此处概率‎密度的估计‎值是: ()^111Ni i x x Nx pVh ϕ=⎛⎫-=⎪ ⎪⎝⎭∑(2)式(2)是Parz ‎e n 窗估计‎法的基本公‎式,()1u Vϕ称为窗函数‎,或核函数。

在Parz‎e n 窗估计‎法的基本公‎式中,窗宽是一个‎h 非常重要的‎参数。

当样本数N ‎有限时,h对估计的效‎果有着较大‎的影响。

二、Matla ‎b 实现Pa ‎rzen 窗‎仿真实验为了编写P ‎a rzen ‎窗,首先要确定‎一个窗函数‎。

一般可以选‎择的窗函数‎有方窗、正态窗等。

接下来将分‎别用方窗、正态窗实现‎P a rze ‎n 窗法。

2.1、方窗1,1,2,...(,)2j ji d i h x x j d k x x h ⎧-≤=⎪=⎨⎪⎩若其他(3)其中,h 为超立方体‎的棱长。

因为编程中‎所用的信号‎是一维的正‎态信号,所以此处的‎d 取值为1。

2.1.1 方窗Par ‎zen 仿真‎实验流程图‎2.1.2 方窗Par‎zen仿真‎实验mta‎lab代码‎r=normr‎n d(0,1,1,10000‎);f=r(1:1000);f=sort(f);lth=1;h=[0.25,1,4];V1=h(1);V2=h(2);V3=h(3);V=[V1,V2,V3];a=zeros‎(1000,3);p=zeros‎(1000,3);b=0;for m=1:3for x=1:1000for n=1:lthif abs((r(:,n)-f(x))/h(:,m))<=1/2 q=1;elseq=0;endb=q+b;enda(x,m)=b;b=0;endendfor m=1:3for x=1:1000p(x,m)=1/(lth*V(m))* a(x,m);endsubpl‎o t(4,3,m)plot(f(1:1000),p(:,m))ylabe‎l('N=1')endhold onlth=16;b=0;for m=1:3for x=1:1000for n=1:lthif abs((r(:,n)-f(x))/h(:,m))<=1/2 q=1;elseq=0;endb=q+b;enda(x,m)=b;b=0;endendfor m=1:3for x=1:1000p(x,m)=1/(lth*V(m))* a(x,m);endsubpl‎o t(4,3,m+3)plot(f(1:1000),p(:,m))ylabe‎l('N=16')endhold onlth=256;b=0;for m=1:3for x=1:1000for n=1:lthif abs((r(:,n)-f(x))/h(:,m))<=1/2 q=1;elseq=0;endb=q+b;enda(x,m)=b;b=0;endendfor m=1:3for x=1:1000p(x,m)=1/(lth*V(m))* a(x,m);endsubpl‎o t(4,3,m+6)plot(f(1:1000),p(:,m))axis([-5,5,0,0.6]);ylabe‎l('N=256')endlth=10000‎;b=0;for m=1:3for x=1:1000for n=1:lthif abs((r(:,n)-f(x))/h(:,m))<=1/2 q=1;elseq=0;endb=q+b;enda(x,m)=b;b=0;endendfor m=1:3for x=1:1000p(x,m)=1/(lth*V(m))* a(x,m);endsubpl‎o t(4,3,m+9)plot(f(1:1000),p(:,m))axis([-5,5,0,0.5]);ylabe‎l('N=10000‎')end2.1.3 方窗Par‎zen仿真‎实验运行结‎果h=0.25 h=1 h=42.2正态窗正态窗函数‎为()211(,)e x p 2i k x x u V u ϕ⎧⎫==-⎨⎬⎩⎭(4)概率密度的‎估计式为()2^111112Ni Ni x x N x p hh =⎡⎤⎛⎫-⎢⎥=- ⎪ ⎪⋅⎢⎥⎝⎭⎣⎦(5)式中1h =。

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

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

实验六用窗函数设计FIR滤波器一、引言数字滤波器是用于处理数字信号的重要工具,而FIR(Finite Impulse Response)滤波器是其中一类常见的滤波器。

在FIR滤波器中,输出信号的每个样本值仅依赖于输入信号在过去固定时间窗口内的样本值。

窗函数则是用于设计FIR滤波器的一种常见方法。

本实验将介绍如何用窗函数设计FIR滤波器,并通过一系列实验验证其性能。

二、实验目的1.了解FIR滤波器的原理和窗函数设计方法。

2.利用MATLAB工具进行FIR滤波器设计与性能评估。

3.分析不同窗函数对FIR滤波器的影响。

三、窗函数设计方法在设计FIR滤波器时,可以通过选择不同的窗函数来实现不同的频率响应。

常见的窗函数有矩形窗、汉宁窗、汉明窗、布莱克曼窗等。

在本实验中,我们将以汉宁窗为例进行讲解。

1.首先确定滤波器的截止频率和通带误差。

2.根据通带误差和滤波器的截止频率计算阶数。

3.根据阶数选择合适大小的窗口长度。

4.选择合适的窗函数,如汉宁窗。

5.计算窗函数的系数,并与理想滤波器的冲击响应相乘得到最终的滤波器系数。

四、实验步骤1.确定滤波器参数:截止频率、通带误差等。

2.根据通带误差和截止频率计算滤波器的阶数。

3.选择合适大小的窗口长度,通常选择大于滤波器阶数的2倍。

4.选择窗函数,如汉宁窗,计算窗函数的系数。

5.根据窗函数系数和截止频率计算滤波器的系数。

6.绘制滤波器的频率响应曲线。

7.利用设计好的FIR滤波器对输入信号进行滤波,并观察滤波效果。

五、实验结果与分析在本实验中,我们选择了截止频率为1kHz的低通滤波器。

首先计算滤波器的阶数,假设通带误差为0.01,根据公式可得N=3.32/((截止频率*通带误差)/采样频率)≈60。

我们选择窗口长度为120,即滤波器的阶数的两倍。

接下来选择汉宁窗作为窗函数,并计算其系数。

最后通过窗函数系数和截止频率计算得到滤波器的系数。

实验采用不同窗函数设计的FIR滤波器进行滤波,观察不同窗函数对滤波器性能的影响。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MATLAB课程设计报告学院:地球物理与石油资源学院班级: 测井(基)11001姓名:大牛啊啊啊学号:班内编号:指导教师: 陈义群完成日期: 2013年6月3日一、 题目 FIR 滤波器的窗函数设计法及性能比较1. FI R滤波器简介数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。

根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。

与I IR滤波器相比,FIR 滤波器的主要特点为: a. 线性相位;b.非递归运算。

2. FIR滤波器的设计FIR 滤波器的设计方法主要有三种:a.窗函数设计法;b.频率抽样发;c.最小平法抽样法; 这里我主要讨论在MA TLAB 环境下通过调用信号分析与处理工具箱的几类窗函数来设计滤波器并分析与比较其性能。

窗函数法设计F IR 滤波器的一般步骤如下:a. 根据实际问题确定要设计的滤波器类型;b. 根据给定的技术指标,确定期望滤波器的理想频率特性;c. 求期望滤波器的单位脉冲响应;d. 求数字滤波器的单位脉冲响应;e. 应用。

常用的窗函数有同。

时与布莱克曼窗结果相当时与海明窗结果相同;时与矩形窗一致;当当885.84414.50]!)2/([1)(120===+=∑∞=x x x m x x I m m4. 常用窗函数的参数函数,可定义为是零阶式中Bessel x I n R I N n I n w windowKaiser n R N n N n n w windowBalckm an n R N n n w windowHam m ing n R N n n w windowHanning N N N N )()5.2.9()(])(})]1/(2[1{[)()4()4.2.9()()]14cos(08.0)12cos(5.042.0[)()3()3.2.9()()]12cos(46.054.0[)()2()2.2.9()()]1cos(5.05.0[)()1(0020ββππππ--=-+--=--=--=5.FIR滤波器的MATLAB实现方式在MATLAB信号分析与处理工具箱中提供了大量FIR窗函数的设计函数,本次用到主要有以下几种:hanning(N) hanning窗函数的调用hamming(N) hamming窗函数的调用blackman(N) blackman窗函数的调用kaiser(n+1,beta) kaiser窗函数的调用kaiserord 计算kaiser窗函数的相关参数freqz求取频率响应filter 对信号进行滤波的函数6.实验具体步骤本次实验分别通过调用hanning ,hamming ,Blackman,kaiser窗函数,给以相同的技术参数,来设计低通,带通,高通滤波器,用上述窗函数的选择标准来比较各种窗函数的优劣,并给以一个简谐波进行滤波处理,比较滤波前后的效果。

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

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

matlab窗函数法设计数字滤波器
好的,下面为你介绍使用matlab窗函数法设计数字滤波器的步骤:
1. 确定指标:确定需要设计的滤波器的指标,如滤波器的类型、过渡带宽度、阻带最小衰减等。

2. 选择窗函数:根据滤波器指标选择合适的窗函数,常见的窗函数有矩形窗、汉宁窗、海明窗等。

3. 计算滤波器系数:根据选择的窗函数和滤波器指标,计算滤波器的系数。

4. 编写matlab代码:使用matlab编写代码,实现数字滤波器的设计。

5. 验证滤波器性能:使用设计好的数字滤波器对信号进行滤波处理,验证滤波器的性能是否符合指标要求。

窗函数法是一种简单实用的设计数字滤波器的方法,你可以根据实际需求选择合适的窗函数和滤波器指标,设计出满足要求的数字滤波器。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

时域加升余弦窗matlab

时域加升余弦窗matlab

时域加升余弦窗是一种在信号处理领域常用的窗函数,它可以用于调节频谱分析和滤波器设计中的信号。

在Matlab中,时域加升余弦窗可以通过一系列函数和方法来实现和应用。

本文将介绍时域加升余弦窗的基本概念、Matlab中的实现方法以及在实际应用中的一些注意事项。

一、时域加升余弦窗的概念时域加升余弦窗是一种在时域和频域都具有较好性能的窗函数。

它的数学表达式为:w(n) = 0.5 * (1 - cos(2 * pi * n / (N - 1))) + a * (1 - cos(2 * pi * n / (N - 1)))其中,n为窗函数的序号,N为窗函数的长度,a为加升系数。

时域加升余弦窗的特点是在余弦窗的基础上增加了一个线性成分,通过调节加升系数a可以改变窗函数的主瓣宽度和旁瓣衰减的速率,从而适应不同的信号处理需求。

二、Matlab中的实现方法在Matlab中,可以通过`hamming`函数来实现时域加升余弦窗。

`hamming`函数可以接受窗函数的长度参数,并计算出相应的时域加升余弦窗序列。

也可以通过`freqz`函数来绘制时域加升余弦窗的频率响应曲线,以便对窗函数的性能进行分析和评估。

可以使用以下代码来生成一个长度为64、加升系数为0.5的时域加升余弦窗:```matlabN = 64;a = 0.5;w = 0.54 - 0.46 * cos(2 * pi * (0:N-1) / (N-1)) + a * (1 - cos(2 * pi * (0:N-1) / (N-1)));```通过以上代码,就可以得到一个长度为64、加升系数为0.5的时域加升余弦窗序列。

接下来,可以使用`freqz`函数来绘制窗函数的频率响应曲线,以评估其在频域上的性能。

```matlabfreqz(w);```经过上述操作,就可以得到时域加升余弦窗的频率响应曲线,从而对窗函数的主瓣宽度和旁瓣衰减进行分析和评估,并根据具体的信号处理需求调节加升系数a。

matlab泰勒窗的用法

matlab泰勒窗的用法

matlab泰勒窗的用法泰勒窗是一种在信号处理中常用的窗函数,其特点是具有优秀的频率特性,尤其是在防止主瓣干涉的情况下,具有良好的抑制性能。

MATLAB是一个常用的科学计算软件,其中包含了泰勒窗的实现方法。

在MATLAB中使用泰勒窗,首先需要明确的是,泰勒窗并不是一个标准的函数,而是一种特定的窗函数。

你可以使用MATLAB的“window”函数和“cheby1”函数来创建泰勒窗。

以下是一个简单的MATLAB代码示例,用于生成一个长度为N的泰勒窗:N = 512; % 定义窗口长度n = 0:N-1; % 定义窗口内的点数% 使用cheby1函数创建泰勒窗w = cheby1(N,'symmetry',[0.01 0.99]);% 绘制泰勒窗的图形figure;plot(n,w);title('Taylor Window');xlabel('Sample');ylabel('Amplitude');在这段代码中,我们首先定义了窗口的长度N和窗口内的点数n。

然后,我们使用cheby1函数创建了一个泰勒窗。

cheby1函数可以根据指定的边界频率和类型来生成一个巴特沃斯滤波器,而泰勒窗正是巴特沃斯滤波器的一种特例。

在这段代码中,我们使用'symmetry'选项来控制滤波器的对称性,并使用[0.01 0.99]来指定边界频率。

你可以根据自己的需要来调整这些参数。

最后,我们绘制了泰勒窗的图形。

你可以看到,泰勒窗在窗口的开始和结束处呈跳跃状,这是为了减少主瓣干涉的影响。

这种特性使得泰勒窗在信号处理中具有很好的应用价值。

除了使用cheby1函数来创建泰勒窗之外,你还可以使用MATLAB的其他函数来实现不同的窗函数,例如hamming、hanning等。

这些窗函数都有各自的特点和优势,你可以根据自己的需求来选择适合的窗函数。

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

实验程序及运行结果: 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))0510152025303505101520253035Hanning窗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.81N=16;w=blackman(N); [H,W]=dtft(w,2048); plot(W/pi,abs(H))Triang窗N=16;w=triang(N); [H,W]=dtft(w,2048); plot(W/pi,abs(H))Kaiser窗N=16;b=8;w=kaiser(N,b); [H,W]=dtft(w,2048); plot(W/pi,abs(H))-1-0.8-0.6-0.4-0.200.20.40.60.81N=16; b=50;w=kaiser(N,b); [H,W]=dtft(w,2048); plot(W/pi,abs(H))3. N=10;w=boxcar(N);[H,W]=dtft(w,1024); subplot(211);plot(W/pi,abs(H)),grid;xlabel('frequency'),ylabel('magnitude'); subplot(212);plot(W/pi,angle(H)),grid;xlabel('frequency'),ylabel('phase');-1-0.8-0.6-0.4-0.200.20.40.60.810510frequencym a g n i t u de-1-0.8-0.6-0.4-0.200.20.40.60.81-4-2024frequencyp h a s eN=20;w=boxcar(N);[H,W]=dtft(w,1024); subplot(211);plot(W/pi,abs(H)),grid;xlabel('frequency'),ylabel('magnitude'); subplot(212);plot(W/pi,angle(H)),grid; xlabel('frequency'),ylabel('phase');-1-0.8-0.6-0.4-0.200.20.40.60.8105101520frequencym a g n i t u d e-1-0.8-0.6-0.4-0.200.20.40.60.81-4-2024frequencyp h a s eN=50;w=boxcar(N);[H,W]=dtft(w,1024); subplot(211);plot(W/pi,abs(H)),grid;xlabel('frequency'),ylabel('magnitude'); subplot(212);plot(W/pi,angle(H)),grid; xlabel('frequency'),ylabel('phase');-1-0.8-0.6-0.4-0.200.20.40.60.810204060frequencym a g n i t u d e-1-0.8-0.6-0.4-0.200.20.40.60.81-4-2024frequencyp h a s eN=100; w=boxcar(N); [H,W]=dtft(w,1024);subplot(211);plot(W/pi,abs(H)),grid;xlabel('frequency'),ylabel('magnitude'); subplot(212);plot(W/pi,angle(H)),grid;xlabel('frequency'),ylabel('phase');-1-0.8-0.6-0.4-0.200.20.40.60.81050100frequencym a g n i t u d e-1-0.8-0.6-0.4-0.200.20.40.60.81-4-2024frequencyp h a s e4.矩形窗fs=10; Tp=4; f=25/16; N=0.9*Tp*fs; n=[0:N-1]; w=boxcar(N);x=0.75+3.4*cos(2*pi*f*n/fs)+2.7*cos(4*pi*f*n/fs)+1.5*sin(3.5*pi*f*n/f s)+2.5*sin(7*pi*f*n/fs); y=w.*x';[H,W]=dtft(y,1024); subplot(211);plot(W/2/pi,abs(H)),grid;xlabel('frequency'),ylabel('magnitude'),title('t=0.9Tp'); N=1.1*Tp*fs; n=[0:N-1]; w=boxcar(N);x=0.75+3.4*cos(2*pi*f*n/fs)+2.7*cos(4*pi*f*n/fs)+1.5*sin(3.5*pi*f*n/f s)+2.5*sin(7*pi*f*n/fs); y=w.*x';[H,W]=dtft(y,1024); subplot(212);plot(W/2/pi,abs(H)),grid;xlabel('frequency'),ylabel('magnitude'),title('t=1.1Tp');-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5020406080frequency m a g n i t u d et=0.9Tp-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5020406080frequencym a g n i t u d et=1.1TpHanning 窗将上程序中w=boxcar(N)改为w=hanning(N)-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5010203040frequency m a g n i t u d et=0.9Tp-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5010203040frequencym a g n i t u d et=1.1TpHamming 窗将上程序中w=boxcar(N)改为w=hamming(N)-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5010203040frequency m a g n i t u d et=0.9Tp-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5010203040frequencym a g n i t u d et=1.1Tp将上程序中w=boxcar(N)改为w=bartlett(N)-0.5-0.4-0.3-0.2-0.100.10.20.30.40.50102030frequencym a gn itu de t=0.9Tp-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5010203040frequencym a gn i tu d et=1.1TpBlackman 窗将上程序中w=boxcar(N)改为w=blackman(N)-0.5-0.4-0.3-0.2-0.100.10.20.30.40.50102030frequencym a gn itu d et=0.9Tp-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5010203040frequencym a g ni tu de t=1.1Tp将上程序中w=boxcar(N)改为w=triang(N)-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5010203040frequencym a g ni tu d et=0.9Tp-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5010203040frequencym a gn i tu d e t=1.1TpKaiser 窗将上程序中w=boxcar(N)改为w=kaiser(N,8)-0.5-0.4-0.3-0.2-0.100.10.20.30.40.50102030frequencym a g nitu de t=0.9Tp-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5010203040frequencym a g ni tu d et=1.1Tp将上程序中w=boxcar(N)改为w=chebwin(N,30)-0.5-0.4-0.3-0.2-0.100.10.20.30.40.50204060frequencym a g nitu d et=0.9Tp-0.5-0.4-0.3-0.2-0.100.10.20.30.40.50204060frequencym a g nitu de t=1.1Tp将chebwin 的另一个参数r=30改为r=50,有如下结果-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5010203040frequencym a gn i tu d et=0.9Tp-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5010203040frequencym a gn i tu d et=1.1Tp。

相关文档
最新文档