实验二 应用FFT对信号进行频谱分析.docx

上传人:b****4 文档编号:3007735 上传时间:2022-11-17 格式:DOCX 页数:17 大小:283.10KB
下载 相关 举报
实验二 应用FFT对信号进行频谱分析.docx_第1页
第1页 / 共17页
实验二 应用FFT对信号进行频谱分析.docx_第2页
第2页 / 共17页
实验二 应用FFT对信号进行频谱分析.docx_第3页
第3页 / 共17页
实验二 应用FFT对信号进行频谱分析.docx_第4页
第4页 / 共17页
实验二 应用FFT对信号进行频谱分析.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

实验二 应用FFT对信号进行频谱分析.docx

《实验二 应用FFT对信号进行频谱分析.docx》由会员分享,可在线阅读,更多相关《实验二 应用FFT对信号进行频谱分析.docx(17页珍藏版)》请在冰豆网上搜索。

实验二 应用FFT对信号进行频谱分析.docx

实验二应用FFT对信号进行频谱分析

实验二应用FFT对信号进行频谱分析

 

姓名:

刘竟伦

班级:

11电子A

学号:

1115105037

日期

2014年3月15日

指导老师

戴在平

 

华侨大学信息科学与工程学院电子工程系

 

一、实验目的

(1)进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。

(2)熟悉FFT算法原理和FFT子程序的应用。

(3)学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。

二、实验原理与方法

(1)复习DFT的定义、性质和用DFT作谱分析的有关内容。

(2)复习FFT算法原理与编程思想,并对照DIT-FFT运算流图和程序框图,读懂本实验提供的FFT子程序。

(3)编制信号产生子程序,产生以下典型信号供谱分析用:

 

应当注意,如果给出的是连续信号xa(t),则首先要根据其最高频率确定采样速率fs以及由频率选择采样点数N,然后对其进行软件采样(即计算择要以能分辨开其中的三个频率对应的谱线为准则。

对周期序列,最好截取周期的整数倍进行分析,否则有可能产生较大的分析误差。

请实验者根据DFT的隐含周期性思考这个问题。

(4)编写主程序。

三、上机实验内容及实验结果图

(1)对2中所给出的信号逐个进行谱分析。

下面给出针对各信号的FFT变换区间N以及对连续信号x6(t)的采样频率fs。

x1(n),x2(n),x3(n),x4(n),x5(n),:

N=8,16

x6(t):

fs=64(hz),N=16,32,64

x1(n)=R4(n)

对应x1(n)的matlab源程序代码:

n=[0:

7];

x=[11110000]

f1=fft(x,8)

f2=fft(x,16)

subplot(2,2,1)

stem(n,x);

axis([0802])

xlabel('n')

ylabel('xl(n)')

title('xl的波形')

subplot(2,2,4)

k=[0:

15]

stem(k,abs(f2));

axis([01605])

xlabel('k')

ylabel('|xl(k)|')

title('xl(n)的16点fft')

subplot(2,2,3)

k=[0:

7]

stem(k,abs(f1));

axis([01005])

xlabel('k')

ylabel('|xl(k)|')

title('xl(n)的8点fft')

得到如下波形图:

2.

 

对应x2(n)的matlab源程序代码:

n=[0:

7];

x=[12344321]

f1=fft(x,8)

f2=fft(x,16)

subplot(2,2,1)

stem(n,x);

axis([0804])

xlabel('n')

ylabel('x2(n)')

title('x2的波形')

subplot(2,2,4)

k=[0:

15]

stem(k,abs(f2));

axis([016020])

xlabel('k')

ylabel('|x2(k)|')

title('x2(n)的16点fft')

subplot(2,2,3)

k=[0:

7]

stem(k,abs(f1));

axis([010020])

xlabel('k')

ylabel('|x2(k)|')

title('x2(n)的8点fft')

3.

 

对应x3(n)的matlab源程序代码:

n=[0:

7];

x=[43211234]

f1=fft(x,8)

f2=fft(x,16)

subplot(2,2,1)

stem(n,x);

axis([0804])

xlabel('n')

ylabel('x3(n)')

title('x3的波形')

subplot(2,2,4)

k=[0:

15]

stem(k,abs(f2));

axis([016020])

xlabel('k')

ylabel('|x3(k)|')

title('x3的16点fft')

subplot(2,2,3)

k=[0:

7]

stem(k,abs(f1));

axis([08020])

xlabel('k')

ylabel('|x3(k)|')

title('x3(n)的8点fft')

 

4.x4(n)=cos(pi/4*n)

对应x4(n)的matlab源程序代码:

n=[0:

7];

x=cos(0.25*pi*n)

f1=fft(x,8)

subplot(2,2,1)

stem(n,x);

axis([08-44])

xlabel('n')

ylabel('x4(n)')

title('x4的波形')

n=[0:

15]

x=cos(0.25*pi*n)

f2=fft(x,16)

subplot(2,2,2)

stem(n,x);

axis([016-44])

ylabel('x4(n)')

title('x4的波形')

subplot(2,2,4)

k=[0:

15]

stem(k,abs(f2));

axis([016020])

xlabel('k')

ylabel('|x4(k)|')

title('x4(n)的16点fft')

subplot(2,2,3)

k=[0:

7]

stem(k,abs(f1));

axis([08020])

xlabel('k')

ylabel('|x4(k)')

title('x4(n)的8点fft')

X5(n)=sin(pi/8*n)

对应x5(n)的matlab源程序代码:

clear

n=[0:

7]

x=sin((pi*n)/8)

f1=fft(x,8)

subplot(2,2,1)

stem(n,x);

axis([08-44])

xlabel('n')

ylabel('x5(n)')

title('x5的波形图')

x=sin(0.125*pi*n)

f2=fft(x,16)

subplot(2,2,2)

stem(n,x);

axis([016-44])

xlabel('n')

ylabel('x5(n)')

title('x5的波形图')

subplot(2,2,4)

k=[0:

15]

stem(k,abs(f2));

axis([016020])

xlabel('k')

ylabel('|x5(k)|')

title('x5的16点fft')

subplot(2,2,3)

k=[0:

7]

stem(k,abs(f1));

axis([08020])

xlabel('k')

ylabel('|x5(k)|')

title('x5的8点fft')

X6(t)=cos(pi*8*n)+sin(pi*16*t)+cos(20*pi*t)

对应x6(n)的matlab源程序代码:

Ts=1/16;

n=0:

15;

Xa=cos(8*n*Ts*pi)+cos(16*n*Ts*pi)+cos(20*n*Ts*pi);

f1=fft(Xa,16);

subplot(3,2,1);

stem(n,Xa);

axis([015-23]);

xlabel('n');

ylabel('x6(n)')

title('x6(n)N=16')%ÏÔʾx6£¨n£©

N=16;

k=0:

15

subplot(3,2,2);

stem(k,abs(f1));

axis([016015])

xlabel('k')

ylabel('|x6(k)|')

title('x6(n)N=16的16点fft');

n=0:

31;

Xb=cos(8*n*Ts*pi)+cos(16*n*Ts*pi)+cos(20*n*Ts*pi);

f2=fft(Xb,32);

subplot(3,2,3);

stem(n,Xb);

axis([032-23]);

xlabel('n');

ylabel('x6(n)')

title('x6(n)N=32')%ÏÔʾx6£¨n£©

N=32;

k=0:

31;

subplot(3,2,4);

stem(k,abs(f2));

axis([032020])

xlabel('k')

ylabel('|x6(k)|')

title('x6(n)N=32的32点fft');

n=0:

63;

Xc=cos(8*n*Ts*pi)+cos(16*n*Ts*pi)+cos(20*n*Ts*pi);

f3=fft(Xc,64);

subplot(3,2,5);

stem(n,Xc);

axis([064-23]);

xlabel('n');

ylabel('x6(n)')

title('x6(n)N=16')%ÏÔʾx6£¨n£©

N=64;

k=0:

63;

subplot(3,2,6);

stem(k,abs(f3));

axis([064040])

xlabel('k')

ylabel('|x6(k)|')

title('x6(n)N=64的64点fft');

(2)令x7(n)=x4(n)+x5(n),用FFT计算8点和16点离散傅里叶变换,

X(k)=DFT[x(n)]

n=[0:

7];

x=cos(0.25*pi*n)+sin(0.125*pi*n)

f1=fft(x,8)

subplot(2,2,1)

stem(n,x);

axis([08-44])

xlabel('n')

ylabel('x7(n)')

title('x7的波形图')

n=[0:

15]

x=cos(0.25*pi*n)+sin(0.125*pi*n)

f2=fft(x,16)

subplot(2,2,2)

stem(n,x);

axis([016-44])

xlabel('n')

ylabel('x7(n)')

title('x7的波形图')

subplot(2,2,4)

k=[0:

15]

stem(k,abs(f2));

axis([016020])

xlabel('k')

ylabel('|x7(k)|')

title('x7(n)的16点fft')

subplot(2,2,3)

k=[0:

7]

stem(k,abs(f1));

axis([08020])

xlabel('k')

ylabel('|x7(k)|')

title('x7(n)的8点fft')

(3)令x8(n)=x4(n)+jx5(n),重复

(2)。

对应x8(n)的matlab源程序代码:

n=[0:

15];

x=cos(0.25*pi*n)+j*sin(0.125*pi*n)

f1=fft(x,16)

subplot(2,2,2)

stem(n,abs(f1));

axis([016010])

xlabel('k')

ylabel('|x8(k)|')

title('x8(n)的16点fft

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1