数字信号处理中涉及的MATLAB子函数.docx

上传人:b****3 文档编号:5418664 上传时间:2022-12-16 格式:DOCX 页数:15 大小:168.68KB
下载 相关 举报
数字信号处理中涉及的MATLAB子函数.docx_第1页
第1页 / 共15页
数字信号处理中涉及的MATLAB子函数.docx_第2页
第2页 / 共15页
数字信号处理中涉及的MATLAB子函数.docx_第3页
第3页 / 共15页
数字信号处理中涉及的MATLAB子函数.docx_第4页
第4页 / 共15页
数字信号处理中涉及的MATLAB子函数.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数字信号处理中涉及的MATLAB子函数.docx

《数字信号处理中涉及的MATLAB子函数.docx》由会员分享,可在线阅读,更多相关《数字信号处理中涉及的MATLAB子函数.docx(15页珍藏版)》请在冰豆网上搜索。

数字信号处理中涉及的MATLAB子函数.docx

数字信号处理中涉及的MATLAB子函数

实验涉及的MATLAB子函数

plot

  功能:

按线性比例关系,在x和y两个方向上绘制二维图形。

  调用格式:

  plot(x,y);%绘制以x为横轴、y为纵轴的线性图形。

plot(x1,y1,x2,y2,…);%在同一坐标系上绘制多组x元素对y元素的线性图形。

subplot

  功能:

建立子图轴系,在同一图形界面上产生多个绘图区间。

  调用格式:

subplot(m,n,i);%在同一图形界面上产生一个m行n列的子图轴系,在第i个子图位置上作图。

figure

新建图形窗口

clearall;

  功能:

清空存储空间。

clc;

  功能:

清空命令窗。

close;

  功能:

关闭当前图形窗口。

clf;

功能:

清空当前图形窗口。

stem

  功能:

绘制二维脉冲杆图(离散序列)图形。

  调用格式:

stem(x,y);%绘制以x为横轴、y为纵轴的脉冲杆图图形。

hold

  功能:

控制当前图形是否刷新的双向切换开关。

  调用格式:

  holdon;%使当前轴及图形保持而不被刷新,准备接受此后将绘制的新曲线。

holdoff;%使当前轴及图形不再具备不被刷新的性质。

即将holdon与holdoff之间的图形画在一张图上。

title

  功能:

在图形的上方标注图名。

  调用格式:

title('string');%在图形的上方标注由字符串表示的图名,其中string的内容可以是中文或英文。

xlabel

  功能:

在横坐标的下方标注说明。

  调用格式:

xlabel('string');%在横坐标的下方标注说明,其中string的内容可以是中文或英文。

ylabel

  功能:

在纵坐标的左侧标注说明。

  调用格式:

ylabel('string');%在纵坐标的左侧标注说明,其中string的内容可以是中文或英文。

axis

  功能:

限定图形坐标的范围。

  调用格式:

axis([x1,x2,y1,y2]);%在横坐标起点为x1、终点为x2,纵坐标起点为y1、终点为y2的范围内作图。

grid

  功能:

在指定的图形坐标上绘制分格线。

  调用格式:

  grid紧跟在要绘制分格线的绘图指令后面。

例如:

plot(t,y);grid

  gridon绘制分格线。

gridoff不绘制分格线。

text

  功能:

在图形上标注文字说明。

  调用格式:

text(xt,yt,'string');%在图面上(xt,yt)坐标处书写文字说明。

其中文字说明字符串必须使用单引号标注。

set

  功能:

设置图形对象属性。

  调用格式:

  set(gca,'Xtick',xs,'Ytick',ys);%二维坐标刻度设置。

  set(gca,'Xtick',xs,'Ytick',ys,'Ztick',zs);%三维坐标刻度设置。

xs,ys,zs可以是任何合法的实数向量,分别决定了x,y,z轴的刻度。

pause

  功能:

暂停执行文件。

  调用格式:

  pause;%暂停执行文件,等待用户按任意键继续。

pause(n);%在继续执行之前,暂停n秒。

length

  功能:

取某一变量的长度(采样点数)。

  调用格式:

N=length(n);%取变量n的采样点个数,赋给变量N。

ceil

功能:

圆整到最近的大于等于A的整数。

  调用格式:

B=ceil(A)

mod

  功能:

模除求余。

调用格式:

mod(x,m);%x整除m取正余数。

floor

  功能:

向-∞舍入为整数。

  调用格式:

floor(x);%将x向-∞舍入为整数。

rand

  功能:

产生rand随机信号。

  调用格式:

x=rand(n,m);%用于产生一组具有n行m列的随机信号。

abs

  功能:

求绝对值(幅值)。

  调用格式:

  y=abs(x);%用于计算x的绝对值。

当x为复数时,得到的是复数模(幅值),即

square

功能:

产生矩形波。

调用格式:

x=square(t);%类似于sin(t),产生周期为2p,幅值为±1的方波。

  x=square(t,duty);%产生指定周期的矩形波,其中duty用于指定脉冲宽度与整个周期的比例。

sum

  功能:

求各元素之和。

  调用格式:

Z=sum(x);%求各元素之和,常用于等宽数组求定积分。

fliplr

  功能:

对矩阵行元素进行左右翻转。

  调用格式:

  x1=fliplr(x);%将x的行元素进行左右翻转,赋给变量x1。

angle

  功能:

求相角。

  调用格式:

p=angle(h);%用于求取复矢量或复矩阵H的相角(以弧度为单位),相角介于-p和+p之间。

real

  功能:

取某一复数的实部。

  调用格式:

  real(h);%取复数h的实部。

x=real(h);%取复数h的实部,赋给变量x。

imag

  功能:

取某一复数的虚部。

  调用格式:

  imag(h);%取复数h的虚部。

y=imag(h);%取复数h的虚部,赋给变量y。

 

zeros(M,N)

M行N列的全零矩阵

ones(M,N)

M行N列的全1矩阵

impz

  功能:

求解数字系统的冲激响应。

  调用格式:

  [h,t]=impz(b,a);%求解数字系统的冲激响应h,取样点数为缺省值。

  [h,t]=impz(b,a,n);%求解数字系统的冲激响应h,取样点数由n确定。

impz(b,a);%在当前窗口用stem(t,h)函数出图。

dstep

功能:

求解数字系统的阶跃响应。

调用格式:

[h,t]=dstep(b,a);%求解数字系统的阶跃响应h,取样点数为缺省值。

[h,t]=dstep(b,a,n);%求解数字系统的阶跃响应h,取样点数由n确定。

  dstep(b,a);%在当前窗口用stairs(t,h)函数出图。

zplane

  功能:

显示离散系统的零极点分布图。

  调用格式:

  zplane(z,p);%绘制由列向量z确定的零点、列向量p确定的极点构成的零极点分布图。

  zplane(b,a);%绘制由行向量b和a构成的系统函数确定的零极点分布图。

[hz,hp,ht]=zplane(z,p);%执行后可得到3个句柄向量:

hz为零点线句柄,hp为极点线句柄,ht为坐标轴、单位圆及文本对象的句柄。

conv

  功能:

进行两个序列间的卷积运算。

  调用格式:

  y=conv(x,h);%用于求取两个有限长序列x和h的卷积,y的长度取x、h长度之和减1。

  例如,x(n)和h(n)的长度分别为M和N,则y=conv(x,h),y的长度为N+M-1。

使用注意事项:

conv默认两个信号的时间序列从n=0开始,因此默认y对应的时间序号也从n=0开始。

filter

  功能:

对数字系统的输入信号进行滤波处理。

  调用格式:

  y=filter(b,a,x);%对于由矢量a、b定义的数字系统,当输入信号为x时,对x中的数据进行滤波,结果放于y中。

  [y,zf]=filter(b,a,x);%除得到结果矢量y外,还得到x的最终状态矢量zf。

y=filter(b,a,x,zi);%可在zi中指定x的初始状态。

filtic

  功能:

为filter函数选择初始条件。

  调用格式:

  z=filtic(b,a,y,x);%求给定输入x和y时的初始状态。

  z=filtic(b,a,y);%求x=0,给定输入y时的初始状态。

  其中,矢量x和y分别表示过去的输入和输出:

  x=[x(-1),x(-2),…,x(-N)]

y=[y(-1),y(-2),…,y(-N)]

fftfilt

  功能:

基于FFT算法对数字系统的输入信号进行FIR滤波处理。

  调用格式:

  y=fftfilt(b,x);%对于由矢量b定义的数字系统,当输入信号为x时,对x中的数据进行滤波,结果放于y中。

 

fft

  功能:

一维快速傅里叶变换(FFT)。

  调用格式:

  y=fft(x);%利用FFT算法计算矢量x的离散傅里叶变换,当x为矩阵时,y为矩阵x每一列的FFT。

当x的长度为2的幂次方时,则fft函数采用基2的FFT算法,否则采用稍慢的混合基算法。

y=fft(x,n);%采用n点FFT。

当x的长度小于n时,fft函数在x的尾部补零,以构成n点数据;当x的长度大于n时,fft函数会截断序列x。

当x为矩阵时,fft函数按类似的方式处理列长度。

ifft

  功能:

一维快速傅里叶逆变换(IFFT)。

  调用格式:

  y=ifft(x);%用于计算矢量x的IFFT。

当x为矩阵时,计算所得的y为矩阵x中每一列的IFFT。

y=ifft(x,n);%采用n点IFFT。

当length(x)n时,将x截断,使length(x)=n。

fftshift

  功能:

对fft的输出进行重新排列,将零频分量移到频谱的中心。

  调用格式:

  y=fftshift(x);%对fft的输出进行重新排列,将零频分量移到频谱的中心。

当x为向量时,fftshift(x)直接将x中的左右两半交换而产生y。

当x为矩阵时,fftshift(x)同时将x的左右、上下进行交换而产生y。

 

freqz

  功能:

用于求解离散时间系统的频率响应函数

  调用格式:

  [h,w]=freqz(b,a,n);%可得到数字滤波器的n点幅频响应值,这n个点均匀地分布在[0,p]上,并将这n个频点的频率记录在w中,相应的频响值记录在h中。

缺省时n=512。

  [h,f]=freqz(b,a,n,Fs);%用于对

在[0,Fs/2]上等间隔采样n点,采样点频率及相应频响值分别记录在f和h中。

由用户指定Fs(以Hz为单位)的值。

  h=freqz(b,a,w);%用于对

在[0,2p]上进行采样,采样频率点由矢量w指定。

  h=freqz(b,a,f,Fs);%用于对

在[0,Fs]上采样,采样频率点由矢量f指定。

freqz(b,a,n);%用于在当前图形窗口中绘制幅频和相频特性曲线。

buttord

  功能:

确定巴特沃斯(Butterworth)滤波器的阶数和3dB截止频率。

  调用格式:

  [n,wn]=buttord(wp,ws,Rp,As,'s');%计算巴特沃斯模拟滤波器的阶数和3dB截止频率。

wp、ws可以是实际的频率值或角频率值,wn将取相同的量纲。

Rp为通带最大衰减指标,As为阻带最小衰减指标。

  [n,wn]=buttord(wp,ws,Rp,As);%计算巴特沃斯数字滤波器的阶数和3dB截止频率。

其中,0≤wp(或ws)≤1,其值为1时表示0.5Fs。

Rp为通带最大衰减指标,As为阻带最小衰减指标。

当wp>ws时,为高通滤波器;当wp、ws为二元向量时,为带通或带阻滤波器,此时wn也为二元向量。

cheb1ord

  功能:

确定切比雪夫(Chebyshev)Ⅰ型滤波器的阶数和通带截止频率。

  调用格式:

  [n,wn]=cheb1ord(wp,ws,Rp,As,'s');%计算切比雪夫Ⅰ型模拟滤波器的阶数和通带截止频率。

wp、ws可以是实际的频率值或角频率值,wn将取相同的量纲。

Rp为通带最大衰减指标,As为阻带最小衰减指标。

  [n,wn]=cheb1ord(wp,ws,Rp,As);%计算切比雪夫Ⅰ型数字滤波器的阶数和通带截止频率。

其中,0≤wp(或ws)≤1,其值为1时表示0.5Fs。

Rp为通带最大衰减指标,As为阻带最小衰减指标。

当wp>ws时,为高通滤波器;当wp、ws为二元向量时,则为带通或带阻滤波器,此时wn也为二元向量。

cheb2ord

  功能:

确定切比雪夫(Chebyshev)Ⅱ型滤波器的阶数和阻带截止频率。

  调用格式:

  [n,wn]=cheb2ord(wp,ws,Rp,As,'s');%计算切比雪夫Ⅱ型模拟滤波器的阶数和阻带截止频率。

wp、ws可以是实际的频率值或角频率值,wn将取相同的量纲。

Rp为通带最大衰减指标,As为阻带最小衰减指标。

  [n,wn]=cheb2ord(wp,ws,Rp,As);%计算切比雪夫Ⅱ型数字滤波器的阶数和阻带截止频率。

其中,0≤wp(或ws)≤1,其值为1时表示0.5Fs。

Rp为通带最大衰减指标,As为阻带最小衰减指标。

当wp>ws时,为高通滤波器;当wp、ws为二元向量时,为带通或带阻滤波器,此时wn也为二元向量。

ellipord

  功能:

确定椭圆(Ellipse)滤波器的阶数和通带截止频率。

  调用格式:

  [n,wn]=ellipord(wp,ws,Rp,As,'s');%计算椭圆模拟滤波器的阶数和通带截止频率。

wp、ws可以是实际的频率值或角频率值,wn将取相同的量纲。

Rp为通带最大衰减指标,As为阻带最小衰减指标。

  [n,wn]=ellipord(wp,ws,Rp,As);%计算椭圆数字滤波器的阶数和通带截止频率。

其中,0≤wp(或ws)≤1,其值为1时表示0.5Fs。

Rp为通带最大衰减指标,As为阻带最小衰减指标。

当wp>ws时,为高通滤波器;当wp、ws为二元向量时,为带通或带阻滤波器,此时wn也为二元向量。

butter

  功能:

巴特沃斯(Butterworth)模拟或数字滤波器设计。

  调用格式:

  [b,a]=butter(n,wn,'s');%设计截止频率为wn的n阶巴特沃斯模拟低通或带通滤波器,其中wn>0。

  [b,a]=butter(n,wn,'ftype','s');%设计截止频率为wn的n阶巴特沃斯模拟高通或带阻滤波器。

ftype=high时,设计高通滤波器;ftype=stop时,设计带阻滤波器,此时wn=[w1,w2]。

  [b,a]=butter(n,wn);%设计截止频率为wn的n阶巴特沃斯数字滤波器。

其中,截止频率是幅度下降到3dB处的频率。

wn∈[0,1],1对应0.5Fs(取样频率)。

wn=[w1,w2]时,产生数字带通滤波器。

  [b,a]=butter(n,wn,'ftype');%可设计高通和带阻数字滤波器。

cheby1

  功能:

切比雪夫Ⅰ型滤波器设计(通带等波纹)。

  调用格式:

  [b,a]=cheby1(n,Rp,Wn,'s');%设计切比雪夫Ⅰ型模拟低通和带通滤波器。

  [b,a]=cheby1(n,Rp,Wn,'ftype','s');%设计模拟高通和带阻滤波器。

  [b,a]=cheby1(n,Rp,Wn);%设计截止频率为wn的n阶切比雪夫Ⅰ型数字低通和带通滤波器。

  [b,a]=cheby1(n,Rp,Wn,'ftype');%设计截止频率为wn的n阶切比雪夫Ⅰ型数字高通和带阻滤波器。

  说明:

切比雪夫Ⅰ型滤波器其通带内为等波纹,阻带内为单调。

切比雪夫Ⅰ型滤波器的下降斜率比Ⅱ型大,但其代价是在通带内的波纹较大。

与butter函数类似,cheby1函数可设计数字域和模拟域的切比雪夫Ⅰ型滤波器,其通带内的波纹由Rp(分贝)确定。

其它各公式的使用方法与butter函数相同,可参考相应公式。

cheby2

  功能:

切比雪夫Ⅱ型滤波器设计(阻带等波纹)。

  调用格式:

  [b,a]=cheby2(n,As,Wn,'s');%设计切比雪夫Ⅱ型模拟低通和带通滤波器。

  [b,a]=cheby2(n,As,Wn,'ftype','s');%设计模拟高通和带阻滤波器。

  [b,a]=cheby2(n,As,Wn);%设计截止频率为wn的n阶切比雪夫Ⅱ型数字低通和带通滤波器。

  [b,a]=cheby2(n,As,Wn,'ftype');%设计截止频率为wn的n阶切比雪夫Ⅱ型数字高通和带阻滤波器。

说明:

cheby2函数其通带内为单调,阻带内为等波纹,因此,由As确定阻带内的波纹。

其它各公式的使用方法与butter函数相同,可参考相应公式。

ellip

功能:

椭圆滤波器设计。

调用格式:

[b,a]=ellip(n,Rp,As,Wn,'s');%设计椭圆模拟低通和带通滤波器。

[b,a]=ellip(n,Rp,As,Wn,'ftype','s');%设计模拟高通和带阻滤波器。

[b,a]=ellip(n,Rp,As,Wn);%设计截止频率为wn的n阶椭圆数字低通和带通滤波器。

[b,a]=ellip(n,Rp,As,Wn,'ftype');%设计截止频率为wn的n阶椭圆数字高通和带阻滤波器。

ellip函数可得到下降斜度更大的滤波器,但在通带和阻带内均为等波动的。

椭圆滤波器能以最低的阶数实现指定的性能。

bilinear

  功能:

双线性变换——将s域(模拟域)映射到z域(数字域)的标准方法,将模拟滤波器变换成离散等效滤波器。

  调用格式:

  [numd,dend]=bilinear(num,den,Fs);%将模拟域传递函数变换为数字域传递函数,Fs为取样频率。

  [numd,dend]=bilinear(num,den,Fs,Fp);%将模拟域传递函数变换为数字域传递函数,Fs为取样频率,Fp为通带截止频率。

  [zd,pd,kd]=bilinear(z,p,k,Fs);%将模拟域零极点增益系数变换到数字域,Fs为取样频率。

  [zd,pd,kd]=bilinear(z,p,k,Fs,Fp);%将模拟域零极点增益系数变换到数字域,Fs为取样频率,Fp为通带截止频率。

[Ad,Bd,Cd,Dd]=bilinear(A,B,C,D,Fs);%将模拟域状态变量系数变换到数字域,Fs为取样频率。

impinvar

  功能:

用脉冲响应不变法实现模拟到数字的滤波器变换。

调用格式:

[bd,ad]=impinvar(b,a,Fs);%将模拟滤波器系数b、a变换成数字的滤波器系数bd、ad,两者的冲激响应不变。

  [bd,ad]=impinvar(b,a);%采用Fs的缺省值1Hz。

 

boxcar

  功能:

矩形窗。

  格式:

w=boxcar(n)

说明:

boxcar(n)函数可产生一长度为n的矩形窗函数。

hanning

功能:

hanning(汉宁)窗。

格式:

w=hanning(n)

说明:

hanning(n)可产生n点的hanning窗。

hanning窗函数系数为

hamming

  功能:

hamming(哈明)窗。

格式:

w=hamming(n)

说明:

hamming(n)可产生n点的hamming窗。

hamming窗函数系数为

blackman

  功能:

blackman(布莱克曼)窗。

  格式:

w=blackman(n)

  说明:

blackman(n)可产生n点的blackman窗。

blackman窗函数系数为

  与等长度的hamming和hanning窗相比,blackman窗的主瓣稍宽,旁瓣稍低。

kaiser

功能:

kaiser(凯塞)窗。

格式:

w=kaiser(n,beta)

说明:

kaiser(n,beta)可产生n点的kaiser窗函数,其中,beta为影响窗函数旁瓣的

参数,其最小的旁瓣抑制

之间的关系为

增加

可使主瓣变宽、旁瓣的幅度降低。

fir1

功能:

基于窗函数的FIR数字滤波器设计——标准频率响应,以经典方法实现加窗线性相位FIR滤波器设计,可设计出标准的低通、带通、高通和带阻滤波器。

格式:

b=fir1(n,Wn);%设计截止频率为Wn的hamming(哈明)加窗线性相位滤波器,滤波器系数包含在b中。

当0≤Wn≤1(Wn=1相应于0.5fs)时,可得到n阶低通FIR滤波器。

当Wn=[W1W2]时,fir1函数可得到带通滤波器,其通带为

1<

<

2。

b=fir1(n,Wn,’ftype’);%可设计高通和带阻滤波器,由ftype决定:

当ftype=high时,设计高通FIR滤波器;

当ftype=stop时,设计带阻FIR滤波器。

在设计高通和带阻滤波器时,fir1函数总是使用偶对称N为奇数(即第一类线性相位FIR滤波器)的结构,因此当输入的阶次为偶数时,fir1函数会自动加1。

b=fir1(n,Wn,Window);%利用列矢量Window中指定的窗函数进行滤波器设计,Window长度为n+1。

如果不指定Window参数,则fir1函数采用hamming窗。

b=fir1(n,Wn,’ftype’,Window);%可利用ftype和Window参数设计各种加窗的滤波器。

由fir1函数设计的FIR滤波器的群延迟为n/2。

MATLAB操作快速入门

MATLAB主界面

窗口显示信息

有问题的.m程序文件

File-Open(打开文件):

找到lab11.m文件所在的文件夹

CurrentDirectory(当前目录):

当前正在运行的.m文件所在的文件夹。

用户自编的、被调用的子函数需与主函数在同一个文件夹下

CommandWindow(命令窗):

1)显示指定变量的结果;

2)编程出错时,用红色字体显示出错的行、列及存在的问题(此例指出第7行15列不完整,从下面的m文件看到,该处缺右括号)

Workspace(工作空间):

放当前运行程序中所有变量的相关信息(数据类型、维数、具体值、波形)

注意:

1.文件名及文件夹名必须以英文字母开头,由英文字母和数字组成

2..m文件只有在MATLAB界面下打开时,才可点击Debug-Run,运行程序

3.对程序中不理解的语句可参考《实验涉及的MATLAB子函数.doc》获得解答

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1