DFT章节仿真实验
MATLAB仿真实现DFT变换

数字信号处理 课程实验报告实验指导教师:黄启宏 实验名称MATLAB 仿真实现DFT 变换 专业、班级 电子与通信工程 姓 名 张帅 实验地点 仿古楼301 实验日期 2013.11.10一、实验内容对有限序列x(n),令其长度为N 点,把这N 点序列视为一个周期序列,从而实现序列x(n)的傅里叶变化。
二、实验目的(1)实现非周期,有限长序列(或无限长序列)x(n)的傅里叶变换;(2)加深对DFT 定义式的理解。
三、实验原理对N 点序列x(n),其DFT 变换定义为:10()()N nk N n X k x n W -==∑ 20,1,2,,1,j N Nk N W e π-=-=四、涉及实验的相关情况介绍(包含使用软件或实验设备等情况) 一台安装MATLAB 软件的电脑五、实验记录程序、相关的图形、相关数据记录及分析)(function mainxn=[1,2,3,4];%输入xn序列;N=4;Xk1=DFT(xn,N);L=0:1:N-1;subplot(3,1,1)stem(L,abs(Xk1))title('DFT N=4')N=8;Xk2=DFT(xn,N);L=0:1:N-1;subplot(3,1,2)stem(L,abs(Xk2))title('DFT N=8')N=16;Xk3=DFT(xn,N);L=0:1:N-1;subplot(3,1,3)stem(L,abs(Xk3))title('DFT N=16')*************************************************************** function [Xk]=DFT(xn,N)%定义DFT算法;xxn=zeros(1,N);xxn([1:length(xn)])=xn; %构造长度为N的序列;Xk=ones(1,N);Wn=exp(-j*2*pi/N);wn=ones(N,N);for k=0:1:N-1for n=0:1:N-1wn(k+1,n+1)=Wn^(k*n);endendXk=(wn*xxn')';六、实验总结00.51 1.52 2.530510DFT N=4012345670510DFT N=80510150510DFT N=16。
数字信号处理--实验五 用DFT(FFT)对信号进行频谱分析

subplot(3,1,3);stem(wk,abs(Xk32),'.'); %绘制32点DFT的幅频特性图
title('(e) 32点DFT的幅频特性图');
xlabel('\omega/\pi');
ylabel('幅度');
k=0:31;wk=2*k/32; %产生32点DFT对应的采样点频率(关于π归一化值)
subplot(2,2,4);stem(wk,abs(Xk32),'.'); %绘制32点DFT的幅频特性图
title('(d) 32点DFT的幅频特性图');
xlabel('\omega/\pi');
ylabel('幅度');
图5.1R(t)的波形及其幅度特性
对 ,选择采用频率 ,采样点数为16,32,64。
3.分别对它们转换成序列,按顺序用 表示。
4.分别对它们进行FFT。如果采样点数不满足2的整数幂,可以通过序列尾部加0满足。
5.计算幅度特性并进行打印。
五、实验过程原始记录(数据、图表、计算等)
(一)离散信号
%
n=0:1:10;
Xk3=fft(xn,32); %计算xn的32点DFT
k3=0:length(abs(Xk3))-1;wk3=2*k3/32; %产生32点DFT对应的采样点频率(关于π归一化值)
如果用FFT对模拟信号进行谱分析,首先要把模拟信号转换成数字信号,转换时要求知道模拟信号的最高截至频率,以便选择满足采样定理的采样频率。一般选择采样频率是模拟信号中最高频率的3~4倍。另外要选择对模拟信号的观测时间,如果采样频率和观测时间确定,则采样点数也确定了。这里观测时间和对模拟信号进行谱分析的分辨率有关,最小的观测时间和分辨率成倒数关系。最小的采样点数用教材相关公式确定。要求选择的采样点数和观测时间大于它的最小值。
实验二 离散傅里叶变换(DFT)实验

实验二 离散傅里叶变换(DFT )实验【实验目的】1.进一步熟悉CCS 集成开发环境的软硬件调试方法2.学习DFT 的基本原理3.掌握如何在DSP 中实现DFT 算法【实验内容】1. 了解DFT 的基本原理。
2.了解命令文件中伪指令MEMORY 和SECTIONS 的作用。
2. CCS 中的软硬件开发环境的熟悉。
3. 常用信号(包括正弦波,方波,三角波,锯齿波)的DFT 。
【实验器材】1.DSP 开发板2.DSP 仿真器3 .PC 机(软件:CCS ,全称:Code composer studio )三 实验原理。
傅里叶变换是一种将信号从时域变换到频域的变换形式,是信号处理的重要分析工具。
离散傅里叶变换(DFT )是傅里叶变换在离散系统中的表示形式。
本实验是在学生首先产生一信号后,对该信号进行DFT ,并在CCS 中利用其自带的观察窗口或Memory 菜单来查看变换前后的波形或频谱值,从而完成了一个简易频谱分析仪。
让学生更加直观形象地体会DFT 的整个过程假设信号为x (0),x(1),……,x (N),那么其离散傅立叶变换后的实部和虚部以及频谱幅度分别为:2()0()()()()N j k n N r i n X k x n eX k jX k π-===+∑ 0(0)()(0)0N r i i X x i X =∴==∑ 002 ()()cos(())2()()sin(())(0)Nr n N i i X k x n k n N X k x n k n k N ππ===⨯⨯⨯=-⨯⨯⨯>∑∑()A k =具体的实现过程的时候需要根据硬件的特性来实现。
比如cos和sin的值都可事先通过软件计算出结果,保存在两个数组中,直接对其进行查表操作。
若缓存数量为128,即N=128。
对于cos和sin的系数,根据需要可以首先计算出128点的sin值,而cos的值则可以通过sin表整体后移N/4点,也就是整体后移32点后得到。
验证dft的实验报告

验证dft的实验报告导言DFT(Discrete Fourier Transform)是一种将一个离散信号的时域表示转换为频域表示的数学变换方法。
本次实验旨在验证DFT的有效性和可靠性,以及了解它在信号处理领域的应用。
实验目的1. 了解DFT的原理和数学表达式;2. 熟悉DFT的运算过程;3. 验证DFT算法在信号处理中的效果。
实验步骤1. 实现DFT算法首先,我们需要实现DFT算法。
DFT将时域信号转换为频域信号,我们需要编写代码来执行这个转换过程。
以下是伪代码示例:function dft(signal):N = length(signal) 信号长度spectrum = []for k in range(N):real_part = 0imag_part = 0for n in range(N):angle = 2 * pi * k * n / Nreal_part += signal[n] * cos(angle)imag_part += signal[n] * sin(angle)spectrum[k] = complex(real_part, imag_part)return spectrum2. 生成测试信号为了验证DFT的准确性,我们需要生成一个已知频谱的测试信号。
我们可以使用一个简单的正弦函数和脉冲函数的组合作为测试信号,如下所示:signal = sin(2 * pi * f1 * t) * pulse(t, t_start, t_end)其中,`f1`是正弦函数的频率,`t`是时间,`pulse(t, t_start, t_end)`是一个单位脉冲函数。
3. 运行DFT算法将生成的测试信号输入DFT算法中,得到频域信号。
我们可以将频域信号进行绘图,观察其频谱分布。
4. 验证结果比较DFT算法得到的频谱和测试信号的已知频谱,检查它们是否吻合。
可以使用频谱图来进行对比分析。
实验结果与分析我们使用Python编程语言实现了DFT算法,并生成了一个具有已知频谱的测试信号。
实验二 DFT 和FFT实验报告

实验二DFT 和FFT1、实验目的认真复习周期序列DFS、有限长序列DFT 的概念、旋转因子的定义、以及DFS 和DFT的性质等有关内容;复习基2-FFT 的基本算法,混合基-FFT 的基本算法、Chirp-Z 变换的算法等快速傅立叶变换的方法。
掌握有限长序列的循环移位、循环卷积的方法,对序列共轭对称性的含义和相关内容加深理解和掌握,掌握利用DFT 分析序列的频谱特性的基本方法。
掌握FFT 算法的基本原理和方法、Chirp-Z 变换的基本原理和方法,掌握利用FFT 分析序列的频谱特性的方法。
熟悉利用MATLAB 进行序列的DFT、FFT 的分析方法。
2、实验内容a. 设周期序列( ) { x~(n) = …,0,1,2,3,0,1,2,3,0,1,2,3,….},求该序列的离散傅立叶级数X(k) = DFS[x~(n)],并画出DFS 的幅度特性。
function [Xk]=dfs(xn,N)n=0:1:N-1;k=0:1:N-1;Wn=exp(-j*2*pi/N);nk=n'*k;Wnk=Wn.^nk;Xk=xn*Wnk;xn=[0,1,2,3];k=0:1:3;N=4;Xk=dfs(xn,N);y=abs(Xk);stem(k,y);b . 设周期方波序列为 x(n)= ⎩⎨⎧+≤≤++≤≤)1-1)N (m n (01)-L mN n 1(mN L mN (m=0,,....2,1±±)其中 N 为基波周期,L/N 是占空比。
(1) 用L 和N 求| X (k ) |的表达式;(2) 当L 和N 分别为:L=5,N=20;L=5,N=40;L=5,N=60 以及L=7,N=60 时画出 DFS 的幅度谱;(3) 对以上结果进行讨论,总结其特点和规律L=5; N=20;k=[-N/2:N/2];xn=[ones(1,L),zeros(1,N-L)]; Xk=dfs(xn,N);y=abs([Xk(N/2+1:N) Xk(1:N/2+1)]); stem(k,y);c . 设有限长序列x (n ) = {0,1,2,3},计算DTFT[x(n)]=X(e j ω),并画出它的幅度谱;然后 利用kw 1=42πk,k=0,1,2,3对X(e j ω)进行采样,并证明它等于实验a 中的X ~(k )。
数字信号实验 DFT FFT

北京信息科技大学实验报告封面实验报告课程名称:数字信号实验题目:用DFT(FFT)对时域离散信号进行频谱分析系(院):光电学院专业:光信息科学与技术班级:光信0801学生姓名:靖鑫学号: 2008010750指导教师:罗倩开课时间: 2010--2011学年一学期实验五用DFT(FFT)对时域离散信号进行频谱分析一、实验目的:学习DFT的基本性质及对时域离散信号进行频谱分析的方法。
二、实验内容给定参考实验信号如下:x1(n)=R4(n)x5(n): 用x1(n)=R4(n)以8为周期进行周期性延拓形成的周期序列。
(1) 分别以变换区间N=8, 16, 32,对x1(n)=R4(n)进行DFT(FFT), 画出相应的幅频特性曲线;(2) 分别以变换区间N=8, 16, 对x2(n), x3(n)分别进行DFT(FFT), 画出相应的幅频特性曲线;(3) 分别以变换区间N=4, 8, 16, 对x4(n)分别进行DFT(FFT), 画出相应的幅频特性曲线;(4) 对x5(n)进行频谱分析, 并选择变换区间, 画出幅频特性曲线。
三、实验报告1. 分析讨论。
(1) 用实验内容中的(1)分析DFT的变换区间对频域分析的作用,并说明DFT的物理意义。
(2) 对于试验内容(2),分析当N=8时,两个信号的幅频特性为什么一样,而N=16时又不一样。
(3) 对于实验内容(3),x4(n)是一个周期信号,画出它的理论幅度频谱特性。
对照理论结果, 分析该周期信号的变换区间应该如何选取。
如果周期信号的周期预先不知道,如何用DFT分析它的频谱。
(4) 对于实验内容(4),对照理论结果分析实验结果。
2. 根据以上的实验内容和分析讨论,写出自己认为重要的几点结论。
内容1..分别以变换区间N=8, 16, 32,对x1(n)=R4(n)进行DFT(FFT),画出相应的幅频特性曲线;xn=[1 1 1 1 ];Xk8=fft(xn,8);Xk16=fft(xn,16);Xk32=fft(xn,32);k=0:7subplot(321);stem(k,abs(Xk8),'.');title('8点幅频');grid on;xlabel('k');ylabel('幅度');subplot(322);stem(k,angle(Xk8),'.');title('8点相频');grid on;xlabel('k');ylabel('相位');k=0:15subplot(323);stem(k,abs(Xk16),'.');title('16点幅频');grid on;xlabel('k');ylabel('幅度');subplot(324);stem(k,angle(Xk16),'.'); title('16点相频');grid on;xlabel('k');ylabel('相位');k=0:31subplot(325);stem(k,abs(Xk32),'.');title('32点幅频');grid on;xlabel('k');ylabel('幅度');axis([0,31,0,4]); subplot(326);stem(k,angle(Xk32),'.'); title('32点相频');grid on;axis([0,31,-3,3]); xlabel('k');ylabel('相位');2.分别以变换区间N=8, 16, 对x3(n)分别进行DFT(FFT), 画出相应的幅频特性曲线;xn=[4 3 2 1 1 2 3 4];Xk8=fft(xn,8);%计算8点fftXk16=fft(xn,16);%计算16点fftk=0:7subplot(221);stem(k,abs(Xk8),'.');title('8点幅频');grid on;xlabel('k');ylabel('幅度');subplot(222);stem(k,angle(Xk8),'.');title('8点相频');grid on;xlabel('k');ylabel('相位');k=0:15subplot(223);stem(k,abs(Xk16),'.');title('16点幅频');grid on;xlabel('k');ylabel('幅度');subplot(224);stem(k,angle(Xk16),'.');title('16点相频');grid on;xlabel('k');ylabel('相位');分别以变换区间N=8, 16, 对x2(n)分别进行DFT(FFT), 画出相应的幅频特性曲线;xn=[1 2 3 4 4 3 2 1];Xk8=fft(xn,8);%计算8点fftXk16=fft(xn,16);%计算16点fftk=0:7subplot(221);stem(k,abs(Xk8),'.');title('8点幅频');grid on;xlabel('k');ylabel('幅度');subplot(222);stem(k,angle(Xk8),'.');title('8点相频');grid on;xlabel('k');ylabel('相位');k=0:15subplot(223);stem(k,abs(Xk16),'.');title('16点幅频');grid on;xlabel('k');ylabel('幅度');subplot(224);stem(k,angle(Xk16),'.');title('16点相频');grid on;xlabel('k');ylabel('相位');3..分别以变换区间N=8, 16, 对x2(n), x3(n)分别进行DFT(FFT), 画出相应的幅频特性曲线;n=0:50;xn=cos(pi/4.*n);Xk4=fft(xn,4);Xk8=fft(xn,8);Xk16=fft(xn,16);k=0:3subplot(321);stem(k,abs(Xk4),'.');title('8点幅频');grid on;xlabel('k');ylabel('幅度');subplot(322);stem(k,angle(Xk4),'.'); title('8点相频');grid on;xlabel('k');ylabel('相位');k=0:7subplot(323);stem(k,abs(Xk8),'.'); title('8点幅频');grid on;xlabel('k');ylabel('幅度');subplot(324);stem(k,angle(Xk8),'.'); title('8点相频');grid on;xlabel('k');ylabel('相位');k=0:15subplot(325);stem(k,abs(Xk16),'.'); title('16点幅频');grid on;xlabel('k');ylabel('幅度');subplot(326);stem(k,angle(Xk16),'.'); title('16点相频');grid on;xlabel('k');ylabel('相位');4..对x5(n)进行频谱分析, 并选择变换区间, 画出幅频特性曲线。
DFT和FFT实验(上传)

DFT 和FFT 实验一、实验目的和要求 1、掌握DFT 变换 2、掌握DFT 性质3、掌握快速傅立叶变换(FFT ) 二、实验内容和原理 1、实验内容1)求有限长离散时间信号的离散时间傅立叶变换)(Ωj e X 并绘图。
∙已知nje n x ⎪⎪⎭⎫⎝⎛=39.0)(π 100≤≤n ∙ 已知10102)(≤≤-=n n x n2)已知序列)sin(2)82.0cos()(n n n x ππ+=,500≤≤n ,绘制)(n x 及其离散傅立叶变换)(k X 的幅度、相位图。
3)设)()2.0sin()(n randn n n x +=π,10-≤≤N n ,其中,randn(n)为高斯白噪声。
求出m N 4=,m=2,3,4的matlab 采用不同算法的执行时间。
4)研究高密度频谱和高分辨率频谱。
设有连续信号)1092cos()1072cos()105.62cos()(333t t t t x ⨯⨯+⨯⨯+⨯⨯=πππ∙以采样频率kHz f s 32=对信号x(t)采样,分析下列三种情况的幅频特性。
∙ 采集数据长度N=16点,做N=16点的FFT ,并画出幅频特性。
∙ 采集数据长度N=16点,补零到256点,做N=256点的FFT ,并画出幅频特性。
∙ 采集数据长度N=256点,做N=256点的FFT ,并画出幅频特性。
观察三种不同频率特性图,分析和比较它们的特点以及形成的原因。
2、实验原理 1)DFT序列x (n )的离散时间傅里叶变换(DTFT )表示为nj nj e n x eX Ω-∞-∞=Ω∑=)()(,如果x (n )为因果有限长序列,n =0,1,...,N-1,则x (n )的DTFT 表示为n j N n j e n x eX Ω--=Ω∑=10)()(x (n )的离散傅里叶变换(DFT )表达式为)1,...,1,0()()(210-==--=∑N k en x k X nk NjN n π序列的N 点DFT 是序列DTFT 在频率区间[0,2π]上的N 点灯间隔采样,采样间隔为2π/N 。
实验一 利用DFT进行信号分析实验报告

利用DFT进行信号分析一、实验目的1.通过编写程序加深对DFT/IDFT的理解;2.运用DFT/IDFT进行初步的频谱分析;3.对DFT/IDFT运行过程出现的现象进行解释二、实验内容给定信号如下:x(t)=2+3cos(100πt-π/6)+1.5cos(150πt-π/2)1.对给定信号进行频谱分析,画出时域、振幅谱、相位谱的图像;2.滤掉50HZ频率,反变换后观察图像,分析是否满足采样定理;3.对DFT出现的GIBBS效应、栅栏效应等的分析;4.进行傅式反变换观察能否将原信号恢复三、实验步骤1. 对给定信号进行频谱分析,画出时域、振幅谱、相位谱的图像;x(t)=2+3cos(100πt-π/6)+1.5cos(150πt-π/2)其中fm1=75Hz为主频,包含一个有效信号和一个干扰信号(fm=50Hz),。
将子波信号离散化,令t=i×dt ,则x(t)=x(i*dt),将子波信号变换到频率域进行滤波,取2560个采样点,采样间隔取0.001s生成给定信号的源程序为:clearclfN=2560;fm=50;fm1=75;dt=0.001;df=1/(N*dt);n=[1:N];k=[1:N];t=0:dt:(N-1)*dt;f=0:df:(N-1)*df;for i=1:Nx(i)=2+3*cos(fm*2*pi*dt*i-pi/6)+1.5*cos(fm1*2*pi*dt*i-pi/2); endq(k)=x*exp(-j*2*pi/N).^(n'*k);a=abs(q);p=angle(q);p=180/pi*p;subplot(3,1,1);plot(t,x,'k'),grid on,xlabel('时间t'),ylabel('信号x(t)'),title('给定信号的时域图像');subplot(3,1,2);plot(f,a,'k'),grid on,xlabel('频率f'),ylabel('振幅a'),title('给定信号的振幅谱');subplot(3,1,3);plot(f,p,'k'),grid on,xlabel('频率f'),ylabel('相位p'),title('给定信号的相位谱');运行程序,得给定信号的时域图像、振幅谱、相位谱如图:频率f=k×df ,其中频率采样间隔df=1,所以x(f)=x(k*df)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0
1
2
3
4
5
6
7
200 150 100 50 0
0
1
2
3
4
5
6
7
(3)与两序列线性卷积相比较 x1=[1 3 5 3 6 8 3 9]; x2=[2 4 3 6 7 9 0 2]; n=0:length(x1)-1; n1=0:length(x1)*2-2; w=-2*pi:0.01:2*pi; XX1=x1*exp(-j*n'*w); XX2=x2*exp(-j*n'*w); YY2=XX1.*XX2; y2=YY2*exp(j*w'*n1) stem((0:length(n1)-1),y2,'fill') 或者调用两序列线性卷积函数conv x1=[1 3 5 3 6 8 3 9]; x2=[2 4 3 6 7 9 0 2]; y=conv(x1,x2)
(1)x=[1,2,3,4]; w=-2*pi:0.01:2*pi; n=0:3; X=x*exp(-j*n'*w); plot(w,real(X)) hold on %根据DTFT公式直接计算离散序列的DTFT %注意图像不能同时表达出变换的模和相位,在作图时应 取DTFT的模或者实部
10
5
0
-5 -8
2、两组实序列x1(n)=[1 3 5 3 6 8 3 9],x2(n)=[2 4 3 6 7 9 0 2], 计算x1(n)和x2(n)的圆周卷积y(n),计算x1(n)和x2(n) X2( 的傅里叶变换 X1( )和X2( ) Y( )=X1( ) ) 求 Y( ) , 的反傅里叶变换y2(n),比较y1(n)和y2(n)。
-6
-4
-2
0
2
4
6
8
(2)计算DFT可以直接调用MATLAB中的fft函数,或者根据DFT 公式直接计算 stem(2*pi*n/length(n),fft(x),‘fill’,‘k’)%直接调用fft函数计算离散序 列的DFT,注意Matlab中提供的fft函数结果取序列DFT的实部 或者 w1=2*pi*n/length(n); X1=x*exp(-j*n'*w1); stem(w1,X1, 'fill','k')%根据DFT公式计算离散序列的DFT
(1)计算两个序列的圆周卷积可以直接调用Matlab中的cconv 函数 x1=[1 3 5 3 6 8 3 9]; x2=[2 4 3 6 7 9 0 2]; y=cconv(x1,x2,8) y =170 175 178 143 161 115 154 158 subplot(3,1,1); stem((0:length(x1)-1),y,'fill')
180 160 140 120 100 80 60 40 20 0
0
1
2
3
4
5
6
7
(2)通过计算序列x1(n)和x2(n)的DFT,验证 DFT乘积性质 X1=fft(x1); X2=fft(x2); y1=ifft(X1.*X2); subplot(3,1,2); stem((0:length(y1)-1),y1,'fill');
10
5
0
-5 -8
-6
-4
-2
0
2
4
6
8
(3)y=[x,zeros(1,28)]; n2=0:31; stem(2*pi*n2/length(n2),fft(y),'fill','b')
10
5
0
-5 -8
பைடு நூலகம்-6
-4
-2
0
2
4
6
8
(4)序列经过补零得到的DFT频谱更加密集, 从采样的角度分析是由于 减小!实验分析结 果是DFT可以实现DTFT的采样!
1、已知x(n)={1,2,3,4},完成下列要求: (1)、计算其DTFT,并画出 [- , ] 区间的波形; (2)、计算4点DFT,并把结果显示在(1)中所画的图形中; (3)、对x(n)补零,计算32点DFT,并显示结果; (4)、根据实验结果,分析是否可以由DFT计算DTFT, 如果可以,如何实现。
y= 2 10 25 41 64 109 136 158 168 165 153 102 97 6 18
200 100 0
0
1
2
3
4
5
6
7
200 100 0
0 x 10
5
1
2
3
4
5
6
7
4 2 0
0
2
4
6
8
10
12
14
圆周卷积可以认为是线性卷积周期延拓或者频谱采样时出现 时域混叠的结果