《信号与系统》计算机实验作业题目与要求-2016 下载本文

内容发布更新时间 : 2024/5/7 22:40:38星期一 下面是文章的全部内容请认真阅读。

《信号与系统》计算机实验作业

仿真实验: 信号与LTI系统的时频域分析

1、实验目的

1)熟悉和掌握实现常用信号的产生方法;;

2)理解系统的单位冲激响应的概念,LTI系统的卷积表达式及其物理意义,卷积的计算方法;

3)理解典型信号的频谱特征;

4)理解系统的频率响应的概念及其物理意义,理解具有不同频率响应特性的滤波器对信号的滤波作用;

5)学会利用编程实现卷积以求解系统响应,并绘制相应曲线;

6)学会利用编程实现一些典型信号的频谱分析,并绘制相应曲线。

2、实验内容

已知一LTI系统如下:

x[n] h [n]

1) 编程产生以下三个正弦信号,并画出波形图。

y[n] x1[n]?cos(2?f1n), x2[n]?cos(2?f2n),x3[n]?x1[n] +x2[n], 其中f1=1/8,f2=5/8;

2) 编程计算下面卷积:

已知h1[n]={ 0.0031,0.0044, -0.0031, -0.0272,-0.0346,0.0374, 0.1921, 0.3279 0.3279,0.1921,0.0374,-0.0346,-0.0272,-0.0031, 0.0044,0.0031 },n=0,1,...,15; h2 [n]= {-0.0238,0.0562,-0.0575,-0.1302,0.5252, -0.6842,-0.3129,5.6197,5.6197,

-0.3129,-0.6842,0.5252,-0.1302,-0.0575,0.0562,-0.0238}, n=0,1,...,15。

a、当h [n]= h1[n]时,输入分别为x1[n], x2[n]和x3[n]时系统的输出y[n], 并画出

波形图。

b、当h [n]= h2 [n]时,输入分别为x1[n], x2[n]和x3[n]时系统的输出y[n], 并画

出波形图。

3) 编程实现以下信号的频谱分析:

a、输入信号x1[n], x2[n] 和x3[n]的频谱,并画出频谱图;

b、冲激响应h [n]= h1[n]时h [n]的频谱,三种输入信号下输出y[n]的频谱,并画出h [n]和输出信号的频谱图;

c、冲激响应h [n]= h2 [n]时h [n的频谱,三种输入信号下输出y[n]的频谱,并画出h [n]和输出信号的频谱图。

4)根据输入信号、h [n]和输出信号的频谱,验证输出信号的频谱与输入信号、h [n]的频谱关系(或卷积性质),即是否满足Y(ej?)?X(ej?)H(ej?) 。

5)分析以上各种情况下,输出信号及频谱不同原因。

3、实验要求 1)、每人独立完成并写出一份实验报告,报告中包括实验目的、内容、编写的程序代码,详细记录实验过程中的有关信号波形图,实验结果图及实验分析; 2)、实验报告最后应有实验体会、心得或总结; 3)、编程语言不限。

4、实验原理

1)用软件仿真连续时间信号和离散时间信号

在MATLAB中,可以用内部数学函数来产生一些常用的信号,如sin()、cos()、exp()等函数可以直接产生一个按照正弦、弦或指数规律变化的信号。

以下为用MATLAB对一个连续正弦信号进行仿真的程序: Clear; % 清除所有变量 dt = 0.01; %定义时间变量步长 t = -2:dt: 2; % 定义时间变量取值区间 x =cos(0.4*pi*t); % 产生正弦信号,pi=3.14 plot(t,x) ; %画出x(t) 的波形图 title('Sinusoidal signal x(t)') xlabel('Time t (sec)') 注意:(因为在用计算机仿真时,时间不能取连续变量,所以在此对时间确定一个时间变化步长dt)

以下为用MATLAB对一个离散正弦信号进行仿真的程序: clear; %清除所有变量

n = -10:10; %定义时间变量取值区间

x =cos(0.2*pi*n); %产生正弦信号,pi=3.14 stem (n,x) %画出x(n) 的波形图 title ('Sinusoidal signal x[n]') xlabel ('Time index n') 若用MATLAB编程,那么在实验前,建议实验开始时,先在计算机上运行这些范例程序。 2) LTI系统的单位冲激响应和卷积模型

系统的单位冲激响应和卷积是一个非常重要的概念。对于一个LTI系统,系统的输入信号x(t)、x[n]和输出信号y(t)、y[n]之间的关系为:

y(t)?x(t)?h(t)??x(?)h(t??)d????y(n)?x(n)?h(n)?k????x[k]h[n?k]?

3).信号与系统的频域分析

傅里叶变换在信号分析中具有非常重要的意义,它主要是用来进行信号的频谱分析的。连续时间信号的傅里叶变换和其逆变换定义如下:

X(j?)??x(t)e?j?tdt???1x(t)?2?????X(j?)ej?td?

离散时间信号的傅里叶变换和其逆变换定义如下:

X(e)?x[n]?12?j?n????x[n]e?2?0??j?n

X(ej?)ej?nd?4)LTI系统的频率响应

由傅里叶变换的时域卷积定理可得到,对于连续LTI系统有:

Y(j?)?X(j??)Hj?() Y(j?)?H(j?)?X(j?)或H(j?)?????h(t)e?j?tdt

H(jω)为系统的频域数学模型,它实际上是系统的单位冲激响应h(t)的傅里叶变换。

对于离散LTI系统有:

?Y(ej?)?X(je?)Hj?(e

)

?H(ej?j?Y(ej?))?X(ej?)或H(e)?ω

n????h[n]e??j?n

H(ej)为系统的频域数学模型,它实际上是系统的单位冲激响应h(n)的傅里叶变换。 注意:在matlab中用以下几个函数求一个复数的模、实部、虚部和相位:

Hm = abs(H) ; %求模数,即进行|H|运算,求得系统的幅度频率响应,返回值存于Hm之中。 real(H) ; %求H的实部; imag(H); %求H的虚部; phi = angle(H); %求H的相位