云南大学 信息学院
一、实验目的
1. 学习离散时间傅里叶变换的算法。
2. 学习离散时间信号频域特性。
3. 离散时间信号MATLAB函数的学习。
二、实验内容
1. 计算并画出离散时间傅里叶变换。
2. 求离散时间傅里叶变换的实部、虚部、以及幅度和相位谱。回答相关问题。
3. 解释一些相关MATLAB函数的功能。
三、主要算法与程序
Q3.1       P3.1
  w=-4*pi:8*pi/511:4*pi;
num=[2 1];den=[1 -0.6];
h=freqz(num,den,w);
subplot(2,2,1);
plot(w/pi,real(h));grid
title('H(e^{j/omega})的实部');
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,2);
plot(w/pi,imag(h));grid
title('H(e^{j/omega})的虚部');
xlabel('\omega/\pi');
ylabel('振幅');
Q3.6  P3.2
w=-pi:2*pi/255:pi;wo=0.4*pi;D=10;
num=[1 2 3 4 5 6 7 8 9];
h1=freqz(num,1,w);
h2=freqz([zeros(1,D) num],1,w);
subplot(2,2,1);
plot(w/pi,abs(h1));grid
title('原序列的幅度谱');
xlabel('\omega/\pi');  %加入注释语句,对x轴的注释
ylabel('振幅');  %加入注释语句,对y轴的注释
subplot(2,2,2);
plot(w/pi,abs(h2));grid
title('时移后序列的幅度谱');
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,3);
plot(w/pi,unwrap(angle(h1)));grid
title('原序列的相位谱');
xlabel('\omega/\pi');
四、实验结果与分析
Q3.1  Q3.1 在程序P3.1中,计算离散时间傅里叶变换的原始序列,MATLAB命令pause的作用是什么?
  答:原始序列为:H(jw)=(2+e^(jw))/(1-0.6e^(-jw)) ; pause的作用是暂停,画图时会用到,敲任意键继续。
Q3.2 运行程序P3.1,求离散时间傅里叶变换的实部、虚部、以及幅度和相位谱。离散时间傅里叶变换是w的周期函数吗?若是,周期是多少?描述这四个图形表示的对称性。
  答:是w的周期函数,周期为2pi,实部和幅度谱关于竖轴对称,虚部和相位谱关于原点对称。
Q3.3 修改程序P3.1,在范围w零到pi内计算如下序列的离散时间傅里叶变换:
    Ue^j*w=(0.7-0.5*e^-j*w+0.3e^jw+e^jw)/(1+0.7e^je-0.5*e^-j*w+0.3e^jw)
并重做习题Q3.2.讨论结果。你能解释相位谱中的跳变吗?MATLAB命令unwrap可以移除跳变。试求跳变被移除后的相位谱。
matlab傅里叶变换的幅度谱和相位谱   在上图中,图一相位有跳变,相位值到负一定值后就跳变为正值,我们都知道正弦信号最小正的周期为2*pi[-pipi],所以相位的表示方法也一样,所以当相位小于-pi时,就会自动加2*k*pi,就会跳变为正值。用命令unwrap移除跳变后如上图的图二。
Q3.6 通过加入合适的注释语句和程序语句,修改程序P3.2,对程序生成的图形中的两个轴加标记。哪个参数控制时移量?  答:D来控制。
Q3.7  Q3.8 不同时移值的影响。  D=10
      D=15
如上图,时移特性表明,如果信号在时域移动某个距离,则所得信号的幅度谱和原信号相同,而相位谱是原信号的相位谱再附加一个线性相移,从时移特性我们可以看到,信号的相位谱可以反映信号在时域中的位置信息,不同位置上的同一信号,它们具有不同的相频特性,而幅频特性相同。
Q3.38 运行程序P3.10并验证线性卷积可通过圆周卷积得到。
g1=[1 2 3 4 5];g2=[2 2 0 1 1];
g1e=[g1 zeros(1,length(g2)-1)];
g2e=[g2 zeros(1,length(g1)-1)];
ylin=circonv(g1e,g2e);
disp('通过圆周卷积的线性卷积=');disp(ylin)
y=conv(g1,g2);
disp('直接线性卷积=');disp(y)
通过圆周卷积的线性卷积=
    2    6    10    15    21    15    7    9    5
直接线性卷积=
    2    6    10    15    21    15    7    9    5
五、实验小结
通过这个实验,要掌握离散时间傅里叶变换的内容。这个实验主要是学习用MATLAB来计算离散时间傅里叶变换,首先序列的x[n]的时间傅里叶变换是w连续函数。在实验中用命令freqz来计算,这个命令不能直接计算,而是先计算得到X(e^jw),再将序列带入计算,可以用画图命令画出相关的图像如:离散时间傅里叶变换的实部、虚部、以及幅度和相位谱。除此之外,还要学习离散时间傅里叶变换的相关性质,在实验中主要研究时移特性。
1. 认为这个实验的难度不是很高,但是可以从中学到很多知识,也算是对理论知识的验证吧!之前也学到了一些有相关关系的知识,但是几乎都忘了,通过这个实验后加深记忆。
同时也学到MATLAB的一些命令,解决离散时间傅里叶变换中得相关问题,比如说MATLAB计算的原理机制,还有其能运算出哪些特性参数,特别是对其相位谱跳变和时移特性现象出现的原因,做了比较细致的解释,通过自己先原因,再和同学讨论,最后得到老师的指点。
2. 当然在试验中也遇到不少问题和麻烦,图像的输出,图像坐标的注释以及去掉跳变等等都有些不太清楚地,直到现在还有点问题,在实验室画出来的图,回到自己的电脑弄时,有写注释参数变成了乱码,重新编写还是没有解决。也许是电脑的问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。