经典matlab信号处理基础知识

合集下载

第1章 MATLAB入门.pdf_MATLAB信号处理超级学习手册_[共9页]

第1章  MATLAB入门.pdf_MATLAB信号处理超级学习手册_[共9页]

第1章 MATLAB入门MATLAB是一种用于数值计算、可视化及编程的高级语言和交互式环境。

使用MATLAB,用户可以分析数据、开发算法、创建模型和应用程序。

MATLAB借助编程、工具和内置数学函数,可以探求多种方法,比电子表格或其他传统编程语言更快地求取结果。

它是一种功能强大的科学计算软件。

在使用之前,读者应该对它有一个整体的了解。

本章主要介绍MA TLAB的基本知识,如主要特点、系统安装、基本操作等。

学习目标:1.理解MATLAB的特点。

2.熟悉MATLAB各种平台的窗口。

3.熟练掌握MATLAB的各种基本操作。

4.熟悉MATLAB中M文件的操作。

1.1 MATLAB概述MATLAB是由美国MathWorks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案。

1.1.1 什么是MATLABMATLAB提供了一个高性能的数值计算和图形显示的科学和工程计算软件环境。

这种易于使用的MATLAB环境,是由数值分析、矩阵运算、信号处理和图形绘制等组成。

在这种环境下,问题和解答的表达形式(程序)几乎和它们的数学表达式完全一样,而不像传统的编程那样繁杂。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C、FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使其成为一个强大的数学软件。

MATLAB在新的版本中也加入了对C、FORTRAN、C++、Java的支持。

用户可以直接调用它们,也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用。

此外,许多的MATLAB爱好者还编写了一些经典的程序,用户可以直接进行下载使用。

Matlab中的信号处理与拟合方法介绍

Matlab中的信号处理与拟合方法介绍

Matlab中的信号处理与拟合方法介绍引言:信号处理是一门研究如何对信号进行分析、处理和提取信息的学科。

而在Matlab中,信号处理与拟合方法是其强大功能之一。

本文将介绍一些常用的信号处理方法和拟合技术,以帮助读者更好地掌握和应用这些技术。

一、时域信号处理方法1. 信号滤波信号滤波是对信号中所包含的噪声进行抑制或去除的过程。

常用的信号滤波方法包括无源滤波和有源滤波。

无源滤波是指通过改变信号的特性来达到滤波的目的,如低通滤波器、高通滤波器等。

有源滤波是在信号路径中引入可控的元件,如电容、电感等来实现滤波的效果。

2. 自相关与互相关自相关是指信号与其自身在时间上的相关性。

在Matlab中,可以使用xcorr函数实现自相关计算。

互相关是指两个不同信号之间的相关性。

在Matlab中,可以使用xcorr函数实现互相关计算。

3. 平均滤波平均滤波是通过对一系列信号的平均值进行计算来减少噪声的影响。

在Matlab 中,可以使用filter函数实现平均滤波。

二、频域信号处理方法1. 快速傅里叶变换(FFT)FFT是一种将信号从时域转换到频域的方法,它可以将信号分解成一系列频谱分量。

在Matlab中,可以使用fft函数进行傅里叶变换,并使用ifft函数进行逆变换。

2. 滤波器设计滤波器设计是一种通过在频域对信号进行滤波来减少噪声的方法。

在Matlab中,可以使用fir1等函数设计滤波器。

3. 频谱分析频谱分析是通过对信号的频谱进行分析来研究信号特性的方法。

在Matlab中,可以使用pwelch函数进行功率谱估计。

三、信号拟合方法1. 多项式拟合多项式拟合是将信号拟合成多项式函数的方法。

在Matlab中,可以使用polyfit 函数进行多项式拟合,并使用polyval函数进行预测。

2. 最小二乘法拟合最小二乘法是一种通过最小化观测值与拟合值之间的差异来拟合信号的方法。

在Matlab中,可以使用lsqcurvefit函数进行最小二乘法拟合。

使用Matlab进行数字信号处理的技巧与注意事项

使用Matlab进行数字信号处理的技巧与注意事项

使用Matlab进行数字信号处理的技巧与注意事项1. 引言数字信号处理(Digital Signal Processing,简称DSP)是指通过对离散时间信号进行算法处理以达到某种目的的一种技术。

在现代科技和工程领域中,DSP被广泛应用于通信、图像处理、音频处理、医学诊断、雷达和控制系统等众多领域。

而Matlab作为一种强大的数学计算工具,具备优秀的信号处理和算法库,成为众多工程师和研究人员进行数字信号处理的首选之一。

本文将介绍一些使用Matlab 进行数字信号处理时的技巧与注意事项。

2. 信号处理基础知识在使用Matlab进行数字信号处理之前,有一些基础知识是必备的。

首先是对信号的了解,信号可以分为连续时间信号和离散时间信号。

连续时间信号指的是信号在所有时间上都有定义,而离散时间信号则只在某些时间点上有定义。

数字信号处理主要针对离散时间信号进行。

此外,还需要了解采样定理、变换、滤波器以及噪声等基本概念。

3. 信号与信号处理在进行数字信号处理时,首先需要得到待处理的信号。

Matlab提供了多种方法来生成信号,比如使用波形发生器函数、加载文件以及使用模型等。

根据具体情况选择合适的方法生成待处理信号。

4. 信号的可视化与分析在开始处理信号之前,可以使用Matlab中的图形工具对信号进行可视化和分析。

例如,使用plot函数可以绘制信号的时域波形图,使用spectrogram函数可以绘制信号的频谱图,利用histogram函数可以绘制信号的直方图等。

这些图像可以帮助我们更好地理解信号的特征和性质。

5. 信号的滤波处理滤波是数字信号处理中常用的操作之一,用于去除信号中的噪声、增强信号的频率特征等。

Matlab提供了丰富的滤波器设计函数,包括有限冲激响应(FIR)滤波器和无限冲击响应(IIR)滤波器等。

通过选择合适的滤波器类型、阶数和截止频率等参数,可以实现对信号的滤波处理。

6. 时频分析时频分析用于分析信号在时间和频率上的变化情况,帮助我们更全面地认识信号的特性。

Matlab数字信号处理

Matlab数字信号处理

Matlab数字信号处理1、信号的产生2、信号的运算3、差分方程与Z变换4、快速傅里叶变换5、数字滤波器的设计6、使用中的一些技巧、单位阶跃序列x=ones(1,n);n=1:N;y = square(2*pi*30*t);●8、三角波(锯齿波)●sawtooth(t,width);●产生周期为2*pi幅值为正负1的三角波,●width为宽度,取0-1之间的数●例:t = 0:.0001:.0625;●y = sawtooth(2*pi*30*t,1);●plot(t,y);●sawtooth函数类似于sin函数,其中width用于调整三角波峰值位置,sawtooth(t,1)等价于sawtooth(t)。

二、信号的运算●1、信号的延迟●给定信号x(n),若信号y1(n)、y2(n)分别定义为:●y1(n)=x(n-k)●y2(n)=x(n+k)●那么,y1(n)是整个x(n)在时间轴上右移k个时间单位所得到的新序列,y2(n)是整个x(n)在时间轴上左移k个时间单位所得到的结果。

●编程实现:●function [y,n]=sig_shift(x,m,n0)●m为输入x的下标;n0为延迟单位●n=m+n0;●y=x;●2、相加、相乘●x(n)=x1(n)+x2(n);●x(n)=x1(n)*x2(n)●当两个向量相乘时,若用.*表示数组相乘,●此时,x1中对应元素与x2中对应元素相乘,所得结果作为结果数组(矩阵),要求两原始数组中元素个数相同,如果采用*是进行向量(矩阵)的乘法,相加时要求两原始数组中元素个数相同。

●4、信号的折叠●信号折叠就是对x(n)每一项对n=0的纵坐标进行折叠,即: y(n)=x(-n)●y(n)与x(n)关于n=0对称;●y=fliplr(x);●n=-fliplr(n);●在实际应用中,fliplr的主要作用是把序列倒转,●例:x=[1,2,3;4,5,6];●y=fliplr(x);●%y=[3,2,1;6,5,4]●●6、信号的卷积●Matlab提供了内部函数conv来实现两个有限长序列的卷积,该函数假定两个序列的是从n=0开始的。

学习使用MATLAB进行信号处理和仿真

学习使用MATLAB进行信号处理和仿真

学习使用MATLAB进行信号处理和仿真信号处理是一门重要的学科,它在许多领域中发挥关键作用,包括通信、图像处理、生物医学工程等。

而MATLAB作为一个功能强大的编程软件,具备丰富的信号处理和仿真工具,因此被广泛应用于信号处理领域。

本文将重点介绍如何学习使用MATLAB进行信号处理和仿真。

一、MATLAB入门要使用MATLAB进行信号处理和仿真,首先需要对MATLAB有一定的了解。

MATLAB是一种高级计算机语言,可用于数值计算、可视化和编程。

首先,我们需要学习MATLAB的基本语法和特点,包括变量的定义和操作、矩阵运算、函数的定义和调用等。

其次,熟悉MATLAB的常用工具箱,如信号处理工具箱和控制系统工具箱,它们提供了丰富的函数和算法,方便进行信号处理和仿真。

二、信号的表示与分析在信号处理中,首先需要了解信号的表示与分析方法。

MATLAB提供了多种表示信号的方法,包括时域分析和频域分析。

时域分析是通过观察信号在时间上的变化来研究信号的性质,常用的时域分析方法有时域图形显示、自相关函数和互相关函数等。

频域分析则是将信号转换到频域进行分析,常用的频域分析方法有傅里叶变换和功率谱密度估计等。

学习使用MATLAB进行信号的时域和频域分析,可以更好地理解和处理信号。

三、滤波器设计与应用滤波器是信号处理中非常常见和重要的工具。

它可以通过选择性地通过或抑制特定频率的信号,对信号进行处理。

MATLAB提供了丰富的滤波器设计和应用函数,包括低通滤波器、高通滤波器、带通滤波器和带阻滤波器等。

我们可以利用MATLAB进行滤波器的设计、参数的调整和滤波器效果的评估等工作。

熟练掌握MATLAB中滤波器设计与应用的方法,对信号处理和仿真工作具有重要意义。

四、信号处理应用实例学习信号处理和仿真离不开实际应用实例的学习。

在这一章节中,将以几个具体的信号处理应用实例来展示MATLAB的具体使用。

比如,在通信领域中,我们可以利用MATLAB进行信号调制、解调和信道编码等工作。

MATLAB数字信号处理

MATLAB数字信号处理
17
频率响应的实例
• 例:先构成一个截止频率为400Hz的9阶巴特沃思 (Butterworth)低通数字滤波器,求出其系数b,a,再 求出其256点频率响应。指定的采样频率fs =2000Hz。
• 实现1:先调用butter函数,再调用freqz函数;
• 实现2:无返回输出参数,调用freqz函数;
• 使用方法类似freqz函数。 • 与第二章(p32例2-1)采用数组相除方法求取频
率响应相比,使用freqs 函数要方便很多。
23
5.3.2 零极点分析
• zplane 函数用于画出线性系统在Z平面上的零 极点。有两种使用方法: 1、在已知零极点时,例如某滤波器的零点为1/2,一对共轭极点为 0.9ej2(0.3) 和 0.9ej2(0.3) 时, 只要输入命令 zer = -0.5; pol = 0.9*exp(j*2*pi*[-0.3 0.3]'); zplane(zer,pol) 即可画出零极点。 (见p70图5-6)
2
5.2.1 卷积
• MATLAB提供 conv函数实现标准的一维信号卷积 : 例如,若系统h(n)为 >>h=[1 1 1]
输入序列x(n)为 >>x=[1 1 1]
则x(n)经过系统h(n)后的MATLAB实现为: >>conv(h,x) 或 conv([1 1 1], [1 1 1])
执行后即得到y(n)为 ans = 12321
• 如果n、m都大于零,称为ARMA滤波器,而其 冲激响应也为IIR。
7
filter函数
• MATLAB提供了 filter函数来对离散信号进行滤 波,表达信号通过系统后的结果无限冲 激响应系统的情况,但信号仍须是有限长的。

Matlab数字信号处理

Matlab数字信号处理

1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
9、sinc函数信号
y=sinc(x); 产生周期为2*pi,随x的增加衰减震荡的 偶函数,在n*pi处值为零

1 0.8
0.6
0.4
0.2
0
-0.2
-0.4
0
0.01
程序实现: clc; clear; x=[1 zeros(1,63)]; b=[0.2 0.1]; a=[1 –0.4 –0.5]; h=filter(b,a,x); h1=impz(b,a); figure; stem(h); title(‘Filter function’); figure; stem(h1) title(‘Impz function’)
250 300 Frequency (Hz)
350
400
450
500



(2)切比雪夫法设计滤波器 切比雪夫法设计滤波器可以分为切比雪夫1法 和切比雪夫2法两种,这里我们只介绍切比雪 夫1法。 其语法结构为: [b,a]=cheby1(n,Rp,wn); [b,a]=cheby1(n,Rp,wn,’ftype’); …… 设计的是一个阶数为n,截止频率为wn,通带 波纹衰减为Rp的低通滤波器。返回值a,b分别是 阶数为n+1的向量,表示滤波器系统函数的分 母和分子的多项式系数,滤波器的传递函数可 以表示为:

它有如下两种形式: y=filter(b,a,x) 由上图可以知道:b=[0.2,0.1] a=[1,-0.4,-0.5] 则系统的单位抽样响应为:h=filter(b,a,x) (2)impz函数实现 Impz(b,a)可以直接得到单位抽样响应,并画出 响应图形

Matlab中的信号处理方法与示例分析

Matlab中的信号处理方法与示例分析

Matlab中的信号处理方法与示例分析引言:信号处理是指对信号进行采集、变换、压缩、恢复等操作的一种技术。

在现代科学和工程领域中,信号处理在音频、图像、视频等领域中有着广泛的应用。

Matlab作为一款功能强大的科学计算软件,提供了丰富的信号处理工具箱,方便用户进行信号处理的研究和应用。

本文将介绍Matlab中的信号处理方法以及一些示例分析。

一、时域分析1.基本信号生成:Matlab可以方便地生成各种基本信号,如正弦信号、方波信号、脉冲信号等。

利用Matlab编写的生成函数,可以通过输入参数来灵活生成所需的信号。

2.时域图像绘制:利用Matlab的图像绘制函数,可以将信号在时域上进行可视化表示。

通过绘制的时域图像,我们可以对信号的幅值、波形等特征进行直观的观察和分析。

3.时域运算:利用Matlab的向量化运算,我们可以对信号进行各种时域运算,如加法、减法、乘法、除法等。

这些操作对于研究信号的变换和传输过程具有重要的意义。

二、频域分析1.快速傅里叶变换(FFT):Matlab提供了方便的FFT函数,可以对信号进行频域分析,得到信号在频域上的表示。

通过FFT变换后的结果,我们可以得到信号的功率谱密度、频谱等信息。

2.频谱图绘制:Matlab中的频谱图绘制函数可以将信号的频谱绘制成直观的图像,帮助我们更好地理解信号的频率特征。

通过频谱图的分析,可以发现信号中的主要频率成分以及噪声等信息。

3.滤波操作:通过在频域上对信号进行滤波操作,可以实现信号的去噪、降噪等目的。

Matlab中提供了丰富的滤波函数和滤波器设计工具,方便用户进行信号滤波处理。

三、小波分析1.小波变换:小波变换是一种非平稳信号分析的有效方法。

Matlab中有多种小波变换函数,可以对信号进行小波变换,并得到信号在时频域上的表示。

小波变换可以更好地捕捉信号的瞬时特征,对于研究非平稳信号非常有用。

2.小波包分解:Matlab提供了小波包分解函数,可以将信号进行小波包变换,并得到信号在不同频带的分解系数。

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

常用函数1 图形化信号处理工具,fdatool(滤波器设计),fvtool(图形化滤波器参数查看)sptool (信号处理),fvtool(b,a),wintool窗函数设计.或者使用工具箱filter design设计。

当使用离散的福利叶变换方法分析频域中的信号时,傅里叶变换时可能引起漏谱,因此需要采用平滑窗,2数字滤波器和采样频率的关系。

如果一个数字滤波器的采样率为FS,那么这个滤波器的分析带宽为Fs/2。

也就是说这个滤波器只可以分析[0,Fs/2]的信号.举个例字:有两个信号,S1频率为20KHz,S2频率为40KHz,要通过数字方法滤除S2。

你的滤波器的采样率至少要为Fs=80HKz,否则就分析不到S2了,更不可能将它滤掉了!(当然根据采样定理,你的采样率F0也必须大于80HK,,Fs和F0之间没关系不大,可以任取,只要满足上述关系就行。

)3两组数据的相关性分析r=corrcoef(x,y)4 expm 求矩阵的整体的exp4离散快速傅里叶fft信号处理中,傅里叶变换的典型用途是将信号分解成幅值分量和频率分量)。

Ft为连续傅里叶变换。

反傅里叶ifft5 ztrans(),Z变换是把离散的数字信号从时域转为频率6 laplace()拉普拉斯变换是把连续的的信号从时域转为频域7 sound(x)会在音响里产生x所对应的声音8 norm求范数,det行列式,rank求秩9 模拟频率,数字频率,模拟角频率关系模拟频率f:每秒经历多少个周期,单位Hz,即1/s;模拟角频率Ω是指每秒经历多少弧度,单位rad/s;数字频率w:每个采样点间隔之间的弧度,单位rad。

Ω=2pi*f; w = Ω*T10 RMS求法Rms = sqrt(sum(P.^2))或者norm(x)/sqrt(length(x)var方差的开方是std标准差,RMS应该是norm(x)/sqrt(length(x))吧. 求矩阵的RMS:std(A(:))11ftshift 作用:将零频点移到频谱的中间12 filtfilt零相位滤波,采用两次滤波消除系统的非线性相位,y = filtfilt(b,a,x);注意x的长度必须是滤波器阶数的3倍以上,滤波器的阶数由max(length(b)-1,length(a)-1)确定。

13 [h,t]=impz(b,a,n,fs),计算滤波器的冲激响应 h为n点冲击响应向量[h,x]=freqz(b,a,n,fs)计算频响,有fs时,x为频率f,无fs,x为w角频率,常用于查看滤波器的频率特性14 zplane(z,p) 画图零极点分布图15 beta=unwarp(alpha) 相位会在穿越+-180发生回绕,可将回绕的16 stepz 求数字滤波器的阶跃响应[h,t] = stepz(b,a,n,fs)fvtool(b1,a1,b2,a2,...bn,an) fvtool(Hd1,Hd2,...) h = fvtool(...)15 IIR数字滤波器设计方法1 先根据已知带同参数求出最佳滤波器阶数和截止频率[n,Wn] = buttord(Wp,Ws,Rp,Rs);[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s')[b,a]=butter(n,Wn,’ftype’,’s’)其中Wp为,0-1之间。

Ws为阻带角频率,0-1之间。

Rp为通带波纹,或者通带衰减,Rs为阻带衰减。

若果给出的是模拟频率fp1通带截止频率,fp2阻带截止频率,则Wp=fp1*2/fs, Ws=fp2*2/fs.如果给出的是实际数字频率比如0.3*pi,如果给出的是y=filter(b,a,x);或者采用零相位滤波y=filtfilt(b,a,x)15 传统FIR滤波器Ftype为滤波器类型,比如高通,低通,window为窗函数类型。

Window—窗函数。

例子1 设计一个通带滤波器,带宽为0.35-0.65b = fir1(48,[0.35 0.65]);freqz(b,1,512)16窗函数长度:窗函数的长度应等于FIR滤波器系数个数,即滤波器阶数n+1。

17 加窗函数的FIR滤波器长度的确定17.1 buttord函数求出最佳滤波器阶数和截止频率,然后用fir1函数调用,窗函数长度为滤波器最佳阶数n+117.2 用窗函数方法设计FIR滤波器,由滤波器的过渡带的宽度和选择的窗函数决定这里举一个选用海明窗函数设计低通滤波器的例子。

低通滤波器的设计要求是:采样频率为100Hz,通带截至频率为3 Hz,阻带截止频率为5 Hz,通带内最大衰减不高于0.5 dB,阻带最小衰减不小于50 dB。

使用海明窗函数。

确定N的步骤有:1,从上表可查得海明窗的精确过渡带宽为 6.6pi/N;(在有些书中用近似过渡带来计算,这当然没有错,但阶数增大了,相应也增加计算量。

)2,本低通滤波器的过渡带是:DeltaW=Ws-Wp=(5-3)*pi/50=.04pi3,N=6.6pi/DeltaW=6.6pi /0.04pi=165所以滤波器的阶数至少是165。

在该帖子中是用理想低通滤波器的方法来计算的,这里用fir1函数来计算,相应的程序有fs=100; % 采样频率wp = 3*pi/50; ws = 5*pi/50;deltaw= ws - wp; % 过渡带宽Δω的计算N = ceil(6.6*pi/ deltaw) + 1; % 按海明窗计算所需的滤波器阶数N0wdham = (hamming(N+1))'; % 海明窗计算Wn=(3+5)/100; % 计算截止频率b=fir1(N,Wn,wdham);[H,w]=freqz(b,1);db=20*log10(abs(H));% 画频响曲线plot(w*fs/(2*pi),db);title(' 幅度响应(单位: dB)');gridaxis([0 50 -100 10]); xlabel('频率(单位:Hz)'); ylabel('分贝')set(gca,'XTickMode','manual','XTick',[0,3,5,50])set(gca,'YTickMode','manual','YTick',[-50,0])17 数字滤波器函数Butter,cheyshev切比雪夫[b,a]=cheby1(n,rp,wn,options), [b,a]=besself(n,wn,options)[b,a]=ellip((n,rp,rs,wn,options) n为阶数,wn为截止频率rad/s,rs 为阻带起伏.wn在0-1之间,且1对应于采样频率的一半。

[b,a]=butter(n,Wn,options),[z,p,k] = butter(n,Wn,'ftype','s')[z,p,k] = butter(n,Wn,'ftype')A,B,C,D] = butter(n,Wn,'ftype','s')‘ftype’对应'high' 是高通滤波器的归一化截止频率'low' 低通滤波器的归一化截止频率'stop' for an order 2*n bandstop digital filter if Wn is a two-element vector, Wn = [w1 w2]. The stopband is w1 < ω < w2.21 窗函数1 矩形窗: Window=boxcar(8);b=fir1(7,0.4,Window);freqz(b,1)2 blackman窗: Window=blackman(8);b=fir1(7,0.4,Window);freqz(b,1)3 hamming;4 hanning;5 kaiser滤波器阶数估计[n,fo,ao,w] = firpmord(f,a,dev)fs = 2000; % Sampling frequencyf = [500 600]; % Cutoff frequenciesa = [1 0]; % Desired amplitudesdev = [(10^(rp/20)-1)/(10^(rp/20)+1) 10^(-rs/20)];[n,fo,ao,w] = firpmord(f,a,dev,fs);b = firpm(n,fo,ao,w);freqz(b,1,1024,fs);18 y=resample(x,p,q)数字信号中的重采样。

这时输出信号y的采样频率就是x的p/q倍,其长度为length(x)*p/q19 conv 卷积 deconv 反卷积或者求多项式乘法。

xcorr互相关函数 cov协方差 fft2二维FFT fft2二维FFT逆变换xcorr2 ,conv2 二维卷积20 平滑滤波filter函数首先要设计好滤波器,然后调用filter.平滑滤波似乎有些过时,b utterworth才显得稍微有些技术含量用法。

filter本身作用是求卷积和convfilter(B,1,X,[],dim);dim缺省为1,是按列滤波的,如果改为2,则是按行滤波。

y = filter(b, a, x),其中b,a为滤波器系数。

计算系统在输入x作用下的零状态响应y[k] 举例:计算低通滤波器的冲激响应例题1 点平均滤波f1=3;f2=40;fs=100;t=0:1/fs:1;x=sin(2*pi*t*f1)+.25*sin(2*pi*t*f2);b=ones(1,10)/10; y=filter(b,1,x);求冲激响应stem(y);yy=filtfilt(b,1,x);plot(t,x);hold on;plot(t,x,'r',t,yy,'g')例2利用filter函数求滑动平均Matlab有多种计算滑动平均的方法,现介绍基于filter函数的计算方法。

设原始数据为x,平均窗口设为a(a为正整数),那么无权重滑动平均后的数据y为:windowSize = a;y=filter(ones(1,windowSize)/windowSize,1,x);上述命令实际上计算的是:y(1)=(1/a)*x(1);y(2)=(1/a)*x(2)+(1/a)*x(1);y(a)=(1/a)*x(a)+(1/a)*x(a-1)+...+(1/a)*x(1);y(i)=(1/a)*x(i)+(1/a)*x(i-1)+...+(1/a)*x(i-a+1);4. frezq数字滤波器的频率响应[H, W]=freqz(B, A, N) 当N是一个整数时返回N点的频率向量H和N点的幅频响应向量W。

相关文档
最新文档