实验四 信号的谱分析
一、实验目的:
1、 掌握DTFT原理及其程序实现,学习用DTFT对信号进行谱分析。
2、 掌握DFT原理及其程序实现,学习用DFT对信号进行谱分析。
3、 熟悉FFT算法原理和掌握fft子程序的应用。
4、 掌握DFT的性质。
二、实验内容:
1、 对于序列x(n)=[3,1,7,2,4],在-π ~ π内取64个频点,利用矩阵操作求其DTFT,画出它的幅频特性和相频特性。并把x(n)的位置零点右移一位,再求DTFT,画出其幅频特性和相频特性,讨论移位对于DTFT的影响。
2、 利用矩阵操作求1题中序列的DFT,并画图。
3、 利用Matlab自带的fft函数求1题中序列的DFT,并与1题中求出的DTFT相比较。
4、 已知序列x(n)=[2,3,4,5]位于主值区间,求其循环左移一位的结果,画出循环移位的中间过程。
提示:左右各拓展一个周期,nx=[-4:7];采用stem函数画图。
5、 已知序列x(n)=[1,2,3,4,5,6]位于主值区间,循环长度为8,确定并画出循环折叠y(n)=x((-n)8);如果循环长度为6,确定并画出循环折叠y(n)=x((-n)6)。
6、 已知序列x(n)=[2,1,5,3]位于主值区间,h(n)=nR4(n),计算循环卷积
,
和线性卷积
,画出
、
和
的波形图,观察循环卷积和线性卷积的关系。
3、实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
要求:
1.实验原理:
序列x (n)的频谱定义为:
;也称为它的离散时间傅立叶变换。可以认为,序列中的每一个样本x(n)对频谱产生的贡献为
,把整个序列中所有样本的频谱分量按向量(即复数)叠加起来,就得到序列的频谱X(jω)。按定义:
ω的基频在[-π,π]范围内,可任意地连续取值,代入上式,即可求出一系列的X(jω), 因为X(jω)是复数,可以分解为幅度和相位,并画出幅度和相位随频率变化的曲线。 频点的设定:在左闭右开奈奎斯特频率区间
中设定K个等间隔频点的通用 公式:(K可奇可偶)
程序:
x=[3,1,7,2,4];
nx1=-1:3;
nx=0:4
K=64;dw=2*pi/K;
k=floor((-K/2+0.5):(K/2-0.5));
X=x*exp(-j*dw*nx'*k);
Y=x*exp(-j*dw*nx1'*k);
subplot(2,2,1)
plot(k*dw,abs(X))
title('原始');
xlabel('频率');
ylabel('幅频特性');
subplot(2,2,3)
plot(k*dw,angle(X))
xlabel('频率');
ylabel('相频特性');
subplot(2,2,2)
plot(k*dw,abs(Y))
title('右移一位');
xlabel('频率');
ylabel('幅频特性');
subplot(2,2,4)
plot(k*dw,angle(Y))
xlabel('频率');
ylabel('相频特性');
结果:
1)
2)
由图可以看出:
1)序列的DTFT是连续函数;
2)序列的DTFT是周期函数 ;
3)实序列的DTFT具有对称性;
4)信号在时间轴上的平移不影响其DTFT的幅频特性,只影响它的相频特性;
5)时域对称的序列,它具有相位随频率线性变化的特点,对称中心所处的位置决定了 相频特性的斜率的大小。
2.实验原理:有限长序列x(n)(0≤n≤N-1)有N个样本值。把频率区间(0≤ω<2π)也分成N个等间隔分布的点ωk=2πk/N(0≤k≤N-1),则x(n)的傅立叶变换X(jω)就取N个取样值。这两组有限长的序列之间可以用简单的关系联系起来:
,其中,
。X(k)就称为x(n)的离散傅立叶变换(DFT)
在MATLAB中计算DFT的矩阵公式和DFS的一样,所以计算公式为
注意, n=[0,1,…,N-1], k= [0,1,…,N-1], n’* k 产生的的方阵构成了W矩阵 的指数部分。
程序:
xn=[3,1,7,2,4]
n=0:4;k=0:4;
WN=exp(-j*2*pi/5); %设定Wn 因子
nk=n'*k; % 产生含nk值的 N 乘 N 方阵
WNnk=WN.^nk; % 求出W矩阵
Xk=xn*WNnk;
subplot(211)
plot(k,abs(Xk),'.')
title('幅度谱')
subplot(212)
plot(k,angle(Xk),'.')
title('相位谱')
结果:
3.实验原理:FFT程序求频谱的范围规范化为[0,2π),对应的频谱下标为k=0,1,…N-1。设频率分辨率dw=2π/N,则频率向量为 w=k*dw 。若要画出乃奎斯特频率范围[-π,π)内的频谱,需要把[π,2π)范围的频谱平移到[-π,0)内,对于这一运算,有专门的工具箱函数fftshift来实现。
X1=fftshift(X)
X1就是在[-π,π)内的频谱向量。
程序:
subplot(211);
Xd=fft([3,1,7,2,4]); %其DFT只有5点
subplot(211);
plot([0:4],abs(Xd),'.');
title('幅频');
subplot(212);
plot([0:4],angle(Xd),'.');
title('相频');
结果;
结论:
正向的关系为:
(1).DFT是DTFT在N个等间隔频点上的样本;
(2).此等间隔频点的范围为[0,2π),
(3).其频率分辨率为dw=2π/N;
w=k*dw (k=0,1,…,N-1)
4.实验原理:设x(n)为有限长序列,长度为N,则将x(n)循环移m位的定义为
,将x(n)以N为周期进行周期延拓得到
,再将
左移m位得到
,最后取
的主值序列即可。显然y(n)仍为长度为N的有限长序列。循环移位的实质是将x(n)左移m位,而移出主值区
的序列值又依次从右侧进入主值区。
程序:
x=[2,3.4,5]
N=length(x);
nx=0:N-1;
% 将x左右各延拓一个周期,成为向量x1
nx1=-N:2*N-1
x1=x(mod(nx1,N)+1);
% 将x1左移一位,得到y1
ny1=nx1-1;y1=x1;
RN=(nx1>=0)&(nx1
=0)&(ny1=线性卷积的长度时,两者相等;循环卷积的长度是不变的,但是线性卷积的长度是L1+L2-1,求和的上线不一样,前者是1:N,后者是无穷。