系列文章目录
数字信号处理(DSP:Digital Signal Process)是电子通信领域非常重要的研究方向,博主汇总了数字信号处理(DSP)中常用的经典案例分析,主要基于算法分析、MATLAB程序实现、信号图像显示,对数字信号处理的实际应用进行详细分析。 第一篇 常见离散信号的MATLAB产生和图形显示 常见离散信号的MATLAB产生和图形显示
一、实验目的
1.熟悉MATLAB应用环境,常用窗口的功能和使用方法。
2.加深对常用离散时间信号的理解。
3.掌握简单的绘图命令。
4.掌握线性卷积的计算机编程方法。
二、实验原理
三、实验内容及步骤
(1)复习常用离散时间信号的有关内容。 (2)编制程序产生上述6种序列(长度可输入确定,对(4) (5) (6)中的参数可自行选择),并绘出其图形。 (3)已知系统的单位脉冲响应 输入信号 ,试用卷积法求解系统的输出 ,并绘出 、 及 图形。
四、实验用MATLAB函数介绍
(1)数字信号处理中常用到的绘图指令(只给出函数名,具体调用格式参看help) figure(); plot(); stem(); axis(); grid on; title(); xlabel(); ylabel(); text(); hold on; subplot() (2)离散时间信号产生可能涉及的函数 zeros(); ones(); exp(); sin(); cos(); abs(); angle(); real(); imag(); (3)卷积计算可能涉及的函数 conv(); length() 注:实验过程中也可以使用自己编制的自定义函数,如impseq()、stepseq()等。
五、实验代码
MATLAB程序源码:
%单位采样序列
n=-10:10;
y1=zeros(1,21);
y1(1,11)=1;
subplot(3,2,1);
stem(n,y1);
axis([-10 10 -0.1 1.1]);
xlabel('n');ylabel('y1')
title('单位采样序列');
%单位阶跃序列
n=-10:10;
y2=zeros(1,21);
y2(1,11:21)=1;
subplot(3,2,2);
stem(n,y2);
axis([-10 10 -0.1 1.1]);
xlabel('n');ylabel('y2')
title('单位阶跃序列');
%矩形序列
n=-10:10;
y3=zeros(1,21);
y3(1,11:13)=1;
subplot(3,2,3);
stem(n,y3);
axis([-10 10 -0.1 1.1]);
xlabel('n'); ylabel('y3');
title('3点矩阵序列');
%正弦序列
x=-100:100;
y4=2*sin(2*x+2);
subplot(3,2,4);
stem(x,y4);
axis([-100.1 100.1 -2.1 2.1]);
xlabel('x'); ylabel('y4');
title('正弦序列');
%复正弦序列
n=-10:10;
y5=exp(j*2*n);
subplot(3,2,5);
stem(n,y5);
axis([-10.5 10.5 -2.1 2.1]);
xlabel('n'); ylabel('y5');
title('复正弦序列');
%指数序列
n=-10:10;
y6=2.^n;
subplot(3,2,6);
stem(n,y6);
axis([-10.5 10.5 -2.1 1025]);
xlabel('n');ylabel('y6');
title('指数序列');
%x(n)-n图像
n=-100:100;
x=zeros(1,201);
x(1,101:110)=1;
subplot(2,2,1);
stem(n,x);
axis([-100.5 100.5 -1.1 1.1]);
xlabel('n'); ylabel('x');
title('x(n)-n图像');
%h(n)—n图像
n=-100:100;
y2=zeros(1,201);
y2(1,101:201)=1;
h=(0.9.^n).*y2;
subplot(2,2,2);
stem(n,h);
axis([-100.5 100.5 -0.1 1.1]);
xlabel('n');ylabel('h')
title('h(n)—n图像');
%卷积
n=-100:100;
[y,ny]=convu(h,n,x,n)
subplot(2,2,3);
stem(ny,y)
axis([-100.5 100.5 -10 10]);
xlabel('n');ylabel('y')
title('y(n)—n图像');
% convu函数
function [y,ny]=convu(h,nh,x,nx)
nys=nh(1)+nx(1);nyf=nh(end)+nx(end);
y=conv(h,x);ny=nys:nyf;
end
六、实验结果
|