数字信号处理实验三--用FFT作谱分析
数字信号处理实验报告 3

数字信号处理实验报告姓名:班级:通信学号:实验名称:频域抽样定理验证实验类型:验证试验指导教师:实习日期:2013.频域采样定理验证实验一. 实验目的:1. 加深对离散序列频域抽样定理的理解2.了解由频谱通过IFFT 计算连续时间信号的方法3.掌握用MATLAB 语言进行频域抽样与恢复时程序的编写方法 4、用MATLAB 语言将X(k)恢复为X(z)及X(e jw )。
二. 实验原理:1、1、频域采样定理: 如果序列x(n)的长度为M ,频域抽样点数为N ,则只有当频域采样点数N ≥M 时,才有x N (n)=IDFT[X(k)]=x(n),即可由频域采样X(k)无失真的恢复原序列 x(n)。
2、用X(k)表示X(z)的内插公式:∑-=-----=10111)(1)(N k kNNzWz k X Nz X内插函数: zWzkNNN z 1k111)(-----=ϕ频域内插公式:∑-=-=10)2()()(N K j k Nk X e X πωϕω频域内插函数:e N j N N )21()2sin()2sin(1)(--=ωωωωϕ三. 实验任务与步骤:实验一:长度为26的三角形序列x(n)如图(b)所示,编写MATLAB 程序验证频域抽样定理。
实验二:已知一个时间序列的频谱为X(e jw )=2+4e -jw +6e -j2w +4e -j3w +2e -j4w分别取频域抽样点数N为3、5和10,用IPPT计算并求出其时间序列x(n),用图形显示各时间序列。
由此讨论原时域信号不失真地由频域抽样恢复的条件。
实验三:由X32(k)恢复X(z)和X(e jw)。
四.实验结论与分析:实验一:源程序:M=26;N=32;n=0:M; %产生M长三角波序列x(n)xa=0:floor(M/2);xb= ceil(M/2)-1:-1:0; xn=[xa,xb];Xk=fft(xn,512); %1024点FFT[x(n)], 用于近似序列x(n)的TFX32k=fft(xn,32); %32点FFT[x(n)]x32n=ifft(X32k); %32点IFFT[X32(k)]得到x32(n)X16k=X32k(1:2:N); %隔点抽取X32k得到X16(K)x16n=ifft(X16k,N/2); %16点IFFT[X16(k)]得到x16(n)subplot(3,2,2);stem(n,xn,'.');box ontitle('(b) 三角波序列x(n)');xlabel('n');ylabel('x(n)');axis([0,32,0,20])k=0:511;wk=2*k/512;subplot(3,2,1);plot(wk,abs(Xk));title('(a)FT[x(n)]');xlabel('\omega/\pi');ylabel('|X(e^j^\omega)|');axis([0,1,0,200])k=0:N/2-1;subplot(3,2,3);stem(k,abs(X16k),'.');box ontitle('(c) 16点频域');xlabel('k');ylabel('|X_1_6(k)|');axis([0,8,0,200])n1=0:N/2-1;subplot(3,2,4);stem(n1,x16n,'.');box ontitle('(d) 16点IDFT[X_1_6(k)]');xlabel('n');ylabel('x_1_6(n)');axis([0,32,0,20])k=0:N-1;subplot(3,2,5);stem(k,abs(X32k),'.');box ontitle('(e) 32点频域采样');xlabel('k');ylabel('|X_3_2(k)|');axis([0,16,0,200])n1=0:N-1;subplot(3,2,6);stem(n1,x32n,'.');box ontitle('(f) 32点IDFT[X_3_2(k)]');xlabel('n');ylabel('x_3_2(n)');axis([0,32,0,20])结果如下所示:实验一分析:序列x(n)的长度M=26,由图中可以看出,当采样点数N=16<M时,x16(n)确实等于原三角序列x(n)以16为周期的周期延拓序列的主值序列。
数字信号处理实验答案

数字信号处理实验答案第十章上机实验数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。
上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。
本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。
实验一系统响应及系统稳定性。
实验二时域采样与频域采样。
实验三用FFT对信号作频谱分析。
实验四IIR数字滤波器设计及软件实现。
实验五FIR数字滤波器设计与软件实现实验六应用实验——数字信号处理在双音多频拨号系统中的应用任课教师根据教学进度,安排学生上机进行实验。
建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR数字滤波器设计及软件实现在。
学习完第六章进行;实验五在学习完第七章后进行。
实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。
10.1 实验一: 系统响应及系统稳定性1.实验目的(1)掌握求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。
2.实验原理与方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。
在计算机上适合用递推法求差分方程的解,最简单的方法是采用MA TLAB语言的工具箱函数filter函数。
也可以用MA TLAB语言的工具箱函数conv 函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。
重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。
或者系统的单位脉冲响应满足绝对可和的条件。
系统的稳定性由其差分方程的系数决定。
数字信号处理实验答案

第十章上机实验数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。
上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。
本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。
实验一系统响应及系统稳定性。
实验二时域采样与频域采样。
实验三用FFT对信号作频谱分析。
实验四IIR数字滤波器设计及软件实现。
实验五FIR数字滤波器设计与软件实现实验六应用实验——数字信号处理在双音多频拨号系统中的应用任课教师根据教学进度,安排学生上机进行实验。
建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR数字滤波器设计及软件实现在。
学习完第六章进行;实验五在学习完第七章后进行。
实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。
实验一: 系统响应及系统稳定性1.实验目的(1)掌握求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。
2.实验原理与方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。
在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。
也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。
重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。
或者系统的单位脉冲响应满足绝对可和的条件。
系统的稳定性由其差分方程的系数决定。
实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。
FFT算法分析实验实验报告

FFT算法分析实验实验报告一、实验目的快速傅里叶变换(Fast Fourier Transform,FFT)是数字信号处理中一种非常重要的算法。
本次实验的目的在于深入理解 FFT 算法的基本原理、性能特点,并通过实际编程实现和实验数据分析,掌握 FFT 算法在频谱分析中的应用。
二、实验原理FFT 算法是离散傅里叶变换(Discrete Fourier Transform,DFT)的快速计算方法。
DFT 的定义为:对于长度为 N 的序列 x(n),其 DFT 为X(k) =∑n=0 到 N-1 x(n) e^(j 2π k n / N) ,其中 j 为虚数单位。
FFT 算法基于分治法的思想,将 N 点 DFT 分解为多个较小规模的DFT,从而大大减少了计算量。
常见的 FFT 算法有基 2 算法、基 4 算法等。
三、实验环境本次实验使用的编程语言为 Python,主要依赖 numpy 库来实现 FFT 计算和相关的数据处理。
四、实验步骤1、生成测试信号首先,生成一个包含不同频率成分的正弦波叠加信号,例如100Hz、200Hz 和 300Hz 的正弦波。
设定采样频率为 1000Hz,采样时间为 1 秒,以获取足够的采样点进行分析。
2、进行 FFT 计算使用 numpy 库中的 fft 函数对生成的测试信号进行 FFT 变换。
3、频谱分析计算 FFT 结果的幅度谱和相位谱。
通过幅度谱确定信号中各个频率成分的强度。
4、误差分析与理论上的频率成分进行对比,计算误差。
五、实验结果与分析1、幅度谱分析观察到在 100Hz、200Hz 和 300Hz 附近出现明显的峰值,对应于生成信号中的频率成分。
峰值的大小反映了相应频率成分的强度。
2、相位谱分析相位谱显示了各个频率成分的相位信息。
3、误差分析计算得到的频率与理论值相比,存在一定的误差,但在可接受范围内。
误差主要来源于采样过程中的量化误差以及 FFT 算法本身的近似处理。
数字信号处理高西全实验报告三

数字信号处理高西全实验报告三选择FFT的变换区间N为8和16 两种情况进行频谱分析^p 。
分别打印其幅频特性曲线。
并进行对比、分析^p 和讨论。
(2)对以下周期序列进行谱分析^p 。
选择FFT的变换区间N为8和16 两种情况分别对以上序列进行频谱分析^p 。
分别打印其幅频特性曲线。
并进行对比、分析^p 和讨论。
(3)对模拟周期信号进行谱分析^p选择采样频率,变换区间N=16,32,64 三种情况进行谱分析^p 。
分别打印其幅频特性,并进行分析^p 和讨论。
四、程序码与运行结果(1) 实验程序:1n=[ones(1,4)];M=8;a=1:(M/2); b=(M/2):-1:1; 2n=[a,b];3n=[b,a];1k8=fft(1n,8);1k16=fft(1n,16);2k8=fft(2n,8);2k16=fft(2n,16);3k8=fft(3n,8);3k16=fft(3n,16);以下绘制幅频特性曲线n=0:length(1k8)-1;subplot(3,2,1);stem(n,abs(1k8),#;.#;);label({#;ω/π#;;#;8点DFT[1(n)]#;});ylabel(#;幅度#;);n=0:length(1k16)-1;subplot(3,2,2);stem(n,abs(1k16),#;.#;);label({#;ω/π#;;#;16点DFT[1(n)]#;});ylabel(#;幅度#;); n=0:length(2k8)-1;subplot(3,2,3);stem(n,abs(2k8),#;.#;);label({#;ω/π#;;#; 8点DFT[2(n)]#;});ylabel(#;幅度#;); n=0:length(2k16)-1;subplot(3,2,4);stem(n,abs(2k16),#;.#;);label({#;ω/π#;;#;16点DFT[2(n)]#;});ylabel(#;幅度#;); n=0:length(3k8)-1;subplot(3,2,5);stem(n,abs(3k8),#;.#;);l abel({#;ω/π#;;#; 8点DFT[3(n)]#;});ylabel(#;幅度#;); n=0:length(3k16)-1;subplot(3,2,6);stem(n,abs(3k16),#;.#;);label({#;ω/π#;;#;16点DFT[3(n)]#;});ylabel(#;幅度#;); 图形:(2)实验程序:n=0:7;4n=cos(pi/4n);4k8=fft(4n,8);subplot(2,2,1);stem(2n/8,abs(4k8),#;.#;);label({#;ω/π#;;#;8点DFT[4(n)]#;});ylabel(#;幅度#;); 5n=cos(pi/4n)+cos(pi/8n);5k8=fft(5n,8);subplot(2,2,2);stem(2n/8,abs(5k8),#;.#;);label({#;ω/π#;;#;8点DFT[5(n)]#;});ylabel(#;幅度#;); n=0:15;4n=cos(pi/4n);5n=cos(pi/4n)+cos(pi/8n);4k16=fft(4n,16);subplot(2,2,3);stem(2n/16,abs(4k16),#;.#;);label({#;ω/π#;;#;16点DFT[4(n)]#;});ylabel(#;幅度#;); 5k16=fft(5n,16);subplot(2,2,4);stem(2n/16,abs(5k16),#;.#;);label({#;ω/π#;;#;16点DFT[5(n)]#;});ylabel(#;幅度#;); 图形:(3)实验代码:Fs=64;T=1/Fs;N=16;n=0:N-1;6nT=cos(8pinT)+cos(16pinT)+cos(20pinT);6k16=fft(6nT);6k16=fftshift(6k16);Tp=NT;F=1/Tp;k=-N/2:N/2-1;fk=kF;subplot(3,1,1);stem(fk,abs(6k16),#;.#;);label({#;f(Hz)#;;#;16点DFT[6(nT)]#;});ylabel(#;幅度#;); N=32;n=0:N-1;6nT=cos(8pinT)+cos(16pinT)+cos(20pinT);6k32=fft(6nT,32);6k32=fftshift(6k32);Tp=NT;F=1/Tp;k=-N/2:N/2-1;fk=kF;subplot(3,1,2);stem(fk,abs(6k32),#;.#;);label({#;f(Hz)#;;#;32点DFT[6(nT)]#;});ylabel(#;幅度#;); N=64;n=0:N-1;6nT=cos(8pinT)+cos(16pinT)+cos(20pinT);6k64=fft(6nT,64);6k64=fftshift(6k64);Tp=NT;F=1/Tp;k=-N/2:N/2-1;fk=kF;subplot(3,1,3);stem(fk,abs(6k64),#;.#;);label({#;f(Hz)#;;#;64点DFT[6(nT)]#;});ylabel(#;幅度#;);图形:五、实验总结1.结论用DFT对信号进行谱分析^p 时,重点关注频谱分辨率和分析^p 误差,频谱分辨率F=1/Tp=Fs/N,可以依据此等式来选择FFT的变换区间N,而误差主要来自于用FFT作频谱分析^p 时,得到的是离散谱,而当信号是非周期信号时,应该得到连续谱,只有当N较大时,用FFT做出来的离散谱才接近于连续谱,因此N要适当选择大一些。
数字信号处理上机实验答案(第三版,第十章)[自己整理完善的]
![数字信号处理上机实验答案(第三版,第十章)[自己整理完善的]](https://img.taocdn.com/s3/m/ecd1b05f33687e21af45a9b3.png)
第十章 上机实验数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。
上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。
本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。
实验一 系统响应及系统稳定性。
实验二 时域采样与频域采样。
实验三 用FFT 对信号作频谱分析。
实验四 IIR 数字滤波器设计及软件实现。
实验五 FIR 数字滤波器设计与软件实现实验六 应用实验——数字信号处理在双音多频拨号系统中的应用任课教师根据教学进度,安排学生上机进行实验。
建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR 数字滤波器设计及软件实现在。
学习完第六章进行;实验五在学习完第七章后进行。
实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。
10.1 实验一: 系统响应及系统稳定性1.实验目的(1)掌握 求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。
2.实验原理与方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。
在计算机上适合用递推法求差分方程的解,最简单的方法是采用MA TLAB 语言的工具箱函数filter 函数。
也可以用MATLAB 语言的工具箱函数conv 函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。
重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。
或者系统的单位脉冲响应满足绝对可和的条件。
数字信号处理实验3 FFT算法应用

图 6-2
>> xlabel('n');ylabel('x[n]');
图 6-1
理论分析如下:
由欧拉公式得: x[n] cos(2 7n) 1 cos(2 19n)
N
2N
1
(e
j 2 7n N
e
j 2 ( N 7n) N
1
e
j 2 19n N
1
e
j 2 ( N 19n)
N
)
2
2
2
j 2 kn
对 p[n] e N ,其 2N 点的 DFT 变换为:
2N 1
j 2mn 2N 1 j 2n(2km)
X (k) 。
(2) 已知某序列 x(n) 在单位圆上的 N=64 等分样点的 Z 变换为
X (zk
)
X
(k)
1 1 0.8e j2k / N
,k
0,1,2,...,63
。
_
_
用 N 点 IFFT 程序计算 x(n) IDFT[ X (k)],绘出和 x(n) 。
实验要求:利用 MATLAB 编程完成计算,绘出相应图形。并与理论计算相比较,说明实验结 果的原因。 (1) 用以下代码实现可得图 6-1 所示的 DFT 图。 >> N=64; >> n=0:2*N-1; >> x=cos(2*pi*7*n/N)+1/2*cos(2*pi*19*n/N); >> X=fft(x,128); >> k=n; >> stem(k,abs(X)) >> grid >> xlabel('k');ylabel('|X[k]|');
利用FFT对信号进行频谱分析

∑-=--==101,....,0,)(1)(N k nk N N n W k X N n x (3.2) 离散傅立叶反变换与正变换的区别在于N W 变为1-N W ,并多了一个N 1的运算。
因为N W 和1-N W 对于推导按时间抽取的快速傅立叶变换算法并无实质性区别,因此可将FFT 和快速傅立叶反变换(IFFT )算法合并在同一个程序中。
2.利用FFT 进行频谱分析若信号本身是有限长的序列,计算序列的频谱就是直接对序列进行FFT 运算求得)(k X ,)(k X 就代表了序列在[]π2,0之间的频谱值。
幅度谱 )()()(22k X k X k X I R +=相位谱 )()(arctan )(k X k X k R I =ϕ 若信号是模拟信号,用FFT 进行谱分析时,首先必须对信号进行采样,使之变成离散信号,然后就可按照前面的方法用FFT 来对连续信号进行谱分析。
按采样定理,采样频率s f 应大于2倍信号的最高频率,为了满足采样定理,一般在采样之前要设置一个抗混叠低通滤波器。
用FFT 对模拟信号进行谱分析的方框图如下所示。
3.在运用DFT 进行频谱分析的过程中可能产生三种误差:(1)混叠序列的频谱是被采样信号频谱的周期延拓,当采样速率不满足Nyquist 定理时,就会发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原信号的频谱。
避免混叠现象的唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须对频谱的性质有所了解。
在一般情况下,为了保证不出现频谱混叠,在采样前,先进行抗混叠滤波。
(2)泄漏实际中我们往往用截短的序列来近似很长的甚至是无限长的序列,这样可以使用较短的DFT 来对信号进行频谱分析,这种截短等价于给原信号序列乘以一个矩形窗函数,也相当于在频域将信号的频谱和矩形窗函数的频谱卷积,所得的频谱是原序列频谱的扩展。
抗混叠低通滤波器 采样T=1/f s N 点FFT泄漏不能与混叠完全分开,因为泄漏导致频谱的扩展,从而造成混叠。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理实验报告一、实验目的(1) 进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法,所以FFT 的运算结果必然满足DFT 的基本性质);(2) 熟悉FFT 算法的原理;(3) 学习用FFT 对连续信号和时域离散信号进行谱分析的方法分析误差及其原因,以便在实际中正确应用FFT 。
二、实验内容 (1)x(n)={1 0≤n ≤50 其他构造DFT 函数计算x(n)的10点DFT ,20点DFT并画出图形;(2)利用FFT 对下列信号逐个进行谱分析并画出图形 a 、x 1(n)=R 4(n); b 、x 2(n)=cos π4n ; c 、x 3(n)=sin π8n以上3个序列的FFT 变换区间N=8,16(3)设一序列中含有两种频率成份,f1=2HZ,f2=2.05HZ,采样频率取为fs =10HZ ,即)/2sin()/2sin()(21s s f n f f n f n x ππ+=要区分出这两种频率成份,必须满足N>400,为什么? a.取x(n)(0≤n<128)时,计算x(n)的DFT X(k)b.将a 中的x (n )以补零方式使其加长到0≤n<512,计算X(k)c.取x(n)( 0≤n<512),计算X(k)(4)令)()()(32n x n x n x +=用FFT 计算16点离散傅立叶变换并画出图形,分析DFT 的对称性 (5))()()(32n jx n x n x +=用FFT 计算16点离散傅立叶变换并画出图形,分析DFT 的对称性 三、实验代码 (1)1、 代码function[Xk]=dft(xn,N)n=[0:1:N-1];k=[0:1:N-1];WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk; %离散傅立叶变换方法定义N=10; %10点DFTn1=[0:N-1];x1=[ones(1,6),zeros(1,N-6)]; %生成1行6列的单位矩阵和1行N-6列的0矩阵Xk1=dft(x1,N); %10点DFTfigure(1);subplot(2,1,1);stem(n1,x1); %画火柴图xlabel(‘n’);ylabel(‘x(n)’);subplot(2,1,2);stem(n1,abs(Xk1));xlabel(‘n’);ylabel(‘x(n)’);N=20;n2=[0:N-1];x2=[ones(1,6),zeros(1,14)];Xk2=dft(x2,N);figure(2);subplot(2,1,1);stem(n2,x2);xlabel(‘n’);ylabel(‘x(n)’);subplot(2,1,2);stem(n2,abs(Xk2));xlabel(‘n’);ylabel(‘x(n)’);2、运行结果图1 10点DFT图2 20点DFT3、结果分析定义x(n)的N 点DFT 为由定义知:DFT 具有隐含周期性,周期与DFT 的变换长度N 一致,这说明,变换长度不一样,DFT 的结果也不一样10)()(1-≤≤=∑-=N k W n x k X N n nkNNjN eW π2-=其中(2)1、代码N=64;n=[0:N-1];x1=[ones(1,4),zeros(1,N-4)];%定义x1(n)=R4(n)nx2=cos((pi/4)*n); %定义x2(n)=cosπ4nx3=sin((pi/8)*n); %定义x3(n)=sinπ8y1=fft(x1);y2=fft(x2);y3=fft(x3); %分别进行DFTfigure(1);m1=abs(y1);subplot(2,1,1); %绘制x1(n)的图形stem(n,x1);subplot(2,1,2); %绘制x1(n)的DFT图形stem(n,m1)figure(2);m2=abs(y2);subplot(2,1,1);stem(n,x2); %绘制x2(n)的图形subplot(2,1,2);stem(n,m2); %绘制x1(n)的DFT图形figure(3);m3=abs(y3);subplot(2,1,1);stem(n,x3); %绘制x3(n)的图形subplot(2,1,2);stem(n,m3); %绘制x1(n)的DFT图形2、运行结果图3 x1(n)的DFT前后图形图4 x2(n)的DFT前后图形图5 x3(n)的DFT前后图形3、结果分析由图可以看出,离散序列的DFT与对应连续函数的FT有对应关系,不同之处在于DFT的结果是离散的,而FT的结果是连续的,再者,DFT结果与DFT 的变换长度N有关。
(3)a、1、程序N=256;n=[0:N-1];x=sin(2*pi*2*n/10)+sin(2*pi*2.05*n/10); %定义xX=fft(x); %DFTfigure(1);subplot(2,1,1);stem(n,x); %绘制xsubplot(2,1,2);plot(n,abs(X)); %绘制DFT后的图形2、运行结果图6 长度为256的DFTb、1、程序N=128;n=[0:N-1];n1=[0:511];x=sin(2*pi*2*n/10)+sin(2*pi*2.05*n/10);x1=[x,zeros(1,384)]; %以补零方式将n加长到512 X1=fft(x1);figure();subplot(2,1,1)stem(n1,x1); %绘制xsubplot(2,1,2);plot(n1,abs(X1)) %绘制DFT后的图形2、运行结果图7 以补零方式加长到512的DFTC、1、程序N1=512;n2=[0:N1-1];x2=sin(2*pi*2*n2/10)+sin(2*pi*2.05*n2/10); %长度为512时变换X2=fft(x2);hold onfigure();subplot(2,1,1);stem(n2,x2); %绘制xsubplot(2,1,2);plot(n2,abs(X2)); %绘制DFT后的图形2、运行结果图8 长度为512的DFT3、结果分析由三种情况下的DFT结果可知,要区分信号中的两个不同频率,需要有一定个数的N,也就是说,N要足够大才可以区分开两个频率;第一种N,N<400,因此DFT后二者频率未被区分开来;第二种N,N以补零的方式加长到512点,大于400,则可以将二者频率区分开来;第三种N,N>400,二者频率分开了;也就是说,区分不同频率从DFT的角度来讲只要加长N的长度,而不管是以补零方式加长还是其他方式加长。
(4)1、程序N=16;n=[0:N-1];x2=cos((pi/4)*n);x3=sin((pi/8)*n);x=x2+x3; %定义前述的序列x2(n)、x3(n)和x(n)y2=fft(x2);y3=fft(x3); y=fft(x); %对x2(n)、x3(n) 和x(n)进行傅立叶变换figure(1);m2=abs(y2);subplot(2,1,1);stem(n,x2); %绘制x2(n)的图形subplot(2,1,2);stem(n,m2) %绘制DFT后的x2(n)图形figure(2);m3=abs(y3);subplot(2,1,1);stem(n,x3); %绘制x3(n)的图形subplot(2,1,2);stem(n,m3); %绘制DFT后的x3(n)图形figure(3);m=abs(y);subplot(2,1,1);stem(n,x); %绘制x(n)的图形subplot(2,1,2);stem(n,m); %绘制DFT后的x(n)图形2、运行结果图9 x2(n)DFT前后的图形图10 x3(n)DFT前后的图形图11 x(n)DFT前后的图形3、结果分析a、x2(n)为实偶对称序列(余弦序列),也可以认为是共轭对称序列;b、x3(n)为实奇对称序列(正弦序列),也可以认为是共轭反对称序列;c、x(n)可以认为是一个分成了共轭对称和共轭反对称序列的实序列,则其DFT的实部对应x2(n),其虚部和j一起对应x3(n);以上就是DFT的共轭对称性的一部分。
(5)1、程序N=16;n=[0:N-1];x1=cos((pi/4)*n)+j*sin((pi/8)*n);y1=fft(x1);figure(1);m1=abs(y1);subplot(2,1,1);stem(n,x1); %绘制x1(n)的图形subplot(2,1,2);stem(n,m1); %绘制DFT后的x1(n)图形2、运行结果图12 x1(n)DFT前后的图形3、结果分析X1(n)可以认为是一个分成了实部和虚部的序列,则其DFT的实部对应共轭对称序列,其虚部和j一起对应共轭反对称序列。
就是DFT的共轭对称性的另一部分。
四、实验小结通过此次实验,我进一步加深DFT算法原理和基本性质的理解;熟悉FFT算法的原理;知道了如何用FFT对连续信号和时域离散信号进行谱分析的方法分析误差及其原因,以便在实际中正确应用FFT。
同时此次实验也加深了我对课本知识的理解,能更加熟练的将课本知识运用的实际问题中。