Matlab-信号与系统计算
Intro
Matlab 的脚本文件为 .m
文件.
取索引处的值
Matlab 中的索引用 ()
而非 []
:
1 |
|
且, Matlab 中的索引是从 1
开始的.
查看文档
如查看 print
的文档:
1 |
|
注释
用 %
.
常用函数
自然指数
1 |
|
三角函数
1 |
|
实数和虚数
1 |
|
绝对值
1 |
|
角度
1 |
|
对数
1 |
|
定义连续的区间和离散的区间
定义连续的区间
如:
1 |
|
其中 0.1
为步长.
同样可以用 linspace
函数:
1 |
|
其中 0, 1
为范围, 11
为元素数量.
定义离散的区间
如:
1 |
|
需要加上 []
.
也可以用 ones
, zeros
等函数.
描述一个离散时间函数
如:
$$
\displaylines
{
\begin{aligned}
x[n] = \begin{cases}
2n, -3 \le n \le 3 \newline~ \newline
0, otherwise
\end{cases}
\end{aligned}
}
$$
可用:
1 |
|
描述
给变量插入一段离散值
如:
1 |
|
此时 x
的值为:
1 |
|
这样写之后:
1 |
|
x
的值变为:
1 |
|
zeros 函数
其用于创建一个由 0 组成的数组或矩阵:
1 |
|
可以利用这个来插入一维零矩阵来填充:
1 |
|
size 函数
其返回矩阵或数组的大小 (如 1x1, 2x2, 也就是矩阵的维度).
绘制信号曲线
stem 函数
其为 staircase error minimization 的缩写 (但不知道关系在哪里).
用于绘制离散信号的离散序列图:
1 |
|
x
是 x 轴上的向量, y
是 y 轴上的向量.
LineSpec
用于指定线条样式, 如 r--
.
给图像打上 label 以及 title
用 xlabel
, ylabel
, 和 title
1 |
|
操作两个函数
若不是用符号变量 (还没了解这个) 表示函数, 则需要用 .
符号, 如两个函数相乘, 需要写成:
1 |
|
定义 Matlab 函数
一般将定义的函数单独放在一个文件中, 函数定义的语法为:
1 |
|
计算卷积
用 conv
函数.
若有:
$$
\displaylines
{
\begin{aligned}
x[n] = \begin{cases}
1, 0 \le n \le 5 \newline~ \newline
0, otherwise
\end{cases}
\end{aligned}
}
$$
则计算 y[n] = x[n] * x[n]
为:
1 |
|
滤波
用 filter
函数.
其实际作用就是解方程.
用于计算:
$$
\displaylines
{
\begin{aligned}
\sum_{k=0}^K a_k y[n-k] = \sum_{m=0}^M b_m x[n-m]
\end{aligned}
}
$$
这里的 $a_k$ 和 $b_k$ 为滤波器系数 (?)
如计算 y[n] + 2y[n-1] = x[n] - 3x[n-1]
:
1 |
|
用 filter 计算离散时间的卷积
离散时间的卷积式可以写为:
$$
\displaylines
{
\begin{aligned}
y[n] = \sum_{m=-\infty}^\infty b_m x[n-m] \newline~ \newline
\end{aligned}
}
$$
符号变量
需要安装有 Symbolic Math Toolbox 包才行.
创建和使用如:
1 |
|
ezplot
用于绘制符号函数.