数字信号处理实验二FFT频谱分析

合集下载

数字信号处理实验报告

数字信号处理实验报告

实验一 信号、系统及系统响应一、实验目的1、熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对时域采样定理的理解。

2、熟悉离散信号和系统的时域特性。

3、熟悉线性卷积的计算编程方法:利用卷积的方法,观察、分析系统响应的时域特性。

4、掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号、系统及其系统响应进行频域分析。

二、 实验原理1.理想采样序列:对信号x a (t)=A e −αt sin(Ω0t )u(t)进行理想采样,可以得到一个理想的采样信号序列x a (t)=A e −αt sin(Ω0nT ),0≤n ≤50,其中A 为幅度因子,α是衰减因子,Ω0是频率,T 是采样周期。

2.对一个连续时间信号x a (t)进行理想采样可以表示为该信号与一个周期冲激脉冲的乘积,即x ̂a (t)= x a (t)M(t),其中x ̂a (t)是连续信号x a (t)的理想采样;M(t)是周期冲激M(t)=∑δ+∞−∞(t-nT)=1T ∑e jm Ωs t +∞−∞,其中T 为采样周期,Ωs =2π/T 是采样角频率。

信号理想采样的傅里叶变换为X ̂a (j Ω)=1T ∑X a +∞−∞[j(Ω−k Ωs )],由此式可知:信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期为Ωs =2π/T 。

根据时域采样定理,如果原信号是带限信号,且采样频率高于原信号最高频率分量的2倍,则采样以后不会发生频率混叠现象。

三、简明步骤产生理想采样信号序列x a (n),使A=444.128,α=50√2π,Ω0=50√2π。

(1) 首先选用采样频率为1000HZ ,T=1/1000,观察所得理想采样信号的幅频特性,在折叠频率以内和给定的理想幅频特性无明显差异,并做记录;(2) 改变采样频率为300HZ ,T=1/300,观察所得到的频谱特性曲线的变化,并做记录;(3) 进一步减小采样频率为200HZ ,T=1/200,观察频谱混淆现象是否明显存在,说明原因,并记录这时候的幅频特性曲线。

实验二用DFT及FFT进行谱分析

实验二用DFT及FFT进行谱分析

实验二用DFT及FFT进行谱分析实验二将使用DFT(离散傅里叶变换)和FFT(快速傅里叶变换)进行谱分析。

在谱分析中,我们将探索如何将时域信号转换为频域信号,并观察信号的频谱特征。

首先,我们需要了解DFT和FFT的基本概念。

DFT是一种将时域信号分解为频域信号的数学方法。

它将一个离散时间序列的N个样本转换为具有N个频率点的频率谱。

DFT在信号处理和谱分析中被广泛应用,但它的计算复杂度为O(N^2)。

为了解决DFT的计算复杂度问题,Cooley和Tukey提出了FFT算法,它是一种使用分治策略的快速计算DFT的方法。

FFT算法的计算复杂度为O(NlogN),使得谱分析在实际应用中更加可行。

在实验中,我们将使用Python编程语言和NumPy库来实现DFT和FFT,并进行信号的谱分析。

首先,我们需要生成一个具有不同频率成分的合成信号。

我们可以使用NumPy的arange函数生成一组时间点,然后使用sin函数生成不同频率的正弦波信号。

接下来,我们将实现DFT函数。

DFT将时域信号作为输入,并返回频域信号。

DFT的公式可以表示为:X(k) = Σ(x(n) * exp(-i*2πkn/N))其中,X(k)是频域信号的第k个频率点,x(n)是时域信号的第n个样本,N是信号的长度。

我们将使用循环计算DFT,但这种方法的计算复杂度为O(N^2)。

因此,我们将在实验过程中进行一些优化。

接下来,我们将实现FFT函数。

FFT函数将时域信号作为输入,并返回频域信号。

可以使用Cooley-Tukey的分治算法来快速计算FFT。

FFT的基本思想是将一个长度为N的信号分解为两个长度为N/2的子信号,然后逐步地将子信号分解为更小的子信号。

最后,将所有子信号重新组合以得到频域信号。

实验中,我们将使用递归的方式实现FFT算法。

首先,我们将信号分解为两个子信号,然后对每个子信号进行FFT计算。

最后,将两个子信号的FFT结果重新组合以得到频域信号。

数字信号处理实验:基于FFT谱分析中的误差分析及处理

数字信号处理实验:基于FFT谱分析中的误差分析及处理

学生实验报告2020 —— 2021 学年第 1学期实验课程数字信号处理实验地点主教414学院电子信息工程学院专业通信工程学号姓名实验项目基于FFT谱分析中的误差分析及处理实验时间10.20 实验台号预习成绩报告成绩一、实验目的1.在理论学习的基础上,通过本次实验,加深对快速傅里叶变换的理解,熟悉FFT算法及其程序的编写2.熟悉应用FFT对典型信号进行频谱分析的方法。

3.了解应用FFT对非周期信号进行频谱分析所面临的问题并掌握其解决方法。

二、实验原理对非周期序列进行频谱分析应注意的问题1、混叠三、预习内容1.混叠,泄漏,栅栏效应的概念2.应用FFT对典型信号进行频谱分析的方法3.应用FFT对非周期信号进行频谱分析所面临的问题并掌握其解决方法4.傅里叶变换的相关性质四、实验内容(一)完成如下实验内容的学习和调试1. 对有限长序列进行谱分析(2)将上述有限长序列x(n)[1,2,3,2,1]末尾补零到N=1000点,使用FFT计算其频谱。

2. 对无限长序列进行谱分析用FFT进行无限长序列的频谱分析,首先要将无限长序列截断成一个有限长序列。

序列长度的取值对频谱有较大的影响,带来的问题是引起频谱的泄漏和波动。

已知一个无限长序列为, x(n)=0(n<0),采样频率Fs=20Hz,要求用FFT求其频谱。

3. 对模拟信号进行谱分析(一)用FFT计算下列连续时间信号的频谱,并观察选择不同的Ts和N值对频谱特性的影响。

(二)记录实验图形结果并结合基本原理,理解每一条语句的含义;(三)讨论有限长序列谱分析时增加分辨率的措施和方法;(四)谈论连续信号谱分析时不同时域采样频率及点数N不同时对频谱分析的影响;(五)对模拟信号进行谱分析,选择采样频率Fs=64Hz,变换区间长度N分别取8、32和64,用FFT分析其频谱。

记录结果并对比、分析和讨论。

五、实验步骤Fs=10;xn=[1,2,3,2,1];N=length(xn);D=2*pi*Fs/N;k=floor(-(N-1)/2:(N-1)/2);X=fftshift(fft(xn,N));subplot(1,2,1);plot(k*D,abs(X),'o:');title('幅度频谱');xlabel('rad/s');subplot(1,2,2);plot(k*D,angle(X),'o:');title('相位频谱');xlabel('rad/s');Fs=10;N=1000;xn=[1,2,3,2,1];Nx=length(xn);xn=[1,2,3,2,1,zeros(1,N-Nx-1)];D=2*pi*Fs/N;k=floor(-(N-1)/2:(N-1)/2);X=fftshift(fft(xn,N));subplot(1,2,1);plot(k*D,abs(X)); title('幅度频谱');xlabel('rad/s'); subplot(1,2,2);plot(k*D,angle(X)); title('相位频谱');xlabel('rad/s');Fs=20;C=[8,16,128];for r=0:2;N=C(r+1);n=0:N-1;xn=exp(-0.5*n);D=2*pi*Fs/N;k=floor(-(N-1)/2:(N-1)/2);X=fftshift(fft(xn,N));subplot(3,2,2*r+1); plot(k*D,abs(X));axis([-80,80,0,3]);subplot(3,2,2*r+2);stairs(k*D,angle(X));axis([-80,80,-1,1]);endT0=[0.5,0.25,0.125,0.125];N0=[256,256,2048,2048];for r=1:4;Ts=T0(r);N=N0(r);n=0:N-1;xn=exp(-0.5*n);D=2*pi/(N*Ts);xa=exp(-0.01*n*Ts).*(sin(2*n*Ts)+sin(2.1*n*Ts)+sin(2.2*n*Ts)); k=floor(-(N-1)/2:(N-1)/2);Xa=Ts*fftshift(fft(xa,N));[r,Xa(1)]subplot(2,2,r);plot(k*D,abs(Xa));axis([1,3,1.1*min(abs(Xa)),1.1*max(abs(Xa))]);end六、总结分析1.离散时间信号的FFT变换,其频谱是以抽样点数N为周期的周期延拓2.当N2为N1的整数倍时,以为抽样点数的抽样的图形就是在以为抽样点数的抽样图形的每两个点之间插入N2/N1个点的谱图形。

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算法分析实验实验报告

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 算法本身的近似处理。

数字信号处理实验报告_完整版

数字信号处理实验报告_完整版

实验1 利用DFT 分析信号频谱一、实验目的1.加深对DFT 原理的理解。

2.应用DFT 分析信号的频谱。

3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。

二、实验设备与环境 计算机、MATLAB 软件环境 三、实验基础理论1.DFT 与DTFT 的关系有限长序列 的离散时间傅里叶变换 在频率区间 的N 个等间隔分布的点 上的N 个取样值可以由下式表示:212/0()|()()01N jkn j Nk N k X e x n eX k k N πωωπ--====≤≤-∑由上式可知,序列 的N 点DFT ,实际上就是 序列的DTFT 在N 个等间隔频率点 上样本 。

2.利用DFT 求DTFT方法1:由恢复出的方法如下:由图2.1所示流程可知:101()()()N j j nkn j nN n n k X e x n eX k W e N ωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑ 由上式可以得到:IDFTDTFT( )12()()()Nj k kX e X k Nωπφω==-∑ 其中为内插函数12sin(/2)()sin(/2)N j N x eN ωωφω--= 方法2:实际在MATLAB 计算中,上述插值运算不见得是最好的办法。

由于DFT 是DTFT 的取样值,其相邻两个频率样本点的间距为2π/N ,所以如果我们增加数据的长度N ,使得到的DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样就可以利用DFT 计算DTFT 。

如果没有更多的数据,可以通过补零来增加数据长度。

3.利用DFT 分析连续信号的频谱采用计算机分析连续时间信号的频谱,第一步就是把连续信号离散化,这里需要进行两个操作:一是采样,二是截断。

对于连续时间非周期信号,按采样间隔T 进行采样,阶段长度M ,那么:1()()()M j tj nT a a a n X j x t edt T x nT e ∞--Ω-Ω=-∞Ω==∑⎰对进行N 点频域采样,得到2120()|()()M jkn Na a M kn NTX j T x nT eTX k ππ--Ω==Ω==∑因此,可以将利用DFT 分析连续非周期信号频谱的步骤归纳如下: (1)确定时域采样间隔T ,得到离散序列(2)确定截取长度M ,得到M 点离散序列,这里为窗函数。

数字信号处理-实验二-FFT频谱分析

数字信号处理-实验二-FFT频谱分析

实验三:用FFT对信号作频谱分析10.3.1实验指导1.实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT。

2.实验原理用FFT对信号作频谱分析是学习数字信号处理的重要内容。

经常需要进行谱分析的信号是模拟信号和时域离散信号。

对信号进行谱分析的重要问题是频谱分辨率D和分析误差。

频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2 /N,因此要求2 /N D。

可以根据此式选择FFT的变换区间N。

误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。

周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。

如果不知道信号周期,可以尽量选择信号的观察时间长一些。

对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。

如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。

3•实验步骤及内容(1)对以下序列进行谱分析。

X1 (n) RHn)n 1, 0 n 3X2 (n) 8 n, 4 n 70 ,其它n4 n, 0 n 3X3( n) n 3, 4 n 70, 其它n选择FFT的变换区间N为8和16两种情况进行频谱分析。

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

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

(2)对以下周期序列进行谱分析。

x4(n) cos—n44x5(n) cos( n/4) cos( n/8)选择FFT的变换区间N为8和16两种情况分别对以上序列进行频谱分析。

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

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

(3)对模拟周期信号进行谱分析x6(t) cos8 t cos16 t cos20 t选择采样频率F s 64Hz ,变换区间N=16,32,64 三种情况进行谱分析。

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

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

三、实验内容及步骤
(一)编制实验用主程序及相应子程序
1、在实验之前,认真复习 DFT 和 FFT 有关的知识,阅读本实验原 理与方法和实验附录部分中和本实验有关的子程序,掌握子程序的原理 并学习调用方法。 2、编制信号产生子程序及本实验的频掊分析主程序。实验中需要用 到的基本信号包括: (1)高斯序列: (2)衰减正弦序列: (3)三角波序列: (4)反三角序列:
四、思考题
能说出哪一个低频分量更多一些吗?为什么? 2、 对一个有限长序列进行离散傅里叶变换(DFT),等价于将该序 列周期延拓后进行傅里叶级数(DFS)展开。因为 DFS 也只是取其中一 个周期来运算,所以 FFT 在一定条件下也可以用以分析周期信号序 列。如果实正弦信号,用 16 点的 FFT来做 DFS 运算,得到的频谱是信 号本身的真实谱吗?
(二)上机实验内容
1、观察高斯序列的时域和频域特性 ①固定信号中的参数 p=8,改变 q 的值,使 q 分别等于 2,4,8。观 察它们的时域和幅频特性,了解 q 取不同值的时候,对信号时域特性和 幅频特性的影响。 ②固定 q=8,改变 p,使 p 分别等于 8,13,14,观察参数 p 变化对 信号序列时域及幅频特性的影响。注意 p 等于多少时,会发生明显的泄 漏现象,混淆现象是否也随之出现?记录实验中观察到的现象,绘制相 应的时域序列和幅频特性曲线。 2、观察衰减正弦序列的时域和幅频特性 ①令α=0.1 并且 f=0.0625,检查谱峰出现的位置是否正确,注意频谱 的形状,绘制幅频特性曲线。 ②改变 f=0.4375,再变化 f=0.5625,观察这两种情况下,频谱的形状 和谱峰出现的位置,有无混淆和泄漏现象发生?说明产生现象的原因。 3、观察三角波序列和反三角波序列的时域和幅频特性

数字信号处理实验报告一二

数字信号处理实验报告一二

数字信号处理课程实验报告实验一 离散时间信号和系统响应一. 实验目的1. 熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解2. 掌握时域离散系统的时域特性3. 利用卷积方法观察分析系统的时域特性4. 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号及系统响应进行频域分析二、实验原理1. 采样是连续信号数字化处理的第一个关键环节。

对采样过程的研究不仅可以了解采样前后信号时域和频域特性的变化以及信号信息不丢失的条件,而且可以加深对离散傅里叶变换、Z 变换和序列傅里叶变换之间关系式的理解。

对连续信号()a x t 以T 为采样间隔进行时域等间隔理想采样,形成采样信号: 式中()p t 为周期冲激脉冲,()a x t 为()a x t 的理想采样。

()a x t 的傅里叶变换为()a X j Ω:上式表明将连续信号()a x t 采样后其频谱将变为周期的,周期为Ωs=2π/T 。

也即采样信号的频谱()a X j Ω是原连续信号xa(t)的频谱Xa(jΩ)在频率轴上以Ωs 为周期,周期延拓而成的。

因此,若对连续信号()a x t 进行采样,要保证采样频率fs ≥2fm ,fm 为信号的最高频率,才可能由采样信号无失真地恢复出原模拟信号ˆ()()()a a xt x t p t =1()()*()21()n a a a s X j X j P j X j jn T π∞=-∞Ω=ΩΩ=Ω-Ω∑()()n P t t nT δ∞=-∞=-∑计算机实现时,利用计算机计算上式并不方便,因此我们利用采样序列的傅里叶变换来实现,即而()()j j n n X e x n e ωω∞-=-∞=∑为采样序列的傅里叶变换2. 时域中,描述系统特性的方法是差分方程和单位脉冲响应,频域中可用系统函数描述系统特性。

已知输入信号,可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应。

数字信号处理实验二DFT 和FFT

数字信号处理实验二DFT 和FFT

实验二DFT 和FFT一.实验内容1.认真复习周期序列DFS、有限长序列DFT 的概念、旋转因子的定义、以及DFS 和DFT的性质等有关内容;复习基2-FFT 的基本算法,混合基-FFT 的基本算法、Chirp-Z 变换的算法等快速傅立叶变换的方法。

2.掌握有限长序列的循环移位、循环卷积的方法,对序列共轭对称性的含义和相关内容加深理解和掌握,掌握利用DFT 分析序列的频谱特性的基本方法。

3.掌握FFT 算法的基本原理和方法、Chirp-Z 变换的基本原理和方法,掌握利用FFT 分析序列的频谱特性的方法。

4.熟悉利用MATLAB 进行序列的DFT、FFT 的分析方法。

二.实验内容a. 设周期序列x~(n)={ …,0,1,2,3,0,1,2,3,0,1,2,3,….},求该序列的离散傅立叶级数X(k) = DFS[x~(n)],并画出DFS 的幅度特性。

在matlab中新建函数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;在matlab中输入以下代码:xn=[0,1,2,3];k=0:1:3;N=4;Xk=dfs(xn,N);y=abs(Xk);stem(k,y);title('周期序列的离散傅立叶级数');生成图像如下:由定义可知,对于周期序列,根据离散傅里叶级数公式即可求出,实验中显示了一个周期的傅里叶级数。

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) 对以上结果进行讨论,总结其特点和规律。

数字信号处理FFT频谱分析

数字信号处理FFT频谱分析

数字信号处理FFT频谱分析一、实验目的(1)在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉FFT子程序。

(2)熟悉应用FFT对典型信号进行频谱分析的方法。

(3)了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。

(4)熟悉应用FFT实现两个序列的线性卷积的方法。

(5)初步了解用周期图法做随机信号谱分析的方法。

二、实验原理1、对有限长序列,可以用离散傅里叶变换DFT。

不但可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列某(n)的长度为N时,它的DFT定义为某(k)某(n)W,WNeknNn0N1j2N逆变换为:1某(n)N某(k)Wk0N1knN有限长序列的DFT使其z变换在单位圆上的等距采样。

因此可用于序列的谱分析。

2、用FFT计算线性卷积用FFT可以实现两个序列的圆周卷积。

在一定的条件下,可以使圆周卷积等于线性卷积,一般情况,设两个序列的长度分别为N1和N2,要使圆周卷积等于线性卷积的充要条件是FFT的长度N大于等于N1加N2.对于长度不足N的序列,分别用FFT对它们补零延长到N。

三、实验内容1、已知有限长序列某(n)=[1,0.5,0,0.5,1,1,0.5,0],要求:①用FFT求该序列的DFT、IDFT图形②假设采样频率F=20Hz,序列长度N分别取8、32和64,用FFT计算其幅度频谱和相位频谱。

①程序实验截图:DFT、IDFT图形实验截图:幅度频谱和相位频谱。

2、用FFT计算下面连续信号的频谱,并观察不同的采样周期T和序列长度N值对频谱特性的影响。

程序:实验截图:3、已知序列某(n)=in(0.4n),1<n<15;y=0.9^n,1<n<20,用FFT实现快速卷积,并测试直接卷积和快速卷积的时间。

程序:实验截图:。

用FFT作谱分析实验报告

用FFT作谱分析实验报告

数字信号处理 实验报告FFT 的谱分解一、实验目的:1、在理论学习的基础上,通过本实验,加深对FFT 的理解,熟悉MATLAB 中的有关函数。

2、熟悉应用FFT 对典型信号进行频谱分析的方法。

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

3、学习用FFT 对连续信号和时域离散信号进行谱分析的方法。

了解应用FFT 进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT 。

二、实验原理:1.快速傅立叶变换(FFT)算法长度为N 的序列)(n x 的离散傅立叶变换)(k X 为:∑-=-==101,....,0,)()(N n nkN N k W n x k XN 点的DFT 可以分解为两个N/2点的DFT ,每个N/2点的DFT 又可以分解为两个N/4点的DFT 。

依此类推,当N 为2的整数次幂时(M N 2=),由于每分解一次降低一阶幂次,所以通过M 次的分解,最后全部成为一系列2点DFT 运算。

以上就是按时间抽取的快速傅立叶变换(FFT)算法。

当需要进行变换的序列的长度不是2的整数次方的时候,为了使用以2为基的FFT ,可以用末尾补零的方法,使其长度延长至2的整数次方。

序列)(k X 的离散傅立叶反变换为x n NX k Wn N Nnk k N ()(),,....,==--=-∑10101离散傅立叶反变换与正变换的区别在于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 来对连续信号进行谱分析。

数字信号处理实验

数字信号处理实验

数字信号处理实验数字信号处理实验讲义前⾔ (2)实验⼀MATLAB简介 (3)实验⼆⽤FFT实现信号的谱分析 (5)实验三IIR数字巴特沃思滤波器的设计 (8)实验四FIR数字滤波器的设计 (9)前⾔信号处理与计算机的应⽤紧密结合。

⽬前⼴泛应⽤的MA TLAB⼯具软件包,以其强⼤的分析、开发及扩展功能为信号处理提供了强有⼒的⽀持。

在数字信号处理实验中,我们主要应⽤MA TLAB的信号处理⼯具箱及其灵活、便捷的编程⼯具,通过上机实验,帮助学⽣学习、掌握和应⽤MA TLAB软件对信号处理所学的内容加以分析、计算,加深对信号处理基本算法的理解。

实验⼀ MATLAB 简介实验⽬的1.熟悉MATLAB 软件的使⽤⽅法; 2.MA TLAB 的绘图功能;3.⽤MA TLAB 语句实现信号的描述及变换。

实验原理1.在MA TLAB 下编辑和运⾏程序在MA TLAB 中,对于简单问题可以在命令窗(command windows )直接输⼊命令,得到结果;对于⽐较复杂的问题则可以将多个命令放在⼀个脚本⽂件中,这个脚本⽂件是以m 为扩展名的,所以称之为M ⽂件。

⽤M ⽂件进⾏程序的编辑和运⾏步骤如下:(1)打开MA TLAB ,进⼊其基本界⾯;(2)在菜单栏的File 项中选择新建⼀个M ⽂件;(3)在M ⽂件编辑窗⼝编写程序;(4)完成之后,可以在编辑窗⼝利⽤Debug ⼯具调试运⾏程序,在命令窗⼝查看输出结果;也可以将此⽂件保存在某个⽬录中,在MATLAB 的基本窗⼝中的File 项中选择Run The Script ,然后选择你所要运⾏的脚本⽂件及其路径,即可得出结果;也可以将此⽂件保存在当前⽬录中,在MA TLAB 命令窗⼝,“>>”提⽰符后直接输⼊⽂件名。

2.MA TLAB 的绘图功能plot(x,y) 基本绘图函数,绘制 x 和y 之间的坐标图。

figure(n ) 开设⼀个图形窗⼝nsubplot(m,n,N) 分割图形窗⼝的MATLAB 函数,⽤于在⼀个窗⼝中显⽰多个图形,将图形窗⼝分为m ⾏n 列,在第N 个窗⼝内绘制图形。

数字信号处理_快速傅里叶变换FFT实验报告

数字信号处理_快速傅里叶变换FFT实验报告

数字信号处理_快速傅里叶变换FFT实验报告快速傅里叶变换(FFT)实验报告1. 引言数字信号处理是一门研究如何对数字信号进行处理、分析和提取信息的学科。

傅里叶变换是数字信号处理中常用的一种方法,可以将信号从时域转换到频域。

而快速傅里叶变换(FFT)是一种高效的计算傅里叶变换的算法,广泛应用于信号处理、图像处理、通信等领域。

2. 实验目的本实验旨在通过编写程序实现快速傅里叶变换算法,并对不同信号进行频谱分析。

3. 实验原理快速傅里叶变换是一种基于分治策略的算法,通过将一个N点离散傅里叶变换(DFT)分解为多个较小规模的DFT,从而实现高效的计算。

具体步骤如下: - 如果N=1,直接计算DFT;- 如果N>1,将输入序列分为偶数和奇数两部分,分别计算两部分的DFT;- 将两部分的DFT合并为整体的DFT。

4. 实验步骤此处以C语言为例,给出实验的具体步骤:(1) 定义输入信号数组和输出频谱数组;(2) 实现快速傅里叶变换算法的函数,输入参数为输入信号数组和输出频谱数组;(3) 在主函数中调用快速傅里叶变换函数,得到输出频谱数组;(4) 对输出频谱数组进行可视化处理,如绘制频谱图。

5. 实验结果与分析为了验证快速傅里叶变换算法的正确性和有效性,我们设计了以下实验:(1) 生成一个正弦信号,频率为100Hz,采样频率为1000Hz,时长为1秒;(2) 对生成的正弦信号进行快速傅里叶变换,并绘制频谱图;(3) 生成一个方波信号,频率为200Hz,采样频率为1000Hz,时长为1秒;(4) 对生成的方波信号进行快速傅里叶变换,并绘制频谱图。

实验结果显示,对于正弦信号,频谱图中存在一个峰值,位于100Hz处,且幅度较大;对于方波信号,频谱图中存在多个峰值,分别位于200Hz的奇数倍处,且幅度较小。

这与我们的预期相符,说明快速傅里叶变换算法能够正确地提取信号的频谱信息。

6. 实验总结通过本次实验,我们成功实现了快速傅里叶变换算法,并对不同信号进行了频谱分析。

数字信号处理实验二

数字信号处理实验二

实验二 快速傅里叶变换(FFT)及其应用一、思考题(1) 实验中的信号序列()c x n 和()d x n 在单位圆上的z 变换频谱()()c j j d X e X e ωω和会相同吗如果不同,说出哪一个低频分量更多一些,为什么答:设j Z r e ω=⨯ ()()n n G z g n z ∞-=-∞=⨯∑因为为单位圆,故r=1.因为()()j j n n G e g n eωω∞-=-∞=⨯∑,故3723456704()(8)23432j j n j n j j j j j j j c n n X e nen e e e e e e e e ωωωωωωωωωω---------===+-=++++++∑∑ 7235670()(4)43223j j n j j j j j j d n X e n ee e e e e e ωωωωωωωω-------==-=+++---∑比较可知频谱不相同,()c X n 的低频分量多。

(2) 对一个有限长序列进行DFT 等价于将该序列周期延拓后进行DFS 展开,因为DFS 也只是取其中一个周期来运算,所以FFT 在一定条件下也可以用以分析周期信号序列。

如果实正弦信号()sin(2),0.1x n fn f π== 用16点FFT 来做DFS 运算,得到的频谱是信号本身的真实谱吗为什么答:针对原来未经采样的连续时间信号来说,FFT 做出来的永远不会是信号本身的真实频谱,只能够是无限接近。

FFT 频谱泄露问题是一定会存在的,因为毕竟采样率再高,也不能完全达到原来的连续时间信号准确。

原题的采样率是1/10,就是将2*pi 分成10份,即每个正弦波周期进行10次采样,这样的采样率很低,而最后你只截取16个点来做分析,泄露一般会挺严重,看到的频谱,应该是一个上头尖,下面慢慢变宽的尖锥形,而纯正的正弦波的理想频谱应该是在某频点只有一个尖峰。

二.?实验原理:?(1)混叠:采样序列的频谱是被采样信号频谱的周期延拓,当采样频率不满足奈奎斯特采样定理的时候,就会发生混叠,使得刺痒后的序列信号的频谱不能真实的反映原采样信号的频谱。

实验二快速傅里叶变换(FFT)及其应用

实验二快速傅里叶变换(FFT)及其应用

《数字信号处理》课程
(2010-2011学年第1学期)成绩:
实验二快速傅里叶变换(FFT)及其应用
学生姓名:闫春遐
所在院系:电子信息工程学院自动化系
年级专业:2008级自动化系
学号:00824049
指导教师:王亮
完成日期:2010年9月27日
实验二快速傅里叶变换(FFT )及其应用
一、实验目的(1)在理论学习的基础上,通过本实验,加深对
FFT 的理解,熟悉MATLAB 中的有关函数。

(2)应用FFT 对典型信号进行频谱分析。

(3)了解应用FFT 进行信号频谱分析过程可能出现的问题,以便在实际中正确应用FFT 。

(4)应用FFT 实现序列的线性卷积和相关。

二、实验内容
实验中用到的信号序列:
a )高斯序列
2
()015()0
n p q a e n
x n 其他b )衰减正弦序列
sin(2)
015()0an b e fn n x n 其他
c )三角波序列
03()847
0c n
n x n n
n 其他d )反三角波序列
4
03()447
0d n n x n n
n 其他上机实验内容:
(1)观察高斯序列的时域和幅频特性,固定信号()a x n 中参数8p ,改变q 的值,使q 分别等于2、4、8,观察他们的时域和幅频特性,了解当
q 取不同值时,对信号的时域和幅频特性的影响;固定8q ,改变p ,使p 分别等于8、13、。

数字信号处理实验:利用FFT分析连续信号频谱

数字信号处理实验:利用FFT分析连续信号频谱

数字信号处理课程实验实验报告实验一 利用FFT 分析连续信号频谱一、 实验目的1、 进一步加深离散傅里叶变换DFT 原理的理解;2、 应用离散傅里叶变换DFT (实际应用FFT 计算)分析连续信号的频谱;3、 深刻理解利用DFT 分析连续信号的频谱的原理,分析工程中常出现的现象及解决方法。

二、 实验原理1、 利用DFT 分析连续时间周期信号的频谱周期为Tp 的周期性连续时间信号)(t x p 的频谱(傅里叶级数的系数))(Ωjk x p 是非周期离散谱,定义为)(Ωjk x p =dt e t x p1tjk p p 0Ω-⎰)(T T 其中f 2p2ππ==ΩT 为信号的基频,Ωk 为信号的谐频,谱线间隔为Ω。

通过时域采样就可以利用DFT 分析连续周期信号的频谱。

其步骤为: ① 确定周期信号的基本周期Tp ;② 计算一个周期内的采样点数N ,若周期信号的最高频谱为Ωp ,则频谱中有2p+1 根谱线;若周期信号的频谱无限宽,则认为集中信号90%以上(或根据实际需要)能量的前p+1 个谐波为近似的频谱范围,其余的谐波忽略不计。

取N ≥2p+1; ③ 对连续周期信号以采样间隔NT T p=进行采样 ; ④ 利用FFT 计算采样信号的N 点DFT ,得到()k X ; ⑤ 最后求出连续周期信号的频谱为)(Ωjk x p =N1()k X 。

因为对连续周期信号按采样间隔NT T p=进行采样,每个周期抽取N 点时,则有 t=nT ,Tp=NT那么 )(Ωjk x p =dt et x p 1tjk p p 0Ω-⎰)(T T =∑-=-10n n p 2jk e n x p N T T T T T π)( =∑-=-1n n N 2jk e n x N 1N T π)(=)(k N 1X若能按照满足采样定理的采样间隔进行抽样,并且采取整周期为信号分析的长度,则利用FFT 计算得到的离散频谱值等于连续周期信号频谱)(Ωjk x p 的准确值。

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

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

实验二 应用 FFT 对信号进行频谱分析一、实验目的1、在理论学习的基础上,通过本次实验,加深对快速傅里叶变换的理解,熟悉 FFT 算法及其程序的编写。

2、熟悉应用 FFT 对典型信号进行频谱分析的方法。

3、了解应用 FFT 进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用 FFT 。

二、实验原理与方法一个连续信号 )(t x a 的频谱可以用它的傅立叶变换表示为⎰+∞∞-Ω-=Ωdt e t x j X t j a a )()( (2-1)如果对该信号进行理想采样,可以得到采样序列)()(nT x n x a = (2-2)同样可以对该序列进行z 变换,其中T 为采样周期∑+∞-∞=-=n n z n x z X )()( (2-3) 当 ωj ez =的时候,我们就得到了序列的傅立叶变换 ∑+∞-∞=-=n n j j e n x e X ωω)()( (2-4)其中ω称为数字频率,它和模拟域频率的关系为s f T Ω=Ω=ω(2-5)式中的s f 是采样频率。

上式说明数字频率是模拟频率对采样率s f 的归一化。

同模拟域的情况相似,数字频率代表了序列值变化的速率,而序列的傅立叶变换称为序列的频谱。

序列的傅立叶变换和对应的采样信号频谱具有下式的对应关系∑-=)2(1)(Tm j X T e X a j πωω (2-6) 即序列的频谱是采样信号频谱的周期延拓。

从式(2-6)可以看出,只要分析采样序列的频谱,就可以得到相应的连续信号的频谱。

注意:这里的信号必须是带限信号,采样也必须满足 Nyquist 定理。

在各种信号序列中,有限长序列在数字信号处理中占有很重要的地位。

无限长的序列也往往可以用有限长序列来逼近。

对于有限长的序列我们可以使用离散傅立叶变换(DFT ),这一变换可以很好地反应序列的频域特性,并且容易利用快速算法在计算机上实现当序列的长度是 N 时,我们定义离散傅立叶变换为:∑-===10)()]([)(N n kn NW n x n x DFT K X (2-7) 其中,N j N e W π2-=它的反变换定义为:∑-=-==10)(1)]([)(N k kn N W k X N k X IDFT n x (2-8) 根据式(2-3)和(2-7)令 k N W z -=,则有)]([)()(10n x DFT W n x z X N n kn N W z k N ==∑-==- (2-9)可以得到 k N k N j W z W e z X k X k N -===-,)()(2π是 z 平面单位圆上幅角为k Nπω2=的点,就是将单位圆进行 N 等分以后第 k 个点。

《数字信号处理》实验指导书

《数字信号处理》实验指导书

的相角, Ai 就是极点 pi 到单位圆上的点 e jω 的矢量长度(距离),而θ i 就是该矢量 的相角,因此有:
M
∏ B e j(ψ1 +ψ 2 +⋅⋅⋅⋅+ψ M ) j
H (e jω ) =
j =1 N
= H (e jω ) e jϕ (ω )
∏ A e j(θ1+θ2 +⋅⋅⋅⋅+θ N ) i
(1) 设有直流信号 g(t)=1,现对它进行均匀取样,形成序列 g(n)=1。试讨 论若对该序列分别作加窗、补零,信号频谱结构有何变化。 四、实验过程及结果(含程序)
12
13
14
15
16
实验三 IIR 数字滤波器的设计
一、实验目的 (1)掌握双线性变换法及脉冲相应不变法设计 IIR 数字滤波器的具体设计 方法及其原理,熟悉用双线性变换法及脉冲响应不变法设计低通、高通和 带通 IIR 数字滤波器的计算机编程。 (2)观察双线性变换及脉冲响应不变法设计的滤波器的频域特性,了解双 线性变换法及脉冲响应不变法的特点。 (3)熟悉 Butterworth 滤波器、Chebyshev 滤波器和椭圆滤波器的频率特 性
《数字信号处理》
实验指导书
班级: 学号: 姓名: 苏州科技学院 电子教研室
实验一 信号、系统及系统响应
一、实验目的
(1) 熟悉 MATLAB 平台的使用,掌握离散信号、离散系统的 MATLAB 实现。 (2)掌握根据系统函数绘制系统零极点分布图的基本原理和方法。 (3)理解离散系统频率特性分析的基本原理,掌握根据系统函数零极点分布来分 析离散系统频率响应的几何矢量法。
17
变换类型 低通
Байду номын сангаас
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三:用FFT 对信号作频谱分析10.3.1 实验指导1.实验目的学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析 误差及其原因,以便正确应用FFT 。

2. 实验原理用FFT 对信号作频谱分析是学习数字信号处理的重要容。

经常需要进行谱分析的信号是模拟信号和时域离散信号。

对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。

频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是N /2π,因此要求D N ≤/2π。

可以根据此式选择FFT 的变换区间N 。

误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。

周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。

如果不知道信号周期,可以尽量选择信号的观察时间长一些。

对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。

如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。

3.实验步骤及容(1)对以下序列进行谱分析。

⎪⎩⎪⎨⎧≤≤-≤≤-=⎪⎩⎪⎨⎧≤≤-≤≤+==其它nn n n n n x 其它nn n n n n x n R n x ,074,330,4)(,074,830,1)()()(3241选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。

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

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

(2)对以下周期序列进行谱分析。

4()cos4x n n π=5()cos(/4)cos(/8)x n n n ππ=+选择FFT 的变换区间N 为8和16 两种情况分别对以上序列进行频谱分析。

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

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

(3)对模拟周期信号进行谱分析6()cos8cos16cos20x t t t t πππ=++选择 采样频率Hz F s 64=,变换区间N=16,32,64 三种情况进行谱分析。

分别打印其幅频特性,并进行分析和讨论。

4.思考题(1)对于周期序列,如果周期不知道,如何用FFT 进行谱分析? (2)如何选择FFT 的变换区间?(包括非周期信号和周期信号)(3)当N=8时,)(2n x 和)(3n x 的幅频特性会相同吗?为什么?N=16 呢? 5.实验报告要求(1)完成各个实验任务和要求。

附上程序清单和有关曲线。

(2)简要回答思考题。

实验容(1)x1n=[ones(1,4)]; X1k8=fft(x1n,8); X1k16=fft(x1n,16); N=8;f=2/N*(0:N-1);subplot(1,2,1);stem(f,abs(X1k8),'.'); title('(la) 8点DFT[x_1(n)]');xlabel('频谱特性');ylabel('幅度'); N=16;f=2/N*(0:N-1);subplot(1,2,2);stem(f,abs(X1k16),'.'); title('(la) 16点DFT[x_1(n)]'); xlabel('频谱特性');ylabel('幅度');M=8;xa=1:(M/2);xb=(M/2):-1:1; x2n=[xa,xb]; x3n=[xb,xa]; X2k8=fft(x2n,8);X2k16=fft(x2n,16); X3k8=fft(x3n,8); X3k16=fft(x3n,16); figure(2); N=8;f=2/N*(0:N-1);subplot(2,2,1);stem(f,abs(X2k8),'.'); title('(2a) 8点DFT[x_2(n)]');xlabel('频谱特性');ylabel('幅度'); subplot(2,2,3);stem(f,abs(X3k8),'.'); title('(3a) 8点DFT[x_3(n)]');xlabel('频谱特性');ylabel('幅度'); N=16;f=2/N*(0:N-1);subplot(2,2,2);stem(f,abs(X2k16),'.'); title('(2a) 16点DFT[x_2(n)]'); xlabel('频谱特性');ylabel('幅度'); subplot(2,2,4);stem(f,abs(X3k16),'.'); title('(3a) 16点DFT[x_3(n)]'); xlabel('频谱特性');ylabel('幅度');图(1a )和(1b )说明14()()x n R n =的8点DFT 和16点DFT 分别是1()x n 的频谱函数的8点和16点采样; 因为3288()((3))()x n x n R n =+,所以,3()x n 与2()x n 的8点DFT 的模相等,如图(2a )和(3a )。

但是,当N=16时,3()x n 与2()x n 不满足循环移位关系,所以图(2b )和(3b )的模不同。

(2)N=8;n=0:N-1; x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8); X4k8=fft(x4n,8); X4k16=fft(x4n,16); X5k8=fft(x5n,8); X5k16=fft(x5n,16); figure(3); N=8;f=2/N*(0:N-1);subplot(2,2,1);stem(f,abs(X4k8),'.'); title('(4a) 8点DFT[x_4(n)]');xlabel('频谱特性');ylabel('幅度'); subplot(2,2,3);stem(f,abs(X5k8),'.'); title('(5a) 8点DFT[x_5(n)]');xlabel('频谱特性');ylabel('幅度'); N=16;f=2/N*(0:N-1);subplot(2,2,2);stem(f,abs(X4k16),'.'); title('(4b) 16点DFT[x_4(n)]'); xlabel('频谱特性');ylabel('幅度'); subplot(2,2,4);stem(f,abs(X5k16),'.'); title('(5b) 16点DFT[x_5(n)]'); xlabel('频谱特性');ylabel('幅度');对周期序列谱分析4()cos4x n n π=的周期为8,所以N=8和N=16均是其周期的整数倍,得到正确的单一频率正弦波的频谱,仅在0.25π处有1根单一谱线。

如图(4b )和(4b )所示。

5()cos(/4)cos(/8)x n n n ππ=+的周期为16,所以N=8不是其周期的整数倍,得到的频谱不正确,如图(5a )所示。

N=16是其一个周期,得到正确的频谱,仅在0.25π和0.125π处有2根单一谱线, 如图(5b )所示。

(3)Fs=64;T=1/Fs; N=16;n=0:N-1; nT=n*T;x8n=cos(8*pi*nT)+cos(16*pi*nT)+cos(20*pi*nT); X8k16=fft(x8n,16); N=16;f=2/N*(0:N-1); figure(4);subplot(2,2,1);stem(f,abs(X8k16),'.'); title('(6a) 16点DFT[x_8(n)]'); xlabel('频谱特性');ylabel('幅度'); N=32;n=0:N-1; nT=n*T;x8n=cos(8*pi*nT)+cos(16*pi*nT)+cos(20*pi*nT); X8k32=fft(x8n,32);N=32;f=2/N*(0:N-1); figure(4);subplot(2,2,2);stem(f,abs(X8k32),'.'); title('(6b) 32点DFT[x_8(n)]'); xlabel('频谱特性');ylabel('幅度'); N=64;n=0:N-1; nT=n*T;x8n=cos(8*pi*nT)+cos(16*pi*nT)+cos(20*pi*nT); X8k64=fft(x8n,64); N=64;f=2/N*(0:N-1); figure(4);subplot(2,2,3);stem(f,abs(X8k64),'.'); title('(6c) 64点DFT[x_8(n)]'); xlabel('频谱特性');ylabel('幅度');实验容(3),对模拟周期信号谱分析6()cos8cos16cos20x t t t t πππ=++6()x t 有3个频率成分,1234,8,10f Hz f Hz f Hz ===。

所以6()x t 的周期为0.5s 。

采样频率12364168 6.4s F Hz f f f ====。

变换区间N=16时,观察时间Tp=16T=0.25s ,不是6()x t 的整数倍周期,所以所得频谱不正确,如图(6a )所示。

变换区间N=32,64 时,观察时间Tp=0.5s ,1s ,是6()x t 的整数周期,所以所得频谱正确,如图(6b )和(6c )所示。

图中3根谱线正好位于4,8,10Hz Hz Hz 处。

变换区间N=64 时频谱幅度是变换区间N=32 时2倍,这种结果正好验证了用DFT 对中期序列谱分析的理论。

思考题:。

相关文档
最新文档