数字信号处理实验二用fft进行谱分析

上传人:tia****nde 文档编号:66965949 上传时间:2019-01-06 格式:PPT 页数:10 大小:322.50KB
返回 下载 相关 举报
数字信号处理实验二用fft进行谱分析_第1页
第1页 / 共10页
数字信号处理实验二用fft进行谱分析_第2页
第2页 / 共10页
数字信号处理实验二用fft进行谱分析_第3页
第3页 / 共10页
数字信号处理实验二用fft进行谱分析_第4页
第4页 / 共10页
数字信号处理实验二用fft进行谱分析_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《数字信号处理实验二用fft进行谱分析》由会员分享,可在线阅读,更多相关《数字信号处理实验二用fft进行谱分析(10页珍藏版)》请在金锄头文库上搜索。

1、实验二 用FFT进行谱分析,实验目的,(1)进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。熟悉FFT程序结构及编程方法。 (2)熟悉应用FFT对确定信号进行谱分析方法,熟悉FFT算法原理和FFT子程序的应用。 (3)学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应有FFT。,实验原理及方法,xa(t)的频谱,取样,X(k)是X(ej)在0,2区间上的N个等间隔采样点,一个序列x(n)的离散时间傅里叶变换就是它的频谱函数。,实验内容及步骤(Matlab DFT)

2、,function y=mydft(x) % y=mydft(x) % x为给定时间序列 % y为x的离散傅立叶变换 N=length(x); % 输入序列的长度 n=0:N-1; k=n; % 确定时域位置序列n和频域位置序列k WN=exp(-j*2*pi/N); % 计算DFT所需的旋转因子 nk=n*k; WNnk=WN.nk; % 构成旋转因子矩阵 Xk=x*WNnk;y=Xk; % 按DFT定义计算x的傅立叶变换,实验内容及步骤(Matlab FFT),function y=myditfft(x) % y=myditfft(x) % 本程序对输入序列 x 实现DIT-FFT基2算法

3、,点数取大于等于x长度的2的幂次 % x为给定时间序列 % y为x的离散傅立叶变换 m=nextpow2(x);N=2m; % 求x的长度对应的2的最低幂次m if length(x)N % 若x的长度不是2的幂,补零到2的整数幂 x=x,zeros(1,N-length(x); end nxd=bin2dec(fliplr(dec2bin(1:N-1,m)+1; % 求1:2m数列的倒序 y=x(nxd); % 将x倒序排列作为y的初始值,实验内容及步骤(Matlab FFT),for mm=1:m % 将DFT作m次基2分解,从左到右,对每次分解作DFT运算 Nmr=2mm;u=1; %

4、旋转因子u初始化为WN0=1 WN=exp(-i*2*pi/Nmr); % 本次分解的基本DFT因子WN=exp(-i*2*pi/Nmr) for j=1:Nmr/2 % 本次跨越间隔内的各次蝶形运算 for k=j:Nmr:N % 本次蝶形运算的跨越间隔为Nmr=2mm kp=k+Nmr/2; % 确定蝶形运算的对应单元下标 t=y(kp)*u; % 蝶形运算的乘积项 y(kp)=y(k)-t; % 蝶形运算 y(k)=y(k)+t; % 蝶形运算 end u=u*WN; % 修改旋转因子,多乘一个基本DFT因子WN end end,算法时间比较,K=input(K=); %设定数据长度的2

5、的幂次K x=randn(1,2K); %先生成一个x向量 tic,X=fft(x),toc %测试fft子程序所需运行时间 tic,X=myditfft(x),toc %测试myditfft子程序所需运行时间 tic,X=mydft(x),toc %测试mydft子程序所需运行时间,例:已知序列x(n)=2sin(/3n)+3cos(0.25 n),0n 127,试绘制x(n)及它的离散傅里叶变换谱图。,clear all N=128; n=0:N-1; xn=2*sin(pi/3)*n)+3*cos(0.25*pi*n); XK=fft(xn,N); magXK=abs(XK); phaX

6、K=angle(XK); subplot(2,1,1);stem(n,xn); xlabel(n);ylabel(x(n); k=0:length(magXK)-1; subplot(2,1,2);stem(k,magXK); xlabel(k);ylabel(|X(k)|);,实验内容及步骤,(1)用matlab编程产生并画出信号x1(n)、x2(n)、x3(n)、x4(n)、x5(n)。,(2)用matlab编制FFT函数对上述信号进行频谱分析,并画出上述信号谱图。,实验报告要求,1. 简述实验原理及目的。 2. 对上述的信号逐个进行谱分析。给出所编制的实验程序清单,并附上必要的说明,给出实验信号序列的时域和频域波形,说明FFT长度N改变对频谱的影响。 3.简要回答以下问题: 在N=8时,x2(n)和x3(n)的幅频特性会相同吗?为什么?N=16呢? FFT在什么条件下也可以用来分析周期信号序列的频谱?如果正弦信号系统sin(2f0k),f0=0.1Hz,用16点FFT来做DFT运算,得到的频谱是信号本身的真实谱吗?为什么?,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号