0%

基于MATLAB的卷积演示系统

实验目的和要求

实验目的

卷积作为一种基本的信号处理方法,拥有许 多不同的变体和应用。通过选择合适的卷积算 法,我们可以更好地处理各种类型的信号数据, 从而为我们解决实际问题提供更好的支持。 通过本次课程设计,使得学生能够充分了 解卷积的相关定义、计算和定理;使得学生能 够使用GUI/app design进行图形化界面设计。

实验要求

  • 用matlab完成线性卷积的计算过程,并绘图;使用GUI/app design设计一个线性卷积的基本演 示系统;要求两个卷积信号的参数可以自由给定;设计框图中直接包含“计算按钮” ,直接计算卷积结果
  • 分析卷积计算结果

实验原理

线性卷积

设两序列 $x(n), h(n)$,其线性卷积定义为
$$
y(n)=\sum_{m=-\infty}^{\infty} x(m) * h(n-m)
$$
(1)翻褶: $\quad h(m) \rightarrow h(-m)$

(2) 移位: $h(-m) \rightarrow h(n-m)$

(3) 相乘: $x(m) h(n-m)$

(4) 相加: $\sum_{m=-\infty}^{\infty} x(m) h(n-m)$

圆周卷积

设 $x(n), h(n)$ 为 $N$ 点有限长序列, 其圆周卷积定义为
$$
y(n)=\sum_{m=0}^{N-1} x_1(m) x_2((n-m))_N R_N(n)\space\space\space\space\space\space\space\space\space N 点圆周卷积
$$
圆周卷积时域过程:

  1. 补零: $x_1(n), x_2(n)$ 补零至 $N$ 点长
  2. 周期延拓: $x_2(m)$ 周期延拓为 $x_2((m))_N$
  3. 翻褶, 取主值序列: $x_2((-m))_N R_N(m)$
  4. 圆周移位: $x_2((n-m))_N R_N(m)$
  5. 相乘相加: $x_1(m) x_2((n-m))_N R_N(m)$

圆周卷积频域过程
$$
\begin{gathered}
D F T\left[x_1(n)\right]=X_1(k) \quad \operatorname{DFT}\left[x_2(n)\right]=X_2(k) \\
\text { 若 } Y(k)=X_1(k) \cdot X_2(k) \\
y(n)=I D F T[Y(k)]=\left[\sum_{m=0}^{N-1} x_1(m) x_2((n-m))_N\right] R_N(n)
\end{gathered}
$$

二者关系

$$
x_1(n) Ⓝ x_2(n)=x_1(n) * x_2(n)\left\{\begin{array}{c}
N \geq N_1+N_2-1 \\
0 \leq n \leq N_1+N_2-2
\end{array}\right.
$$

实验方法与内容

实验思路

用matlab设计卷积演示界面,然后设计两个有限长序列,当演示时进行输入。要求能够体现翻褶,移位,相加,相乘。

需求分析

线性卷积需求分析

(1) 线性卷积的翻褶: $h(m) \rightarrow h(-m)$, 可通过以 $\mathrm{y}$ 轴为对称翻转。

(2) 线性卷积的移位: 将 $h(-m)$ 移位 $n$, 得 $h(n-m)$ 。当 $n$ 为正, 右移, $n$ 为负, 左移。

(3) 线性卷积的相乘:将对应点相乘。

(4) 线性卷积的相加:将对应点相加。

圆周卷积需求分析

圆周卷积可通过三个步骤完成

(1) 初始化:确定 $\mathrm{N}$ ,若序列长度小于 $\mathrm{N}$ 则补 0

(2) 右移: 将序列 $\times(n)$ 循环右移, 移动 $N$ 次, 得到矩阵

(3) 相乘:将得到的矩阵和第二个序列相乘, 得到结果

然后进行时域演示和频域演示

实验结果及分析

线性卷积演示

alt text

圆周卷积时域演示

alt text

圆周卷积频域演示

两者关系验证

alt text
alt text
alt text
alt text
当 $\mathrm{L}=\mathrm{N} 1+\mathrm{N} 2$ 时, 线性卷积和圆周卷积结果相等。