数字信号处理实验---离散时间信号 Matlab代码

文章展示了如何通过Matlab编程实现离散信号的生成、变换和图形绘制,包括离散时间单位冲激序列、加权组合、移位操作以及指数和余弦函数应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. x1 (n) = 3δ(n + 2) + 2δ(n) -δ(n - 3) + 5δ(n - 7), -5 < n < 15 , 绘制离散信号波
(1)   子程序代码
​
% 生成一个离散时间单位冲激序列

function [x,n]=impseq(n0,n1,n2)    

n=[n1:n2];

x=[(n-n0)==0];

​
(2)   主程序代码
clc;

clear;

[x1,n]=impseq(-2,-5,15); [x2,n]=impseq(0,-5,15);  [x3,n]=impseq(3,-5,15);  [x4,n]=impseq(7,-5,15);

y1=3*x1;

y2=2*x2;

y3=(-1)*x3;

y4=5*x4;

y=y1+y2+y3+y4;

%绘制离散序列的图像

stem(n,y,'b');

title(' -5 <= n <= 15'); xlabel('x1(n)');

ylabel('y(n)');

axis([-5,15,-1.1,5.1]);
  (3)仿真结果:

2x2 (n) = 10u(n) - 5u(n - 5) - 10u(n - 10) + 5u(n - 15),绘制离散信号波形
(1)   子程序
function [x,n]=jyhs(n0,n1,n2)

n=[n1:n2];

x=[(n-n0)>=0];
(2)   主程序:
clc;

clear;

[x1,n]=jyhs(0,-5,15);

[x2,n]=jyhs(5,-5,15);

[x3,n]=jyhs(10,-5,15);

[x4,n]=jyhs(15,-5,15);

y1=10*x1;

y2=(-5)*x2;

y3=(-10)*x3;

y4=5*x4;

y=y1+y2+y3+y4;

stem(n,y,'b');

title('-5 <= n <= 15'); xlabel('x2(n)');

ylabel('y(n)');

(3)仿真结果:

3.x3 (n) = 5sin (0.01πn)cos (0.5πn) + 2 cos(0.51πn - 10), -200 < n < 200 绘制模
拟波形
(1)   主程序:
clc;
clear;
n=-200:1:200;
y1=5.*sin(0.01*pi*n).*cos(0.5*pi*n);
y2=2.*cos(0.51*pi*n-10);
y=y1+y2;                                            
plot(n,y,'b');                                   
title('-200<= n <= 200');
xlabel('x3(n)');
ylabel('y(n)');
(2)仿真结果:

4.x4 (n) = e-0.05nsin (0. 1πn + 3π), 0 < n < 100 ,绘制模拟波形
(1)主程序:
clc;
clear;
n=0:1:100;
y=exp(-0.05*n).*sin(0.1*pi*n+3*pi); plot(n,y,'b');
title(' 0<= n <= 100');
xlabel('x4(n)');
ylabel('y(n)');
2)仿真结果:

5.  x (n) = {2,4,- 3,1,- 5,4,7} ,绘            x1 (n) = 4x(n + 4) + 5x(n + 5) + 2x(n),
1)子程序:
%将离散序列向右平移k个单位
function [y,n] = sigshift(x,m,k) n = m+k;
y = x;
2)主程序:
clc;
clear;
n=[-3,-2,-1,0,1,2,3];
x=[2,4,-3,1,-5,4,7];
[y1,n]=sigshift(x,n,-4);
[y2,n]=sigshift(x,n,-5);
y=4*y1+5*y2+2*x;
plot(n,y,'b');
title('n');
xlabel('x5(n)');
ylabel('y(n)');
3)仿真结果:
6.x2 (n) = 2e0.5nx (n)+cos(0. 1πn)x (n + 2) , - 10 < n < 10
1)子程序
function [y,n] = sigshift(x,m,k)           
n = m+k;
y = x;
2)主程序:
clc;
clear;
n=[-3,-2,-1,0,1,2,3];
x=[2,4,-3,1,-5,4,7];
[y1,n]=sigshift(x,n,-2);                          
y=2*exp(0.5*n).*x+cos(0.1*pi*n).*y1;
plot(n,y,'b'); 
title('n');
xlabel('x6(n)');
ylabel('y(n)');

3)仿真结果:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

篱笆外的xixi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值