实验二:系统响应及系统稳定性
实验内容
(1)离散时间系统的单位取样响应
试用 Matlab 命令求解以下离散时间系统的单位取样响应,并判断系统的稳定性。
1)
2)
a = [3, 4, 1]; % 差分方程右端的系数向量
b = [1, 1]; % 差分方程左端的系数向量
y = filter(b, a, x); % 零状态响应
'3y(n)+ 4y(n-1) + y(n-2) = x(n)+ x(n-1)' ...
a = [5/2, 6, 10]; % 差分方程右端的系数向量
y = filter(b, a, x); % 零状态响应
'5/2y(n)+ 6y(n-1) + 10y(n-2) = x(n)' ...
(2)离散时间系统的零状态响应
单位取样响应:
求系统的激励信号为:
的零状态响应 x = uDT(nx) - uDT(nx - 5); % 激励信号
h = (7/8) .^ nh .* (uDT(nh) - uDT(nh - 10)); % 单位取样响应
limits = [-10, 24, 0, 5];
title('系统的零状态响应 y(n) = x(n)*h(n)');
(3)用数字图像处理中的 Sobel 算子,调用 conv2 函数对 lena 图像进行滤波。
用数字图像处理中的 Sobel 算子,调用 conv2 函数对 lena 图像进行滤波。设两个 3×3 的 Sobe 矩阵算子 Gx=[-1 0 1;-2 0 2;-1 0 1],Gy=[1 2 1;0 0 0;-1 -2 -1]。
1)读取 lena 图像数据,保存到 B 矩阵中;
2)分如下三种情况对 B 进行卷积滤波
① 采用 Gx 与 B 进行卷积;
② 采用 Gy 与的 B 进行卷积;
③ 先采用 Gx 与 B 进行卷积,然后再采用 Gy 与 B 进行卷积;
④ 在一个 figure 中,分四个子图显示出:原始图像,经过 Gx 卷积滤波后图像、经过 Gy 卷积滤波后图像,先后采用 Gx 和 Gy 与的 B 进行卷积滤波后的图像,观察滤波后的图像的效果。
Gx = [-1 0 1; -2 0 2; -1 0 1];
Gy = [1 2 1; 0 0 0; -1 -2 -1];
B = imread('lena.bmp'); % 读取图像
res3 = res1 + res2; % 这个效果比下面那个好
% res3 = conv2(res1, Gy); % 这个不行
title('Gx 和 Gy 卷积滤波后图像');
Gx = [-1 0 1; -2 0 2; -1 0 1];
Gy = [1 2 1; 0 0 0; -1 -2 -1];
B = imread('lena_colour.bmp'); % 读取图像
[row, col, chan] = size(B);
fig1 = zeros(row, col, 3);
fig1(:,:,i) = conv2(B(:,:,i), Gx, 'same');
fig2 = zeros(row, col, 3);
fig2(:,:,i) = conv2(B(:,:,i), Gy, 'same');
title('Gx 和 Gy 卷积滤波后图像');
思考题
计算离散时间系统的卷积和、绘制卷积波形图
(1) Matlab 的工具箱函数 conv,能用于计算两个有限长序列之间的卷积,但 conv 函 数 假 定 这 两 个 序 列 都 从 n=0 开 始 。 试 编 写 M 文 件 计 算 x(n) 和 h(n) 之 间 的 卷积,并绘制 y(n) 的波形图。
(2) 在数字图像处理边缘检测技术中,除了 Sobel 算子外,还有哪些边缘检测算子?通过查找资料,选择某种边缘检测算子,在 Matlab 平台上编程实现对 lena 或其他图像进行边缘检测,显示出原图和边缘检测后的图像。
说明:
(1)计算、绘制 y(n),编写的 convu() 在最下面
x = [3, 11, 7, 0, 1, 4, 2];
[y, ny] = convu(h, nh, x, nx);
(2)显示出原图和边缘检测后的图像
B = imread('lena.bmp'); % 读取图像
title('canny 算子边缘检测后的图像');
title('sobel 算子边缘检测后的图像');
function [y, ny] = convu(h, nh, x, nx)