用FFT对信号作频谱分析

时间:2024.4.13

实验一:用FFT对信号作频谱分析

1.实验目的

     学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析

   误差及其原因,以便正确应用FFT。

2. 实验原理

用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是,因此要求。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。

周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。

对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。

3.实验步骤及内容

(1)对以下序列进行谱分析。

      

   选择FFT的变换区间N为8和16 两种情况进行频谱分析。分别打印其幅频特性曲线。 并进行对比、分析和讨论。

(2)对以下周期序列进行谱分析。

           

           

选择FFT的变换区间N为8和16 两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。

(3)对模拟周期信号进行谱分析

           

选择 采样频率,变换区间N=16,32,64 三种情况进行谱分析。分别打印其幅频特性,并进行分析和讨论。

 4.思考题

(1)对于周期序列,如果周期不知道,如何用FFT进行谱分析?

答:周期信号的周期预先不知道时,可先截取M点进行DFT,再将截取长度扩大1倍截取,比较结果,如果二者的差别满足分析误差要求,则可以近似表示该信号的频谱,如果不满足误差要求就继续将截取长度加倍,重复比较,直到结果满足要求 

(2)如何选择FFT的变换区间?(包括非周期信号和周期信号)

答:一、对于非周期信号:有频谱分辨率F,而频谱分辨率直接和FFT的变换区间有关,因为FFT能够实现的频率分辨率是2π/N...因此有最小的N>2π/F。就可以根据此式选择FFT的变换区间。二、对于周期信号,周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。

(3)当N=8时,的幅频特性会相同吗?为什么?N=16 呢?

答:N=8时两个信号的幅频特性相同,而N=16时不相同。因为N=8时,采样点处两个样点的值刚好相等,而N=16时采样点的两个样点值不相等。

实验程序运行结果

实验程序运行结果如图1所示。

图 1

程序运行结果分析讨论:

用DFT(或FFT)分析频谱,绘制频谱图时,最好将X(k)的自变量k换算成对应的频率,作为横坐标便于观察频谱。

为了便于读取频率值,最好关于π归一化,即以作为横坐标。

1、实验内容(1)

图(1a)和(1b)说明的8点DFT和16点DFT分别是的频谱函数的8点和16点采样;

因为,所以,的8点DFT的模相等,如图2a)和(3a)。但是,当N=16时,不满足循环移位关系,所以图2b)和(3b)的模不同。

2、实验内容(2),对周期序列谱分析

的周期为8,所以N=8和N=16均是其周期的整数倍,得到正确的单一频率正弦波的频谱,仅在0.25π处有1根单一谱线。如图(4b)和(4b)所示。

的周期为16,所以N=8不是其周期的整数倍,得到的频谱不正确,如图(5a)所示。N=16是其一个周期,得到正确的频谱,仅在0.25π和0.125π处有2根单一谱线, 如图(5b)所示。

  3、实验内容(3),对模拟周期信号谱分析

        

有3个频率成分,。所以的周期为0.5s。 采样频率。变换区间N=16时,观察时间Tp=16T=0.25s,不是的整数倍周期,所以所得频谱不正确,如图(6a)所示。变换区间N=32,64 时,观察时间Tp=0.5s,1s,是的整数周期,所以所得频谱正确,如图(6b)和(6c)所示。图中3根谱线正好位于处。变换区间N=64 时频谱幅度是变换区间N=32 时2倍,这种结果正好验证了用DFT对中期序列谱分析的理论。

注意:

1用DFT(或FFT)对模拟信号分析频谱时,最好将X(k)的自变量k换算成对应的模拟频率fk,作为横坐标绘图,便于观察频谱。这样,不管变换区间N取信号周期的几倍,画出的频谱图中有效离散谐波谱线所在的频率值不变,如图(6b)和(6c)所示。

(2)本程序直接画出采样序列N点DFT的模值,实际上分析频谱时最好画出归一化幅度谱,这样就避免了幅度值随变换区间N变化的缺点。本实验程序这样绘图只要是为了验证了用DFT对中期序列谱分析的理论。

  

实验程序

% 用FFT对信号作频谱分析

x1(n)的频谱分析程序:

x1n=[1 1 1 1];   %²úÉúÐòÁÐÏòÁ¿x1(n)=R4(n)

a=abs(fft(x1n,8));

b=abs(fft(x1n,16));

n=linspace(0,2,8);

figure(1);

subplot(2,1,1);

stem(n,a,'.');%8µãµÄfft±ä»»

title('x1(n)µÄ8µãµÄƵÆ×');

xlabel('¦Ø/¦Ð');ylabel('·ù¶È');

m=linspace(0,2,16);

subplot(2,1,2);

stem(m,b,'.');

title('x1(n)µÄ16µãµÄƵÆ×');

xlabel('¦Ø/¦Ð');ylabel('·ù¶È');

x2(n)的频谱分析程序:

x2n=[1 2 3 4 4 3 2 1];

a=abs(fft(x2n,8));

b=abs(fft(x2n,16));

n=linspace(0,2,8);

figure(2);

subplot(2,1,1);

stem(n,a,'.');%8µãµÄfft±ä»»

title('x2(n)µÄ8µãµÄfft±ä»»');

xlabel('¦Ø/¦Ð');ylabel('·ù¶È');

m=linspace(0,2,16);

subplot(2,1,2);

stem(m,b,'.');

title('x2(n)µÄ16µãµÄfft±ä»»');

xlabel('¦Ø/¦Ð');ylabel('·ù¶È');

x3(n)的频谱分析程序:

x3n=[4 3 2 1 1 2 3 4];

a=abs(fft(x3n,8));

b=abs(fft(x3n,16));

n=linspace(0,2,8);

figure(3);

subplot(2,1,1);

stem(n,a,'.');%8µãµÄfft±ä»»

title('x3(n)µÄ8µãµÄfft±ä»»');

xlabel('¦Ø/¦Ð');ylabel('·ù¶È');

m=linspace(0,2,16);

subplot(2,1,2);

stem(m,b,'.');

title('x3(n)µÄ16µãµÄfft±ä»»');

xlabel('¦Ø/¦Ð');ylabel('·ù¶È');

x4(n)的频谱分析程序:

N=8,n=0:N-1;

x4n=cos(pi*n/4);

a=abs(fft(x4n));

N=16,n=0:N-1;

x4n=cos(pi*n/4);

b=abs(fft(x4n));

n=linspace(0,2,8);

figure(4);

subplot(2,1,1);

stem(n,a,'.');%8µãµÄfft±ä»»

title('x4(n)µÄ8µãµÄfft±ä»»');

xlabel('¦Ø/¦Ð');ylabel('·ù¶È');

m=linspace(0,2,16);

subplot(2,1,2);

stem(m,b,'.');

title('x4(n)µÄ16µãµÄfft±ä»»');

xlabel('¦Ø/¦Ð');ylabel('·ù¶È');

x5(n)的频谱分析程序:

N=8,n=0:N-1;

x5n=cos(pi*n/4)+cos(pi*n/8);

a=abs(fft(x5n));

N=16,n=0:N-1;

x5n=cos(pi*n/4)+cos(pi*n/8);

b=abs(fft(x5n));

n=linspace(0,2,8);

figure(5);

subplot(2,1,1);

stem(n,a,'.');%8µãµÄfft±ä»»

title('x5(n)µÄ8µãµÄfft±ä»»');

xlabel('¦Ø/¦Ð');ylabel('·ù¶È');

m=linspace(0,2,16);

subplot(2,1,2);

stem(m,b,'.');

title('x5(n)µÄ16µãµÄfft±ä»»');

xlabel('¦Ø/¦Ð');ylabel('·ù¶È');

x8(t)的频谱分析程序:

figure(6)

Fs=64;T=1/Fs;

N=16;n=0:N-1;        %FFTµÄ±ä»»Çø¼äN=16

x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);  

X6k16=fft(x6nT);      %¼ÆËãx6nTµÄ16µãDFT

X6k16=fftshift(X6k16);      %½«ÁãƵÂÊÒƵ½ÆµÆ×ÖÐÐÄ

Tp=N*T;F=1/Tp;   %ƵÂÊ·Ö±æÂÊF

k=-N/2:N/2-1;fk=k*F;      

subplot(3,1,1);stem(fk,abs(X6k16),'.');box on

title('x8(t)µÄ16µãfft±ä»»');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=32

x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);  

X6k32=fft(x6nT);      %¼ÆËãx6nTµÄ32µãDFT

X6k32=fftshift(X6k32);      %½«ÁãƵÂÊÒƵ½ÆµÆ×ÖÐÐÄ

Tp=N*T;F=1/Tp;   %ƵÂÊ·Ö±æÂÊF

k=-N/2:N/2-1;fk=k*F;      

subplot(3,1,2);stem(fk,abs(X6k32),'.');box on

title('x8(t)µÄ32µãµÄfft±ä»»');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=64

x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);  

X6k64=fft(x6nT);      %¼ÆËãx6nTµÄ64µãDFT

X6k64=fftshift(X6k64);      %½«ÁãƵÂÊÒƵ½ÆµÆ×ÖÐÐÄ

Tp=N*T;F=1/Tp;   %ƵÂÊ·Ö±æÂÊF

k=-N/2:N/2-1;fk=k*F;      

subplot(3,1,3);stem(fk,abs(X6k64),'.'); box on

title('x8(t)µÄ64µãµÄfft±ä»»');xlabel('f(Hz)');ylabel('·ù¶È');

axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k64))])


第二篇:FFT分析信号频谱


FFT分析信号频谱

FFT分析信号频谱

FFT分析信号频谱

FFT分析信号频谱

FFT分析信号频谱

FFT分析信号频谱

FFT分析信号频谱

FFT分析信号频谱

更多相关推荐:
实验三:用FFT对信号作频谱分析_实验报告

实验三用FFT对信号作频谱分析实验报告一实验目的与要求学习用FFT对连续信号和时域离散信号进行谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT二实验原理用FFT对信号作频分析是学习数字信号处理的重要...

数字信号《用FFT对信号作频谱分析》实验完整模版

计算机科学与工程学院数字信号处理实验报告3计算机科学与工程学院数字信号处理实验报告2计算机科学与工程学院数字信号处理实验报告3计算机科学与工程学院数字信号处理实验报告4计算机科学与工程学院数字信号处理实验报告5...

用FFT对信号作频谱分析实验报告

实验一报告用FFT对信号作频谱分析一实验目的学习用FFT对连续信号和时域离散信号进行频谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT二实验内容1对以下序列进行频谱分析xnR4nn1x2n8n04n...

用FFT对信号作频谱分析_实验报告

用FFT对信号作频谱分析实验报告1实验目的与原理1进一步加深DFT算法原理和基本性质的理解因为FFT只是DFT的一种快速算法所以FFT的运算结果必然满足DFT的基本性质2熟悉FFT算法原理和FFT子程序的应用3...

实验三 用FFT对信号作频谱分析

实验三用FFT对信号作频谱分析1实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT2实验原理用FFT对信号作频谱分析是学习数字信号处理的重要内容经常需要...

实验三:用FFT对信号作频谱分析_实验报告

实验三用FFT对信号作频谱分析实验报告一实验目的与要求学习用FFT对连续信号和时域离散信号进行谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT二实验原理用FFT对信号作频分析是学习数字信号处理的重要...

实验3 用FFT对信号作频谱分析

实验三用FFT对信号作频谱分析1031实验指导1实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT2实验原理用FFT对信号作频谱分析是学习数字信号处理的...

实验二 用FFT对信号作频谱分析

实验二用FFT对信号作频谱分析1实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT2实验原理与方法用FFT对信号作频谱分析是学习数字信号处理的重要内容经...

实验三:用FFT对信号作频谱分析

实验三用FFT对信号做频谱分析12通信3班崔文磊20xx41302321一实验目的学习用FFT对连续信号和时域离散信号进行频谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT二实验原理用FFT对信号作...

实验二 用FFT对信号作频谱分析

实验二用FFT对信号作频谱分析一实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT二实验步骤及内容1对以下序列进行谱分析x1nR4nn10n3x2n8n...

实验四 FFT信号的频谱分析实验Microsoft Word 文档

clearallT111000n0641000T1A444128a50sqrt20w050sqrt20pixn1AexpanT1sinw0nT1Xk1fftxn11024subplot322stemnxn139...

实验三 用FFT对信号作频谱分析

实验三用FFT对信号作频谱分析一实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法了解可能出现的分析误差及其原因以便正确应用FFT二实验内容1对以下序列进行谱分析程序x1nones14M8xa1M2x...

用fft对信号作频谱分析实验报告(12篇)