华南理工大学信号与系统实验,电信学院

实验二   利用DFT分析离散信号频谱

一、实验目的

       应用离散傅里叶变换(DFT),分析离散信号x[k]。深刻理解利用DFT分析离散信号频谱的原理,掌握改善分析过程中产生的误差的方法。

二、实验内容

1. 利用FFT分析信号的频谱;

(1) 确定DFT计算的参数;

程序:N=32,w0=3*pi/8,k=0:31;

x=cos(w0*k);

X=fft(x,N);

subplot(2,2,1);

stem(k-N/2,abs(fftshift(X)));

ylabel('Magnitude');

xlabel('Frequency(rad)');

subplot(2,1,2);

stem(k-N/2,angle(fftshift(X)));

ylabel('phase');

xlabel('frequency(red)');

结果:

分析:序列的周期N=32,基频W0=3*pi/8。

频谱图表现为在w=-3,3处的脉冲。

(2) 进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。

答: 在利用DFT分析离散信号的频谱时,会出现的误差可以分为三类。分别是混叠现象,泄露现象,栅栏现象。

克服或改善的方法分别是:

(1)       混叠现象:对于离散信号,可以根据实际情况对其进行低通滤波,使之成为带限信号。工程中的信号一般都不是带限信号,连续信号在抽样前通常都进过一个低通滤波器(即抗混叠滤波器)进行低通滤波,以减少混叠误差,提高频谱分析精度。

(2)       泄漏现象:在选择矩形窗口的长度时,适当增加窗的长度,可以提高频谱分辨率,但是不能减小旁瓣引起的频谱泄露,因此可以选择旁瓣幅度很小甚至为零的非矩形窗对信号进行加窗处理,就可以降低频谱泄露。

(3)       栅栏现象:改善栅栏现象最常用的方法是在离散序列之后补零,得到一个比原有序列更长的序列,这样就可以增加频谱图中的很多细节,降低栅栏现象。

2. 利用FFT分析信号的频谱;

(1) 确定DFT计算的参数;

程序:k=0:30;

x=0.5.^k;

subplot(3,1,1);

stem(k,x);

ylabel('x');

xlabel('k')

subplot(3,1,2);

plot(k-15,abs(fftshift(fft(x))));

ylabel('Magnitude');

xlabel('Frequency');

subplot(3,1,3);

plot(k-15,angle(fftshift(fft(x))));

ylabel('phase');

xlabel('frequency');

结果:

分析: 信号无限长,因此需要对其进行截短。该序列单调衰减,当k>=30时,序列已几乎衰减为0,因此只取序列在区间[0,30]上的数值进行分析。

(2) 进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。

答: 在利用DFT分析离散信号的频谱时,会出现的误差可以分为三类。分别是混叠现象,泄露现象,栅栏现象。

克服或改善的方法分别是:

(4)       混叠现象:对于离散信号,可以根据实际情况对其进行低通滤波,使之成为带限信号。工程中的信号一般都不是带限信号,连续信号在抽样前通常都进过一个低通滤波器(即抗混叠滤波器)进行低通滤波,以减少混叠误差,提高频谱分析精度。

(5)       泄漏现象:在选择矩形窗口的长度时,适当增加窗的长度,可以提高频谱分辨率,但是不能减小旁瓣引起的频谱泄露,因此可以选择旁瓣幅度很小甚至为零的非矩形窗对信号进行加窗处理,就可以降低频谱泄露。

(6)       栅栏现象:改善栅栏现象最常用的方法是在离散序列之后补零,得到一个比原有序列更长的序列,这样就可以增加频谱图中的很多细节,降低栅栏现象。

3. 有限长脉冲序列,利用FFT分析其频谱,并绘出其幅度谱与相位谱。

程序:k=0:5,N=6

x=[2,3,3,1,0,5];

X=fft(x,N);

subplot(2,1,1);

plot(k-N/2,abs(fftshift(X)));

ylabel('Magnitude');

xlabel('Frequency');

subplot(2,1,2);

plot(k-N/2,angle(fftshift(X)));

ylabel('phase');

xlabel('Frequency');

结果:

4. 某周期序列由3个频率组成:

利用FFT分析其频谱。如何选取FFT的点数N?此3个频率分别对应FFT计算结果X[m]中的哪些点?若选取的N不合适,FFT计算出的频谱X[m]会出现什么情况?

答:选取x[k]的基波周期为点数N。

程序:N=32,k=0:31;

w0=7*pi/16,w1=9*pi/16,w2=pi/2;

x=cos(w0*k)+cos(w1*k)+cos(w2*k);

X=fft(x,N);

subplot(2,1,1);

stem(k-N/2,abs(fftshift(X)));

ylabel('Magnitude');

xlabel('Frequency');

subplot(2,1,2);

stem(k-N/2,angle(fftshift(X)));

ylabel('phase');

xlabel('Frequency');

结果:

分析:Cos(7*pi*k/16)对应X[m]中w=-7,7的点,cos(pi*k/2)对应w=-8,8的点,cos(9*pi*k/16)对应w=-9,9的点。

若取N=56,包络形状不变,出现杂频,如图所示:

三. 实验思考题

1. 既然可直接由DTFT定义计算序列DTFT,为何利用DFT分析序列的频谱?

答: 一个N点离散时间序列的傅里叶变换(DTFT)所得的频谱是以2π为周期延拓的连续函数。由采样定理,时域进行采样,则频域周期延拓,同样在频域进行采样,则时域也会周期延拓。DFT就基于这个理论,在频域进行采样,从而将信号的频谱离散化。所以,一个N点离散时间信号可以用一个频域内一个N点序列来唯一确定,这就是DFT表达式所揭示的内容。序列补零加长后,相当于频域的抽样点增多,反映在图形上即加零越多,频域抽样点越多,DFT越逼近DTFT。如果只是要在图形上显示DTFT,可以通过取足够多的点DFT来实现。

2. 若序列持续时间无限长,且无解析表达式,如何利用DFT分析其频谱?

答: 因为只要是有限长的离散序列都可以通过DFT对其进行频谱分析。故对于持续时间无限的序列,因首先得到能表征信号特征的离散序列,在对该离散序列进行DFT变换分析即可。这就涉及到模拟信号的数字化过程,具体方法是:(1)采样,根据信号的采样定理对该持续时间无限的序列进行采样。(2)量化,将采样得到的序列进行量化得到原模拟信号对应的离散序列,让后采用DFT对该序列进行频谱分析即可.

3. 在利用DFT分析离散信号频谱时,会出现哪些误差?如何克服或改善?

答: 在利用DFT分析离散信号的频谱时,会出现的误差可以分为三类。分别是混叠现象,泄露现象,栅栏现象。

克服或改善的方法分别是:

(7)       混叠现象:对于离散信号,可以根据实际情况对其进行低通滤波,使之成为带限信号。工程中的信号一般都不是带限信号,连续信号在抽样前通常都进过一个低通滤波器(即抗混叠滤波器)进行低通滤波,以减少混叠误差,提高频谱分析精度。

(8)       泄漏现象:在选择矩形窗口的长度时,适当增加窗的长度,可以提高频谱分辨率,但是不能减小旁瓣引起的频谱泄露,因此可以选择旁瓣幅度很小甚至为零的非矩形窗对信号进行加窗处理,就可以降低频谱泄露。

(9)       栅栏现象:改善栅栏现象最常用的方法是在离散序列之后补零,得到一个比原有序列更长的序列,这样就可以增加频谱图中的很多细节,降低栅栏现象。

4. 在利用DFT分析离散信号频谱时,如何选择窗函数?

答: 在用DFT分析离散信号频谱时,选择窗函数一般首选矩形窗,因为对信号进行加窗处理的目的是去截断信号,故一般情况下选择矩形窗就可以了。但是在对频谱分析精度要求高的情况下,就要合理选择非矩形窗,选择旁瓣幅值小甚至为零的非矩形窗以满足要求,提高频谱分析精度。

5. 序列补零和增加序列长度都可以提高频谱分辨率吗? 两者有何本质区别?

答:更长的时域信号能够提供更高的频域分辨率,因为一个N点的时域信号能被分解为N/2+1个余弦信号和N/2+1个正弦信号,N增大则(N/2+1)也增大,频域间隔(1/2的时域采样频率)/(N/2+1)减小,所以频域分辨率提高了。所以利用DFT计算频谱时增加取样点的长度范围可以提高分辨率。补零加长并不会改变频域的间隔,所以不能提高分辨率。

 

第二篇:北航信号实验一信号分析实验报告

信号与测试实验一

一  实验目的

1.掌握基本信号的时域和频域分析方法。

2.掌握信号的自相关和互相关分析,了解其应用。 

二  实验原理

相关MATLAB函数

(1)信号产生函数

正弦:y=A*sin(2*pi*f*t)

方波:y=A*square(2*pi*f*t)

锯齿:y=A*sawtooth(2*pi*f*t)

随机噪声:y=A*randn(size(t))

(2)傅里叶变换及反变换

Y=fft(x,N)   x为信号,N为点数,是2的幂次。

(3)相关运算

c=xcorr(x,'unbiased')  求信号x的自相关,'unbiased'为无偏估计

c=xcorr(x,y,'unbiased')    信号x、y的互相关

(4)波形显示

plot(x,y)     x为横坐标,y为纵坐标

添加标注 xlabel(‘text’)    将text添加到x轴下方

ylabel(‘text’)    将text添加到y轴下方

title(‘text’)        将text添加到图形上方

三  实验步骤及内容

1     产生不同的周期信号,包括正弦信号、方波信号、锯齿波信号,在时域分析这些波形特征(幅值、频率(周期))。对产生的信号进行Fourier变换,在频域分析信号的特征,并说明方波信号和锯齿波信号的信号带宽(进行傅里叶变换时注意采样频率)。

(1)正弦信号

1-sin.jpg

(2)方波信号

1-fb.jpg

(3)锯齿波信号

1-jc.jpg

时域

频域

正弦信号频谱离散,仅在f=10Hz时幅值最大;

方波信号频谱离散,在5Hz的奇数倍频有振幅值,且随着频率增大,振幅值减小,其他频率点振幅值为零,信号带宽50Hz;

锯齿波信号频谱离散,在5Hz的倍数频率处有振幅值,且随着频率增大,振幅值减小,其他频率点振幅值为零,信号带宽50HZ。

2 在Matlab中产生随机噪声、阶跃信号(选作)、矩形脉冲(选作)。对产生的信号进行Fourier变换,在频域分析信号的特征(进行傅里叶变换时注意采样频率)。

(1)    随机噪声

2-zs.jpg

随机噪声的频谱为连续频谱,分布与幅值均随机。

3 产生复合信号:

           由3个不同频率、幅值的正弦信号叠加的信号,从图形上判断信号的特征;

               产生由正弦信号和随机信号叠加的混合信号,从图形上判断信号的特征;

               产生由正弦信号和方波叠加的信号,从图形上判断信号的特征。

对中的3种复合信号进行FFT计算,从图上判断信号的特征。

(1)3个正弦信号叠加

3sin.jpg

3个正弦信号叠加仍为周期信号,频谱离散,在10 Hz,20 Hz,50Hz处有振幅,且50 Hz信号振幅为两倍。

(2)    正弦叠加噪声信号

3-2.jpg

正弦信号与噪声信号叠加大致为正弦信号,但信号不光滑,其频谱离散,是正弦与噪声各自频谱的叠加,其中10Hz处幅值最大,其余部分幅值很小且随机。

(3)    正弦信号叠加方波信号

3-3.jpg

正弦信号与方波叠加仍为周期信号,频谱离散,在10Hz和20Hz的整数倍处有振幅,是正弦与方波各自频谱的叠加,在10Hz处振幅最大。

4产生一个基波信号,显示图形;按照方波的傅里叶级数展开的规律再叠加一个三次谐波,显示图形;再叠加一个五次谐波,显示图形,观察信号的变化。将以上图形显示在同一张图的不同部分。

4-fb.jpg

随着高次谐波的叠加,信号越来越接近方波,验证了其傅里叶展开。

5产生一个周期信号,进行自相关运算,说明周期信号进行自相关运算后的信号与原信号相比的特点。

5-zqzxg.jpg

对于,自相关运算后为,保留了振幅和频率的信息,丢失了相角信息。图中可以看出,自相关运算信号幅值为原信号一半,频率不变。

6对白噪声信号进行自相关运算,观察运算后信号特征,并叙述产生这种现象的原因。

白噪声自相关.jpg

自相关函数为偶函数,在处幅值最大,其他频率处振幅值几乎为零,随机信号在不等于0时没有相关性。

7 5中产生的周期信号叠加白噪声,进行自相关运算,观察信号特征。

7.jpg

自相关函数仍是周期信号,相关分析后获得的波形去除了噪声影响,大致能看出原信号的频率和幅值等,因此,自相关分析可以用于带噪声信号的处理。

8产生两个同频率的周期信号,进行互相关运算,观察运算后的信号。

8.jpg

两个同频率周期信号互相关函数仍是周期函数,频率不变,幅值为原信号幅值乘积的一半,互相关函数能表明两个信号的相位差与相关性信息。

9 产生两个不同频率的周期信号,进行互相关运算,观察运算后的信号。

9.jpg

两个不同频率周期性信号互相关运算后幅值几乎为0,相关性较差。

四 实验意义

1.   傅里叶变换

傅里叶变换将信号的时域描述和频域描述建立起彼此一一对应的关系,其性质有助于我们理解信号的特征、运算和变化,为复杂问题的分析和简化提供帮助。因而傅里叶变换在工程实践与科学研究中有着重要的意义。

自相关和互相关函数

自相关函数表达了同一过程不同时刻的相互依赖关系,是信号与自身的延迟信号的乘积进行积分运算,对结果进行频谱分析可以获得原信号的周期幅值等信息,能从复合信号中分离出周期信号的信息。自相关函数常常应用于检测信号回声,检测淹没在随机噪声中的周期信号以及不同类型信号的辨识。

互相关函数表示不同过程的某一时刻的相互依赖关系,是信号与延迟后的另一信号的乘积进行积分运算,其结果保留了两个信号的同频分量的频率、幅值和相位差的信息。互相关函数常常应用于测速和测距,检测淹没在外来噪声中的信号以及系统脉冲响应的测定

相关推荐