数字信号处理(DSP:Digital Signal Process)是电子通信领域非常重要的研究方向,博主汇总了数字信号处理(DSP)中常用的经典案例分析,主要基于算法分析、MATLAB程序实现、信号图像显示,对数字信号处理的实际应用进行详细分析。
第一篇 常见离散信号的MATLAB产生和图形显示
常见离散信号的MATLAB产生和图形显示
(1)复习常用离散时间信号的有关内容。
(2)编制程序产生上述6种序列(长度可输入确定,对(4) (5) (6)中的参数可自行选择),并绘出其图形。
(3)已知系统的单位脉冲响应 输入信号 ,试用卷积法求解系统的输出 ,并绘出 、 及 图形。
(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