实验四-离散傅里叶变换

合集下载

数字信号处理 实验4_离散信号的频域分析

数字信号处理 实验4_离散信号的频域分析

实验四离散信号的频域分析1. 计算序列的DTFT和DFT,观察栅栏效应设)()(4nRnx=,要求用MATLAB实现:(1)计算)(nx的傅里叶变换)(ωj eX,并绘出其幅度谱;(2)分别计算)(nx的4点DFT和8点DFT,绘出其幅度谱。

并说明它们和)(ωj eX的关系。

(提示:DFT变换可用MA TLAB提供的函数fft实现,也可以自己用C语言或matlab 编写)源程序:n1=4;n2=8;n=0:n1-1;k1=0:n1-1;k2=0:n2-1;w=2*pi*(0:2047)/2048;Xw=(1-exp(-j*4*w))./(1-exp(-j*w))xn=[(n>=0)&(n<4)];X1k=fft(xn,n1);X2k=fft(xn,n2);subplot(3,1,1)plot(w/pi,abs(Xw));title('x(n)的傅里叶变换的幅度谱')subplot(3,1,2)stem(k1,abs(X1k))title('4点的DFT[x(n)]=X1(k)的幅度谱')subplot(3,1,3)stem(k2,abs(X2k))title('8点的DFT[x(n)]=X1(k)的幅度谱')实验结果图:由实验结果图可知,X(k)是)(ωj e X 的等间隔采样,采样间隔是2π/N 。

2.计算序列的FFT ,观察频谱泄漏已知周期为16的信号)1612cos()1610cos()(n n n x ππ+=。

(1) 截取一个周期长度M=16点,计算其16点FFT 其频谱,并绘出其幅度谱;(2) 截取序列长度M=10点,计算其16点FFT 其频谱,绘出其幅度谱,并与(1)的结果进行比较,观察频谱泄漏现象,说明产生频谱泄漏的原因。

(1)源程序:T=16;fs=1/T;n=0:15;xn=cos(10*pi/16*n*T)+cos(12*pi/16*n*T);Xk=fft(xn,16)stem(n,abs(Xk))实验结果图:(2)源程序:T=16;fs=1/T;n=0:9;xn=cos(10*pi/16*n*T)+cos(12*pi/16*n*T); Xk1=fft(xn,16)stem(0:15,abs(Xk1))实验结果图:如图,可得出,当截取有限长信号时,频谱不再是单一的频谱,它的能量散布到整个频谱的各处。

实验四离散傅立叶变换DFT

实验四离散傅立叶变换DFT

实验四离散傅立叶变换DFT实验四离散傅里叶变换(DFT )一实验目的(1)理解信号变换的基本概念(2)理解离散傅立叶变换的基本概念二实验原理及实例分析 1、离散傅里叶变换傅里叶变换是信号分析和处理的重要工具。

有限长序列作为离散信号的一种,在数字信号处理中占有着极其重要的位置。

对于有限长序列,离散傅立叶变换不仅在理论上有着重要的意义,而且有快速计算的方法-快速傅立叶变换FFT 。

所以在各种数字信号处理的运算方法中,越来越起到核心的作用。

1.1 傅里叶变换的几种形式1、非周期连续时间信号的傅里叶变换非周期连续时间信号)(t x 的傅立叶变换)(ωj X 可以表示为)(ωj X =dt e t x tj ?∞∞--ω)(逆变换为ωωπωd j x t x tj ?∞∞-=)(21)(在这里,ω是模拟角频率。

可以看到,时域的连续函数造成频域的非周期谱,时域的非周期性造成频域的连续谱。

结论:非周期连续时间函数对应于一非周期连续频域变换函数。

2、周期连续时间信号的傅里叶变换周期为T 的周期性连续时间信号)(t x 傅立叶变换是离散频域函数,可表示为-=22)(1)(T T tjm d e t x Tjm X ωωω 逆变换为ωωωd ejm X t x tjm m ∑∞-∞==)()(这就是经常称之为傅里叶级数的变换形式。

在这里,ω也是模拟角频率。

可以看到,时域的连续函数造成频率域的非周期谱,频域函数的离散造成时域函数的周期性。

结论:周期连续时间函数对应于一离散非周期频域变换函数。

3、非周期离散时间信号)(n x 的傅立叶变换)(ωj e X 可以表示为∑∞-∞=-=nnj j e n x e X ωω)()(逆变换为ωπωππωd e e X n x n j j ?-=)(21)( 在这里,ω是数字频率,它和模拟角频率的关系为T Ω=ω。

可以看到,时域的取样对应于频域的周期延拓,而时域函数的非周期性造成频域的连续谱。

实验四离散信号频谱分析

实验四离散信号频谱分析

实验四 离散信号的频域分析一、 实验目的1. 掌握序列的傅里叶变换、离散傅里叶级数、离散傅里叶变换、快速傅里叶变换的Matlab 实现;2.学习用FFT 对连续信号和离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT 。

二、 实验原理及方法1. 离散非周期信号的谱分析 (1) 序列的傅里叶变换对于满足绝对可和的序列,即∞<∑∞∞-|)(|n x ,其傅里叶变换和反变换的定义为∑∞-∞=-=n nj j en x e X ωω)()( (4.1)ωπωππωd eeX n x nj j ⎰-=)(21)( (4.2)序列)(n x 是离散的,但)(ωj e X 是以π2为周期的ω的连续函数,为了能够在计算机上处理,需要对)(n x 进行截断,对频域进行离散化,近似处理后21()()kk n j j nn n X ex n eωω-==∑(4.3)其中2k k Mπω=,M 是对ω在一个周期内的采样,k 的取值由读者确定,若想观察一个周期内的频谱,0~1k M =-,若观察两个周期,0~21k M =-,以此类推。

序列傅里叶变换的Matlab 实现: n=n1:n2;M=input(…put in the number M=‟); k=0:2*M-1; %观察两个周期X=x*(exp(-j*2*pi/M)).^(n ‟*k);%序列的傅里叶变换 对4()R n 进行序列的傅里叶变换得到图4-1。

图4-1 信号及信号的幅度谱和相位谱(2)离散傅里叶变换(DFT )如果序列)(n x 是有限长的,序列的谱分析可以采用离散傅里叶变换,其定义为:10,)()]([)(10-≤≤==∑-=N k W n x n x DFT k X N n knN(4.4)10,)(1)]([)(1-≤≤==∑-=-N n Wk X Nk X IDFT n x N k kn N(4.5)因为)(n x 与)(k X 都是离散的,所以可以利用计算机进行数值计算。

实验四 信号的分解与合成

实验四 信号的分解与合成

实验四信号的分解与合成实验目的:1.了解信号的分解与合成原理;2.掌握连续时间信号的傅里叶级数分解公式及其应用;3.掌握离散时间信号的傅里叶变换公式及其应用。

实验原理:1.信号的分解任何信号都可以分解成若干谐波的叠加。

这是因为任何周期信号都可以表示为若干谐波的叠加。

傅里叶级数分解公式:$$x(t)=\sum_{n=-\infty}^{+\infty} C_ne^{jn\omega_0t}$$其中,$C_n$为信号的各级谐波系数,$\omega_0$为信号的基波频率。

当信号为实信号时,其傅里叶级数中只有实系数,且对称性可利用,因此实际计算中可以只计算正频率系数,即$$x(t)=\sum_{n=0}^{+\infty} A_n\cos(n\omega_0t+\phi_n)$$其中,$A_n$为信号各级谐波幅度,$\phi_n$为各级谐波相位。

若信号不是周期信号,则可以采用傅里叶变换进行分解。

2.信号的合成对于任意信号$y(t)$,都可以表示为其傅里叶系数与基波频率$\omega_0$的乘积的叠加,即$$y(t)=\sum_{n=-\infty}^{+\infty}C_ne^{jn\omega_0t}$$若$y(t)$为实信号,则其傅里叶系数中只有正频率系数,即$$y(t)=\sum_{n=0}^{+\infty}A_n\cos(n\omega_0t+\phi_n)$$实验步骤:一、连续时间信号的傅里叶级数分解1.打开Matlab软件,使用line或scatter等函数绘制出函数$f(x)=x(0<x<2\pi)$的图像。

2.使用Matlab的fft函数对f(x)进行逆傅里叶变换得到其傅里叶级数分解。

3.将得到的傅里叶级数分解与原函数的图像进行比较,分析级数中谐波幅度的变化规律。

二、离散时间信号的傅里叶变换1.使用Matlab生成一个为$sin(\pi k/4),0\le k\le 15$的离散时间信号。

实验四 离散时间信号的傅里叶变换

实验四 离散时间信号的傅里叶变换

实验四离散时间信号的傅里叶变换1.实验目的(1)理解离散序列傅里叶变换的原理和方法。

(2)掌握快速傅里叶变换的原理和方法。

2.实验原理(1)离散傅里叶变换(DFT)和快速傅里叶变换(FFT)在MATLAB中,离散傅里叶正变换采用fft( )函数,离散傅里叶逆变换采用ifft( )函数。

调用格式为:Xk=fft(x) 表示计算信号x的快速傅里叶变换Xk。

Xk=fft(x,N) 表示计算信号x的N点快速傅里叶变换。

xn=ifft(Xk)表示计算Xk的快速傅里叶逆变换xn。

Xn=ifft(Xk,N) 表示计算Xk的N点快速傅里叶逆变换xn。

另外,MATLAB中使用fftshift()函数来移动零频点到频谱中间,重新排列fft( )的输出结果,便于观察傅里叶变换。

其调用格式为:X=fftshift(Xk)(2)离散时间系统的频率特性在用MATLAB计算系统的频率响应时,可调用freqz( )函数进行求解,其调用格式为:H=freqz(b,a,w)其中b为系统函数中分子多项式的系数向量,a为分母多项式的系数向量,w为角频率向量,向量H则返回在w所定义的频率点上系统函数的值。

该函数还有其他调用形式[h,w]=freqz(b,a,n)该形式计算默认范围内n个频率点的系统函数的值(n的默认值为512)。

freqz(b,a)该形式并不返回系统函数的值,而是以对数坐标的方式绘出系统频率响应曲线。

3.实验内容(1)求有限长序列x[n]=(0.7e^(jpi/4))^n,0<=n<=16的傅里叶变换。

N=17;n=0:N-1;x=(0.7*(exp(j*pi/4))).^n;X=fft(x,N);stem(n,fftshift(X));grid on;0246810121416(2)已知无限长序列x[n]=a^n*u[n](a=0.7),用fft( )计算其频谱。

a=0.7;N=51;n=0:N-1;x=(a.^n).*heaviside(n);X=fft(x,N);stem(n,fftshift(X));grid on;05101520253035404550(3)对于矩阵脉冲波序列x[n]=1(-M<=n<=M),0(n为其他值),自取M值用freqs( )函数求幅度频谱。

数字信号处理实验离散傅里叶变换及其特性验证

数字信号处理实验离散傅里叶变换及其特性验证

数字信号处理实验离散傅⾥叶变换及其特性验证数字信号处理实验报告实验名称:离散傅⾥叶变换及其特性验证学号:姓名:评语:成绩:⼀、实验⽬的1、掌握离散时间傅⽴叶变换(DTFT )的计算⽅法和编程技术。

2、掌握离散傅⽴叶变换(DFT )的计算⽅法和编程技术。

3、理解离散傅⽴叶变换(DFT )的性质并⽤MA TLAB 进⾏验证。

⼆、实验原理与计算⽅法1、离散时间傅⽴叶变换如果序列x (n )满⾜绝对可和的条件,即∞<∑∞-∞=n n x |)(|,则其离散时间傅⽴叶变换定义为: ∑∞-∞=-==n nj j en x n x F e X ωω)()]([)( (1)如果x (n )是⽆限长的,则不能直接⽤MATLAB 由x (n )计算X (e j ω),但可以⽤它来估计X (e j ω)表达式在[0,π]频率区间的值并绘制它的幅频和相频(或实部和虚部)曲线。

如果x (n )是有限长的,则可以⽤MATLAB 对任意频率ω处的X (e j ω)进⾏数值计算。

如果要在[0,π]间按等间隔频点估计X (e j ω),则(1)式可以⽤矩阵-向量相乘的运算来实现。

假设序列x (n )在N n n n ≤≤1(即不⼀定在[0, N -1])有N 个样本,要估计下列各点上的X (e j ω):M k k Mk ...,2,1,0==, πω它们是[0,π]之间的(M +1)个等间隔频点,则(1)式可写成: M k n x ee X Nl l kn Mjj l...,2,1,0)()(1==∑=-, πω(2)将{x (n l )}和{X (e j ωk)}分别排列成向量x 和X ,则有:X=Wx (3)其中W 是⼀个(M +1)×N 维矩阵:=≤≤=-M k n n n e N kn M j ...,2,1,0;1, πW将{k }和{n }排成列向量,则????????? ?-=n k W T M j πexp 在MA TLAB 中,把序列和下标排成⾏向量,对(3)式取转置得:?-=k n x X T T T M j πexp其中n T k 是⼀个N ×(M +1)维矩阵。

第四章离散傅里叶变换

第四章离散傅里叶变换

• 设 ~x(n)为周 期 为 N 的 周 期 序 列 , 则 其 离
散 傅 里 叶 级 数 (DFS) 变 换 对 为 :
• 正变换
X~(k)
DFS[~x(n)]
N
1
~x (n)e
j
2 N
nk
N1 ~x (n)WNnk
• 反变换
n0
n0

~x (n)
其中:
IDFS [ X~ (k )]
1 N
x%2 m … 5 4 3 2 1 0 5 4 3 2 1 0 … 10 x%2 1 m … 0 5 4 3 2 1 0 5 4 3 2 1 … 8 x%2 2 m … 1 0 5 4 3 2 1 0 5 4 3 2 … 6 x%2 3 m … 2 1 0 5 4 3 2 1 0 5 4 3 … 10 x%2 4 m … 3 2 1 0 5 4 3 2 1 0 5 4 … 14 x%2 5 m … 4 3 2 1 0 5 4 3 2 1 0 5 … 12
解: y%(n) x%1(m)x%2 (n m)
m0
5
x%1(m)x%2 (n m)
m0
n m …-4 -3 -2 -1 0 1 2 3 4 5 6 7 …
x%1 n / m … 1 1 0 0 1 1 1 1 0 0 1 1 … x%2 n / m … 3 4 5 0 1 2 3 4 5 0 1 2 … y%(n)
1.由非周期连续时间信号推出DFS
• X(t)经过抽样为x(nT),对离散的时间信
号进行DTFT得到周期连续频谱密度函
数。再经过抽样,得到周期性离散频
谱密度函数即为DFS.
x(t)
取样
x(t)
D T

实验四傅里叶变换(FT)及其性质

实验四傅里叶变换(FT)及其性质

实验四傅里叶变换(FT)及其性质一、实验目的1学会运用Matlab求连续时间信号的傅里叶2、学会运用Matlab求连续时间信号的频谱图3、学会运用Matlab分析连续时间信号的傅里叶变换的性质二、实验原理及实例分析(一)傅里叶变换的实现在曲廊讨论的刑期信号中・当WW T *〒时•周期信号就鞘化为非闻期信号・当周期<吋・周期信号的各欢锻波幅度及谱线间編将JS近于尢勢小•但類谱的相时形状像持不变・这样*象来由许多谓鎖#!眦的曲期WT号MAttlK谱Ht会连咸用、够成卄周期们号前诠纹顶讲为r有效地分析ir庇期信号的稠¥ tv h •找门引人广忙w叶交换分折法.倩号川卄的傅卑叶更换宦义为FW 士F[/h)]= [ /<Oc **dx肾堀叶反变换定义为/(I) —F * F<(w) I = f Flcube*"血X」博里叶正反变换称为博里"I変换M■简记为/(D*^F<w)#倍号的1•星叶愛換主!8包括MATLAB将号运算和MATLAB散值分析两稈方ifc・ F 而分WlifflUJL探讨.同时•探讨r if续时純信号的極谐圈・L MATLAB 号运算求解隆MATLAB If号散学Ttl箱提供了祈援求解傅里叶变换峙博屢叶反愛换的函数fouritrt) ifouricrt >4Fmiri史t 变換的ifi句格式分为二种*(])F founcrC/) i它丘符号函数_/ W Fomrirr $换•默认屯冋話关「h的瞩数, (Z h)' F-fourieK/^h它返河碉数F £关十符号时象的歯数•血木是默认的心即r -F*v) /f j}<. z 血,(3) F^fouricK/.w^J,屋对按于禺的函数/进抒變换・返叫臥敢FMt英于卫的満fa "■散.即F(r) - "*dw-,反变换的洽句祐式di分为三种.(U f ikurUHF);r的Fourier 换•迪立变址默认为占默认返岡JtJtTi-的戚数.(2)f = ifourier(F*M):它返Wi隕数丿星M的肃数■而不是JK认的工*(-i J f ifuLLrk-rt F, a tT>) *是对关T '■■'的函数F进行变换*返hd Xi J "的rfi独j・伯幫汴审;的是” ifi数(outicri、及ifourtert )KF Gift'S Eft w”嚙进片足是的笛号变址或瘠罚号我达式・例1用Matlab符号运算求解法求单边指数信号f (t) =^'1化)的FT。

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

实验四:离散傅里叶变换
实验原理:
DFT的快速算法FFT利用了的三个固有特性:(1)对称性(2)周期性(3)可约性。

FFT算法基本上可以分为两大类,即按时间抽选法(DIT,Decimation-In-Time)和按频率抽选法(DIF,Decimation-In-frequency)。

MATLAB中提供了进行快速傅里叶变换的fft函数:
X=fft(x),基2时间抽取FFT算法,x是表示离散信号的向量;X是系数向量;
X=fft(x,N),补零或截断的N点DFT,当x得长度小于N时,对补零使其长度为N,当x的长度大于N时,对x截断使其长度为N。

实验内容:
=60;
n=[0:1:k/2];
xa1=2*sin(10*pi*n/k)+cos(18*pi*n/k);
subplot(321)
stem(n,xa1)
xlabel('N');ylabel('x(n)');
xk1=fft(xa1);xk1=abs(xk1)
subplot(322)
stem(n,xk1)
xlabel('k');ylabel('X(k)');
n=[0:1:k*];
xa1=2*sin(10*pi*n/k)+cos(18*pi*n/k);
subplot(323)
stem(n,xa1)
xlabel('N');ylabel('x(n)');
xk1=fft(xa1);xk1=abs(xk1)
subplot(324)
stem(n,xk1)
xlabel('k');ylabel('X(k)');
n=[0:1:k*2];
xa1=2*sin(10*pi*n/k)+cos(18*pi*n/k);
subplot(325)
stem(n,xa1)
xlabel('N');ylabel('x(n)');
xk1=fft(xa1);xk1=abs(xk1)
subplot(326)
stem(n,xk1)
xlabel('k');ylabel('X(k)');
结果分析:当选取的采样分析长度不为周期信号周期T的整数倍时,就会发生频率泄露,如上图。

反之则不会发生频率泄露
2.
n=[0:7];
L=length(n);
x=ones(L,1);
N=32;
n1=[0:N-1];
xk=fft(x,N);
subplot(221);
n2=(2*pi/N)*[0:(N-1)]';
stem(n2,abs(xk));
xlabel('k'),ylabel('幅度');
title('N = 32');
subplot(223);
stem(n2,angle(xk));
xlabel('k'),ylabel('相位');
N=64;
n1=[0:N-1];
xk=fft(x,N);
subplot(222);
n2=(2*pi/N)*[0:(N-1)]';
stem(n2,abs(xk));
xlabel('k'),ylabel('幅度');
title('N = 64');
subplot(224);
stem(n2,angle(xk));
xlabel('k'),ylabel('相位');
结果分析:当采样点数越大时,用STEM绘制出的图形包络线越接近于真实的连续幅频和相频特性的连续曲线。

相关文档
最新文档