用FFT对信号进行频谱分析报告

合集下载

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

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

实验二用FFT对信号进行频谱分析简介:频谱分析是信号处理中常用的一种方法,通过将信号变换到频域,可以得到信号的频谱特征。

其中,快速傅里叶变换(FFT)是一种高效的计算频域的方法。

在这个实验中,我们将学习如何使用FFT对信号进行频谱分析。

实验步骤:1.准备工作:a. 安装MATLAB或者Octave等软件,并了解如何运行这些软件。

2.载入信号:a. 在MATLAB或Octave中,使用内置函数加载信号文件,将信号读入到内存中。

b.查看信号的基本信息,例如采样频率、时长等。

3.FFT变换:a. 使用MATLAB或Octave的fft函数将信号由时域变换到频域。

b.设置合适的参数,例如变换的点数、窗口函数等。

可以尝试不同的参数,观察其对结果的影响。

4.频谱绘制:a. 使用MATLAB或Octave的plot函数将变换后的频率数据进行绘制。

b.可以绘制幅度谱(频率的能量分布)或相位谱(频率的相位分布),也可以同时绘制两个谱。

5.频谱分析:a.根据绘制出的频谱,可以观察信号的频率特征。

例如,可以识别出信号中的主要频率分量。

b.可以进一步计算信号的能量、均值、方差等统计量,了解信号的功率特征。

c.可以对不同的信号进行对比分析,了解它们在频域上的差异。

实验结果和讨论:1.绘制出的频谱图可以清晰地显示信号的频率分量,可以识别出信号中的主要频率。

2.通过对不同信号的对比分析,可以发现它们在频域上的差异,例如不同乐器的音调特征。

3.可以进一步分析频谱的统计特征,例如信号的能量、平均幅度、峰值频率等。

4.在进行FFT变换时,参数的选择对结果有一定的影响,可以进行参数的调优,获得更准确的频谱分析结果。

结论:本实验通过使用FFT对信号进行频谱分析,可以获得信号在频域上的特征。

通过观察频谱图和统计特征,可以进一步了解信号的频率分布、能量特征等信息。

这对信号处理、音频分析等领域具有很大的应用价值。

在实际应用中,可以根据不同的需求,选择合适的参数和方法,对不同的信号进行频谱分析。

实验二FFT实现信号频谱分析

实验二FFT实现信号频谱分析

0
2
4
6
4
2
0
-2
-4
-6
-4
-20246四、试验环节
4. 试验内容2旳程序运营成果如下图所示:
60
30
40
20
20
10
0
0
-10 -5
0
5
10
-40 -20
0
20 40
30
80
60 20
40 10
20
0
-40 -20
0
20 40
0
-40 -20
0
20 40
四、试验环节
|X(k)| x(n)
5. 试验内容 3旳程序运营成果如下图所示:
fft 计算迅速离散傅立叶变换
fftshift
ifft
调整fft函数旳输出顺序,将零频 位置移到频谱旳中心
计算离散傅立叶反变换
fft函数:调用方式如下
y=fft(x):计算信号x旳迅速傅立叶变换y。当x旳长度为 2旳幂时,用基2算法,不然采用较慢旳分裂基算法。
y=fft(x,n):计算n点FFT。当length(x)>n时,截断x,不 然补零。
【例2-11】产生一种正弦信号频率为60Hz,并用fft函数 计算并绘出其幅度谱。
fftshift函数:调用方式如下 y=fftshift(x):假如x为向量,fftshift(x)直接将x旳左右两 部分互换;假如x为矩阵(多通道信号),将x旳左上、右 下和右上、左下四个部分两两互换。 【例2-12】产生一种正弦信号频率为60Hz,采样率为1000Hz, 用fftshift将其零频位置搬到频谱中心。
以上就是按时间抽取旳迅速傅立叶变换

实验三用FFT对信号进行频谱分析和MATLAB程序

实验三用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实践及频谱分析实践报告

FFT实验一.内容1. 用Matlab产生正弦波,矩形波,以及白信号,并显示各自时域波形图;2. 进行FFT变换,显示各自频谱图,其中采样率,频率、数据长度自选;3. 做出上述三种信号的均方根图谱,以及对数均方根图谱;4. 用IFFT傅里叶反变换恢复信号,并显示恢复的正弦信号时域波形图;5.滤波器的设计。

(一).编写程序1.正弦波fs=100;%设定采样频率N=128;n=0:N-1;t=n/fs;f0=10;%设定正弦信号频率%生成正弦信号x=sin(2*pi*f0*t);figure(1);subplot(231);plot(t,x);%做正弦信号的时域波形xlabel('t');ylabel('y');title('正弦信号y=2*pi*10t时域波形');grid;%进行FFT变换并做频谱图y=fft(x,N);%进行fft变换mag=abs(y);%求幅值f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换figure(1);subplot(232);plot(f,mag);%做频谱图axis([0,100,0,80]);xlabel('频率(HZ)’);ylabel('幅值’);title('正弦信号y=2*pi*10t幅频谱图N=128’);grid;%求均方根谱sq=abs(y);figure(1);subplot(233);plot(f,sq);xlabel('频率(HZ)’);ylabel('均方根谱’);title('正弦信号y=2*pi*10t均方根谱’);grid;%求功率谱power=sq.^2;figure(1);subplot(234);plot(f,power);xlabel('频率(HZ)’);ylabel('功率谱’);title('正弦信号y=2*pi*10t功率谱’);grid;%求对数谱ln=log(sq);figure(1);subplot(235);plot(f,sq);xlabel('频率(HZ)’);ylabel('对数谱’);title('正弦信号y=2*pi*10t对数谱’);grid;%用IFFT恢复原始信号xifft=ifft(y);magx=real(xifft);ti=[0:length(xifft)-1]/fs;figure(1);subplot(236);plot(ti,magx);xlabel('t’);ylabel('y’);title('通过IFFT转换的正弦信号波形’);grid;2.矩形波fs=10;%设定采样频率t=-5:0.1:5;x=rectpuls(t,2);x=x(1:99);figure(2);subplot(231);plot(t(1:99),x);%作矩形波的时域波形xlabel('t');ylabel('y');title('矩形波时域波形');grid;%进行FFT变换并做频谱图y=fft(x);%进行fft变换mag=abs(y);%求幅值f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换figure(2);subplot(232);plot(f,mag);%做频谱图xlabel('频率(HZ)');ylabel('幅值');title('矩形波幅频谱图'); grid;%求均方根谱sq=abs(y);figure(2);subplot(233);plot(f,sq);xlabel('频率(HZ)');ylabel('均方根谱');title('矩形波均方根谱'); grid;%求功率根谱power=sq.^2;figure(2);subplot(234);plot(f,power);xlabel('频率(HZ)');ylabel('功率谱');title('矩形波功率谱'); grid;%求对数谱ln=log(sq);figure(2);subplot(235);plot(f,ln);xlabel('频率(HZ)');ylabel('对数谱');title('矩形波对数谱'); grid;%用IFFT恢复原始信号xifft=ifft(y);magx=real(xifft);ti=[0:length(xifft)-1]/fs; figure(2);plot(ti,magx);xlabel('t');ylabel('y');title('通过IFFT转换的矩形波波形');grid;3.白噪声fs=10;%设定采样频率t=-5:0.1:5;x=zeros(1,100);x(50)=100000;figure(3);subplot(231);plot(t(1:100),x);%作白噪声的时域波形xlabel('t');ylabel('y');title('白噪声时域波形');grid;%进行FFT变换并做频谱图y=fft(x);%进行fft变换mag=abs(y);%求幅值f=(0:length(y)-1)'*fs/length(y);%进行对象的频率转换figure(3);subplot(232);plot(f,mag);%做频谱图xlabel('频率(HZ)');ylabel('幅值');title('白噪声幅频谱图');grid;%求均方根谱sq=abs(y);figure(3);subplot(233);plot(f,sq);xlabel('频率(HZ)');ylabel('均方根谱');title('白噪声均方根谱');grid;%求功率谱power=sq.^2;figure(3);plot(f,power);xlabel('频率(HZ)');ylabel('功率谱');title('白噪声功率谱');grid;%求对数谱ln=log(sq);figure(3);subplot(235);plot(f,ln);xlabel('频率(HZ)');ylabel('对数谱');title('白噪声对数谱');grid;%用IFFT恢复原始信号xifft=ifft(y);magx=real(xifft);ti=[0:length(xifft)-1]/fs;figure(3);subplot(236);plot(ti,magx);xlabel('t');ylabel('y');title('通过IFFT转换的白噪声波形'); grid;4.巴特沃斯高通数字滤波器Fs=5000;wp=2000*2/Fs;ws=1500*2/Fs;Rp=1;Rs=20;Nn=128;[N,Wn]=buttord(wp,ws,Rp,Rs);[b,a]=butter(N,Wn,'high');freqz(b,a,Nn,Fs)(二).程序执行后得到的图像①正弦波②矩形波③白噪声④巴特沃斯高通滤波器四.结论1. FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。

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

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

实验四程序代码及实验结果图: (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 两种情况进行频谱分析。

分别打印其幅频特性曲线。

并进行对比、分析和讨论。

实验程序代码及结果如下:%------------产生激励序列------------% 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)n1 = 0:length(x1n)-1; %分别求出序列长度 n2 = 0:M-1; n3 = 0:M-1;n8k= 0:2/8:2-2/8; %产生数字归一化频率 n16k= 0:2/16:2-2/16; n32k= 0:2/32:2-2/32;%------------fft 做频谱分析------------% X1k8=fft(x1n,8); %x1n 的8点DFT X1k16=fft(x1n,16); %x1n 的16点DFT X1k32=fft(x1n,32); %x1n 的32点DFTX2k8=fft(x2n,8); %x2n 的8点DFT X2k16=fft(x2n,16); %x2n 的16点DFT X2k32=fft(x2n,32); %x2n 的32点DFTX3k8=fft(x3n,8); %x3n 的8点DFT X3k16=fft(x3n,16); %x3n 的16点DFT X3k32=fft(x3n,32); %x3n 的32点DFT%------------绘制x1n 的8/16/32点DFT------------% subplot(3,4,1);stem(n1,x1n); %绘制时域采样波形图title('x1(n)的时域波形图'); %标题xlabel('n'); %横坐标名称ylabel('时域幅度值'); %纵坐标名称subplot(3,4,2);stem(n8k,abs(X1k8)); %绘制8点DFT的幅频特性图title('x1(n)的8点DFT]'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称subplot(3,4,3);stem(n16k,abs(X1k16)); %绘制16点DFT的幅频特性图title('x1(n)的16点DFT'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称subplot(3,4,4);stem(n32k,abs(X1k32)); %绘制32点DFT的幅频特性图title('x1(n)的32点DFT'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称%------------绘制x2n的8/16/32点DFT------------%subplot(3,4,5);stem(n2,x2n); %绘制时域采样波形图title('x2(n)的时域波形图'); %标题xlabel('n'); %横坐标名称ylabel('时域幅度值'); %纵坐标名称subplot(3,4,6);stem(n8k,abs(X2k8)); %绘制8点DFT的幅频特性图title('x2(n)的8点DFT]'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称subplot(3,4,7);stem(n16k,abs(X2k16)); %绘制16点DFT的幅频特性图title('x2(n)的16点DFT'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称subplot(3,4,8);stem(n32k,abs(X2k32)); %绘制32点DFT的幅频特性图title('x2(n)的32点DFT'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称%------------绘制x3n的8/16/32点DFT------------%subplot(3,4,9);stem(n3,x3n); %绘制时域采样波形图title('x3(n)的时域波形图'); %标题xlabel('n'); %横坐标名称ylabel('时域幅度值'); %纵坐标名称subplot(3,4,10);stem(n8k,abs(X3k8)); %绘制8点DFT的幅频特性图title('x3(n)的8点DFT]'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称subplot(3,4,11);stem(n16k,abs(X3k16)); %绘制16点DFT的幅频特性图title('x3(n)的16点DFT'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称subplot(3,4,12);stem(n32k,abs(X3k32)); %绘制32点DFT的幅频特性图title('x3(n)的32点DFT'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称2、对以下周期序列进行谱分析。

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

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

1. 三、实验内容和结果:高斯序列的时域和频域特性:高斯序列的时域表达式:2(),015()0,n p q a e n x n -⎧⎪≤≤=⎨⎪⎩其它固定参数p=8,改变参数q 的值, 记录时域和频域的特性如下图。

图 1i. 结论: 从时域图中可以看到, q 参数反应的是高斯序列能量的集中程度: q 越小, 能量越集中, 序列偏离中心衰减得越快, 外观上更陡峭。

同时, 随着q 的增大, 时域序列总的能量是在增大的。

频域上, 对应的, 随着q 的增加, 由于时域序列偏离中心的衰减的缓慢, 则高频分量也就逐渐减, 带宽变小: 时域上总的能量增大, 故也可以看到低频成分的幅度都增大。

固定参数q, 改变参数p, 记录时域和频域的特性如下图 2.图 22. 结论: p 是高斯序列的对称中心, p 的变化在时域表现为序列位置的变化。

由于选取的矩形窗函数一定, p 值过大时, 会带来高斯序列的截断。

并且随着p 的增大, 截断的越来越多。

对应地, 看频域上的变化: 截断的越多, 高频的成分也在增多, 以至发生谱间干扰, 泄露现象变得严重。

从图中可以看到, 在p=13时, 已经有混叠存在。

当p=14时, 混叠进一步加大, 泄露变得更明显。

衰减正弦序列的时域和幅频特性:sin(2),015()0,n b e fn n x n απ-⎧≤≤=⎨⎩其它改变参数f, 记录时域和幅频特性如下图3.图 33. 结论: 随着f 的增大, 时域上可以看到, 序列的变化明显快多了。

从幅度谱上看, 序列的高频分量逐渐增多, 低频分量逐渐减小, 以至于发生严重的频谱混叠。

当f 增大到一定的程度, 从图中可以看到, f=0.4375和f=0.5625时的幅度谱是非常相似的, 此时已经很难看出其幅度谱的区别。

三角序列的时域表达式和对应的时域和幅频特性如图 4:c 1,03()8,470,n n x n n n n +≤≤⎧⎪=-≤≤⎨⎪⎩其它图 4结论: 随着fft 取点数的增多, 能够看到的幅度谱的频率分量变得丰富, 得到的是高密度更高的谱, 也就是减轻了栅栏效应。

用FFT对信号作频谱分析

用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对信号作频谱分析_实验报告

实验三用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对信号进行频谱分析,我们可以方便地从信号的波形中提取出频率分量的信息,并绘制出频谱图进行观察。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

P的求法:在中,i写成二进制数右移位,就成为 颠倒位序得式(5)吕,前面的γ个等式,每个等式均对应一组数据进 行计算,每组数据都有N/2对结点,根据式(9),每对结点只需作1次 乘法和2次加法,因此,每组数据只需N/2次乘法和N次加法,因而完成 γ组数据的计算共需Nγ/2次乘法和Nγ次加法。
四、问题分析
一、问题重述
X(t)=sin(2πf1t)+sin(2πf2t)+sin(2πf3t) 其中f1=2Hz,f2=2.02Hz,f3=2.07Hz。试确定参数fx,N和相应模拟信号 x(t)的长度T。 其中f1=2Hz,f2=2.02Hz,f3=2.07Hz,试确定参数fs,N和相应模拟信号的长 度T,最终用MATLAB程序应用FFT实现信号频谱特性的分析,并绘制其频 谱图。 用DFT进行频率参数分析时,DFT参数的选择如下: 1)若已知信号的最高频率fc,为防止频率混叠,选定抽样频率fs,满足 fsfc,再根据实际需求,选择频率分辨率 2)一旦选定就可以确定计算DFT所需要点数N, N=fs/, 当频率分辨率越小时,DFT能实现的信号频率分辨率越高,这当然是我 们期望的,但愈小,计算DFT所需的点数N就愈大,计算复杂度就要高, 3)抽样频率fs和DFT所需点数N确定后,就可以确定所需相应模拟信号 的长度T, T=N/fS=N Ts Ts为信号的采样间隔。
(6)
式中 (7) 根据式(6),第L个数组中每个 的计算只依赖于上一个数组的两个数据这两个数据的标号相差,即,而 且这两个数据只用于计算第L个数组中标号的数据(等号右端为二进制 数)。当分别取0和1时,分别有。因此,用上一组的两个数据计算所 得的两个新数据仍可储存在原来位置,计算过程中只需要N个存储器。 将与称为第L个数组中的对偶结点对。计算每个对偶结点对只需一次乘 法,事实上由式(6)可得 式中: ;别为式(7)中取0,1时对应的P值。因,于是对偶结点的有 如下关系: ,因此式(6)可表示为
Байду номын сангаас
五、实验结果
已知模拟信号,根据表达式利用plot函数画出其频谱图,结果如 下:
6、 遇到的问题及解决方法
在整个课程设计过程中,由于之前对数字信号处理课程只是一种理 论知识的认知并不是很深刻,而本次课程设计主要是针对以前的理论知 识的一种更深刻的理解和应用,在实际操作的过程中刚开始一直无法获 取到图形,后来发现是在编程的时候对一些参数的取值不太恰当,对信 号进行谱分析的重要问题是频谱分辨率和分析误差。频谱分辨率直接和 FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2л/N≤。可
Abstract
Fast Fourier Transform (FFT), is a discrete fast Fourier transform algorithm, which is based on the Discrete Fourier Transform of odd and even, false, false, and other characteristics of the Discrete Fourier Transform algorithms improvements obtained. Its Fourier transform theory has not found a new, but in the computer system or the application of digital systems Discrete Fourier Transform can be said to be a big step into. Fourier transform theory and methods in the "mathematical equation" and "linear systems analysis" and "signal processing, simulation," and many other areas have a wide range of applications, as the computer can only handle a limited length of the sequence of discrete, so true On the computer's operation is a discrete Fourier transform. Fourier Although all aspects of computing in the calculation has an important role, but its calculation was too complicated, a lot of computing system for calculating the burden is too large
for some Less power consumption, the slow speed of operation of its system at arm's length, however, have the fast Fourier transform, Fourier transform greatly simplifying the making, not in power at the expense of the conditions to increase the speed of computing systems, and enhance the system The comprehensive ability to improve the speed of operation, the Fast Fourier Transform in the production and life have a very important role in learning to master all have great significance. Key words: Fast Fourier Transform; Signal spectrum analysis Discrete Fourier Transform 引言: 1965年,库利(J.W.Cooley)和图基(J.W.Tukey)在《计算数 学》杂志上发表了“机器计算傅立叶级数的一种算法”的文章,这是一 篇关于计算DFT的一种快速有效的计算方法的文章。它的思路建立在对 DFT运算内在规律的认识之上。这篇文章的发表使DFT的计算量大大减 少,并导致了许多计算方法的发现。这些算法统称为快速傅立叶变换 (Fast Fourier Transform),简称FFT,1984年,法国的杜哈梅尔 (P.Dohamel)和霍尔曼(H.Hollmann)提出的分裂基快速算法[2][6] 使运算效率进一步提高。FFT即为快速傅氏变换,是离散傅氏变换的快 速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立 叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的发现, 但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说 是进了一大步。随着科学的进步,FFT算法的重要意义已经远远超过傅 里叶分析本身的应用。FFT算法之所以快速,其根本原因在于原始变化 矩阵的多余行,此特性也适用于傅里叶变换外的其他一些正交变换,例 如,快速沃尔什变换、数论变换等等。在FFT的影响下,人们对于广义 的快速正交变换进行了深入研究,使各种快速变换在数字信号处理中占 据了重要地位。因此说FFT对数字信号处理技术的发展起了重大推动作 用。
和J.W.Tukey发现了DFT的一种快速算法,经其他学者进一步改进, 很快 形成了一套高效运算方法,这就是现在通用的快速傅里叶变换, 简称 FFT( The Fast Fourier Transform)。快速傅里叶变换的实质是利用式 (1)中的权函数的对称性和周期性,把N点DFT进行一系列分解和组合,使 整个DFT的计算过程变成一系列叠代运算过程,使DFT的运算量大大简化, 为DFT及数字信号的实时处理和应用创造了良好的条件。 快速傅里叶变换算法如下: 由(1)式可知,对每一个n,计算X(n)须作N次复数乘法及N-1次复数加 法,要完成这组变换共需次乘法及N(N-1)次复数加法。但以下介绍的快 速傅里叶变换的算法,可大大减少运算次数,提高工作效率。 当时,n和k可用二进制数表示: 又记 ,则(1)式可改写为 (2) 式中: (3) 因为所以(2)可改成 (4) (5) 则式(5)即为式(4)的分解形式。将初始数据代入式(5)的第一个 等式,可得每一组计算数据,一般将痗L-1组计算数据代入式(5)的第 L个等式,计算后可得第L组计算数据(L=1,2,…,γ),计算公式 也可表示为 =
三、实验原理
数字信号的傅里叶变换,通常采用离散傅里叶变换(DFT)方法。DFT 存在的不足是计算量太大,很难进行实时处理。计算一个N 点的DFT ,一 般需要次复数乘法和N(N-1)次复数加法运算.因此,当N较大或要求对信 号进行实时处理时,往往难以实现所需的运算速度。1965年,J.W.Cooly
2、 课程设计目的
1.熟悉MATLAB的使用方法,其中包括了解简单函数、了解原理和掌握操 作方法; 2.熟悉课程设计的过程及正是论文的写法。 3.通过实验加深对FFT的理解; 4.熟悉应用FFT对典型信号进行频谱分析的方法。 5.增强在通信原理仿真方面的动手能力与自学能力; 6.完成之后,再遇到类似的问题时,学会对所面对的问题进行系统的分 析,并能从多个方面进行比较。
本题主要要求应用FFT对典型信号进行频谱分析,最后使用MATLAB 程序实现信号频域特性的分析。编写程序时,首先得先计算和确定一些 参数的取值,根据已知题,确定最高频率fc=f3,根据实际需求,选择 f3=5fc,然后确定采样点数N,对信号进行谱分析的重要问题是频谱分辨 率和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够 实现的频率分辨率是2π/N,因此要求2π/N小于等于。可以根据此式选 择FFT的变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离 散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的 包络才能逼近连续谱,因此N要适当选择大一些。同时N需为,n为整 数,最后使用MATLAB信息处理工具箱中的函数fft(x,n),提供复数 幅值的函数及plot函数画出相应的频谱图。
相关文档
最新文档