第三章 离散时间信号的时域分析汇总.docx
《第三章 离散时间信号的时域分析汇总.docx》由会员分享,可在线阅读,更多相关《第三章 离散时间信号的时域分析汇总.docx(30页珍藏版)》请在冰豆网上搜索。
![第三章 离散时间信号的时域分析汇总.docx](https://file1.bdocx.com/fileroot1/2023-6/4/f75d7920-eb31-49ba-ba44-2f481a24180c/f75d7920-eb31-49ba-ba44-2f481a24180c1.gif)
第三章离散时间信号的时域分析汇总
南昌大学实验报告
学生姓名:
学号:
6103413001专业班级:
实验类型:
□验证□综合□设计□创新实验日期:
实验成绩:
第三章:
离散时间信号的频域分析
一、实验目的:
1、学会用MATLAB在时域中产生一些基本的离散时间信号,并对这些信号进行一些基本的运算。
2、学会使用基本的MATLAB命令,并将它们应用到简单的数字信号处理问题中。
二、实验要求:
1、学习并调试本章所给的例子。
2、回答书后给出的问题。
3、实验报告仅回答偶数信号的例子。
三、实验程序及结果
Q3.2运行程序P3.1求离散时间傅立叶变换的实部、虚部以及幅度和相位谱列。
离散时间傅立叶变换是ω的周期函数吗?
若是,周期是多少?
描述这四个图形的对称性。
程序:
%离散时间傅立叶变换的频率样本
w=-4*pi:
8*pi/511:
4*pi;
num=[21];den=[1-0.6];
h=freqz(num,den,w);
%plottheDTFT
subplot(2,1,1)
plot(w/pi,real(h));grid
title('H(e^|j\omegal|)的实部')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,1,2)
plot(w/pi,imag(h));grid
title('H(e^|j\omegal|)的虚部')
xlabel('\omega/\pi');
ylabel('振幅');
pause%暂停等待指令执行后面程序
subplot(2,1,1)
plot(w/pi,abs(h));grid
title('|H(e^|j\omega|)|幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,1,2)
plot(w/pi,angle(h));grid
title('相位谱arg[H(e^|j\omega|)]')
xlabel('\omega/\pi');
ylabel('以弧度为单位的相位');
程序结果如下:
离散时间傅立叶变换是ω的周期函数,周期为2π
Q3.4 修改程序P3.1,计算如下有限长序列的离散傅里叶变换:
g[n]=[1357911131517]
并重做习题Q3.2.讨论你的结果。
你能解释相位谱中的跳变吗?
程序
%离散时间傅立叶变换的频率样本
w=0:
8*pi/511:
1*pi;
num=[1357911131517];
h=freqz(num,1,w);
%plottheDTFT
subplot(2,1,1)
plot(w/pi,real(h));grid
title('H(e^|j\omegal|)的实部')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,1,2)
plot(w/pi,imag(h));grid
title('H(e^|j\omegal|)的虚部')
xlabel('\omega/\pi');
ylabel('振幅');
pause%暂停等待指令执行后面程序
subplot(2,1,1)
plot(w/pi,abs(h));grid
title('|H(e^|j\omega|)|幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,1,2)
plot(w/pi,angle(h));grid
title('相位谱arg[H(e^|j\omega|)]')
xlabel('\omega/\pi');
ylabel('以弧度为单位的相位');
因为离散时间傅里叶变换是ω的衰减周期函数,周期为0.25π,当计算的相位在频率范围[-π, π]之外时,相位按取0.25π模计算,因此就会出现0.25π的不连续。
Q3.6 通过加入合适的注释语句和程序语句修改程序P3.2,对程序生成的图形中的两个轴加标记。
哪个参数控制时移量?
验证傅里叶变换的时移性质
程序:
%p3.2
%离散时间傅立叶变换的时移性质
clf;
w=-pi:
2*pi/255:
pi;wo=0.4*pi;D=10;
num=[123456789];
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');
ylabel('振幅');
subplot(2,2,2)
plot(w/pi,abs(h2));grid
title('时移后序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,3)
plot(w/pi,angle(h1));grid
title('原序列的相位谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,4)
plot(w/pi,angle(h2));grid
title('时移后序列的相位谱')
xlabel('\omega/\pi');
ylabel('振幅');
所得图像如下所示:
参数D控制时移量
Q3.8选取不同的时移值重做习题Q3.7。
序列:
num=[123456789];
程序:
%p3.8
%离散时间傅立叶变换的时移性质
clf;
w=-pi:
2*pi/255:
pi;wo=0.4*pi;D=50;
num=[123456789];
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');
ylabel('振幅');
subplot(2,2,2)
plot(w/pi,abs(h2));grid
title('时移D=50后序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,3)
plot(w/pi,angle(h1));grid
title('原序列的相位谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,4)
plot(w/pi,angle(h2));grid
title('时移D=50后序列的相位谱')
xlabel('\omega/\pi');
ylabel('振幅');
图形显示如下:
时移特性:
信号在时域移动某个距离,则所得信号的幅度谱和原信号相同,而相位谱是原信号的相位谱再附加一个线性相移,由时移特性可以看到,信号的相位谱可以反映信号在时域中的位置信息,不同位置上的同一信号,它们具有不同的相频特性,而幅频特性相同
Q3.10通过加入合适的注释语句和程序,修改程序P3.3,对程序生成的图形中的两个轴加标记。
哪个参数控制频移量?
验证傅里叶变换的频移性质
%p3.3
%离散时间傅里叶变换的频移性质
clf;
w=-pi:
2*pi/255:
pi;wo=0.4*pi;
num1=[1357911131517];
L=length(num1);
h1=freqz(num1,1,w);
n=0:
L-1;
num2=exp(wo*i*n).*num1;
h2=freqz(num2,1,w);
subplot(2,2,1)
plot(w/pi,abs(h1));grid
title('原序列幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,2)
plot(w/pi,abs(h2));grid
title('频移后序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,3)
plot(w/pi,angle(h1));grid
title('原序列的相位谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,4)
plot(w/pi,angle(h2));grid
title('频移后序列的相位谱')
xlabel('\omega/\pi');
ylabel('振幅');
所得图像如下所示:
参数wo控制频移量
Q3.12选取不同的频移值,重做习题Q3.11.
频移:
wo=0.8*pi;
程序:
%p3.3
%离散时间傅里叶变换的频移性质
clf;
w=-pi:
2*pi/255:
pi;wo=0.8*pi;
num1=[1357911131517];
L=length(num1);
h1=freqz(num1,1,w);
n=0:
L-1;
num2=exp(wo*i*n).*num1;
h2=freqz(num2,1,w);
subplot(2,2,1)
plot(w/pi,abs(h1));grid
title('原序列幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,2)
plot(w/pi,abs(h2));grid
title('频移wo=0.8*pi后序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,3)
plot(w/pi,angle(h1));grid
title('原序列的相位谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,4)
plot(w/pi,angle(h2));grid
title('频移wo=0.8*pi后序列的相位谱')
xlabel('\omega/\pi');
ylabel('振幅');
所得图像如下所示:
由结果图可得出在参数wo的控制下,离散时间傅里叶变换的幅度谱和相位谱都随着控制参数右移k个单位(wo=k*pi)。
Q3.14通过加入合适的注释语句和程序语句,修改程序P3.4,对程序生成的图形中两个轴加标记。
验证傅里叶变换的卷积性质
程序:
%p3.4
%离散傅里叶变换的卷积性质
clf;
w=-pi:
2*pi/255:
pi;
x1=[1357911131517];
x2=[1-23-21];
y=conv(x1,x2);
h1=freqz(x1,1,w);
h2=freqz(x2,1,w);
hp=h1.*h2;
h3=freqz(y,1,w);
subplot(2,2,1)
plot(w/pi,abs(hp));grid
title('幅度谱的乘积')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,2)
plot(w/pi,abs(h3));grid
title('卷积后序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,3)
plot(w/pi,angle(hp));grid
title('相位谱的和')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,4)
plot(w/pi,angle(h3));grid
title('卷积后序列的相位谱')
xlabel('\omega/\pi');
ylabel('振幅');
所得图像如下所示:
Q3.16选取两个改变了长度的序列,重做Q3.15。
程序:
%p3.4
%离散傅里叶变换的卷积性质
clf;
w=-pi:
2*pi/255:
pi;
x1=[13579111315];
x2=[1-23-2];
y=conv(x1,x2);
h1=freqz(x1,1,w);
h2=freqz(x2,1,w);
hp=h1.*h2;
h3=freqz(y,1,w);
subplot(2,2,1)
plot(w/pi,abs(hp));grid
title('幅度谱的乘积')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,2)
plot(w/pi,abs(h3));grid
title('卷积后序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,3)
plot(w/pi,angle(hp));grid
title('相位谱的和')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,4)
plot(w/pi,angle(h3));grid
title('卷积后序列的相位谱')
xlabel('\omega/\pi');
ylabel('振幅');
所得图像如下所示:
结论:
得出幅度谱的乘积和卷积后的幅度谱相同,相位谱的乘积和卷积后的相位谱相同。
Q3.18运行修改后的程序并讨论你的结果。
%程序p
%离散傅里叶变换的调制性质
clf;
w=-pi:
2*pi/255:
pi;
x1=[1357911131517];
x2=[1-11-11-11-11];
y=x1.*x2;
h1=freqz(x1,1,w);
h2=freqz(x2,1,w);
h3=freqz(y,1,w);
subplot(3,1,1)
plot(w/pi,abs(h1));grid
title('第一序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(3,1,2)
plot(w/pi,abs(h2));grid
title('第二序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(3,1,3)
plot(w/pi,abs(h3));grid
title('乘积序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
所得图像如下所示:
分析:
由图得出乘积序列的幅度谱近似等于两序列的幅度谱的和
Q3.20通过加入合适的注释语句和程序语句,修改程序P3.6,对生成的图形的中的两个轴加标记。
试解释程序怎样进行反转运算。
程序用于验证离散傅里叶变换的时间反转性质
%程序p3.6
%离散傅里叶变换的时间反转性
clf;
w=-pi:
2*pi/255:
pi;
num=[1234];
L=length(num)-1;
h1=freqz(num,1,w);
h2=freqz(fliplr(num),1,w);
h3=exp(w*L*i).*h2;
subplot(2,2,1)
plot(w/pi,abs(h1));grid
title('原序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,2)
plot(w/pi,abs(h3));grid
title('时间反转后序列的幅度谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,3)
plot(w/pi,angle(h1));grid
title('原序列的相位谱')
xlabel('\omega/\pi');
ylabel('振幅');
subplot(2,2,4)
plot(w/pi,angle(h3));grid
title('时间反转后序列的相位谱')
xlabel('\omega/\pi');
ylabel('振幅');
所得图像如下所示:
程序通过执行语句
h1=freqz(num,1,w);
h2=freqz(fliplr(num),1,w);
h3=exp(w*L*i).*h2;进行时间反转运算。
Q3.22选取两个不同长度的序列,重做习题Q3.21。
num1=[1234567891011];
所得图像如下所示:
num2=[12];
所得图像如下所示:
Q3.26在函数circshift中,命令rem的作用是什么?
命令rem的作用是求余
Q3.28在函数circonv中,运算符~=的作用是什么?
运算符~=的作用是不等于
Q3.30通过加入合适的注释语句和程序语句,修改程序P3.7,对程序生成的图形中的两个轴加标记。
哪一个参数决定时移量?
若时移量大于序列长度,将会发送什么?
%一个系列圆周移位的说明
clf;
M=6;
a=[0123456789];
b=circshift(a,M);
L=length(a)-1;
n=0:
L;
subplot(2,1,1);
stem(n,a);axis([0,L,min(a),max(a)]);
title('原序列');
xlabel('a');ylabel('n');
subplot(2,1,2);
stem(n,b);axis([0,L,min(a),max(a)]);
title(['圆周移位',num2str(M),'个样本得到的序列']);
xlabel('a');ylabel('n');
M决定时移量;若时移量大于序列长度则
Q3.32通过加入合适的注释语句和程序语句,修改程序P3.8,对程序生成的图形中的两个轴加标记。
时移量是多少?
%离散傅里叶变换的圆周时移性质
x=[0246810121416];
N=length(x)-1;n=0:
N;
y=circshift(x,5);
XF=fft(x);
YF=fft(y);
subplot(2,2,1);
stem(n,abs(XF));grid
title('原序列的离散傅里叶变换的幅度');
xlabel('时间序号n');ylabel('振幅');
subplot(2,2,2);
stem(n,abs(YF));grid
title('圆周移位后的序列的离散傅里叶变换的幅度');
xlabel('时间序号n');ylabel('振幅');
subplot(2,2,3);
stem(n,angle(XF));grid
title('原序列的离散傅里叶变换的相位');
xlabel('时间序号n');ylabel('相位');
subplot(2,2,4);
stem(n,angle(YF));grid
title('圆周移位后的序列的离散傅里叶变换的相位');
xlabel('时间序号n');ylabel('相位');
时移量为5
Q3.34选取两个不同的时移量,重做习题Q3.33
%离散傅里叶变换的圆周时移性质
x=[0246810121416];
N=length(x)-1;n=0:
N;
y=circshift(x,10);
XF=fft(x);
YF=fft(y);
subplot(2,2,1);
stem(n,abs(XF));grid
title('原序列的离散傅里叶变换的幅度');
xlabel('时间序号n');ylabel('振幅');
subplot(2,2,2);
stem(n,abs(YF));grid
title('圆周移位后的序列的离散傅里叶变换的幅度');
xlabel('时间序号n');ylabel('振幅');
subplot(2,2,3);
stem(n,angle(XF));grid
title('原序列的离散傅里叶变换的相位');
xlabel('时间序号n');ylabel('相位');
subplot(2,2,4);
stem(n,angle(YF));grid
title('圆周移位后的序列的离散傅里叶变换的相位');
xlabel('时间序号n');ylabel('相位');
时移量为10
Q3.36运行程序P3.9并验证离散傅里叶变换的圆周卷积性质
%离散傅里叶变换的圆周卷积
g1=[123456];g2=[1-233-21];
ycir=cconv(g1,g2);
disp('圆周卷积的结果');disp(ycir)
G1=fft(g1);G2=fft(g2);
yc=real(ifft(G1.*G2));
disp('离散傅里叶变换乘积的离散傅里叶逆变换的结果=');disp(yc)
圆周卷积的结果
Columns1through10
1.000002.00007.000010.000014.000011.000028.000012.0000-7.0000
Column11
6.0000
离散傅里叶变换乘积的离散傅里叶逆变换的结果=
12281401614
Q3.38运行程序P3.10并验证线性卷积可通过圆周卷积得到。
%通过圆周卷积的线性卷积
g1=[12345];g2=[22011];
g1e=[g1zeros(1,length(g2)-1)];
g2e=[g2zeros(1,length(g1)-1)];
ylin=circonv(g1e,g2e);
disp('通过圆周卷积的线性卷积=');disp(ylin);
y=conv(g1,g2);
disp('直接线性卷积=');disp(y)
通过圆周卷积的线性卷积=
Columns1through13
2.00006.000010.000015.000021.000015.00007.00009.00005.000000.000000.0000
Columns14through17
0-0.00000.0000-0.0000
直接线性卷积=
2610152115795
Q3.42运行程序P3.11.由于周期序列的偶数部分的离散傅立叶变换的XEF的实数部分,XEF的虚部应该为零。
你能验证他们吗?
你怎样解释仿真结果?
%一个实序列的周期偶部分和周期奇部分
%的离散傅里叶变换之间的关系
x=[1242632642zeros(1,247)];
x1=[x
(1)x(256:
-1:
2)];
xe=0.5*(x+x1);
XF=fft(x);
XEF=fft(xe);
clf;
k=0:
225;
subplot(2,2,1);
plot(k/128,real(XF));grid;
ylable