数字信号处理实验讲义2016-9-2

更新时间:2023-10-04 23:53:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 常见离散信号产生和实现

一、实验目的

1.加深对常用离散信号的理解;

2.掌握matlab中一些基本函数的建立方法。

二、实验原理

1.单位抽样序列

如果?(n)在时间轴上延迟了k个单位,得到?(n?k)即:

2.单位阶跃序列

3.正弦序列

x(n)?Asin(2?fn/Fs??)

在MATLAB中,

n=0:N-1;

x=A*sin(2*pi*f0*n/fs+phi) 4.复指数序列

x(n)?r?ej?n

在MATLAB中,

n=0:N-1;

x=r*exp(j*w*n) 5.指数序列

x(n)?an

在MATLAB中,

n=0:N-1;

x=a.^n

三、实验内容实现和图形生成

1.五种基本函数的生成 程序如下: (1)单位抽样序列

1

方法一:

% 单位抽样序列和延时的单位抽样序列

n=0:10; x1=[1 zeros(1,10)];x2=[zeros(1,5) 1 zeros(1,5)];

subplot(1,2,1);stem(n,x1,'.');xlabel ('时间序列n');ylabel('振幅'); title('单位抽样序列x1');grid on;

subplot(1,2,2);stem(n,x2,'.'); xlabel('时间序列n');ylabel('振幅'); title('延时了5的单位抽样序列'); grid on;

方法二:

先在matlab中定义单位抽样序列:

function [x,n]=impseq(n1,n2,n0) n=[n1:n2]; x=[(n-n0)==0]; /n等于n0时1 在运行命令: [x,n]=impseq(-5,5,3)

stem(n,x,'.');xlabel('n');title('单位抽样序列x');grid (2)单位阶跃序列 方法一: n=-4:6;

u=[zeros(1,4) ones(1,7)];

stem(n,u,'.');xlabel ('时间序列n');ylabel('振幅');title('单位阶跃序列');grid 所得的图形如下所示:

2

方法二;

先在matlab中定义单位阶跃序列: function [x,n]=stepseq(n1,n2,n0)

n=[n1:n2]; x=[(n-n0)>=0]; 在运行命令:

[x,n]=stepseq(-5,5,3)

stem(n,x,'.');xlabel('n');title('单位阶跃序列x');grid (3)正弦函数 n=-5:20;

x=2*sin(pi*n/6+pi/3); stem(n,x,'.'); xlabel ('时间序列n'); ylabel('振幅'); title('正弦函数序列x=2*sin(pi*n/6+pi/3)');grid on

(4)复指数序列 n=-5:30; x=2*exp(j*3*n);

stem(n,real(x),'.'); xlabel ('时间序列n');ylabel('振幅');title('复指数序列x=2*exp(j*3*n)的实部');grid on 图形如下:

3

(5)指数序列 n=1:30; x=1.2.^n;

stem(n,x,'.'); xlabel ('时间序列n');ylabel('振幅');title('指数序列x=1.2.^n'); grid on

2、绘出信号x(n)?esn,当s??时的信号实部和虚部图; 程序如下:

s1=-1/12+j*pi/6;s2=1/12+j*pi/6;s3=1/12;s4=2+j*pi/6;s5=j*pi/6; n=0:20;

x1=exp(s1*n);x2=exp(s2*n); x3=exp(s3*n);x4=exp(s4*n); x5=exp(s5*n); subplot(5,2,1);stem(n,real(x1),'.'); xlabel ('时间序列n');ylabel('实部'); title('复指数s1=-1/12+j*pi/6时序列实部');grid on

subplot(5,2,2);stem(n,imag(x1),'.'); xlabel ('时间序列n');ylabel('虚部'); title('复指数s1=-1/12+j*pi/6时序列虚部');grid on

subplot(5,2,3);stem(n,real(x2),'.'); xlabel ('时间序列n');ylabel('实部'); title('复指数s2=1/12+j*pi/6时序列实部');grid on

subplot(5,2,4);stem(n,imag(x2),'.'); xlabel ('时间序列n');ylabel('虚部'); title('复指数s2=1/12+j*pi/6时序列虚部');grid on

4

1?1?1???j、s??j、s?、s?2?j、s?j1212612666

subplot(5,2,5);stem(n,real(x3),'.'); xlabel ('时间序列n');ylabel('实部'); title('复指数s3=1/12时序列实部');grid on

subplot(5,2,6);stem(n,imag(x3),'.'); xlabel ('时间序列n');ylabel('虚部'); title('复指数s3=1/12时序列虚部');grid on

subplot(5,2,7);stem(n,real(x4),'.'); xlabel ('时间序列n');ylabel('实部'); title('复指数s4=2+j*pi/6时序列实部');grid on

subplot(5,2,8);stem(n,imag(x4),'.'); xlabel ('时间序列n');ylabel('虚部'); title('复指数s4=2+j*pi/6时序列虚部');grid on

subplot(5,2,9);stem(n,real(x5),'.'); xlabel ('时间序列n');ylabel('实部'); title('复指数s5=j*pi/6时序列实部');grid on

subplot(5,2,10);stem(n,imag(x5),'.'); xlabel ('时间序列n');ylabel('虚部'); title('复指数s5=j*pi/6时序列虚部');grid on

由图的实部部分可以看出,s=j*pi/6时,序列周期为12。计算序列周期为2*pi/(pi/6)=12。实验和理论相符。

5

本文来源:https://www.bwwdw.com/article/ti8d.html

Top