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

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

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

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

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

);

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

xlabel

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

xlabel('

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

ylabel

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

ylabel('

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

axis

限定图形坐标的范围。

axis([x1,x2,y1,y2]);

%在横坐标起点为x1、终点为x2,纵坐标起点为y1、终点为y2的范围内作图。

grid

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

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

例如:

plot(t,y);

grid

  gridon绘制分格线。

gridoff不绘制分格线。

text

在图形上标注文字说明。

text(xt,yt,'

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

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

set

设置图形对象属性。

  set(gca,'

Xtick'

xs,'

Ytick'

ys);

%二维坐标刻度设置。

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时,将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。

当wp>

ws时,为高通滤波器;

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

cheb1ord

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

  [n,wn]=cheb1ord(wp,ws,Rp,As,'

%计算切比雪夫Ⅰ型模拟滤波器的阶数和通带截止频率。

  [n,wn]=cheb1ord(wp,ws,Rp,As);

%计算切比雪夫Ⅰ型数字滤波器的阶数和通带截止频率。

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

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

cheb2ord

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

  [n,wn]=cheb2ord(wp,ws,Rp,As,'

%计算切比雪夫Ⅱ型模拟滤波器的阶数和阻带截止频率。

  [n,wn]=cheb2ord(wp,ws,Rp,As);

%计算切比雪夫Ⅱ型数字滤波器的阶数和阻带截止频率。

ellipord

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

  [n,wn]=ellipord(wp,ws,Rp,As,'

%计算椭圆模拟滤波器的阶数和通带截止频率。

  [n,wn]=ellipord(wp,ws,Rp,As);

%计算椭圆数字滤波器的阶数和通带截止频率。

butter

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

  [b,a]=butter(n,wn,'

%设计截止频率为wn的n阶巴特沃斯模拟低通或带通滤波器,其中wn>0。

ftype'

'

%设计截止频率为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]时,产生数字带通滤波器。

%可设计高通和带阻数字滤波器。

cheby1

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

  [b,a]=cheby1(n,Rp,Wn,'

%设计切比雪夫Ⅰ型模拟低通和带通滤波器。

%设计模拟高通和带阻滤波器。

  [b,a]=cheby1(n,Rp,Wn);

%设计截止频率为wn的n阶切比雪夫Ⅰ型数字低通和带通滤波器。

%设计截止频率为wn的n阶切比雪夫Ⅰ型数字高通和带阻滤波器。

  说明:

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

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

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

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

cheby2

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

  [b,a]=cheby2(n,As,Wn,'

%设计切比雪夫Ⅱ型模拟低通和带通滤波器。

  [b,a]=cheby2(n,As,Wn);

%设计截止频率为wn的n阶切比雪夫Ⅱ型数字低通和带通滤波器。

%设计截止频率为wn的n阶切比雪夫Ⅱ型数字高通和带阻滤波器。

说明:

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

ellip

椭圆滤波器设计。

[b,a]=ellip(n,Rp,As,Wn,'

%设计椭圆模拟低通和带通滤波器。

[b,a]=ellip(n,Rp,As,Wn);

%设计截止频率为wn的n阶椭圆数字低通和带通滤波器。

%设计截止频率为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