数字信号处理中涉及的MATLAB子函数
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[h, f] = freqz(b, a, n, Fs); % 用 于 对 H(e j)在[0, Fs/2]上等间隔采样 n 点,采样点频 率及相应频响值分别记录在 f 和 h 中。由用
户指定 Fs(以 Hz 为单位)的值。 h = freqz(b, a, w); %用于对 H(e j) 在[0,
被刷新的性质。 即将 hold on 与 hold off 之间的图形画在一
张图上。
title 功能:在图形的上方标注图名。 调用格式:
title('string'); %在图形的上方标注由字 符串表示的图名,其中 string 的内容可以是 中文或英文。
xlabel
功能:在横坐标的下方标注说明。 调用格式: xlabel('string'); %在横坐标的下方标注 说明,其中 string 的内容可以是中文或英文。
为 2p,幅值为±1 的方波。 x = square(t, duty); %产生指定周期
的矩形波,其中 duty 用于指定脉冲宽度与整 个周期的比例。
sum 功能:求各元素之和。 调用格式:
Z = sum(x); %求各元素之和,常用于等 宽数组求定积分。
fliplr 功能:对矩阵行元素进行左右翻转。 调用格式: x1 = fliplr(x); %将 x 的行元素进行左
的零点、列向量 p 确定的极点构成的零极点 分 布图。
zplane(b, a); %绘制由行向量 b 和 a 构成的系统函数确定的零极点分布图。
[hz, hp, ht] = zplane(z, p); %执行后可得 到 3 个句柄向量:hz 为零点线句柄,hp 为 极点线句柄,ht 为坐标轴、单位圆及文本对 象的句柄。
ceil 功能:圆整到最近的大于等于 A 的整
数。
调用格式:B = ceil(A)
mod 功能:模除求余。
调用格式: mod(x, m); %x 整除 m 取正余数。
floor 功能:向 -∞舍入为整数。 调用格式:
floor(x); %将 x 向 -∞舍入为整数。
rand 功能:产生 rand 随机信号。 调用格式:
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。
[n, wn] = buttord(wp, ws, Rp, As); % 计算巴特沃斯数字滤波器的阶数和 3 dB 截
止频率。其中,0≤wp(或 ws)≤1,其值为 1 时表示 0.5Fs。Rp 为通带最大衰减指标,As 为阻带最小衰减指标。
当 wp>ws 时,为高通滤波器;当 wp、ws 为二元向量时,为带通或带阻滤波器,此时 wn 也为二元向量。
2p]上进行采样,采样频率点由矢量 w 指定。 h = freqz(b, a, f, Fs); %用于对 H(e j) 在
[0, Fs]上采样,采样频率点由矢量 f 指定。 freqz(b, a, n); %用于在当前图形窗口中
绘制幅频和相频特性曲线。
buttord 功能:确定巴特沃斯(Butterworth)滤波
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)]
的离散傅里叶变换,当 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 函数按类 似的方式处理列长度。
fftfilt 功能:基于 FFT 算法对数字系统的输入
信号进行 FIR 滤波处理。 调用格式: y = fftfilt(b, x); %对于由矢量 b 定义
的数字系统,当输入信号为 x 时,对 x 中的 数据进行滤波,结果放于 y 中。
fft 功能:一维快速傅里叶变换(FFT)。 调用格式: y = fft(x); %利用 FFT 算法计算矢量 x
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 的初始状态。
分别决定了 x,y,z 轴的刻度。
pause 功能:暂停执行文件。 调用格式: pause; %暂停执行文件,等待用户按
任意键继续。 pause(n); %在继续执行之前,暂停 n 秒。
length 功能:取某一变量的长度(采样点数)。 调用格式:
N = length(n); %取变量 n 的采样点个 数,赋给变量 N。
stem 功能:绘制二维脉冲杆图(离散序列)图
形。 调用格式:
stem(x, y); %绘制以 x 为横轴、y 为纵轴 的脉冲杆图图形。
hold 功能:控制当前图形是否刷新的双向切
换开关。 调用格式: hold on; %使当前轴及图形保持而不
被刷新,准备接受此后将绘制的新曲线。 hold off; %使当前轴及图形不再具备不
冲激响应 h,取样点数为缺省值。 [h, t] = impz(b, a, n); %求解数字系统
的冲激响应 h,取样点数由 n 确定。 impz(b, a); %在当前窗口用 stem(t, h)函
数出图。
dstep 功能:求解数字系统的阶跃响应。 调用格式: [h, t] = dstep(b, a); %求解数字系统的阶
器的阶数和 3 dB 截止频率。 调用格式: [n, wn] = buttord(wp, ws, Rp, As,
's'); %计算巴特沃斯模拟滤波器的阶数和 3 dB 截止频率。wp、ws 可以是实际的频率 值或角频率值,wn 将取相同的量纲。Rp 为 通带最大衰减指标,As 为阻带最小衰减指 标。
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); %求解数字系统的
右翻转,赋给变量 x1。
angle 功能:求相角。 调用格式:
p = angle(h); %用于求取复矢量或复矩 阵 H 的相角(以弧度为单位),相角介于-p 和+p 之间。
real 功能:取某一复数的实部。 调用格式: real(h); %取复数 h 的实部。
x = real(h); %取复数 h 的实部,赋给变 量 x。
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 开始。
ylabel 功能:在纵坐标的左侧标注说明。 调用格式:
ylabel('string'); %在纵坐标的左侧标注 说明,其中 string 的内容可以是中文或英文。
axis 功能:限定图形坐标的范围。 调用格式:
axis([x1, x2, y1, y2]); %在横坐标起点 为 x1、终点为 x2,纵坐标起点为 y1、终点 为 y2 的范围内作图。
set 功能:设置图形对象属性。 调用格式: set(gca, 'Xtick', xs, 'Ytick', ys); %二维
坐标刻度设置。 set(gca, 'Xtick', xs, 'Ytick', ys, 'Ztick',
zs); %三维坐标刻度设置。 xs,ys,zs 可以是任何合法的实数向量,
x = rand(n, m); %用于产生一组具有 n 行 m 列的随机信号。
abs 功能:求绝对值(幅值)。
调用格式: y = abs(x); %用于计算 x 的绝对值。 当 x 为复数时,得到的是复数模(幅值), 即 abs(x) (Re(x))2 (Im(x))2
square 功能:产生矩形波。 调用格式: x = square(t); %类似于 sin(t),产生周期
fftshift 功能:对 fft 的输出进行重新排列,将
零频分量移到频谱的中心。 调用格式:
y = fftshift(x); %对 fft 的输出进行重 新排列,将零频分量移到频谱的中心。当 x 为向量时,fftshift(x)直接将 x 中的左右两半 交换而产生 y。
当 x 为矩阵时,fftshift(x)同时将 x 的左右、 上下进行交换而产生 y。
实验涉及的 MATLAB 子函数
plot 功能:按线性比例关系,在 x 和 y 两个
方向上绘制二维图形。 调用格式: plot(x, y); %绘制以 x 为横轴、y 为纵
轴的线性图形。 plot(x1, y1, x2, y2, …); %在同一坐标
系上绘制多组 x 元素对 y 元素的线性图形。
subplot 功能:建立子图轴系,在同一图形界面
跃响应 h,取样点数为缺省值。 [h, t] = dstep(b, a, n); %求解数字系统的
阶跃响应 h,取样点数由 n 确定。 dstep(b, a); %在当前窗口用 stairs(t, h)
函数出图。
zplane 功能:显示离散系统的零极点分布图。 调用格式: zplane(z, p); %绘制由列向量 z 确定
grid 功能:在指定的图形坐标上绘制分格
线。 调用格式: grid 紧跟在要绘制分格线的绘图指令
后面。例如:plot(t, y); grid grid on 绘制分格线。
grid off 不绘制分格线。
text 功能:在图形上标注文字说明。 调用格式:
text(xt, yt, 'string'); %在图面上(xt, yt)坐 标处书写文字说明。其中文字说明字符串 必须使用单引号标注。
freqz 功能:用于求解离散时间系统的频率响
应函数 H (e j )。 调用格式: [h, w] = freqz(b, a, n); %可得到数字
滤波器的 n 点幅频响应值,这 n 个点均匀地 分布在[0, p]上,并将这 n 个频点的频率记录 在 w 中,相应的频响值记录在 h 中。缺省时 n = 512。
cheb1ord 功能:确定切比雪夫(Chebyshev)Ⅰ型滤
波器的阶数和通带截止频率。 调用格式: [n, wn] = cheb1ord(wp, ws, Rp, As,
上产生多个绘图区间。 调用格式:
subplot(m, n, i); %在同一图形界面上产 生一个 m 行 n 列的子图轴系,在第 i 个子图 位置上作图。
figuБайду номын сангаасe
新建图形窗口
clear all; 功能:清空存储空间。
clc; 功能:清空命令窗。
close; 功能:关闭当前图形窗口。
clf; 功能:清空当前图形窗口。
户指定 Fs(以 Hz 为单位)的值。 h = freqz(b, a, w); %用于对 H(e j) 在[0,
被刷新的性质。 即将 hold on 与 hold off 之间的图形画在一
张图上。
title 功能:在图形的上方标注图名。 调用格式:
title('string'); %在图形的上方标注由字 符串表示的图名,其中 string 的内容可以是 中文或英文。
xlabel
功能:在横坐标的下方标注说明。 调用格式: xlabel('string'); %在横坐标的下方标注 说明,其中 string 的内容可以是中文或英文。
为 2p,幅值为±1 的方波。 x = square(t, duty); %产生指定周期
的矩形波,其中 duty 用于指定脉冲宽度与整 个周期的比例。
sum 功能:求各元素之和。 调用格式:
Z = sum(x); %求各元素之和,常用于等 宽数组求定积分。
fliplr 功能:对矩阵行元素进行左右翻转。 调用格式: x1 = fliplr(x); %将 x 的行元素进行左
的零点、列向量 p 确定的极点构成的零极点 分 布图。
zplane(b, a); %绘制由行向量 b 和 a 构成的系统函数确定的零极点分布图。
[hz, hp, ht] = zplane(z, p); %执行后可得 到 3 个句柄向量:hz 为零点线句柄,hp 为 极点线句柄,ht 为坐标轴、单位圆及文本对 象的句柄。
ceil 功能:圆整到最近的大于等于 A 的整
数。
调用格式:B = ceil(A)
mod 功能:模除求余。
调用格式: mod(x, m); %x 整除 m 取正余数。
floor 功能:向 -∞舍入为整数。 调用格式:
floor(x); %将 x 向 -∞舍入为整数。
rand 功能:产生 rand 随机信号。 调用格式:
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。
[n, wn] = buttord(wp, ws, Rp, As); % 计算巴特沃斯数字滤波器的阶数和 3 dB 截
止频率。其中,0≤wp(或 ws)≤1,其值为 1 时表示 0.5Fs。Rp 为通带最大衰减指标,As 为阻带最小衰减指标。
当 wp>ws 时,为高通滤波器;当 wp、ws 为二元向量时,为带通或带阻滤波器,此时 wn 也为二元向量。
2p]上进行采样,采样频率点由矢量 w 指定。 h = freqz(b, a, f, Fs); %用于对 H(e j) 在
[0, Fs]上采样,采样频率点由矢量 f 指定。 freqz(b, a, n); %用于在当前图形窗口中
绘制幅频和相频特性曲线。
buttord 功能:确定巴特沃斯(Butterworth)滤波
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)]
的离散傅里叶变换,当 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 函数按类 似的方式处理列长度。
fftfilt 功能:基于 FFT 算法对数字系统的输入
信号进行 FIR 滤波处理。 调用格式: y = fftfilt(b, x); %对于由矢量 b 定义
的数字系统,当输入信号为 x 时,对 x 中的 数据进行滤波,结果放于 y 中。
fft 功能:一维快速傅里叶变换(FFT)。 调用格式: y = fft(x); %利用 FFT 算法计算矢量 x
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 的初始状态。
分别决定了 x,y,z 轴的刻度。
pause 功能:暂停执行文件。 调用格式: pause; %暂停执行文件,等待用户按
任意键继续。 pause(n); %在继续执行之前,暂停 n 秒。
length 功能:取某一变量的长度(采样点数)。 调用格式:
N = length(n); %取变量 n 的采样点个 数,赋给变量 N。
stem 功能:绘制二维脉冲杆图(离散序列)图
形。 调用格式:
stem(x, y); %绘制以 x 为横轴、y 为纵轴 的脉冲杆图图形。
hold 功能:控制当前图形是否刷新的双向切
换开关。 调用格式: hold on; %使当前轴及图形保持而不
被刷新,准备接受此后将绘制的新曲线。 hold off; %使当前轴及图形不再具备不
冲激响应 h,取样点数为缺省值。 [h, t] = impz(b, a, n); %求解数字系统
的冲激响应 h,取样点数由 n 确定。 impz(b, a); %在当前窗口用 stem(t, h)函
数出图。
dstep 功能:求解数字系统的阶跃响应。 调用格式: [h, t] = dstep(b, a); %求解数字系统的阶
器的阶数和 3 dB 截止频率。 调用格式: [n, wn] = buttord(wp, ws, Rp, As,
's'); %计算巴特沃斯模拟滤波器的阶数和 3 dB 截止频率。wp、ws 可以是实际的频率 值或角频率值,wn 将取相同的量纲。Rp 为 通带最大衰减指标,As 为阻带最小衰减指 标。
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); %求解数字系统的
右翻转,赋给变量 x1。
angle 功能:求相角。 调用格式:
p = angle(h); %用于求取复矢量或复矩 阵 H 的相角(以弧度为单位),相角介于-p 和+p 之间。
real 功能:取某一复数的实部。 调用格式: real(h); %取复数 h 的实部。
x = real(h); %取复数 h 的实部,赋给变 量 x。
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 开始。
ylabel 功能:在纵坐标的左侧标注说明。 调用格式:
ylabel('string'); %在纵坐标的左侧标注 说明,其中 string 的内容可以是中文或英文。
axis 功能:限定图形坐标的范围。 调用格式:
axis([x1, x2, y1, y2]); %在横坐标起点 为 x1、终点为 x2,纵坐标起点为 y1、终点 为 y2 的范围内作图。
set 功能:设置图形对象属性。 调用格式: set(gca, 'Xtick', xs, 'Ytick', ys); %二维
坐标刻度设置。 set(gca, 'Xtick', xs, 'Ytick', ys, 'Ztick',
zs); %三维坐标刻度设置。 xs,ys,zs 可以是任何合法的实数向量,
x = rand(n, m); %用于产生一组具有 n 行 m 列的随机信号。
abs 功能:求绝对值(幅值)。
调用格式: y = abs(x); %用于计算 x 的绝对值。 当 x 为复数时,得到的是复数模(幅值), 即 abs(x) (Re(x))2 (Im(x))2
square 功能:产生矩形波。 调用格式: x = square(t); %类似于 sin(t),产生周期
fftshift 功能:对 fft 的输出进行重新排列,将
零频分量移到频谱的中心。 调用格式:
y = fftshift(x); %对 fft 的输出进行重 新排列,将零频分量移到频谱的中心。当 x 为向量时,fftshift(x)直接将 x 中的左右两半 交换而产生 y。
当 x 为矩阵时,fftshift(x)同时将 x 的左右、 上下进行交换而产生 y。
实验涉及的 MATLAB 子函数
plot 功能:按线性比例关系,在 x 和 y 两个
方向上绘制二维图形。 调用格式: plot(x, y); %绘制以 x 为横轴、y 为纵
轴的线性图形。 plot(x1, y1, x2, y2, …); %在同一坐标
系上绘制多组 x 元素对 y 元素的线性图形。
subplot 功能:建立子图轴系,在同一图形界面
跃响应 h,取样点数为缺省值。 [h, t] = dstep(b, a, n); %求解数字系统的
阶跃响应 h,取样点数由 n 确定。 dstep(b, a); %在当前窗口用 stairs(t, h)
函数出图。
zplane 功能:显示离散系统的零极点分布图。 调用格式: zplane(z, p); %绘制由列向量 z 确定
grid 功能:在指定的图形坐标上绘制分格
线。 调用格式: grid 紧跟在要绘制分格线的绘图指令
后面。例如:plot(t, y); grid grid on 绘制分格线。
grid off 不绘制分格线。
text 功能:在图形上标注文字说明。 调用格式:
text(xt, yt, 'string'); %在图面上(xt, yt)坐 标处书写文字说明。其中文字说明字符串 必须使用单引号标注。
freqz 功能:用于求解离散时间系统的频率响
应函数 H (e j )。 调用格式: [h, w] = freqz(b, a, n); %可得到数字
滤波器的 n 点幅频响应值,这 n 个点均匀地 分布在[0, p]上,并将这 n 个频点的频率记录 在 w 中,相应的频响值记录在 h 中。缺省时 n = 512。
cheb1ord 功能:确定切比雪夫(Chebyshev)Ⅰ型滤
波器的阶数和通带截止频率。 调用格式: [n, wn] = cheb1ord(wp, ws, Rp, As,
上产生多个绘图区间。 调用格式:
subplot(m, n, i); %在同一图形界面上产 生一个 m 行 n 列的子图轴系,在第 i 个子图 位置上作图。
figuБайду номын сангаасe
新建图形窗口
clear all; 功能:清空存储空间。
clc; 功能:清空命令窗。
close; 功能:关闭当前图形窗口。
clf; 功能:清空当前图形窗口。