对于通信工程和电子信息工程中所需要学习的《数字信号处理》,其中包含一些有趣的实验,通过MATLAB仿真可以得到,笔者例举一些相关的题目与解析供各位读者参考,如有问题可以私信留言,一起加油,共同进步!!!
事先声明,代码与图像仅供参考,如需要源文件可以去主页寻找相关资源。
实验一题目要求:
绘制以下四个图像:
①δ(k-3)
②u(k-3)
③X(k)=0.5*(3/4)^k
④sin(Πk/3+Π/5)
笔者是使用MATLAB R2022a绘制图像,并且文件会上传到本人的资源中,有需要的可以下载。
其他版本可能会出现不兼容的问题,有问题可以留言解决。
图像一:
对于一个冲击信号来说,确定自变量的取值范围,之后对于函数的关系进行定义,之后通过stem语句绘制对应的图形即可。
本题参考代码如下:
%冲激信号
k=-4:20;
x=[zeros(1,7),1,zeros(1,17)];
stem(k,x);
运行后的图像如下图所示:
图像二:
对于阶跃信号来说,与上面的冲激信号原理相同,定义存在些许差异。
本题的参考代码如下:
%阶跃信号
k=-4:20;
x=[zeros(1,7),1,ones(1,17)];
stem(k,x);
其运行出的图下如下所示:
图像三:
对于一个指数函数进行绘制,首先应该对于自变量,也就是时间,对其范围进行定义,之后对于函数的关系定义,初始化相关的变量,通过合理的赋值得到所需要的函数。最后通过绘图指令绘制相关的图像。
本题参考代码如下:
%指数函数
% 定义时间范围
k = 0:10;
% 计算X(k)
X_k = 0.5 * (3/4).^k;
% 初始化向量
X_k_vector = zeros(1, length(k));
% 将计算得到的X(k)赋值给向量
X_k_vector = X_k;
% 绘制图像
stem(k, X_k_vector, 'filled');
xlabel('k');
ylabel('X(k)');
title('Sequence X(k) = 0.5 * (3/4)^k');
grid on;
运行结果图像如下图所示:
图像四:
绘制正弦函数图像,与指数函数相同,首先应该对于时间范围进行定义,计算出正弦函数sin序列值,初始化相关的向量,得到的序列赋值给向量,最后通过plot指令绘制相关的图像。
本题参考代码如下:
%正弦函数
% 定义时间范围
K = 0:100;
% 计算sin序列
sin_sequence = sin(pi * K / 3 + pi / 5);
% 初始化向量
sin_vector = zeros(1, length(K));
% 将计算得到的sin序列赋值给向量
sin_vector = sin_sequence;
% 绘制图像
plot(K, sin_vector);
xlabel('K');
ylabel('sin(\piK/3 + \pi/5)');
title('Sequence sin(\piK/3 + \pi/5)');
grid on;
运行结果图像如下图所示:
好的,这是对于实验一的分享,最后说明,本博客是笔者原创并且作为复习笔记使用,相干题目,代码,运行结果图仅供参考,最后一起努力,勇攀高峰!!!