【数字信号处理】实验一 时域离散信号的产生及时域处理

一、实验目的

了解 MATLAB 软件数字信号处理工具箱的初步使用方法。

掌握其简单的 MATLAB 语言进行简单的时域信号分析 。

二、实验内容

1. 序列相加和相乘

已知两序列 x1=[0,1,2,3,4,3,2,1,0];n1=[-2:6];x2=[2,2,0,0,0,-2,-2],n2=[2:8].求他们的和ya及乘积yp.

x1=[0,1,2,3,4,3,2,1,0];ns1=-2;
x2=[2,2,0,0,0,-2,-2];ns2=2;
nf1=ns1+length(x1)-1;nf2=ns2+length(x2)-1;
ny=min(ns1,ns2):max(nf1,nf2);
xa1=zeros(1,length(ny));xa2=xa1;
xa1(find((ny>=ns1)&(ny<=nf1)==1))=x1;
xa2(find((ny>=ns2)&(ny<=nf2)==1))=x2;
ya=xa1+xa2
yp=xa1.*xa2
subplot(4,1,1),stem(ny,xa1,'.')
subplot(4,1,2),stem(ny,xa2,'.')
line([ny(1),ny(end)],[0,0])
subplot(4,1,3),stem(ny,ya,'.')
line([ny(1),ny(end)],[0,0])
subplot(4,1,4),stem(ny,yp,'.')
line([ny(1),ny(end)],[0,0])
【数字信号处理】实验一 时域离散信号的产生及时域处理_第1张图片

2. 序列的合成和截取

【数字信号处理】实验一 时域离散信号的产生及时域处理_第2张图片

【数字信号处理】实验一 时域离散信号的产生及时域处理_第3张图片
clear;close all
n0=input('输入序列起点:n0=');
N=input('输入序列长度:N=');
n1=input('输入位移:n1=');
n=n0:n1+N+5;
u=[(n-n1)>=0];
x1=[(n-n1)>=0]-[(n-n1-N)>=0]
x2=[(n>=n1)&(n<(N+n1))];
x3=exp(j*n*pi/8).*x2;
subplot(2,2,1);stem(n,x1,'.');
xlabel('n');ylabel('x1(n)');
axis([n0,max(n),0,1]);
subplot(2,2,3);stem(n,x2,'.');
xlabel('n');ylabel('x2(n)');
axis([n0,max(n),0,1]);
subplot(2,2,2);stem(n,real(x3),'.');
xlabel('n');ylabel('x3(n)的实部');
line([n0,max(n)],[0,0]);
axis([n0,max(n),-1,1]);
subplot(2,2,4);stem(n,imag(x3),'.');
xlabel('n');ylabel('x3(n)的虚部');
line([n0,max(n)],[0,0]);
axis([n0,max(n),-1,1]);

【数字信号处理】实验一 时域离散信号的产生及时域处理_第4张图片

3. 序列的移位和周期延拓运算

【数字信号处理】实验一 时域离散信号的产生及时域处理_第5张图片

clear;close all
N=24;M=8;
m=input('输入移位值:m=');
if (m<1|m>=N-M+1)
 fprintf('输入数据不在规定范围内!');
end
 n=0:N-1;
 x1=(0.8).^n; x2=[(n>=0)&(n

【数字信号处理】实验一 时域离散信号的产生及时域处理_第6张图片

12

4. 离散系统对几种常用信号的响应

【数字信号处理】实验一 时域离散信号的产生及时域处理_第7张图片

clear;close all;
N=64;n=0:N-1;m=10;
B=0.0003738*conv([1,1],conv([1,1],conv([1,1],...
 conv([1,1],conv([1,1],[1,1])))))
A=conv([1,-1.2686,0.7051],conv([1,-1.0106,0.3583],...
 [1,-0.9044,0.2155]))
x1=[n==0];
y1=filter(B,A,x1);
x2=[(n-m)==0];
y2=filter(B,A,x2);
x3=[n>=0];
y3=filter(B,A,x3);
x4=[(n>=0)&(n<32)];
y4=filter(B,A,x4);
x5=exp(j*pi*n/8);
y5=filter(B,A,x5);
subplot(3,2,1),stem(n,y1,'.')
xlabel('n'),ylabel('y1(n)');
axis([0,N,-0.05,0.15]);
subplot(3,2,2),stem(n,y2,'.')
xlabel('n'),ylabel('y2(n)');
axis([0,N,-0.05,0.15]);
subplot(3,2,3),stem(n,y3,'.')
xlabel('n'),ylabel('y3(n)');
axis([0,N,0,0.6]);
subplot(3,2,4),stem(n,y4,'.')
xlabel('n'),ylabel('y4(n)');
axis([0,N,-0.1,0.6]);
subplot(3,2,5),stem(n,real(y5),'.')
xlabel('n'),ylabel('Re[y5(n)]');
axis([0,N,-1,1]);
subplot(3,2,6),stem(n,imag(y5),'.')
xlabel('n'),ylabel('Im[y5(n)]');
axis([0,N,-1,1])

【数字信号处理】实验一 时域离散信号的产生及时域处理_第8张图片

5. 系统线性性质验证

【数字信号处理】实验一 时域离散信号的产生及时域处理_第9张图片

clear;close all;
N=64;n=0:N-1;m=20;
B=1;A=[1,-0.8];
x1=0.8.^n;
x=[(n>=0)&(n<32)];
x1=x1.*x;
y1=filter(B,A,x1);
x2=[(n-m)==0];
y2=filter(B,A,x2);
x3=5*x1+3*x2;
y3=filter(B,A,x3);
y=5*y1+3*y2;
subplot(2,2,1),stem(n,y1,'.')
xlabel('n'),ylabel('y1(n)');
axis([0,N,0,2])
subplot(2,2,2),stem(n,y2,'.')
xlabel('n'),ylabel('y2(n)')
axis([0,N,0,1])
subplot(2,2,3),stem(n,y3,'.')
xlabel('n'),ylabel('y3(n)')
axis([0,N,0,10])
subplot(2,2,4),stem(n,y,'.')
xlabel('n'),ylabel('y4(n)')
axis([0,N,0,10])

【数字信号处理】实验一 时域离散信号的产生及时域处理_第10张图片

6. 离散序列的卷积计算

【数字信号处理】实验一 时域离散信号的产生及时域处理_第11张图片
n1=0:19;
x12=[(n1>=0&n1<20)];     %生成矩阵序列R20(n)
x1=0.9.^n1;  
x1n=x1.*x12;
n11=0:9;
h1n=[(n11>=0&n11<10)];       %得到h1(n) 
h2n=h1n;
n2=0:(19+5);
x2n=zeros(1,25);
for i=1:20
    x2n(i+5)=x1n(i);       %由x1(n)得到x2(n)
end
dt=1;
y1n=conv(x1n,h1n);          %求x1(n)与h1(n)的卷积y1(n)
t1=dt*([1:length(y1n)]-1);       %建立横坐标轴t1
y2n=conv(x2n,h2n);
t2=dt*([1:length(y2n)]-1);
subplot(3,2,1);stem(n1,x1n,'.');ylabel('x1(n)');
subplot(3,2,2);stem(n2,x2n,'.');ylabel('x2(n)');
subplot(3,2,3);stem(n11,h1n,'.');ylabel('h1(n)');
subplot(3,2,4);stem(n11,h2n,'.');ylabel('h2(n)');
subplot(3,2,5);stem(t1,y1n,'.');ylabel('y1(n)');
subplot(3,2,6);stem(t2,y2n,'.');ylabel('y2(n)');

【数字信号处理】实验一 时域离散信号的产生及时域处理_第12张图片

三、实验中遇到的问题及解决过程

  1. 在输入程序的时候不够仔细,出现了拼写错误,把tel写成了tle导致查错的时候没有发现错误在哪里
  2. 没有注意到中英文输入法的标点符号是有区别的,导致最后程序执行的时候出现了好几个错误
  3. 输入程序的时候,对于中括号和小括号的配对没有注意,导致执行时出现了错误

四、实验提问

  1. 每行末尾……是什么意思?代表这行内容还没有结束。
  2. = =是什么意思?等于的意思。
  3. filter是什么意思?滤波器。

五、实验总结

通过本次实验,使我初步认识里数字信号处理实验的一些基本操作。

了解了MATLAB软件数字信号处理工具箱的初步使用,并掌握了简单的MATLAB语言进行简单的时域信号分析。

通过基本技能训练内容对这些知识掌握的更加熟练,更加深刻。

附:程序清单

数字信号处理.zip

你可能感兴趣的:(数字信号处理,实验报告,信号处理,matlab,算法)