利用傅立叶变换计算线性卷积
实验二 DFT(FFT)的应用—利用FFT实现快速卷积

姓名:高铭遥 班级:16131701 学号:1120171450 成绩:实验二 DFT/FFT 的应用-利用FFT 实现快速卷积[实验目的]1.深刻理解DFT/FFT 的概念和性质,进一步掌握圆周卷积和线性卷积两者之间的关系。
2.掌握DFT/FFT 的应用。
理解FFT 在实现数字滤波(或快速卷积)中的重要作用,更好地利用FFT 进行数字信号处理。
[实验内容及要求]1.给定两个序列()[]2,1,1,2x n =,()[]1,1,1,1h n =--。
首先直接在时域计算两者的线性卷积;然后用FFT 快速计算二者的线性卷积,验证结果。
(1)线性卷积 程序代码:figure(1);N1=4; N2=4; xn=[2,1,1,2]; hn=[1,-1,-1,1];N=N1+N2-1;%卷积后的序列长度 yn=conv(xn,hn);%线性卷积 x=0:N-1;stem(x,yn);title('线性卷积'); 运行结果:(2)FFT 卷积快速卷积 程序代码: figure(1); n=0:1:3; m=0:1:3;N1=length(n);%xn 的序列长度 N2=length(m);%hn 的序列长度 xn=[2,1,1,2]; hn=[1,-1,-1,1];姓名:高铭遥 班级:16131701 学号:1120171450 成绩:N=N1+N2-1;%卷积后的序列长度XK=fft(xn,N);%xn 的离散傅里叶变换 HK=fft(hn,N);%hn 的离散傅里叶变换 YK=XK.*HK;yn=ifft(YK,N);%逆变换if all(imag(xn)==0)&&(all(imag(hn)==0))%实序列的循环卷积仍为实序列 yn=real(yn); endx=0:N-1;stem(x,yn);title('FFT 卷积'); 运行结果:结果分析:对比(1)和(2)直接线性卷积和FFT 快速卷积的结果可以验证,用FFT 线性卷积的结果是与直接卷积的结果相同的,FFT 可以实现快速卷积,提高运算速度。
信号分析与处理——傅里叶变换性质

1. 线性 2. 奇偶性 3. 对偶性 4. 尺度变换特性 5. 时移特性
6.
频移特性
7.
微分特性
8.
积分特性
9. 帕斯瓦尔定理
10. 卷积定理
1、线性(叠加性)
若:
x1 (t) X1 ()
x2 (t) X 2 ()
则: a1x1 (t) a2 x2 (t) a1 X 1 () a2 X 2 ()
Sa(t0
)e
j t0 2
2
由积分性质,可得 的x频2 (谱t)为
X 2 ()
X1() j
X1(0) ()
又因为: 所以得:
X1(0) 1
X 2 ()
1
Sa(
t0
)e
j
t0 2
j 2
()
9、帕斯瓦尔定理
若: x(t) X ()
则:
x(t) 2 dt 1 X () 2 d
2
式(2-100)为有限能量信号的帕斯瓦尔公式
2
)
由线性和时移特性,有:
X
2
()
3Sa(
3
2
)
X
()
1 2
e
j
5 2
X 1 ( )
e
j 5 2
X
2
()
e
j 5 2
1 2
Sa(
2
)
3Sa( 3
2
)
例:求三脉冲信号的频谱
g (t为)P36页的标准矩形脉冲信号
求如下三脉冲信号的频谱函数
x(t) g(t) g(t T ) g(t T )
解:
X () G()(1 e jT e jT ) G()(1 2 cosT ) E Sa( )(1 2 cosT )
傅里叶变换进行卷积

傅里叶变换进行卷积
傅里叶变换可以用于进行卷积运算。
傅里叶变换将信号从时域转换到频域,因此可以通过对两个信号的傅里叶变换进行点对点乘积来模拟它们在时域中的卷积。
具体来说,假设有两个信号f(t)和g(t),它们的傅里叶变换分别为F(w)和G(w)。
那么,f(t)和g(t)的卷积在频域中的表示为F(w)和G(w)的乘积,即:
卷积结果在频域= F(w) ×G(w)
需要注意的是,傅里叶变换有线性性质,即对于任意常数c1和c2,有:
c1f(t)+c2g(t)↔c1F(w)+c2G(w)c1f(t)+c2g(t)\Rightarrow
c1F(w)+c2G(w)c1f(t)+c2g(t)↔c1F(w)+c2G(w)
因此,卷积运算在频域中也可以表示为两个信号傅里叶变换的和。
另外,卷积运算还有可分离性质,即如果两个信号在时域中的卷积可以表示为其中一个信号在不同时间位置的复制与另一个信号的卷积,那么它们的傅里叶变换的乘积也可以通过将两个信号的傅里叶变换分别进行逆变换后再相乘得到。
需要注意的是,傅里叶变换只是将信号从时域转换到频域的一种工具,卷积运算的本质仍然是在时域中进行的。
数字信号处理名词解析及滤波器原理和设计

论述计算题(40分)1、试分析DFT与DTFT及Z变换之间的关系,并详细阐述用DFT计算线性卷积的方法和步骤。
FT(傅里叶变换)是对纯虚数变换的情况,是拉普拉斯变换的特殊情况,即傅里叶变换是S仅在虚轴上取值的拉普拉斯变换。
Z变换是离散化的拉普拉斯变换(即拉普拉斯变换对应的是连续信号,而Z变换对应的是离散信号),是离散时间傅里叶变换(DTFT)的一种拓展形式,所以Z变换和拉普拉斯变换类似。
DFT(离散傅里叶变换)是傅里叶变换的离散形式,也即将x(t)进行傅里叶变换后进行离散采样得的函数X[jw]DTFT(离散时间傅里叶变换)为将x(t)先进行离散采样处理得到离散时间系列x[n],然后再对x[n]进行傅里叶变换。
可以看作是将()jwX e在频域展开为傅立叶级数,傅立叶系数即是x[n]。
DTFT是Z变换的特殊情况,只有绝对可和的离散信号才有DTFT,所以Z变换用于那些不满足绝对可和的信号,如T j Tz eσ+Ω=(T 是采样间隔),当σ=0时,就是DTFT。
此时其时域是离散的,而频域依然是连续的。
图像上,对应的是z平面的单位圆。
用DFT计算线性卷积:线性卷积:一个离散序列通过一个离散的线性时不变系统,它的输出即为y[k],即在时域上,输出信号等于输入信号和系统的单位脉冲响应h[k] 的卷积。
即:y[][]*[]k x k h k=y[k]利用DFT 的循环卷积特性,可由DFT 计算线性卷积:比如若系列x[k]的长度为N,系列h[k]的长度为M,则L>=N+M-1点的循环卷积等于x[k]与h[k]的线性卷积。
即:x[k]*h[k]=x1[k] h1[k]DFT实现具体过程为:1. 首先将两序列在尾部补零,延拓成长度为L=M+N -1的序列2. 将两序列进行循环卷积,卷积后的结果即为线性卷积的结果 即:其中乘法总次数为:23log 2LL L ⨯+ 结论:线性卷积可以完全使用DFT 实现,而DFT 可以使用其快速算法FFT 大大降低计算量。
离散时间信号的傅里叶变换和离散傅里叶变换

离散时间信号的傅里叶变换和离散傅里叶变换摘要本文主要介绍了离散时间信号的离散时间傅里叶变换及离散傅里叶变换,说明其在频域的具体表示和分析,并通过定义的方法和矩阵形式的表示来给出其具体的计算方法。
同时还介绍了与离散时间傅里叶变换(DTFT )和离散傅里叶变换(DFT )相关的线性卷积与圆周卷积,并讲述它们之间的联系,从而给出了用圆周卷积计算线性卷积的方法,即用离散傅里叶变换实现线性卷积。
1. 离散时间傅里叶变换1.1离散时间傅里叶变换及其逆变换离散时间傅里叶变换为离散时间序列x[n]的傅里叶变换,是以复指数序列{}的序列来表示的(可对应于三角函数序列),相当于傅里叶级数的展n j e ω-开,为离散时间信号和线性时不变系统提供了一种频域表示,其中是实频率ω变量。
时间序列x[n]的离散时间傅里叶变换定义如下:)(ωj e X (1.1)∑∞-∞=-=nnj j e n x e X ωω][)(通常是实变量的复数函数同时也是周期为的周期函数,并且)(ωj e X ωπ2的幅度函数和实部是的偶函数,而其相位函数和虚部是的奇函数。
)(ωj e X ωω这是由于:(1.2))()()(tan )()()()(sin )()()(cos )()(222ωωωωωωωωωωθωθωθj re j im j im j re j j j im j j re e X e X e X e X e X e X e X e X e X =+===由于式(1.1)中的傅里叶系数x[n]可以用下面给出的傅里叶积分从中算出:)(ωj e X 1(1.3)ωπωππωd e eX n x n j j )(21][⎰-=故可以称该式为离散时间傅里叶逆变换(IDTFT ),则式(1.1)和(1.3)构成了序列x[n]的离散时间傅里叶变换对。
上述定义给出了计算DTFT 的方法,对于大多数时间序列其DTFT 可以用收敛的几何级数形式表示,例如序列x[n]=,此时其傅里叶变换可以写成简单n α的封闭形式。
数字信号处理实验线性卷积圆周卷积

数字信号处理实验线性卷积圆周卷积⼤连理⼯⼤学实验报告学院(系):电信专业:⽣物医学⼯程班级:**1101姓名:**** 学号:201181*** 组:___实验时间:实验室:实验台:指导教师签字:成绩:实验⼀线性卷积和圆周卷积⼀、实验程序1.给出序列x=[3,11,7,0,-1,4,2],h=[2,3,0,-5,2,1];⽤两种⽅法求两者的线性卷积y,对⽐结果。
a)直接调⽤matlab内部函数conv来计算。
b)根据线性卷积的步骤计算。
clear;clc;x=[3 11 7 0 -1 4 2];n1=0:1:length(x)-1;h=[2 3 0 -5 2 1];n2=0:1:length(h)-1;y=conv(x,h);n3=0:1:length(x)+length(h)-2;figure(1);subplot(121);stem(n1,x,'.');axis([0 6 -15 15]);title('x(n)序列');grid;subplot(122);stem(n2,h,'.');axis([0 5 -10 10]);title('h(n)序列');grid;figure(2);subplot(121);stem(n3,y,'.');axis([0 12 -60 60]);title('调⽤conv函数的线性卷积后序列');grid;N=length(x);M=length(h);L=N+M-1;for(n=1:L)y1(n)=0;for(m=1:M)k=n-m+1; if(k>=1&k<=N)y1(n)=y1(n)+h(m)*x(k); end; end; end;subplot(122);stem(n3,y1,'*');axis([0 12 -60 60]);title('按步骤计算的线性卷积后序列');grid; 结果2.卷积后结果y=[ 6 , 31 , 47 , 6 , -51 , -5 , 41 , 18 , -22 , -3 , 8 , 2]。
数字信号处理 第二章 DFT

~ N=16:x (4) x((4))16 x((12 16))16 x(12)
例2:
x (n ) x (n ) 0
~ 1 X (k ) k 0 N ~ X (r )
e
j
15
周期序列的傅里叶级数表示:
正变换:
2 N 1 N 1 j nk ~ ~(n) ~(n)e N ~(n)W nk X (k ) DFS x x x N n 0 n 0
反变换:
~ ~(n) IDFS X (k ) 1 x N
j
2 kN N
k mN , m为整数 其他k
W
n 0
N 1
( m k ) n N
1W 1W
( k m ) N N ( k m ) N
1 e
j
1 e
N m k rN 0 mk
此外,复指数序列还有如下性质:
0 WN 1, W N 2 N r 1 1, WN WN r
ek (n)
ek (n) 是以N为周期的周期序列,所以基序
列 {e }(k=0,…,N-1) 只有N个是独立 的,可以用这N个基序列将 ~ ( n) 展开。 x
j 2 nk N
12
复指数序列 ek (n) e
周期性:
j
2 nk N
W
nk N
的性质:
无论对k还是n,复指数序列都具备周期性。
时间函数 连续和非周期 连续和周期(T0) 离散(Ts)和非周期 离散(Ts)和周期(T0) 非周期和连续 非周期和离散(Ω 0=2π /T0) 周期(Ω s=2π /Ts)和连续 周期(Ω s=2π /Ts)和离散(Ω 0=2π /T0) 频率函数
傅里叶变换FFT算法的介绍及其在微机继电保护中的应用

傅里叶变换FFT算法的介绍及其在微机继电保护中的应用摘要:传统的微机继电保护算法中 ,一般使用梯形算法来计算周期信号的直流分量和各次谐波的系数 ,此方法计算比较复杂。
本文提出了一种基于 FFT 的算法。
该算法利用 FFT 可以由输入序列直接计算出输入信号的直流分量和各次谐波的幅值和相角的特点 ,大大简化了谐波分析的计算。
与梯形算法相比 ,该算法具有精度高、计算量小、更易在数字信号处理器上实现等优点。
因而可以取代梯形算法来计算谐波系数。
针对 FFT计算 ,还介绍了正弦信号采样频率的选择方法。
关键字:傅里叶算法; FFT; 谐波分析;微机继电保护。
The Introduction of Fourier algorithm based on FFT inModif ied model of power meteringAbstract: In microcomputer relay protection of traditional algorithm, coefficient of DC component generally use the trapezoidal algorithm to calculate the periodic signal and harmonic,and this method is very complex. This paper presents an algorithm based on FFT. The algorithm makes use of the FFT and it can be calculated directly from the input sequence characteristics of amplitude and phase of the DC component of the input signal and harmonic, greatly simplifies the calculation of harmonic analysis. Compared with the trapezoidal algorithm, this algorithm has high precision, small computation, easily realized in digital signal processor. So that you can replace trapezoidal algorithm to calculate the harmonic coefficient. For the FFT calculation, the selection method of sine signal sampling frequency is also presented. Keywords: Fourier algorithm;FFT;harmonic analysis;Modif ied model of power metering.一、傅立叶变换FFT算法简介:计算离散傅里叶变换的一种快速算法,简称FFT。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 利用傅立叶变换计算线性卷积
一、实验目的
1. 掌握MATLAB 的使用。
2. 掌握用直接法计算线性卷积的原理和方法
3. 掌握利用FFT 及IFFT 计算线性卷积的原理和方法
二、实验原理及方法
1、线性卷积的定义
序列)1N n 0(),n (x -≤≤和序列)1M n 0(),n (h -≤≤的线性卷积y(n)=x(n)*h(n)定义为:
10),()()(1
0-+≤≤-⨯=
∑-=M N n m n h m x n y N m 利用直接法计算线性卷积即用线性卷积的定义计算。
2、利用FFT 及IFFT 计算线性卷积的原理和方法
如果将序列x(n)和h(n) 补零,使其成为长度为L 的序列(L>=N+M-1), 则x(n)与h(n)的线性卷积y(n)=x(n)*h(n)与L 点圆周卷积相等,而圆周卷积可采用FFT 及IFFT 完成,即求y(n)=x(n)*h(n)可转化为:
对上式两端取FFT 得: Y(k)=X(k)H(k)
其中:X(k)=FFT[x(n)], H(k)=FFT[h(n)]
则:y(n)=IFFT[Y(k)]
三、实验仪器及材料
⒈ 计算机,并装有MATLAB 程序
⒉ 打印机
四、实验步骤
1、已知两序列: ⎩⎨⎧>≤≤=3n ;
03n 0;)5/3()n (h n 用Matlab 随机生成输入信号X (n ),范围为0~2;
2、得出用直接法(定义)计算线性卷积y(n)=x(n)*h(n)的结果;
3、用Matlab 编制利用FFT 和IFFT (圆周卷积)计算线性卷积y(n)=x(n)*h(n)的程序; 分别令圆周卷积的点数为L=5,7,8,10,打印结果。
4、对比直接法和圆周卷积法所得的结果。
五、实验说明:
1、实验前复习线性卷积,圆周卷积及FFT 内容。
2、利用FFT 计算线性卷积是将x(n)、h(n)用补零的方法延长到N+M-1,再用圆周卷积完成,因此要求x(n)、h(n)延长后的长度满足L>=N+M-1,才能保证用圆周卷积计算结果与直接法计算结果相同。
六、分析整理实验数据,写出实验报告
实验报告要求:
1、 手工计算两序列的线性卷积,并与计算机的结果比较,以验证手工计算的正确性。
2、 令L=5,用已编制好的程序分别采用直接法和FFT 法对两序列计算线性卷积y(n)=x(n)*h(n),并打印结果。
3、 令L=7,8,10,用已编制好的程序分别采用直接法和FFT 法对两序列计算线性卷积y(n)=x(n)*h(n),并对比所得的结果,打印L=7,8,10的结果。
4、 打印程序.
七、思考题
说明为什么L=7,8,10时采用直接法和FFT 法对两序列计算线性卷积y(n)=x(n)*h(n)的结果相同,而与L=5时计算结果不同?
附录:
本实验所用的Matlab函数:
X=rand(r,c) : 用Matlab随机生成输入信号X(n),范围为0~1,r行,c列
Y=conv(x1,x2): 将序列x1(n)与序列x2(n)做线形卷积,结果赋给序列Y(n);
Y=fft(x ,L) : 将序列x (n)做L点傅立叶变换,结果赋给序列Y(n);
Y=ifft(x,L) : 将序列x (n)做L点傅立叶反变换,结果赋给序列Y(n);
Stem(x,y) : 以x为横坐标,y为纵坐标画曲线;
Plot(x,y) : 以x为横坐标,y为纵坐标画曲线;
L=10; % The length of FFT
sizex=4; % The length of the sequence x(n)
sizeh=4; % The length of the sequence h(n)
x=rand(1,4)*2 %x=[1,1,1,1]; x =[1.9003,0.4623,1.2137,0.9720]
h=[0.6^0,0.6^1,0.6^2,0.6^3]
y=conv(x,h); %x*h
X=fft(x,L);
H=fft(h,L);
for i=1:1:L
YK(i)=X(i)*H(i);
end
yFFT=ifft(YK,L);
subplot(2,2,1)
le=0:1:sizex-1; %横标
stem(le,x)
title('x sequence')
xlabel('n')
ylabel('x(n)')
x = 1.9003 0.4623 1.2137 0.9720
y = 1.9003 1.6025 2.1752 2.2771 1.1200 0.6121 0.2100
Yfft=1.9003 1.6025 2.1752 2.2771 1.1200 0.6121 0.2100 0 0 h = 1.0000 0.6000 0.3600 0.2160
L=7;
L=5;
x=[1,1,1,1]; h = 1.0000 0.6000 0.3600 0.2160
y =1.0000 1.6000 1.9600 2.1760 1.1760 0.5760 0.2160
yFFT =1.0000 1.6000 1.9600 2.1760 1.1760 0.5760 0.2160 0.0000 0.0000 0.0000
subplot(2,2,2)
le2=0:1:sizeh; %1
stem(le2,h)
title('h sequence')
xlabel('n')
ylabel('h(n)')
subplot(2,2,3)
le3=0:1:sizex+sizeh-1; % 2 stem(le3,y)
title('y sequence by direct method') xlabel('n')
ylabel('y(n)')
subplot(2,2,4)
le3=0:1:L; %1
stem(le3,yFFT)
title('y sequence by FFT')
xlabel('n')
ylabel('y(n)')。