最新实验三-用FFT对信号作频谱分析
用FFT对信号做频谱分析
3. 选择合适的变换区间长度 N,用 DFT 对下列序列进行谱分析,并绘制幅频特性曲线。 (1) x1 n 2cos 0.2 n (2) x2 n sin 0.45 n sin 0.55 n (3) x3 n 2 n R21 n 10 第(1)问的 MATLAB 程序: clear all; n=0:9; x=2*cos(0.2*pi*n); subplot(211); plot(x); title('x1(n)=2cos(0.2\pin)') grid on; y=fft(x,10); y1=abs(y); subplot(212) plot(y1); title('幅频特性曲线') grid on; 第二问的 MATLAB 程序: clear all; n=0:40;
subplot(311); stem(0:7,abs(y1)) title('X(n)的 8 点 DFT 幅频特性'); y2=fft(x,16); subplot(312); stem(0:15,abs(y2)); title('X(n)的 16 点 DFT 幅频特性'); y=fft(x,1024); subplot(313); plot(abs(y)); title('X(e^j^w)的幅频特性'); axis([0 1020 0 20]);
x=sin(0.45*pi*n).*sin(0.55*pi*n); subplot(211); plot(x); title('x2(n)=sin(0.45\pin)sin(0.55\pin)') grid on; y=fft(x,20); y1=abs(y); subplot(212); plot(y1); title('幅频特性曲线') grid on;
用FFT对信号作频谱分析
用FFT对信号作频谱分析快速傅立叶变换(FFT)是一种在信号处理中常用于频谱分析的方法。
它是傅立叶变换的一种快速算法,通过将信号从时间域转换到频域,可以提取信号的频率信息。
FFT算法的原理是将信号分解为不同频率的正弦波成分,并计算每个频率成分的幅度和相位。
具体而言,FFT将信号划分为一系列时间窗口,每个窗口内的信号被认为是一个周期性信号,然后对每个窗口内的信号进行傅立叶变换。
使用FFT进行频谱分析可以得到信号的频率分布情况。
频谱可以显示信号中各个频率成分的强度。
通过分析频谱可以识别信号中的主要频率成分,判断信号中是否存在特定频率的干扰或噪声。
常见的应用包括音频信号处理、图像处理、通信系统中的滤波和解调等。
使用FFT进行频谱分析的步骤如下:1.首先,获取待分析的信号,并确保信号是离散的,即采样频率与信号中的最高频率成分满足奈奎斯特采样定理。
2.对信号进行预处理,包括去除直流分量和任何不需要的干扰信号。
3.对信号进行分段,分段后的每个窗口长度在FFT算法中通常为2的幂次方。
常见的窗口函数包括矩形窗、汉明窗等。
4.对每个窗口内的信号应用FFT算法,将信号从时间域转换到频域,并计算每个频率成分的幅度和相位。
5.对所有窗口得到的频谱进行平均处理,以得到最终的频谱分布。
在使用FFT进行频谱分析时需要注意的问题有:1.噪声的影响:FFT对噪声敏感,噪声会引入幅度偏差和频率漂移。
可以通过加窗等方法来减小噪声的影响。
2.分辨率的选择:分辨率是指在频谱中能够分辨的最小频率间隔。
分辨率与信号长度和采样频率有关,需要根据需求进行选择。
3.漏泄效应:当信号中的频率不是FFT长度的整数倍时,会出现漏泄效应。
可以通过零填充等方法来减小漏泄效应。
4.能量泄露:FFT将信号限定在一个周期内进行计算,如果信号过长,则可能导致部分频率成分的能量泄露到其他频率上。
总之,FFT作为信号处理中常用的频谱分析方法,能够提取信号中的频率信息,广泛应用于多个领域。
实验3 用FFT对信号作频谱分析(预习报告)
实验3 用FFT 对信号作频谱分析1.实验程序及运行结果实验内容1:对非周期序列进行谱分析 对以下序列进行谱分析 14()()x n R n =2103()8470n n x n nn else +≤≤⎧⎪=-≤≤⎨⎪⎩ 3403()3470n n x n n n else-≤≤⎧⎪=-≤≤⎨⎪⎩选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。
分别打印其幅频特性曲线, 并进行对比、分析和讨论。
源程序:shzxhchlshiyan3_1 %用FFT 对非周期序列进行谱分析 clear all,close all,clc,clf;x1n=[ones(1,4)]; %产生序列向量x1(n)=R4(n)M=8;xa=1:(M/2);xb=(M/2):-1:1;x2n=[xa,xb]; %产生长度为8的三角波序列x2(n) x3n=[xb,xa];%产生长度为8的序列x3(n)X1k8=fft(x1n,8); %计算x1n 的8点DFT X1k16=fft(x1n,16); %计算x1n 的16点DFT X2k8=fft(x2n,8); %计算x2n 的8点DFT X2k16=fft(x2n,16); %计算x2n 的16点DFT X3k8=fft(x3n,8); %计算x3n 的8点DFT X3k16=fft(x3n,16); %计算x3n 的16点DFTXk=fft(x1n,1024); %1024点FFT[x(n)], 用于近似序列x(n)的TF k=0:1023;wk=k/1024; %0-2π周期内的归一化频率 subplot(3,1,1);plot(wk,abs(Xk));%画FT[x1(n)]aaxis([0,1,0,1.1*max(Xk)]);set(gca,'Xtick',[0,0.25,0.5,0.75,1]); title('(a) 原序列的频谱FT[x_1(n)]');ylabel('|X(e^j^\omega)|');%xlabel('f=\omega/2\pi'); nX1k8=0:7;nX1k16=0:15;subplot(3,1,2);stem(nX1k8,abs(X1k8),'.'); %绘制8点DFT 的幅频特性图 axis([0,8,0,1.1*max(X1k8)]);title('(b) 8点DFT[x_1(n)]');ylabel('幅度');%xlabel('n');subplot(3,1,3); stem(nX1k16,abs(X1k16),'.'); %绘制16点DFT 的幅频特性图 axis([0,16,0,1.1*max(X1k16)]);title('(c) 16点DFT[x_1(n)]');ylabel('幅度');%xlabel('n'); figure(2)Xk=fft(x2n,1024); %1024点FFT[x(n)], 用于近似序列x(n)的TFk=0:1023;wk=k/1024; %0-2π周期内的归一化频率 subplot(3,1,1);plot(wk,abs(Xk));%画FT[x2(n)]axis([0,1,0,1.1*max(Xk)]);set(gca,'Xtick',[0,0.25,0.5,0.75,1]); title('(a) 原序列的频谱FT[x_2(n)]');ylabel('|X(e^j^\omega)|');%xlabel('f=\omega/2\pi'); nX2k8=0:7;nX2k16=0:15;subplot(3,1,2);stem(nX2k8,abs(X2k8),'.'); %绘制8点DFT 的幅频特性图 axis([0,8,0,1.1*max(X2k8)]);title('(b) 8点DFT[x_2(n)]');ylabel('幅度');%xlabel('n');subplot(3,1,3); stem(nX2k16,abs(X2k16),'.'); %绘制16点DFT 的幅频特性图 axis([0,16,0,1.1*max(X2k16)]);title('(c) 16点DFT[x_2(n)]');ylabel('幅度');%xlabel('n'); figure(3)Xk=fft(x3n,1024); %1024点FFT[x(n)], 用于近似序列x(n)的TF k=0:1023;wk=k/1024; %0-2π周期内的归一化频率 subplot(3,1,1);plot(wk,abs(Xk));%画FT[x3(n)]axis([0,1,0,1.1*max(Xk)]);set(gca,'Xtick',[0,0.25,0.5,0.75,1]); title('(a) 原序列的频谱FT[x_3(n)]');ylabel('|X(e^j^\omega)|');%xlabel('f=\omega/2\pi'); nX3k8=0:7;nX3k16=0:15;subplot(3,1,2);stem(nX3k8,abs(X3k8),'.'); %绘制8点DFT 的幅频特性图 axis([0,8,0,1.1*max(X3k8)]);title('(b) 8点DFT[x_3(n)]');ylabel('幅度');%xlabel('n');subplot(3,1,3); stem(nX3k16,abs(X3k16),'.'); %绘制16点DFT 的幅频特性图 axis([0,16,0,1.1*max(X3k16)]);title('(c) 16点DFT[x_3(n)]');ylabel('幅度');%xlabel('n');程序运行结果:0.250.50.751(a) 原序列的频谱FT[x 1(n)]|X (e j )|(b) 8点DFT[x 1(n)]幅度(c) 16点DFT[x 1(n)]幅度图3-1 非周期序列1()x n 的频谱及8点、16点DFT0.250.50.751(a) 原序列的频谱FT[x 2(n)]|X (e j ω)|(b) 8点DFT[x 2(n)]幅度(c) 16点DFT[x 2(n)]幅度图3-2 非周期序列2()x n 的频谱及8点、16点DFT0.250.50.75101020(a) 原序列的频谱FT[x 3(n)]|X (ej ω)|(b) 8点DFT[x 3(n)]幅度(c) 16点DFT[x 3(n)]幅度图3-3 非周期序列3()x n 的频谱及8点、16点DFT程序运行结果说明:(1)非周期离散序列的8点DFT 和16点DFT 分别是原序列频谱函数的8点和16点采样。
实验三用FFT对信号进行频谱分析和MATLAB程序
实验三用FFT对信号进行频谱分析和MATLAB程序实验三中使用FFT对信号进行频谱分析的目的是通过将时域信号转换为频域信号,来获取信号的频谱信息。
MATLAB提供了方便易用的函数来实现FFT。
首先,我们需要了解FFT的原理。
FFT(快速傅里叶变换)是一种快速计算离散傅里叶变换(DFT)的算法,用于将离散的时间域信号转换为连续的频域信号。
FFT算法的主要思想是将问题划分为多个规模较小的子问题,并利用DFT的对称性质进行递归计算。
FFT算法能够帮助我们高效地进行频谱分析。
下面是一个使用MATLAB进行频谱分析的示例程序:```matlab%生成一个10秒钟的正弦波信号,频率为1Hz,采样率为100Hzfs = 100; % 采样率t = 0:1/fs:10-1/fs; % 时间范围f=1;%正弦波频率x = sin(2*pi*f*t);%进行FFT计算N = length(x); % 信号长度X = fft(x); % FFT计算magX = abs(X)/N; % 幅值谱frequencies = (0:N-1)*(fs/N); % 频率范围%绘制频谱图figure;plot(frequencies, magX);xlabel('频率(Hz)');ylabel('振幅');title('信号频谱');```上述代码生成了一个10秒钟的正弦波信号,频率为1 Hz,采样率为100 Hz。
通过调用MATLAB的fft函数计算信号的FFT,然后计算每个频率分量的幅值谱,并绘制出信号频谱图。
在频谱图中,横轴表示频率,纵轴表示振幅。
该实验需要注意以下几点:1.信号的采样率要与信号中最高频率成一定比例,以避免采样率不足导致的伪频谱。
2.FFT计算结果是一个复数数组,我们一般只关注其幅值谱。
3.频率范围是0到采样率之间的频率。
实验三的报告可以包含以下内容:1.实验目的和背景介绍。
实验三 用FFT作谱分析
实验三 用FFT 作谱分析1、实验目的(1)进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法,所以FFT 的运算结果必然满足DFT 的性质)(2)熟悉FFT 算法原理及子程序的应用。
(3)掌握用FFT 对连续信号和时域离散信号进行频谱分析的基本方法。
了解可能出现的分析误差和原因,以便在实际中正确应用FFT 。
2、实验原理如果用FFT 对模拟信号进行谱分析,首先要把模拟信号转换成数字信号,转换时要求知道模拟信号的最高截止频率,以便选择满足采样定理的采样频率。
一般选择采样频率是模拟信号中最高频率的3~4倍。
另外要选择对模拟信号的观测时间,如果采样频率和观测时间确定,则采样点数也确定了。
这里观测时间和对模拟信号进行谱分析的分辨率有关,最小的观测时间和分辨率成倒数关系。
要求选择的采样点数和观测时间大于它的最小值。
用FFT 作谱分析时,要求做FFT 的点数服从2的整数幂,这一点在上面选择采样点数时可以考虑满足,即使满足不了,可以通过在序列尾部加0完成。
如果要进行谱分析的模拟信号是周期信号,最好选择观测时间是信号周期的整数倍。
如果不知道信号的周期,要尽量选择观测时间长一些,以减少截断效应的影响。
用FFT 对模拟信号作谱分析是一种近似的谱分析。
首先一般模拟信号(除周期信号外)的频谱是连续频谱,而用FFT 作谱分析得到的是数字谱,因此应该取FFT 的点数多一些,用它的包络作为模拟信号的近似谱。
另外,如果模拟信号不是严格的带限信号,会因为频谱混叠现象引起谱分析的误差,这种情况下可以预先将模拟信号进行预滤,或者尽量将采样频率取高一些。
一般频率混叠发生在折叠频率附近,分析时要注意因频率混叠引起的误差。
最后要注意一般模拟信号是无限长的,分析时要截断,截断的长度和分辨率有关,但也要尽量取长一些,取得太短因截断引起的误差会很大。
举一个极端的例子,一个周期性正弦波,如果所取观察时间太短,例如取小于一个周期,它的波形和正弦波相差太大,肯定误差很大,但如果取得长一些,即使不是周期的整倍数,这种截断效应也会小一些。
实验三用FFT频谱分析
实验三用FFT频谱分析FFT(快速傅里叶变换)是一种常用的信号处理技术,可用于频谱分析。
频谱分析是分析信号中各频率成分的强度和相位的过程。
在本实验中,我们将使用FFT技术来进行频谱分析。
首先,我们需要了解一些基本概念。
任何信号都可以看作是不同频率的正弦波的叠加。
通过对信号进行傅里叶变换,我们可以将其表示为频率和幅度的函数,这就是频谱。
FFT是一种快速计算傅里叶变换的算法,大大提高了计算效率。
接下来,我们将使用Python的NumPy库来进行FFT频谱分析。
首先,我们需要导入NumPy库以及Matplotlib库用于绘图。
```pythonimport numpy as npimport matplotlib.pyplot as plt```然后,我们可以生成一个示例信号用于频谱分析。
在此实验中,我们将使用包含两个频率成分的正弦波。
```python#生成时间序列t = np.linspace(0, 1, 1000)#生成频率为10Hz和20Hz的信号f1=10f2=20signal = np.sin(2*np.pi*f1*t) + np.sin(2*np.pi*f2*t)```接下来,我们可以进行FFT频谱分析。
```python#对信号进行FFTfft = np.fft.fft(signal)#计算频率轴freqs = np.fft.fftfreq(len(signal))#绘制功率谱密度图plt.plot(freqs, np.abs(fft)**2)plt.xlabel('Frequency')plt.ylabel('Power')plt.show```这样就完成了FFT频谱分析。
我们可以通过查看功率谱密度图来了解信号的频率成分。
在图中,横轴表示频率,纵轴表示功率。
功率谱密度图可以帮助我们确定信号中存在的频率成分的强度。
在本实验中,我们使用了两个频率为10Hz和20Hz的正弦波信号进行了示例分析。
利用FFT对信号进行频谱分析
∑-=--==101,....,0,)(1)(N k nk N N n W k X N n x (3.2) 离散傅立叶反变换与正变换的区别在于N W 变为1-N W ,并多了一个N 1的运算。
因为N W 和1-N W 对于推导按时间抽取的快速傅立叶变换算法并无实质性区别,因此可将FFT 和快速傅立叶反变换(IFFT )算法合并在同一个程序中。
2.利用FFT 进行频谱分析若信号本身是有限长的序列,计算序列的频谱就是直接对序列进行FFT 运算求得)(k X ,)(k X 就代表了序列在[]π2,0之间的频谱值。
幅度谱 )()()(22k X k X k X I R +=相位谱 )()(arctan )(k X k X k R I =ϕ 若信号是模拟信号,用FFT 进行谱分析时,首先必须对信号进行采样,使之变成离散信号,然后就可按照前面的方法用FFT 来对连续信号进行谱分析。
按采样定理,采样频率s f 应大于2倍信号的最高频率,为了满足采样定理,一般在采样之前要设置一个抗混叠低通滤波器。
用FFT 对模拟信号进行谱分析的方框图如下所示。
3.在运用DFT 进行频谱分析的过程中可能产生三种误差:(1)混叠序列的频谱是被采样信号频谱的周期延拓,当采样速率不满足Nyquist 定理时,就会发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原信号的频谱。
避免混叠现象的唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须对频谱的性质有所了解。
在一般情况下,为了保证不出现频谱混叠,在采样前,先进行抗混叠滤波。
(2)泄漏实际中我们往往用截短的序列来近似很长的甚至是无限长的序列,这样可以使用较短的DFT 来对信号进行频谱分析,这种截短等价于给原信号序列乘以一个矩形窗函数,也相当于在频域将信号的频谱和矩形窗函数的频谱卷积,所得的频谱是原序列频谱的扩展。
抗混叠低通滤波器 采样T=1/f s N 点FFT泄漏不能与混叠完全分开,因为泄漏导致频谱的扩展,从而造成混叠。
实验三 用FFT对信号作频谱分析
实验三:用FFT 对信号作频谱分析1.实验目的学习用FFT 对连续信号与时域离散信号进行谱分析的方法,了解可能出现的分析 误差及其原因,以便正确应用FFT 。
2、 实验原理用FFT 对信号作频谱分析就是学习数字信号处理的重要内容。
经常需要进行谱分析的信号就是模拟信号与时域离散信号。
对信号进行谱分析的重要问题就是频谱分辨率D 与分析误差。
频谱分辨率直接与FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率就是N /2π,因此要求D N ≤/2π。
可以根据此式选择FFT 的变换区间N 。
误差主要来自于用FFT 作频谱分析时,得到的就是离散谱,而信号(周期信号除外)就是连续谱,只有当N 较大时离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。
周期信号的频谱就是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。
如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。
如果就是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
3.实验步骤及内容(1)对以下序列进行谱分析。
⎪⎩⎪⎨⎧≤≤-≤≤-=⎪⎩⎪⎨⎧≤≤-≤≤+==其它nn n n n n x 其它n n n n n n x n R n x ,074,330,4)(,074,830,1)()()(3241 选择FFT 的变换区间N 为8与16 两种情况进行频谱分析。
分别打印其幅频特性曲线。
并进行对比、分析与讨论。
(2)对以下周期序列进行谱分析。
4()cos 4x n n π=5()cos(/4)cos(/8)x n n n ππ=+选择FFT 的变换区间N 为8与16 两种情况分别对以上序列进行频谱分析。
分别打印其幅频特性曲线。
并进行对比、分析与讨论。
(3)对模拟周期信号进行谱分析6()cos8cos16cos20x t t t t πππ=++选择 采样频率Hz F s 64=,变换区间N=16,32,64 三种情况进行谱分析。
用FFT对信号作频谱分析
实验二用FFT对信号作频谱分析一、实验目的(1)学习使用FFT对模拟信号和时域离散信号进行频谱分析的方法(2)了解可能出现的分析误差及其原因,以便正确应用FFT二、实验内容:(1)根据参考资料使用FFT进行谐波分析;利用函数生成一组数据,用以模拟电力现场的测量数据,使用FFT对其进行频谱分析;程序:clearfs=1000;t=0:1/fs:0.6;f1=100;f2=300;x1=sin(2*pi*f1*t); %正弦信号x1x2=sin(2*pi*f2*t); %正弦信号x2x=x1+x2;l=length(x);xx=x+randn(1,l); %叠加随机噪声信号figure(1)subplot(7,1,1)plot(x1);subplot(7,1,2)plot(x2);subplot(7,1,3)plot(x);subplot(7,1,4)plot(xx);number=512;y=fft(x,number); %对x取512点的快速傅里叶变换n=0:length(y)-1;f=fs*n/length(y);subplot(7,1,5)plot(f,abs(y));yy=fft(xx,number); %对xx取512点的快速傅里叶变换subplot(7,1,6)plot(f,abs(yy));pyy=y.*conj(y)/number; %y的能量subplot(7,1,7)plot(f,abs(pyy));实验结果见附图1(2)使用操作系统自带的录音机,录制各种声音,保存成.wav文件;将该声音文件读入(采样保存到)某矩阵中,对该采样信号使用FFT进行频谱分析,比较各种语音信号所包含的频谱成分及频率范围。
程序:number=512;fs=1000;x=wavread('你自己的音频名,如a.wav');%读取音频文件y=fft(x,number); %对x取512点的傅里叶变换n=0:length(y)-1;f=fs*n/length(y);subplot(2,1,1)plot(f,abs(y));pyy=y.*conj(y)/number; %y的能量subplot(2,1,2)plot(f,abs(pyy));实验结果见附图2三、实验结论由实验结果可以看出,实验得到了FFT对模拟信号和时域离散信号进行频谱分析的结果。
实验三用FFT对信号作频谱分析_实验报告
实验三用FFT对信号作频谱分析_实验报告一、实验目的1.学习使用FFT(快速傅里叶变换)对信号进行频谱分析;2.掌握频谱分析的基本原理和方法;3.熟悉使用MATLAB进行频谱分析的操作。
二、实验原理FFT是一种基于傅里叶变换的算法,可以将时域信号转换为频域信号,并将信号的频谱特征展示出来。
在频谱分析中,我们通过分析信号的频谱可以获得信号的频率、幅值等信息,从而对信号的性质和特征进行研究。
对于一个连续信号,我们可以通过采样的方式将其转换为离散信号,再利用FFT算法对离散信号进行频谱分析。
FFT算法可以将信号从时域转换到频域,得到离散的频谱,其中包含了信号的频率分量以及对应的幅值。
MATLAB中提供了fft函数,可以方便地对信号进行FFT分析。
通过对信号进行FFT操作,可以得到信号的频谱图,并从中提取出感兴趣的频率信息。
三、实验步骤1.准备工作:(2)建立新的MATLAB脚本文件。
2.生成信号:在脚本中,我们可以通过定义一个信号的频率、幅值和时间长度来生成一个信号的波形。
例如,我们可以生成一个频率为1000Hz,幅值为1的正弦波信号,并设置信号的时间长度为1秒。
3.对信号进行FFT分析:调用MATLAB中的fft函数,对信号进行FFT分析。
通过设置采样频率和FFT长度,可以得到信号的频谱。
其中,采样频率是指在单位时间内连续采样的次数,FFT长度是指离散信号的样本点数。
4.绘制频谱图:调用MATLAB中的plot函数,并设置x轴为频率,y轴为幅值,可以绘制出信号的频谱图。
频谱图上横坐标表示信号的频率,纵坐标表示信号的幅值,通过观察可以得到信号的频率分布情况。
四、实验结果在实验过程中,我们生成了一个频率为1000Hz,幅值为1的正弦波信号,并对其进行FFT分析。
通过绘制频谱图,我们发现信号在1000Hz处有最大幅值,说明信号主要由这一频率成分组成。
五、实验总结本实验通过使用FFT对信号进行频谱分析,我们可以方便地从信号的波形中提取出频率分量的信息,并绘制出频谱图进行观察。
用FFT对信号作频谱分析实验报告
用FFT对信号作频谱分析实验报告实验目的:利用FFT对信号进行频谱分析,掌握FFT算法的原理及实现方法,并获取信号的频谱特征。
实验仪器与设备:1.信号发生器2.示波器3.声卡4.计算机实验步骤:1.将信号发生器与示波器连接,调节信号发生器的输出频率为待测信号频率,并将示波器设置为XY模式。
2.将示波器的输出接口连接至声卡的输入接口。
3.打开计算机,运行频谱分析软件,并将声卡的输入接口设置为当前输入源。
4.通过软件选择频谱分析方法为FFT,并设置采样率为合适的数值。
5.通过软件开始进行频谱分析,记录并保存频谱图像和数据。
实验原理:FFT(快速傅里叶变换)是一种计算机算法,用于将时域信号转换为频域信号。
它通过将一个信号分解成多个不同频率的正弦波或余弦波的合成,并计算每个频率分量的幅度和相位信息。
实验结果与分析:通过对待测信号进行FFT频谱分析,我们可以得到信号在频域上的频谱特征。
频谱图像可以展示出信号中不同频率成分的能量分布情况,可以帮助我们了解信号的频率构成及其相对重要程度。
在实验中,我们可以调节信号发生器的输出频率,观察频谱图像的变化。
当信号频率与采样率相等时,我们可以得到一个峰值,表示信号的主频率。
同时,我们还可以观察到其他频率分量的存在,其幅度与信号频率的差距越小,幅度越低。
通过对不同信号进行频谱分析,我们可以了解信号的频率成分及其分布情况。
这对于信号处理、通信等领域具有重要意义。
实验结论:通过FFT频谱分析,我们可以获得信号在频域上的频谱特征,可以清晰地观察到信号的主频率以及其他频率分量的存在。
这为信号处理及相关应用提供了有价值的信息。
实验中,我们使用了信号发生器、示波器、声卡和计算机等设备,通过连接和软件进行了频谱分析实验。
通过实验,我们掌握了FFT算法的原理及实现方法,并且获取到了信号的频谱特征。
然而,需要注意的是,频谱分析仅能得到信号在其中一时刻或一段时间内的频率成分,不能得到信号的时域信息。
应用FFT对信号进行频谱分析
(2—6)
即序列的频谱是采样信号频谱的周期延拓。从上式可看出,只 要分析采样序列的频谱,就可以得到相应的连续信号的频谱。 在各种信号序列中,有限长序列在数字信号处理中占有很重要 的地位。无限长的序列往往可以用有限长序列来逼近。对于有限长 的序列我们可以用离散傅里叶变换(DFT) ,这一变换可以很好的反 映序列的频域特性,并且容易利用快速算法在计算机中实现当序列 长度是 N 时,我们定义离散傅里叶变换为
kn X (k ) DFT[ x(n)] WN n 0 N 1
(2—7)
其中 WNkn = e
j
2 N
,它的反变换定义为:
1 N 1 X (k )WNkn N k 0
x(n) IDFT[ X (k )]
(2—8)
根据以上两式,令 Z= Z= WNk X(z)
N 1 n 0
3、观察三角波序列和反三角波序列的时域和幅频特性
(1)用 8 点 FFT 分析信号 xc(n)和 xd(n)的幅频特性,观察两者的序 列形状和频谱曲线有什么异同?绘制两者的序列和幅频特性曲线
>> for i=1:4;%设置信号前 4 个点的数值 x(i)=i; end fori=5:8; x(i)=9-i; end close all; subplot(2,2,1);stem(x);title('xc[n]信号图形'); subplot(2,2,2);stem(abs(fft(x,16)));title('xc[n]信号的频谱') for i=1:4;%设置信号前 4 个点的数值 x(i)=5-i;
(2—3)
当 Z= e j 的时候,我们就得到了序列的傅里叶变换
实验三用FFT对信号作频谱分析_实验报告
实验三用FFT对信号作频谱分析_实验报告一、实验目的1.理解离散傅里叶变换(FFT)的原理和应用;2.学会使用FFT对信号进行频谱分析;3.掌握频谱分析的基本方法和实验操作。
二、实验原理离散傅里叶变换(FFT)是一种用来将时域信号转换为频域信号的数学工具。
其基本原理是将连续时间信号进行离散化,然后通过对离散信号进行傅里叶变换得到离散频域信号。
傅里叶变换(Fourier Transform)是一种将时域信号转换为频域信号的方法。
在信号处理中,经常需要对信号的频谱进行分析,以获取信号的频率分量信息。
傅里叶变换提供了一种数学方法,可以将时域信号转换为频域信号,实现频谱分析。
在频谱分析中,我们常常使用快速傅里叶变换(Fast Fourier Transform,FFT)算法进行离散信号的频谱计算。
FFT算法可以高效地计算出离散信号的频谱,由于计算复杂度低,广泛应用于信号处理和频谱分析的领域。
频谱分析的流程一般如下:1.采集或生成待分析的信号;2.对信号进行采样;3.对采样得到的信号进行窗函数处理,以改善频谱的分辨率和抑制信号泄漏;4.使用FFT算法对窗函数处理得到的信号进行傅里叶变换;5.对傅里叶变换得到的频谱进行幅度谱和相位谱分析;6.对频谱进行解释和分析。
三、实验内容实验所需材料和软件及设备:1.信号发生器或任意波形发生器;2.数字示波器;3.计算机。
实验步骤:1.连接信号发生器(或任意波形发生器)和示波器,通过信号发生器发送一个稳定的正弦波信号;2.调节信号频率、幅度和偏置,得到不同的信号;3.使用数字示波器对信号进行采样,得到离散时间信号;4.对采样得到的信号进行窗函数处理;5.对窗函数处理得到的信号进行FFT计算,得到频谱;6.使用软件将频谱进行幅度谱和相位谱的分析和显示。
四、实验结果与分析1.信号频谱分析结果如下图所示:(插入实验结果图)从频谱图中可以看出,信号主要集中在一些频率上,其他频率基本没有,表明信号主要由该频率成分组成。
实验3 用FFT对信号作频谱分析
选择 采样频率 ,变换区间N=16,32,64 三种情况进行谱分析。分别打印其幅频特性,并进行分析和讨论。
4(思考题
(1)对于周期序列,如果周期不知道,如何用FFT进行谱分析, (2)如何选择FFT的变换区间,(包括非周期信号和周期信号) (3)当N=8时, 和 的幅频特性会相同吗,为什么,N=16 呢, 5(实验报告要求
%实验内容(1)===================================================
(1)完成各个实验任务和要求。附上程序清单和有关曲线。
(2)简要回答思考题。
=====================================================================
========Байду номын сангаас==
%第10章实验3程序exp3.m
% 用FFT对信号作频谱分析
clear all;close all
对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
3(实验步骤及内容
(1)对以下序列进行谱分析。
选择FFT的变换区间N为8和16 两种情况进行频谱分析。分别打印其幅频特性曲线。 并进行对比、分析和讨论。
(2)对以下周期序列进行谱分析。
选择FFT的变换区间N为8和16 两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。
feel free to listen to their voices and help the masses solve problems, we were officially opened on May 10 "12345" Mayor calls, formulated rules and regulations, equipped with a full-time staff, a 24-hour on-duty system, people to call to receive, reply, action, reminders, feedback and so on. By year end, handled the crowd calls 1076, 94.7% feedback rate. By Mayor calls active coordination to solve a large number of bears on the immediate interests of the people and issues of great lives, but also for leadership research and decision to collect a lot of good ideas and suggestions, by all sectors of the community alike. Second, start Municipal Government Affairs Hall built. On May 11, we built and launched the city-government lobby, were settled in 12 departments, strict implementation of first asking duty system, service system, system of gratuitous, "receiving, internal coordination, head of the window handle, limited time concluded" one-stop service. By the end of today to accept various types of 3,273, originally of up to 100%. Running Government Affairs Hall, the convenience of the masses, promoting open Government, improve the investment environment and solve their practical problems, and so did a lot of work, masses, serve the community for the Government to play a very good "window, link, model". Third, create a city government public affairs network. We rely on theGovernment Web site, was completed on May 24, the province's first public affairs network. Over
fft实验分析实验报告
fft实验分析实验报告
实验报告主要包括实验目的、实验原理、实验步骤、实验结果分析和结论等内容。
以下是一个关于FFT实验分析的实验报告示例:
实验报告
实验目的:
1. 了解傅里叶变换(FFT)的基本原理和应用;
2. 学会使用FFT算法对信号进行频谱分析。
实验设备和材料:
1. 计算机;
2. 音频文件或实时采集的音频信号。
实验原理:
傅里叶变换是一种将时域信号转换为频域信号的数学变换方法,可以将信号表示为不同频率的复指数函数的叠加。
而FFT(快速傅里叶变换)是一种高效的傅里叶变换算法,可以快速计算信号的频谱。
实验步骤:
1. 准备音频文件或实时采集的音频信号;
2. 将音频信号输入计算机中的FFT算法进行处理,得到信号的频谱;
3. 对频谱进行可视化表示,如绘制频谱图;
4. 根据频谱图分析信号的频率分布和能量分布等特征。
实验结果分析:
通过实验,我们得到了音频信号的频谱图。
根据频谱图可以得到信号的频率分布情况,即哪些频率的分量相对强,哪些频率的分量相对弱。
频谱图还可以展示信号的能量分
布情况,能量较高的频率分量对应着声音的主要特征。
结论:
通过本次实验,我们学习了傅里叶变换(FFT)的基本原理和应用,并掌握了使用FFT 算法进行信号频谱分析的方法。
频谱分析是一种常用的信号处理方法,可以帮助我们
了解信号的频率特征和能量分布情况,对于音频、图像等领域的信号处理具有重要的
应用价值。
用FFT对信号作频谱分析的程序
实验(1)function shiyan1x1=[1,1,1,1];n1=0:3;n2=4:7;xa=n1+1;xb=8-n2;x2=[xa,xb];xa1=4-n1;xb1=n2-3;x3=[xa1,xb1];X18=fft(x1,8);k1=0:8-1;subplot(3,2,1);stem(k1,abs(X18),'.');axis([0,8,0,1.2*max(abs(X18))]); title('8点DFT[x1]');ylabel('幅度');X116=fft(x1,16);k2=0:16-1;subplot(3,2,2);stem(k2,abs(X116),'.');axis([0,16,0,1.2*max(abs(X116))]); title('16点DFT[x1]');ylabel('幅度');X28=fft(x2,8);subplot(3,2,3);stem(k1,abs(X28),'.');axis([0,8,0,1.2*max(abs(X28))]); title('8点DFT[x2]');ylabel('幅度');X216=fft(x2,16);subplot(3,2,4);stem(k2,abs(X216),'.');axis([0,16,0,1.2*max(abs(X216))]); title('16点DFT[x2]');ylabel('幅度');X38=fft(x3,8);subplot(3,2,5);stem(k1,abs(X38),'.');axis([0,8,0,1.2*max(abs(X38))]); title('8点DFT[x3]');ylabel('幅度');X316=fft(x3,16);subplot(3,2,6);stem(k2,abs(X316),'.');axis([0,16,0,1.2*max(abs(X316))]); title('16点DFT[x3]');ylabel('幅度');实验(2)function shiyan2n1=0:8-1;n2=0:16-1;x48=cos(pi/4*n1);x58=cos(pi/4*n1)+cos(pi/8*n1);x416=cos(pi/4*n2);x516=cos(pi/4*n2)+cos(pi/8*n2);X48=fft(x48,8);X416=fft(x416,16);X58=fft(x58,8);X516=fft(x516,16);k1=0:8-1;k2=0:16-1;subplot(2,2,1);stem(k1,abs(X48),'.');axis([0,8,0,5]);title('8点DFT[x4]');ylabel('幅度');subplot(2,2,2);stem(k2,abs(X416),'.');axis([0,16,0,10]);title('16点DFT[x4]');ylabel('幅度');subplot(2,2,3);stem(k1,abs(X58),'.');axis([0,8,0,10]);title('8点DFT[x5]');ylabel('幅度');subplot(2,2,4);stem(k2,abs(X516),'.');axis([0,16,0,10]);title('16点DFT[x5]');ylabel('幅度'); 实验(3)function shiyan3Fs=64;T=1/Fs;N1=16;N2=32;N3=64;n1=0:N1-1;n2=0:N2-1;n3=0:N3-1;x816=cos(8*pi*n1*T)+cos(16*pi*n1*T)+cos(20*pi*n1*T); x832=cos(8*pi*n2*T)+cos(16*pi*n2*T)+cos(20*pi*n2*T); x864=cos(8*pi*n3*T)+cos(16*pi*n3*T)+cos(20*pi*n3*T);X816=fft(x816,16);X816=fftshift(X816);X832=fft(x832,32);X832=fftshift(X832);X864=fft(x864,64);X864=fftshift(X864);Tp=N1*T;F=1/Tp;k=-N1/2:N1/2-1;fk=k*F;subplot(3,1,1);stem(fk,abs(X816),'.');title('16点DFTx8');xlabel('f(Hz)');ylabel('幅度');Tp=N2*T;F=1/Tp;k=-N2/2:N2/2-1;fk=k*F;subplot(3,1,2);stem(fk,abs(X832),'.');title('32点DFTX8');xlabel('f(Hz)');ylabel('幅度');Tp=N3*T;F=1/Tp;k=-N3/2:N3/2-1;fk=k*F;subplot(3,1,3);stem(fk,abs(X864),'.');title('64点DFTX8');xlabel('f(Hz)');ylabel('幅度');。
用FFT对信号做频谱分析
用FFT 对信号做频谱分析一、实验目的学习用FFT 对连续信号和时域离散信号进行谱分析方法,了解可能出现的分析误差及其原因,以便应用FFT 。
二、实验原理用FFT 对信号频谱分析是学习数字信号处理的重要内容。
经常需要进行谱分析的信号是模拟信号和时域离散信号。
对于信号进行谱分析的重要问题是频谱分析率D 和分析误差。
频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频谱分辨率是2ᴨ/N ≤D.可以根据此式选择FFT 变换区间N 。
误差主要来自于用FFT 做频谱分析时,得到的是离散谱,而信号(周期信号外)是连续谱,只有当N 较大时,离散谱的包络才能逼近连续谱,因此N 要适当选择大一些。
周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。
如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对模拟信号进行谱分析时,首先按照采样定理将其变成时域离散信号。
如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
三、实验步骤及内容(1)对以下序列进行谱分析:)()(41n n Rx =n n n n n n x 其他7430081)(2≤≤≤≤⎪⎩⎪⎨⎧-+= n7430034)(3其他≤≤≤≤⎪⎩⎪⎨⎧--=n n n n n x 选择FFT 的变换区间N 为8或16两种进行谱分析。
分别打印其幅频特性曲线,并进行对比,分析,讨论。
(2)对以下周期序列进行谱分析:n n x 4cos )(4π=n n n x 8cos 4cos )(5ππ+=选择FFT 的变换区间N 为8或16两种情况分别对以上序列进行谱分析。
分别打印幅频特性曲线,并进行对比,分析和讨论。
(3)对模拟周期信号进行谱分析:t t t t x πππ20cos 16cos 8cos )(6++=选择采样频率Fs=64Hz ,对变换区间N=16,32,64三种情况进行谱分析。
实验三用FFT对信号进行频谱分析研究及MATLAB程序
实验三用FFT 对信号进行频谱分析一 实验目地1 能够熟练掌握快速离散傅立叶变换地原理及应用FFT 进行频谱分析地基本方法; 2了解用FFT 进行频谱分析可能出现地分析误差及其原因;二 实验原理1.用DFT 对非周期序列进行谱分析单位圆上地Z 变换就是序列地傅里叶变换,即()()j j z e X e X z ωω== (3-1)()j X e ω是ω地连续周期函数.对序列()x n 进行N 点DFT 得到()X k ,则()X k 是在区间[]0,2π上对()j X e ω地N 点等间隔采样,频谱分辨率就是采样间隔2Nπ.因此序列地傅里叶变换可利用DFT (即FFT )来计算.用FFT 对序列进行谱分析地误差主要来自于用FFT 作频谱分析时,得到地是离散谱,而非周期序列地频谱是连续谱,只有当N 较大时,离散谱地包络才能逼近连续谱,因此N 要适当选择大一些.2.用DFT 对周期序列进行谱分析已知周期为N 地离散序列)(n x ,它地离散傅里叶级数DFS 分别由式(3-2)和(3-3) 给出:DFS : ∑-=-=12)(1N n kn N j k e n x N a π , n =0,1,2,…,N -1 (3-2) IDFS : ∑-==102)(N k kn N j ke a n x π , n =0,1,2,…,N -1 (3-3) 对于长度为N 地有限长序列x (n )地DFT 对表达式分别由式(3-4)和(3-5)给出: DFT :∑-=-=102)()(N n kn N j e n x k X π , n =0,1,2,…,N -1 (3-4)IDFT : ∑-==102)(1)(N k kn N j e k X N n x π,n =0,1,2,…,N -1 (3-5) FFT 为离散傅里叶变换DFT 地快速算法,对于周期为N 地离散序列x (n )地频谱分析便可由式(3-6)和(3-7)给出:DTFS : 1*(())k a fft x n N= (3-6)IDTFS : ()*()k x n N i f f t a = (3-7)周期信号地频谱是离散谱,只有用整数倍周期地长度作FFT ,得到地离散谱才能代表周期信号地频谱.3.用DFT 对模拟周期信号进行谱分析对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号.对于模拟周期信号,也应该选取整数倍周期地长度,经采样后形成周期序列,按照周期序列地谱分析进行.如果不知道信号地周期,可以尽量选择信号地观察时间长一些.三 实验内容1.对以下序列进行谱分析:14()()x n R n =2103()84700n n x n nn thers +≤≤⎧⎪=-≤≤⎨⎪⎩3403()34700n n x n n n thers-≤≤⎧⎪=-≤≤⎨⎪⎩ 选择FFT 地变换区间N 为8和16两种情况进行频谱分析.分别打印其幅频特性曲线,并进行对比、分析和讨论.2.对以下周期序列进行谱分析:4()cos()4x n n π= 5()cos()cos()48x n n n ππ=+ 选择FFT 地变换区间N 为8和16两种情况进行频谱分析.分别打印其幅频特性曲线,并进行对比、分析和讨论.3.对模拟周期信号进行谱分析: 6()cos(8)cos(16)cos(20)x t t t t πππ=++选择采样频率64s F Hz ,对变换区间N 分别取16、32、64三种情况进行谱分析.分别打印其幅频特性曲线,并进行对比、分析和讨论.四 思考题1. 对于周期序列,如果周期不知道,如何用FFT 进行谱分析?2. 如何选择FFT 地变换区间?(包括非周期信号和周期信号)3. 当N=8时,2()x n 和3()x n 地幅频特性会相同吗?为什么?N=16呢?五 实验报告及要求1. 完成各个实验任务和要求,附上程序清单和有关曲线.2. 简要回答思考题.程序代码:%用FFT 对信号作频谱分析clear all;close all;%实验(1)x1n=[ones(1,4)]; %产生序列向量R4(n)M=8;xa=1:(M/2);xb=(M/2):-1:1;x2n=[xa,xb]; %产生长度为8地三角波序列x2(n)、x3(n)x3n=[xb,xa];X1k8=fft(x1n,8); %计算x1n地8点DFTX1k16=fft(x1n,16); %计算x1n地16点DFTX2k8=fft(x2n,8); %计算x2n地8点DFTX2k16=fft(x2n,16); %计算x2n地16点DFTX3k8=fft(x3n,8); %计算x3n地8点DFTX3k16=fft(x3n,16); %计算x3n地16点DFT%幅频特性曲线N=8;wk=2/N*(0:N-1);subplot(3,2,1);stem(wk,abs(X1k8),'.'); %绘制8点DFT地幅频特性图title('(1a) 8点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');subplot(3,2,3);stem(wk,abs(X2k8),'.');title('(2a) 8点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');subplot(3,2,5);stem(wk,abs(X3k8),'.');title('(3a) 8点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');N=16;wk=2/N*(0:N-1);subplot(3,2,2);stem(wk,abs(X1k16),'.'); %绘制16点DFT地幅频特性图title('(1b) 16点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');subplot(3,2,4);stem(wk,abs(X2k16),'.');title('(2b) 16点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');subplot(3,2,6);stem(wk,abs(X3k16),'.');title('(3b) 16点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');%实验2对周期序列作频谱分析clear all;close all;N=8;n=0:N-1; %FFT地变换区间N=8x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4k8=fft(x4n); %计算x4n地8点DFTX5k8=fft(x5n); %计算x5n地8点DFTN=16;n=0:N-1; %FFT地变换区间N=16x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4k16=fft(x4n); %计算x4n地16点DFTX5k16=fft(x5n); %计算x5n地16点DFTN=8;w1k=2/N*(0:N-1);subplot(2,2,1);stem(w1k,abs(X4k8),'.'); %绘制8点DFT地幅频特性图title('(4a) 8点DFT[x_4(n)]');xlabel('ω/π');ylabel('幅度');axis([0,2,0,1.2*max(abs(X4k8))]);subplot(2,2,3);stem(w1k,abs(X5k8),'.'); %绘制8点DFT地幅频特性图title('(5a)8点DFT[x_4(n)]');xlabel('ω/π');ylabel('幅度');axis([0,2,0,1.2*max(abs(X5k8))]);N=16;w2k=2/N*(0:N-1);subplot(2,2,2);stem(w2k,abs(X4k16),'.'); %绘制16点DFT地幅频特性图title('(4b) 16点DFT[x_5(n)]');xlabel('ω/π');ylabel('幅度');axis([0,2,0,1.2*max(abs(X4k16))]);subplot(2,2,4);stem(w2k,abs(X5k16),'.'); %绘制16点DFT地幅频特性图title('(5b)16点DFT[x_5(n)]');xlabel('ω/π');ylabel('幅度');axis([0,2,0,1.2*max(abs(X5k16))]);%实验3对模拟周期信号作谱分析(归一化)Fs=64;T=1/Fs;N=16;n=0:N-1; %FFT地变换区间N=16x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(t)16点采样X6k16=fft(x6nT); %计算x6nT地16点DFTTp=N*T;F=1/Tp; %频率分辨率Fk=0:N-1;fk=2*k/N; %产生16点DFT对应地采样点频率(以零频率为中心)subplot(3,1,1);stem(fk,abs(X6k16),'.'); %绘制16点DFT地幅频特性图title('(6a) 16点DFT[x_6(nT)]|');xlabel('\omega/\pi');ylabel('幅度');N=32;n=0:N-1; %FFT地变换区间N=32x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(t)32点采样X6k32=fft(x6nT); %计算x6nT地32点DFTTp=N*T;F=1/Tp; %频率分辨率Fk=0:N-1;fk=2*k/N; %产生32点DFT对应地采样点频率(以零频率为中心)subplot(3,1,2);stem(fk,abs(X6k32),'.');%绘制32点DFT地幅频特性图title('(6b) 32点DFT[x_6(nT)]|');xlabel('\omega/\pi');ylabel('幅度');N=64;n=0:N-1; %FFT地变换区间N=64x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(t)64点采样X6k64=fft(x6nT); %计算x6nT地64点DFTTp=N*T;F=1/Tp; %频率分辨率Fk=0:N-1;fk=2*k/N; %产生64点DFT对应地采样点频率(以零频率为中心)subplot(3,1,3);stem(fk,abs(X6k64),'.'); %绘制64点DFT地幅频特性图title('(6c) 64点DFT[x_6(nT)]|');xlabel('\omega/\pi');ylabel('幅度');五、思考题及实验体会4.思考题(1)对于周期序列,如果周期不知道,如何用FFT进行谱分析?(2)如何选择FFT地变换区间?(包括非周期信号和周期信号)(3)当N=8时,)(2n x 和)(3n x 地幅频特性会相同吗?为什么?N=16 呢?答:(1)、如果)(n x 地周期预先不知道,可截取M 点进行DFT ,即)]([)()()()(n x DFT n X n R n x n x M M M M == 0≤k ≤M-1再将截取长度扩大1倍,截取)]([)()()(2222n x DFT n X n R n x M M M M == 0≤k ≤2M-1比较)(k x M 和 )(2k X M ,如果两者地主谱差别满足分析误差要求,则以)(k x M 或 )(2k X M 近似表示)(n x 地频谱,否则,继续将截取长度加倍,直至前后两次分析所得主谱频率差别满足误差要求.设最后截取长度为,iM 则)(0k X iM 表示0)]/(2[k iM πω=点地谱线强度.(2)频谱分辨率直接D 和FFT 地变换区间N 有关,因为FFT 能够实现地频率分辨率是N /2π,因此要求D N ≤/2π.可以根据此式选择FFT 地变换区间N.(3)当N=8时,)(2n x 和)(3n x 地幅频特性会相同.当N=16时,)(2n x 和)(3n x 地幅频特性会不相同.通过实验,我知道了用FFT 对信号作频谱分析是学习数字信号处理地重要内容.经常需要进行谱分析地信号是模拟信号和时域离散信号.对信号进行谱分析地重要问题是频谱分辨率D 和分析误差.频谱分辨率直接和FFT 地变换区间N 有关,因为FFT 能够实现地频率分辨率是2л/N ≤D.可以根据此式选择FFT 地变换区间N.误差主要来自于用FFT 作频谱分析时,得到地是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时,离散谱地包络才能逼近于连续谱,因此N 要适当选择大一些.周期信号地频谱是离散谱,只有用整数倍周期地长度作FFT ,得到地离散谱才能代表周期信号地频谱.如果不知道信号周期,可以尽量选择信号地观察时间长一些.对模拟信号进行频谱分析时,首先要按照采样定理将其变成时域离散信号.如果是模拟周期信号,也应该选取整数倍周期地长度,经过采样后形成周期序列,按照周期序列地普分析进行.版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.IAg9q。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三:用FFT 对信号作频谱分析一、实验目的学习用FFT 对连续信号和时域离散信号进行谱分析(也称谱分析)的方法,了解可能出现的误差及其原因,以便正确应用FFT 。
二、 实验原理用FFT 对信号作频谱分析是学习数字信号处理的重要内容。
经常需要进行谱分析的信号是模拟信号和时域离散信号。
对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。
频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是,因此要求。
可以根据此式选择FFT 的变换区间N 。
误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。
周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。
如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。
如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
三、实验内容及步骤(1)对以下序列进行谱分析。
⎪⎩⎪⎨⎧≤≤-≤≤-=⎪⎩⎪⎨⎧≤≤-≤≤+==n n n n n n x n n n n n n x n R n x 其它其它0743304)(0748301)()()(3241选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。
分别打印其幅频特性曲线,并进行对比、分析和讨论。
(2)对以下周期序列进行谱分析。
8cos 4cos )(4cos )(54n n n x n n x πππ+==选择FFT 的变换区间N 为8和16的两种情况分别对以上序列进行频谱分析。
分别画出其幅频特性曲线。
并进行对比、分析和讨论。
(3)对模拟周期信号进行谱分析t t t t x πππ20cos 16cos 8cos )(6++=选择采样频率Hz F s 64=,变换区间N=16,32,64的三种情况进行谱分析。
分别画出其幅频特性,并进行分析和讨论。
四、实验程序和输出波形(1)序列的谱分析:实验程序:x1n=ones(1,4);%产生序列向量x1(n)=R4(n)subplot(3,3,1);y='x1n';zihuatu(x1n,y);xlabel('n');ylabel('x_1n');M=8;xa=1:(M/2);xb=(M/2):-1:1;x2n=[xa,xb]; %产生长度为8的三角波序列x2(n)subplot(3,3,4);y='x2n';zihuatu(x2n,y);xlabel('n');ylabel('x_2n');x3n=[xb,xa]; %产生长度为8的三角波序列x3(n)subplot(3,3,7);y='x3n';zihuatu(x3n,y);xlabel('n');ylabel('x_3n');X1k8=fft(x1n,8); %计算x1n 的8点DFTX1k16=fft(x1n,16); %计算x1n 的16点DFTX2k8=fft(x2n,8); %计算x1n 的8点DFTX2k16=fft(x2n,16); %计算x1n 的16点DFTX3k8=fft(x3n,8); %计算x1n 的8点DFTX3k16=fft(x3n,16); %计算x1n 的16点DFT%以下绘制幅频特性曲线subplot(3,3,2);y='abs(X1k8)';zihuatu(abs(X1k8),y); %绘制8点DFT的幅频特性图title('(1a) 8点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');axis([0,8,0,1.2*max(abs(X1k8))])subplot(3,3,3);y='abs(X1k16)';zihuatu(abs(X1k16),y); %绘制16点DFT的幅频特性图title('(1b)16点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');axis([0,16,0,1.2*max(abs(X1k16))])subplot(3,3,5);y='abs(X2k8)';zihuatu(abs(X2k8),y); %绘制8点DFT的幅频特性图title('(2a) 8点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度');axis([0,8,0,1.2*max(abs(X2k8))])subplot(3,3,6);y='abs(X2k16)';zihuatu(abs(X2k16),y); %绘制16点DFT的幅频特性图title('(2b)16点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度');axis([0,16,0,1.2*max(abs(X2k16))])subplot(3,3,8);y='abs(X3k8)';zihuatu(abs(X3k8),y); %绘制8点DFT的幅频特性图title('(3a) 8点DFT[x_3(n)]');xlabel('ω/π');ylabel('幅度');axis([0,8,0,1.2*max(abs(X3k8))])subplot(3,3,9);y='abs(X3k16)';zihuatu(abs(X3k16),y); %绘制16点DFT的幅频特性图title('(3b)16点DFT[x_3(n)]');xlabel('ω/π');ylabel('幅度');axis([0,16,0,1.2*max(abs(X3k16))])实验结果及分析:图(1a )和(1b )说明)()(41n R n x 的8点DFT 和16点DFT 分别是)(1n x 的频谱函数的8点和16点采样;当N=8时,)(2n x 和)(3n x 的DFT 的模相等,如图(2a )和(3a );而当N=16时,)(2n x 和)(3n x 不满足循环移位关系,图(2b )和(3b )的模不同。
(2)周期序列的谱分析:实验程序:N=8;n=0:N-1; %FFT 的变换区间N=8x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4k8=fft(x4n); %计算x4n 的8点DFTX5k8=fft(x5n); %计算x5n 的8点DFTN=16;n=0:N-1; %FFT 的变换区间N=16x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4k16=fft(x4n); %计算x4n 的16点DFTX5k16=fft(x5n); %计算x5n 的16点DFTsubplot(2,3,1);y='x4n';zihuatu(x4n,y);xlabel('n');ylabel('x_4n');subplot(2,3,2);y='abs(X4k8)';zihuatu(abs(X4k8),y); %绘制8点DFT的幅频特性图title('(4a) 8点DFT[x_4(n)]');xlabel('ω/π');ylabel('幅度');axis([0,8,0,1.2*max(abs(X4k8))])subplot(2,3,3);y='abs(X4k16)';zihuatu(abs(X4k16),y); %绘制16点DFT的幅频特性图title('(4b)16点DFT[x_4(n)]');xlabel('ω/π');ylabel('幅度');axis([0,16,0,1.2*max(abs(X4k16))])subplot(2,3,4);y='x5n';zihuatu(x5n,y);xlabel('n');ylabel('x_5n');subplot(2,3,5);y='abs(X5k8)';zihuatu(abs(X5k8),y); %绘制8点DFT的幅频特性图title('(5a) 8点DFT[x_5(n)]');xlabel('ω/π');ylabel('幅度');axis([0,8,0,1.2*max(abs(X5k8))])subplot(2,3,6);y='abs(X5k16)';zihuatu(abs(X5k16),y); %绘制16点DFT的幅频特性图title('(5b)16点DFT[x_5(n)]');xlabel('ω/π');ylabel('幅度');axis([0,16,0,1.2*max(abs(X5k16))])实验结果及分析:n n x 4cos )(4π=的周期为8,N=8和N=16均是其周期的整数倍,得到正确的单一频率正弦波的频谱,仅在0.25π处有1根单一谱线。
如图(4b )和(4b )所示。
8cos 4cos )(5n n n x ππ+=的周期为16,而N=8不是其周期的整数倍,得到的频谱不正确,如图(5a )所示。
N=16是其一个周期,得到正确的频谱,仅在0.25π和0.125π处有2根单一谱线, 如图(5b )所示。
(3)模拟周期信号的谱分析:实验程序:t=-2:0.01:2;x6t=cos(8*pi*t)+cos(16*pi*t)+cos(20*pi*t);subplot(4,1,1);plot(t,x6t,'b-');axis([-2 2 -5 5]);xlabel('t');ylabel('x_6t');Fs=64;T=1/Fs;N=16;n=0:N-1; %FFT 的变换区间N=16x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);%对x6(t)16点采样X6k16=fft(x6nT); %计算x6nT 的16点DFTX6k16=fftshift(X6k16); %将零频率移到频谱中心Tp=N*T;F=1/Tp; %频率分辨率Fk=-N/2:N/2-1;fk=k*F; %产生16点DFT对应的采样点频率(以零频率为中心)subplot(4,1,2);stem(fk,abs(X6k16),'.');box on%绘制8点DFT的幅频特性图title('(6a) 16点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度');axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k16))])N=32;n=0:N-1; %FFT的变换区间N=16x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);%对x6(t)32点采样X6k32=fft(x6nT); %计算x6nT的32点DFTX6k32=fftshift(X6k32); %将零频率移到频谱中心Tp=N*T;F=1/Tp; %频率分辨率Fk=-N/2:N/2-1;fk=k*F; %产生16点DFT对应的采样点频率(以零频率为中心)subplot(4,1,3);stem(fk,abs(X6k32),'.');box on%绘制8点DFT的幅频特性图title('(6b) 32点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度');axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k32))])N=64;n=0:N-1; %FFT的变换区间N=16x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);%对x6(t)64点采样X6k64=fft(x6nT); %计算x6nT的64点DFTX6k64=fftshift(X6k64); %将零频率移到频谱中心Tp=N*T;F=1/Tp; %频率分辨率Fk=-N/2:N/2-1;fk=k*F; %产生16点DFT对应的采样点频率(以零频率为中心)subplot(4,1,4);stem(fk,abs(X6k64),'.');box on %绘制8点DFT 的幅频特性图title('(6c) 64点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度');axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k64))])实验结果及分析:)(6t x 有3个频率成分,Hz f Hz f Hz f 10,8,4321===。