MATLAB离散时间信号的实现和时域基本运算(九)

1、实验目的:

1)了解时域离散信号的特点;

2)掌握MATLAB在时域内产生常用离散时间信号的方法;

3)熟悉离散时间信号的时域基本运算;

4)掌握离散时间信号的绘图命令。

2、实验内容:

2-1)、编程实现单位阶跃延迟序列u(n-2)图形。(注:图形的起点为0,终点为6,加注图名称)。

n0=0; nf=6; ns=2;   %起点为0,终点为6,在2出有单位阶跃序列
n=n0:nf;  %生成离散信号的时间序列
f=[zeros(1,ns-n0),ones(1,nf-ns+1)]; %生成离散信号f(n)
%也可用逻辑运算方法产生,f=[(n-ns)>=0]
stem(n,f,'filled'), axis([n0, nf, -0.1, 1.1]) %散点图
title('u(n-2)');  %加标题

2-2)、已知复指数序列,按照其实部和虚部分别绘图,其中取α=-(1/12),ω=π/6,n取[0,30]。 

n0 = 0; nf = 30; n = n0:nf; 
a = -1/12; b = pi/6;    %加分号!
f = exp((a + b*j)*n);	%表达式 ,此处代码有修改!!!!!!!
subplot(1,2,1), stem(n,real(f),'filled'); 
xlabel('n'); ylabel('实部'); grid    
subplot(1,2,2), stem(n,imag(f),'filled'); 
xlabel('n'); ylabel('虚部'); grid  

2-3)、已知一时域周期性余弦信号的频率为2 Hz,振幅值幅度为2。在窗口上显示1个周期的信号波形,并对该信号的一个周期进行50点采样获得离散信号。试显示原连续信号和其采样获得的离散信号波形。

% 正余弦序列
f=2; Um=2; nt=1;   %输入信号频率、振幅和显示周期数
N=50; T=1/f; 	   %N为信号一个周期的采样点数,T为信号周期
dt=T/N 	    %采样时间间隔
n=0: nt*N;  %建立离散信号的时间序列
tn=n*dt; 	%确定时间序列样点在时间轴上的位置
y=Um*cos(2*f*pi.*tn); 
subplot(2,1,1); plot(tn,y); %显示原连续信号
axis([0 max(tn) -1.1*max(y) 1.1*max(y)]); ylabel('y(t)'); %限制范围 一个周期
subplot(2,1,2); stem(tn,y); %采样获得的离散信号波形
axis([0 max(tn) -1.1*max(y) 1.1*max(y)]); ylabel('y(n)');  

2-4)、已知离散时间信号,用MATLAB绘出x(n)、x(-n)、x(n+2)、x(n-2)的波形。

x = [1 2 3 3 3 3];      %离散时间信号
n = [-2 -1 0 1 2 3];    %确定采样点的序号
subplot(221); stem(n,x,'filled');
subplot(222); stem(-n,x,'filled');
subplot(223); stem(n+2,x,'filled');
subplot(224); stem(n-2,x,'filled');

2-5)、已知序列f1(n)={-6 2 0 -5 8 4 3 -1 7},-6≤n≤2;f2(n)={1 -2 3 0 -3 2 -1},-2≤n≤4,求f3(n)=f1(n)+f2(n),并绘制出f1、f2、f3三者的图形。

n1 = -6:2; f1 = [-6 2 0 -5 8 4 3 -1 7]; %序列f1(n)
n2 = -2:4; f2 = [1 -2 3 0 -3 2 -1];     %序列f2(n)
new_n=min([n1,n2]):max([n1,n2])         %构造和序列 n=[-6:4]
x1=zeros(1,length(new_n)); x2=x1;       %初始化新向量
x1(find((new_n>=min(n1))&(new_n<=max(n1))))=f1;   %在新序列中放置f1,其中find函数找到索引位置[1 2 3 4 5 6 7 8 9]
x2(find((new_n>=min(n2))&(new_n<=max(n2))))=f2;   %在新序列中放置f2,其中find函数找到索引位置[4 5 6 7 8 9 10]
f=x1+x2;    %序列相加
subplot(1,3,1), stem(new_n,x1,'filled'),title('序列f1');
subplot(1,3,2), stem(new_n,x2,'filled'),title('序列f2');
subplot(1,3,3), stem(new_n,f, 'filled'),title('序列相加');

2-6、已知一正弦信号: ,试编程实现截取该信号的[-5 5]区间的波形(注:加窗截取方式,在同一窗口下显示三个图形)。

n = -10:10; x = 2*sin(2*pi*n/10);
f1=[(n+5)>=0];
f2=[(n-5)>0];
f=f1-f2;
x1=x.*f;%x是一个行向量所以要点乘
subplot(3,1,1); stem(n,x,'filled'); title('正弦信号'); 
subplot(3,1,2); stem(n,f,'filled'); title('截取信号'); 
subplot(3,1,3); stem(n,x1,'filled');title('截取图形');

 l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

北国无红豆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值