- Troublesleeper
-
按时间抽取 我有
function ret_val = fft1(vector)
%======================================
%ret_val 为fft变换后返回的频域序列
%N 为点数
%vector 为变换前的序列
%======================================
vector_size = size(vector);
N = vector_size(2);
c = zeros(1,N);
%
%变址运算
%
j1 = 0;
for i = 1 : N
if i < j1 + 1
tmp = vector(j1 + 1);
vector(j1 + 1) = vector(i);
vector(i) =tmp;
end
k = N / 2;
while k <= j1
j1 = j1 - k;
k = k / 2;
end
j1 = j1 + k;
end
%
%蝶形运算
%
%%%%%%%计算 N 的
dig = 0;
k = N;
while k > 1
dig = dig + 1;
k = k / 2;
end
%%%%%%
% m 为级; dist 为蝶形运两点的距离; n 为蝶形运算组数
%
n = N / 2;
for m = 1 : dig
dist = 2 ^ (m - 1);
idx = 1;
for i = 1 : n
idx1 = idx;
for j1 = 1 : N / (2 * n)
r = (idx - 1) * 2 ^ (dig - m);
coef = exp(j * (-2 * pi * r / N));
tmp = vector(idx);
vector(idx) = tmp + vector(idx + dist) * coef;
vector(idx + dist) = tmp - vector(idx + dist) * coef;
idx = idx + 1;
end
idx = idx1 + 2 * dist;
end
n = n / 2;
end
ret_val = vector;
相关推荐
蝶形运算蝶距怎么求
蝶形运算蝶距用公式求。公式为k等于xr。蝶距有专用的运算公式。输出就是频谱,是蝶形运算,得出的是以2点为周期的幅值,以4点为周期的幅值,以6点为周期的幅值,以8点为周期的幅值,以此类推。2023-07-10 20:38:571
蝶形运算的旋转因子怎么算
蝶形运算的旋转因子计算:旋转因子是WnkN(nk是上标,N是下标),n是原序列里的某一点,k是DFT(或FFT)后的序列某一点,N为变换的点数。WnkN=e^[-j*2pi*n*k/N],这是一个复指数项。do_fft函数:如果需要计算的序列长为2,两个位置分别写为x[0]+x[1]和x[0]-x[1]然后返回。对需要计算的序列前半部分调用do_fft函数。对需要计算的序列后半副本调用do_fft函数。for (int i=0; i<length/2; ++i) 。x[i+length/2] *= Wi;注意这里需要先确定需要的是哪个W。x[i]和x[i+length/2] 分别改写为 x[i]+x[i+length/2]和x[i]-x[i+length/2]。蝶形结此词汇仍最常使用于库利-图基快速傅立叶变换算法中,利用递回的方式将n点离散傅立叶运算中的n点输入分解为 n=r*m,转换输入信号为r点的m组信号分别进行r点离散傅立叶运算(换句焕说就是r点DFT做m次)。而r点的离散傅立叶运算基本上为转换后的输入信号乘上旋转因子以蝶形结架构做加法运算。(前述为时域抽取法的运算方式,逆向操作先进行蝶形结架构做加法运算,再乘上旋转因子,则为频域抽取法运算方式)。2023-07-10 20:39:031
蝶形运算的公式
Wnk =e^-j (2Π/n) *k =cos(-(2Π/n)* k)-j*sin((2Π/n)* k)2023-07-10 20:39:181
一个蝶形运算包含的复乘数和复加数分别是()。
一个蝶形运算包含的复乘数和复加数分别是()。 A.1次,1次B.1次,2次C.2次,1次D.2次,2次正确答案:1次,2次2023-07-10 20:39:301
4点ditfft蝶形运算图怎么画
16点以此类推,两个8点。图像运算指以图像为单位进行的搡作(该操作对图像中的所有像素同样进行),运算的结果是一幅其灰度分布与原来参与运算图像灰度分布不同的新图像。具体的运算主要包括算术和逻辑运算,它们通过改变像素的值来得到图像增强的效果。算术和逻辑运算中每次只涉及一个空间像素的位置,所以可以“原地”完成,即在(x,y)位置做一个算术运算或逻辑运算的结果可以存在其中一个图像的相应位置,因为那个位置在其后的运算中不会再使用。换句话说,设对两幅图像f(x,y) 和h(x,y)的算术或逻辑运算的结果是g(x,y),则可直接将g(x,y)覆盖f(x,y)或h(x,y),即从原存放输入图像的空间直接得到输出图像。2023-07-10 20:39:361
蝶距是什么
蝶距是蝶形输入信号节点数。根据查询相关资料可知,在蝶形运算中,蝶距是蝶形输入两信号点间的节点数,各类蝶形运算两个点相距的距离称蝶距,蝶距规律为最后一级的蝶距为N2,依次向左为N4、N8。蝶形蝶距运算为任何一个N为2整数幂的DFT,可以通过M次分解,成为2点DFT来计算。2023-07-10 20:39:431
按时间抽取的蝶形运算是先相乘还是先加减?
先向,呈现相承,现在都是先相乘然后再加减,如果加减法就算出来就结果就不对2023-07-10 20:39:502
以2为基的FFT算法的基本运算单元是什么?
T/FFT的发展历史离散傅里叶变换(Discrete Fourier Transform,DFT)是数字信号处理最重要的基石之一,也是对信号进行分析和处理时最常用的工具之一。在200多年前法国数学家、物理学家傅里叶提出后来以他名字命名的傅里叶级数之后,用DFT这个工具来分析信号就已经为人们所知。历史上最伟大的数学家之一。 欧拉是第一个使用“函数”一词来描述包含各种参数的表达式的人,例如:y = f(x)。他是把微积分应用于物理学的先驱者之一。 给出了一个用实变量函数表示傅立叶级数系数的方程; 用三角级数来描述离散声音在弹性媒介中传播,发现某些函数可以通过余弦函数之和来表达。 但在很长时间内,这种分析方法并没有引起更多的重视,最主要的原因在于这种方法运算量比较大。直到1965年,Cooley和Tukey在《计算机科学 》发表著名的《机器计算傅立叶级数的一种算法》论文,FFT才开始大规模应用。那个年代,有个肯尼迪总统科学咨询委员会。其中有项研究主题是,对苏联核测试进行检测,Tukey就是其中一员。美国/苏联核测试提案的批准,主要取决于不实地访问核测试设施而做出检测的方法的发展。其中一个想法是,分析离海岸的地震计情况,这种计算需要快速算法来计算DFT。其它应用是国家安全,如用声学探测远距离的核潜艇。所以在军事上,迫切需要一种快速的傅立叶变换算法,这也促进了FFT的正式提出。FFT的这种方法充分利用了DFT运算中的对称性和周期性,从而将DFT运算量从N2减少到N*log2N。当N比较小时,FFT优势并不明显。但当N大于32开始,点数越大,FFT对运算量的改善越明显。比如当N为1024时,FFT的运算效率比DFT提高了100倍。在库利和图基提出的FFT算法中,其基本原理是先将一个N点时域序列的DFT分解为N个1点序列的DFT,然后将这样计算出来的N个1点序列DFT的结果进行组合,得到最初的N点时域序列的DFT值。实际上,这种基本的思想很早就由德国伟大的数学家高斯提出过,在某种情况下,天文学计算(也是现在FFT应用的领域之一)与等距观察的有限集中的行星轨道的内插值有关。由于当时计算都是靠手工,所以产生一种快速算法的迫切需要。 而且,更少的计算量同时也代表着错误的机会更少,正确性更高。高斯发现,一个富氏级数有宽度N=N1*N2,可以分成几个部分。计算N2子样本DFT的N1长度和N1子样本DFT的N2长度。只是由于当时尚欠东风——计算机还没发明。在20世纪60年代,伴随着计算机的发展和成熟,库利和图基的成果掀起了数字信号处理的革命,因而FFT发明者的桂冠才落在他们头上。之后,桑德(G.Sand)-图基等快速算法相继出现,几经改进,很快形成了一套高效运算方法,这就是现在的快速傅立叶变换(FFT)。这种算法使DFT的运算效率提高1到2个数量级,为数字信号处理技术应用于各种信号的实时处理创造了良好的条件,大大推进了数学信号处理技术。1984年,法国的杜哈梅(P.Dohamel)和霍尔曼(H.Hollamann)提出的分裂基块快速算法,使运算效率进一步提高。库利和图基的FFT算法的最基本运算为蝶形运算,每个蝶形运算包括两个输入点,因而也称为基-2算法。在这之后,又有一些新的算法,进一步提高了FFT的运算效率,比如基-4算法,分裂基算法等。这些新算法对FFT运算效率的提高一般在50%以内,远远不如FFT对DFT运算的提高幅度。从这个意义上说,FFT算法是里程碑式的。可以说,正是计算机技术的发展和FFT的出现,才使得数字信号处理迎来了一个崭新的时代。除了......2023-07-10 20:41:092
C语言编写一个一维傅里叶函数
#include<stdio.h>#include <math.h>class complex //定义一个类,实现复数的所有操作{double Real,Image; //实部与虚部public:complex(double r="0",double i="0"){Real=r;Image=i;} double GetR(){return Real;} //取出实部double GetI(){return Image;} //取出虚部complex operator + (complex &); //复数加法complex operator - (complex &); //复数减法 complex operator * (complex &); //复数乘法void operator =(complex &); //复数 赋值};complex complex::operator + (complex &c) //复数加法{complex t;t.Real=Real+c.Real;t.Image=Image+c.Image;return t;}complex complex::operator - (complex &c) //复数减法{complex t;t.Real=Real-c.Real;t.Image=Image-c.Image;return t;}complex complex::operator * (complex &c) //复数乘法{complex t;t.Real=Real*c.Real-Image*c.Image;t.Image=Real*c.Image+Image*c.Real;return t;}void complex::operator = (complex &c) //复数 赋值{Real=c.Real;Image=c.Image;}void fft(complex a[],int length,int jishu) //实现fft的函数{const double PI="3".141592653589793;complex u,Wn,t;int i,j,k,m,kind,distance,other; double tmp; for(i=0;i<length;i++) //实现倒叙排列{ k="i"; j=0; for(m=0;m<jishu;m++) { j="j"*2+k%2; k/=2; } if(i<j) { t="a"; a=a[j]; a[j]=t; }} for(m=1;m<=jishu;m++) //第m级蝶形运算,总级数为jishu{ kind = (int)pow(2,m-1); //第m级有2^(m-1)种蝶形运算 distance = 2*kind; //同种蝶形结相邻距离为2^m u=complex(1,0); //旋转因子初始值为 1 tmp=PI/kind; Wn=complex(cos(tmp),-sin(tmp));//旋转因子Wn for(j=0;j<kind;j++) //每种蝶形运算的起始点为j,共有kind种 { for(i=j;i<length;i+=distance) //同种蝶形运算 { other=i+kind;//蝶形运算的两个因子对应单元下标的距离为2^(m-1) t=a[other]*u; // 蝶形运算的乘积项 a[other]=a-t; //蝶形运算 a=a+t; //蝶形运算 } u="u"*Wn; //修改旋转因子,多乘一个基本DFT因子WN }}}void main(void){ double a,b;complex x[8]; //此程序以8点序列测试printf("8点序列: ");for(int i="0";i<8;i++) //初始化并输出原始序列{ x=complex(i,i+1); printf("x(%d) = %lf + %lf i ",i+1,x.GetR(),x.GetI());} fft(x,8,3); //调用fft函数printf("fft变换的结果为: ");for(i=0;i<8;i++) //输出结果 printf("X(%d)= %lf + %lf i ",i+1,x.GetR(),x.GetI());}2023-07-10 20:41:241
如何实现128点的基2-FFT算法,并与MATLAB的fft算法作对比分析.
我给你我写的程序吧: x=ones(1,128); %输入的信号,自己可以改变 %整体运用原位计算 m=nextpow2(x);N=2^m; % 求x的长度对应的2的最低幂次m if length(x)<N x=[x,zeros(1,N-length(x))]; % 若x的长度不是2的幂,补零到2的整数幂 end nxd=bin2dec(fliplr(dec2bin([1:N]-1,m)))+1; % 求1:2^m数列序号的倒序 y=x(nxd); % 将x倒序排列作为y的初始值 for mm=1:m % 将DFT作m次基2分解,从左到右,对每次分解作DFT运算,共做m级蝶形运算,每一级都有2^(mm-1)个蝶形结 Nz=2^mm;u=1; % 旋转因子u初始化为WN^0=1 WN=exp(-i*2*pi/Nz); % 本次分解的基本DFT因子WN=exp(-i*2*pi/Nz) for j=1:Nz/2 % 本次跨越间隔内的各次蝶形运算,在进行第mm级运算时需要2^(mm-1)个 蝶形 for k=j:Nz:N % 本次蝶形运算的跨越间隔为Nz=2^mm kp=k+Nz/2; % 蝶形运算的两个因子对应单元下标的关系 t=y(kp)*u; % 蝶形运算的乘积项 y(kp)=y(k)-t; % 蝶形运算 y(k)=y(k)+t; % 蝶形运算 end u=u*WN; % 修改旋转因子,多乘一个基本DFT因子WN end end y y1=fft(x) %自己编的FFT跟直接调用的函数运算以后的结果进行对比因为输入是128个1所以结果就是这样,我最后不是有结果比对么?相减是全0的话不就对了么!?,你可以改变输入,多选择几组值来检验.2023-07-10 20:41:311
单片机实现傅立叶变换
用FPGA这种单片机在对FFT(快速傅立叶变换)算法进行研究的基础上,描述了用FPGA实现FFT的方法,并对其中的整体结构、蝶形单元及性能等进行了分析。关键词:FPGA FFT傅立叶变换是数字信号处理中的基本操作,广泛应用于表述及分析离散时域信号领域。但由于其运算量与变换点数N的平方成正比关系,因此,在N较大时,直接应用DFT算法进行谱变换是不切合实际的。然而,快速傅立叶变换技术的出现使情况发生了根本性的变化。本文主要描述了采用FPGA来实现2k/4k/8k点FFT的设计方法。1 整体结构一般情况下,N点的傅立叶变换对为:其中,WN=exp(-2 pi/N)。X(k)和x(n)都为复数。与之相对的快速傅立叶变换有很多种,如DIT(时域抽取法)、DIF(频域抽取法)、Cooley-Tukey和Winograd等。对于2n傅立叶变换,Cooley-Tukey算法可导出DIT和DIF算法。本文运用的基本思想是Cooley-Tukey算法,即将高点数的傅立叶变换通过多重低点数傅立叶变换来实现。虽然DIT与DIF有差别,但由于它们在本质上都是一种基于标号分解的算法,故在运算量和算法复杂性等方面完全一样,而没有性能上的优劣之分,所以可以根据需要任取其中一种,本文主要以DIT方法为对象来讨论。N=8192点DFT的运算表达式为:式中,m=(4n1+n2)(2048k1+k2)(n=4n1+n2,k=2048k1+k2)其中n1和k2可取0,1,...,2047,k1和n2可取0,1,2,3。由式(3)可知,8k傅立叶变换可由4×2k的傅立叶变换构成。同理,4k傅立叶变换可由2×2k的傅立叶变换构成。而2k傅立叶变换可由128×16的傅立叶变换构成。128的傅立叶变换可进一步由16×8的傅立叶变换构成,归根结底,整个傅立叶变换可由基2、基4的傅立叶变换构成。2k的FFT可以通过5个基4和1个基2变换来实现;4k的FFT变换可通过6个基4变换来实现;8k的FFT可以通过6个基4和1个基2变换来实现。也就是说:FFT的基本结构可由基2/4模块、复数乘法器、存储单元和存储器控制模块构成,其整体结构如图1所示。图1中,RAM用来存储输入数据、运算过程中的中间结果以及运算完成后的数据,ROM用来存储旋转因子表。蝶形运算单元即为基2/4模块,控制模块可用于产生控制时序及地址信号,以控制中间运算过程及最后输出结果。2 蝶形运算器的实现基4和基2的信号流如图2所示。图中,若A=r0+j*i0,B=r1+j*i1,C=r2+j*i2,D=r3+j*i3是要进行变换的信号,Wk0=c0+j*s0=1,Wk1=c1+j*s1,Wk2=c2+j*s2,Wk3=c3+j*s3为旋转因子,将其分别代入图2中的基4蝶形运算单元,则有:A′=[r0+(r1×c1-i1×s1)+(r2×c2-i2×s2)+(r3×c3-i3×s3)]+j[i0+(i1×c1+r1×s1)+(i2×c2+r2×s2)+(i3×c3+r3×s3)] (4)B′=[r0+(i1×c1+r1×s1)-(r2×c2-i2×s2)-(i3×c3+r3×s3)]+j[i0-(r1×c1-i1×s1)-(i2×c2+r2×s2)+(r3×c3-i3×s3)] (5)C′=[r0-(r1×c1-i1×s1)+(r2×c2-i2×s2)-(r3×c3-i3×s3)]+j[i0-(i1×c1+r1×s1)+(i2×c2+r2×s2)-(i3×c3+r3×s3)] (6)D′=[r0-(i1×c1+r1×s1)-(r2×c2-i2×s2)+(i3×c3+r3×s3)]+j[i0+(r1×c1-i1×s1)-(i2×c2+r2×s2)-(r3×c3-i3×s3)] (7)看明白了吗?2023-07-10 20:41:492
如何实现128点的基2-FFT算法,并与MATLAB的fft算法作对比分析.
我只能给你一个fft算法,流程图说起来有点复杂,可以matlab里面的函数tic(开启时钟)t=toc(关闭时钟)t就是运算过程的时间当然tic放程序开始,toc放结尾,来分析之即可function d=lxfft(x)n=length(x);if n>2 for i=0:n/2-1 x1(i+1)=x(2*i+1); x2(i+1)=x(2*i+2); end X1=lxfft(x1); X2=lxfft(x2); for i=0:n/2-1 X2(i+1)= X2(i+1)*exp(-j*2*pi/n*i);//旋转因子 d(i+1)=X1(i+1)+X2(i+1); d(i+n/2+1)=X1(i+1)-X2(i+1); end else d(1)=x(1)+x(2); d(2)=x(1)-x(2);endend2023-07-10 20:41:562
快速傅里叶变换的计算方法
计算离散傅里叶变换的快速方法,有按时间抽取的FFT算法和按频率抽取的FFT算法。前者是将时域信号序列按偶奇分排,后者是将频域信号序列按偶奇分排。它们都借助于的两个特点:一是周期性;二是对称性,这里符号*代表其共轭。这样,便可以把离散傅里叶变换的计算分成若干步进行,计算效率大为提高。时间抽取算法 令信号序列的长度为N=2,其中M是正整数,可以将时域信号序列x(n)分解成两部分,一是偶数部分x(2n),另一是奇数部分x(2n+1),于是信号序列x(n)的离散傅里叶变换可以用两个N/2抽样点的离散傅里叶变换来表示和计算。考虑到和离散傅里叶变换的周期性,式⑴可以写成⑶其中(4a)(4b)由此可见,式⑷是两个只含有N/2个点的离散傅里叶变换,G(k)仅包括原信号序列中的偶数点序列,H(k)则仅包括它的奇数点序列。虽然k=0,1,2,…,N-1,但是G(k)和H(k)的周期都是N/2,它们的数值以N/2周期重复。因为于是由式⑶和式⑷得到(5a)(5b)因此,一个抽样点数为N 的信号序列x(n)的离散傅里叶变换,可以由两个 N/2抽样点序列的离散傅里叶变换求出。依此类推,这种按时间抽取算法是将输入信号序列分成越来越小的子序列进行离散傅里叶变换计算,最后合成为N点的离散傅里叶变换。通常用图1中蝶形算法的信号流图来表示式⑸的离散傅里叶变换运算。例如,N=8=2的抽样点的信号序列x(n)的离散傅里叶变换,可用如图2所示的FET算法的信号流图来计算。① N=2点的离散傅里叶变换的计算全由蝶形运算组成,需要M级运算,每级包括N/2个蝶形运算,总共有 个蝶形运算。所以,总的计算量为次复数乘法运算和N log2N次复数加法运算。② FFT算法按级迭代进行,计算公式可以写成⑹N抽样点的输入信号具有N个原始数据x0(n),经第一级运算后,得出新的N个数据x1(n),再经过第二级迭代运算,又得到另外N个数据x2(n),依此类推,直至最后的结果x(k)=xM(k)=X(k)在逐级迭代计算中,每个蝶形运算的输出数据存放在原来存贮输入数据的单元中,实行所谓“即位计算”,这样可以节省大量存放中间数据的寄存器。③ 蝶形运算中加权系数随迭代级数成倍增加。由图2可以看出系数的变化规律。对于N=8,M=3情况,需进行三级迭代运算。在第一级迭代中,只用到一种加权系数;蝶形运算的跨度间隔等于1。在第二级迭代中,用到两种加权系数即、;蝶形运算的跨度间隔等于2。在第三级迭代中,用到4种不同的加权系数即、、、;蝶形运算的跨度间隔等于4。可见,每级迭代的不同加权系数的数目比前一级迭代增加一倍;跨度间隔也增大一倍。④ 输入数据序列x(n)需重新排列为x(0)、x⑷、x⑵、x⑹、x⑴、x⑸、x⑶、x⑺,这是按照二进制数的码位倒置所得到的反序数,例如N=8中数“1”的二进制数为“001”,将其码位倒转变为“100”,即为十进制数“4”。频率抽取算法 按频率抽取的 FFT算法是将频域信号序列X(k)分解为奇偶两部分,但算法仍是由时域信号序列开始逐级运算,同样是把N点分成N/2点计算FFT,可以把直接计算离散傅里叶变换所需的N次乘法缩减到次。在N=2的情况下,把N点输入序列x(n)分成前后两半⑺时间序列x1(n)±x2(n)的长度为N/2,于是N点的离散傅里叶变换可以写成(8a)(8b)频率信号序列X(2l)是时间信号序列x1(n)+x2(n)的N/2点离散傅里叶变换,频率信号序列X(2l+1)是时间信号序列【x1(n)-x2(n)】的N/2点离散傅里叶变换,因此,N点离散傅里叶变换的计算,通过两次加(减)法和一次乘法,从原来序列获得两个子序列,所以,频率抽取算法也具有蝶形运算形式。以2为基数的FFT基本蝶形运算公式为⑼其计算量完全和时间抽取算法一样,即只需次乘法运算和Nlog2N次加(减)法运算。图3 表示N=8=2点的离散傅里叶变换的信号流图。由图可见,它以三级迭代进行即位计算,输入数据是按自然次序存放,使用的系数也是按自然次序,而最后结果则以二进制反序存放。实际上,频率抽取算法与时间抽取算法的信号流图之间存在着转置关系,如将流图适当变形,可以得出多种几何形状。除了基2的FFT算法之外,还有基4、基8等高基数的FFT算法以及任意数为基数的FFT算法。2023-07-10 20:42:041
matlab计算结果问题
推荐答案傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。最初傅里叶分析是作为热过程的解析分析的工具被提出的。目录定义中文译名应用概要介绍基本性质线性性质频移性质微分关系卷积特性Parseval定理傅里叶变换的不同变种连续傅里叶变换傅里叶级数离散傅里叶变换时频分析变换数学领域整体结构蝶形运算器的实现FFT的地址旋转因子存储器的控制硬件的选择相关书籍推荐定义 中文译名应用 概要介绍 基本性质 线性性质 频移性质 微分关系 卷积特性 Parseval定理傅里叶变换的不同变种 连续傅里叶变换 傅里叶级数 离散傅里叶变换 时频分析变换数学领域 整体结构 蝶形运算器的实现 FFT的地址 旋转因子 存储器的控制 硬件的选择相关书籍推荐展开 编辑本段定义 f(t)满足傅立叶积分定理条件时,下图①式的积分运算称为f(t)的傅立叶变换, ②式的积分运算叫做F(ω)的傅立叶逆变换。F(ω)叫做f(t)的象函数,f(t)叫做 F(ω)的象原函数。 傅里叶变换① 傅里叶逆变换②中文译名 Fourier transform 或Transformée de Fourier有多个中文译名,常见的有“傅里叶变换”、“傅立叶变换”、“付立叶变换”、“傅里叶转换”、“傅氏转换”、“傅氏变换”、等等。为方便起见,本文统一写作“傅里叶变换”。编辑本段应用 傅里叶变换在物理学、电子类学科、数论、组合数学、信号处理、概率论、统计学、密码学、声学、光学、海洋学、结构动力学等领域都有着广泛的应用(例如在信号处理中,傅里叶变换的典型用途是将信号分解成幅值分量和频率分量)。编辑本段概要介绍 概要参见:林家翘、西格尔著《自然科学中确定性问题的应用数学》,科学出版社,北京。原版书名为 C. C. Lin & L. A. Segel, Mathematics Applied to Deterministic Problems in the Natural Sciences, Macmillan Inc., New York, 1974。 * 傅里叶变换属于谐波分析。 * 傅里叶变换的逆变换容易求出,而且形式与正变换非常类似; * 正弦基函数是微分运算的本征函数,从而使得线性微分方程的求解可以转化为常系数的代数方程的求解.在线性时不变的物理系统内,频率是个不变的性质,从而系统对于复杂激励的响应可以通过组合其对不同频率正弦信号的响应来获取; * 卷积定理指出:傅里叶变换可以化复杂的卷积运算为简单的乘积运算,从而提供了计算卷积的一种简单手段; * 离散形式的傅里叶变换可以利用数字计算机快速的算出(其算法称为快速傅里叶变换算法(FFT)).编辑本段基本性质线性性质 两函数之和的傅里叶变换等于各自变换之和。数学描述是:若函数f left( x ight )和g left(x ight)的傅里叶变换mathcal[f]和mathcal[g]都存在,α 和 β 为任意常系数,则mathcal[alpha f+eta g]=alphamathcal[f]+etamathcal[g];傅里叶变换算符mathcal可经归一化成为么正算符;频移性质 若函数f left( x ight )存在傅里叶变换,则对任意实数 ω0,函数f(x) e^{i omega_ x}也存在傅里叶变换,且有mathcal[f(x)e^{i omega_ x}]=F(omega + omega _0 ) 。式中花体mathcal是傅里叶变换的作用算子,平体F表示变换的结果(复函数),e 为自然对数的底,i 为虚数单位sqrt;微分关系 若函数f left( x ight )当|x| ightarrowinfty时的极限为0,而其导函数f"(x)的傅里叶变换存在,则有mathcal[f"(x)]=-i omega mathcal[f(x)] ,即导函数的傅里叶变换等于原函数的傅里叶变换乘以因子 u2212 iω 。更一般地,若f(pminfty)=f"(pminfty)=ldots=f^{(k-1)}(pminfty)=0,且mathcal[f^{(k)}(x)]存在,则mathcal[f^{(k)}(x)]=(-i omega)^ mathcal[f] ,即 k 阶导数的傅里叶变换等于原函数的傅里叶变换乘以因子( u2212 iω)k。卷积特性 若函数f left( x ight )及g left( x ight )都在(-infty,+infty)上绝对可积,则卷积函数f*g=int_{-infty}^{+infty} f(x-xi)g(xi)dxi的傅里叶变换存在,且mathcal[f*g]=mathcal[f]cdotmathcal[g] 。卷积性质的逆形式为mathcal^[F(omega)G(omega)]=mathcal^[F(omega)]*mathcal^[G(omega)] ,即两个函数乘积的傅里叶逆变换等于它们各自的傅里叶逆变换的卷积,同时还有两个函数卷积的傅里叶逆变换等于它们各自的傅里叶逆变换的乘积。Parseval定理 若函数f left( x ight )可积且平方可积,则int_{-infty}^{+infty} f^2 (x)dx = frac{2pi}int_{-infty}^{+infty} |F(omega)|^domega 。其中 F(ω) 是 f(x) 的傅里叶变换。编辑本段傅里叶变换的不同变种连续傅里叶变换 主条目:连续傅立叶变换 一般情况下,若“傅立叶变换”一词的前面未加任何限定语,则指的是“连续傅里叶变换”。“连续傅里叶变换”将平方可积的函数f(t) 表示成复指数函数的积分或级数形式。 f(t) = mathcal^[F(omega)] = frac{sqrt{2pi}} intlimits_{-infty}^infty F(omega) e^{iomega t},domega. 上式其实表示的是连续傅里叶变换的逆变换,即将时间域的函数f(t)表示为频率域的函数F(ω)的积分。反过来,其正变换恰好是将频率域的函数F(ω)表示为时间域的函数f(t)的积分形式。一般可称函数f(t)为原函数,而称函数F(ω)为傅里叶变换的像函数,原函数和像函数构成一个傅立叶变换对(transform pair)。 一种对连续傅里叶变换的推广称为分数傅里叶变换(Fractional Fourier Transform)。 当f(t)为奇函数(或偶函数)时,其余弦(或正弦)分量将消亡,而可以称这时的变换为余弦转换(cosine transform) 或 正弦转换(sine transform). 另一个值得注意的性质是,当f(t) 为纯实函数时,F(u2212ω) = F(ω)*成立.傅里叶级数 主条目:傅里叶级数 连续形式的傅里叶变换其实是傅里叶级数的推广,因为积分其实是一种极限形式的求和算子而已。对于周期函数,其傅里叶级数是存在的: f(x) = sum_{n=-infty}^{infty} F_n ,e^ , 其中Fn 为复振幅。对于实值函数,函数的傅里叶级数可以写成: f(x) = fraca_0 + sum_{n=1}^inftyleft[a_ncos(nx)+b_nsin(nx) ight], 其中an和bn是实频率分量的振幅。 离散时间傅里叶变换 主条目:离散时间傅里叶变换 离散傅里叶变换是离散时间傅里叶变换(DTFT)的特例(有时作为后者的近似)。DTFT在时域上离散,在频域上则是周期的。DTFT可以被看作是傅里叶级数的逆。离散傅里叶变换 主条目:离散傅里叶变换 为了在科学计算和数字信号处理等领域使用计算机进行傅里叶变换,必须将函数xn 定义在离散点而非连续域内,且须满足有限性或周期性条件。这种情况下, 使用离散傅里叶变换,将函数 xn 表示为下面的求和形式: x_n = frac1 sum_{k=0}^ X_k e^{ifrac{2pi} kn} qquad n = 0,dots,N-1 其中Xk是傅里叶振幅。直接使用这个公式计算的计算复杂度为mathcal(n^2),而快速傅里叶变换(FFT)可以将复杂度改进为mathcal(n log n)。计算复杂度的降低以及数字电路计算能力的发展使得DFT成为在信号处理领域十分实用且重要的方法。 在阿贝尔群上的统一描述 以上各种傅里叶变换可以被更统一的表述成任意局部紧致的阿贝尔群上的傅里叶变换。这一问题属于调和分析的范畴。在调和分析中, 一个变换从一个群变换到它的对偶群(dual group)。此外,将傅里叶变换与卷积相联系的卷积定理在调和分析中也有类似的结论。傅里叶变换的广义理论基础参见庞特里雅金对偶性(英文版)中的介绍。时频分析变换 主条目:时频分析变换 小波变换,chirplet转换和分数傅里叶转换试图得到时间信号的频率信息。同时解析频率和时间的能力在数学上受不确定性原理的限制。 傅里叶变换家族 下表列出了傅里叶变换家族的成员. 容易发现,函数在时(频)域的离散对应于其像函数在频(时)域的周期性.反之连续则意味着在对应域的信号的非周期性. 变换 时间 频率 连续傅里叶变换 连续, 非周期性 连续, 非周期性 傅里叶级数 连续, 周期性 离散, 非周期性 离散时间傅里叶变换 离散, 非周期性 连续, 周期性 离散傅里叶变换 离散, 周期性 离散, 周期性 傅里叶变换的基本思想首先由法国学者傅里叶系统提出,所以以其名字来命名以示纪念。 从现代数学的眼光来看,傅里叶变换是一种特殊的积分变换。它能将满足一定条件的某个函数表示成正弦基函数的线性组合或者积分。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。 傅立叶变换属于调和分析的内容。"分析"二字,可以解释为深入的研究。从字面上来看,"分析"二字,实际就是"条分缕析"而已。它通过对函数的"条分缕析"来达到对复杂函数的深入理解和研究。从哲学上看,"分析主义"和"还原主义",就是要通过对事物内部适当的分析达到增进对其本质理解的目的。比如近代原子论试图把世界上所有物质的本源分析为原子,而原子不过数百种而已,相对物质世界的无限丰富,这种分析和分类无疑为认识事物的各种性质提供了很好的手段。编辑本段数学领域 尽管最初傅立叶分析是作为热过程的解析分析的工具,但是其思想方法仍然具有典型的还原论和分析主义的特征。"任意"的函数通过一定的分解,都能够表示为正弦函数的线性组合的形式,而正弦函数在物理上是被充分研究而相对简单的函数类,这一想法跟化学上的原子论想法何其相似!奇妙的是,现代数学发现傅立叶变换具有非常好的性质,使得它如此的好用和有用,让人不得不感叹造物的神奇: 1. 傅立叶变换是线性算子,若赋予适当的范数,它还是酉算子; 2. 傅立叶变换的逆变换容易求出,而且形式与正变换非常类似; 3. 正弦基函数是微分运算的本征函数,从而使得线性微分方程的求解可以转化为常系数的代数方程的求解.在线性时不变的物理系统内,频率是个不变的性质,从而系统对于复杂激励的响应可以通过组合其对不同频率正弦信号的响应来获取; 4. 著名的卷积定理指出:傅立叶变换可以化复杂的卷积运算为简单的乘积运算,从而提供了计算卷积的一种简单手段; 5. 离散形式的傅立叶变换可以利用数字计算机快速的算出(其算法称为快速傅立叶变换算法(FFT)). 正是由于上述的良好性质,傅里叶变换在物理学、数论、组合数学、信号处理、概率、统计、密码学、声学、光学等领域都有着广泛的应用。 有関傅立叶变换的FPGA实现 傅立叶变换是数字信号处理中的基本操作,广泛应用于表述及分析离散时域信号领域。但由于其运算量与变换点数N的平方成正比关系,因此,在N较大时,直接应用DFT算法进行谱变换是不切合实际的。然而,快速傅立叶变换技术的出现使情况发生了根本性的变化。本文主要描述了采用FPGA来实现2k/4k/8k点FFT的设计方法。整体结构 一般情况下,N点的傅立叶变换对为: 其中,WN=exp(-2pi/N)。X(k)和x(n)都为复数。与之相对的快速傅立叶变换有很多种,如DIT(时域抽取法)、DIF(频域抽取法)、Cooley-Tukey和Winograd等。对于2n傅立叶变换,Cooley-Tukey算法可导出DIT和DIF算法。本文运用的基本思想是Cooley-Tukey算法,即将高点数的傅立叶变换通过多重低点数傅立叶变换来实现。虽然DIT与DIF有差别,但由于它们在本质上都是一种基于标号分解的算法,故在运算量和算法复杂性等方面完全一样,而没有性能上的优劣之分,所以可以根据需要任取其中一种,本文主要以DIT方法为对象来讨论。 N=8192点DFT的运算表达式为: 式中,m=(4n1+n2)(2048k1+k2)(n=4n1+n2,k=2048k1+k2)其中n1和k2可取0,1,...,2047,k1和n2可取0,1,2,3。 由式(3)可知,8k傅立叶变换可由4×2k的傅立叶变换构成。同理,4k傅立叶变换可由2×2k的傅立叶变换构成。而2k傅立叶变换可由128×16的傅立叶变换构成。128的傅立叶变换可进一步由16×8的傅立叶变换构成,归根结底,整个傅立叶变换可由基2、基4的傅立叶变换构成。2k的FFT可以通过5个基4和1个基2变换来实现;4k的FFT变换可通过6个基4变换来实现;8k的FFT可以通过6个基4和1个基2变换来实现。也就是说:FFT的基本结构可由基2/4模块、复数乘法器、存储单元和存储器控制模块构成,其整体结构如图1所示。 图1中,RAM用来存储输入数据、运算过程中的中间结果以及运算完成后的数据,ROM用来存储旋转因子表。蝶形运算单元即为基2/4模块,控制模块可用于产生控制时序及地址信号,以控制中间运算过程及最后输出结果。蝶形运算器的实现 基4和基2的信号流如图2所示。图中,若A=r0+j*i0,B=r1+j*i1,C=r2+j*i2,D=r3+j*i3是要进行变换的信号,Wk0=c0+j*s0=1,Wk1=c1+j*s1,Wk2=c2+j*s2,Wk3=c3+j*s3为旋转因子,将其分别代入图2中的基4蝶形运算单元,则有: A′=[r0+(r1×c1-i1×s1)+(r2×c2-i2×s2)+(r3×c3-i3×s3)]+j[i0+(i1×c1+r1×s1)+(i2×c2+r2×s2)+(i3×c3+r3×s3)]? (4) B′=[r0+(i1×c1+r1×s1)-(r2×c2-i2×s2)-(i3×c3+r3×s3)]+j[i0-(r1×c1-i1×s1)-(i2×c2+r2×s2)+(r3×c3-i3×s3)] (5) C′=[r0-(r1×c1-i1×s1)+(r2×c2-i2×s2)-(r3×c3-i3×s3)]+j[i0-(i1×c1+r1×s1)+(i2×c2+r2×s2)-(i3×c3+r3×s3)] (6) D′=[r0-(i1×c1+r1×s1)-(r2×c2-i2×s2)+(i3×c3+r3×s3)]+j[i0+(r1×c1-i1×s1)-(i2×c2+r2×s2)-(r3×c3-i3×s3)]? (7) 而在基2蝶形中,Wk0和Wk2的值均为1,这样,将A,B,C和D的表达式代入图2中的基2运算的四个等式中,则有: A′=r0+(r1×c1-i1×s1)+j[i0+(i1×c1+r1×s1)]? (8) B′=r0- (r1×c1-i1×s1)+j[i0-(i1×c1+r1×s1)] (9) C′=r2+(r3×c3-i3×s3)+j[i0+(i3×c3+r3×s3)]? (10) D′=r2-(r3×c3-i3×s3)+j[i0-(i3×c3+r3×s3)]? (11) 在上述式(4)~(11)中有很多类同项,如i1×c1+r1×s1和r1×c1-i1×s1等,它们仅仅是加减号的不同,其结构和运算均类似,这就为简化电路提供了可能。同时,在蝶形运算中,复数乘法可以由实数乘法以一定的格式来表示,这也为设计复数乘法器提供了一种实现的途径。 以基4为例,在其运算单元中,实际上只需做三个复数乘法运算,即只须计算BWk1、CWk2和DWk3的值即可,这样在一个基4蝶形单元里面,最多只需要3个复数乘法器就可以了。在实际过程中,在不提高时钟频率下,只要将时序控制好?便可利用流水线(Pipeline)技术并只用一个复数乘法器就可完成这三个复数乘法,大大节省了硬件资源。 图2 基2和基4蝶形算法的信号流图FFT的地址 FFT变换后输出的结果通常为一特定的倒序,因此,几级变换后对地址的控制必须准确无误。 倒序的规律是和分解的方式密切相关的,以基8为例,其基本倒序规则如下: 基8可以用2×2×2三级基2变换来表示,则其输入顺序则可用二进制序列(n1 n2 n3)来表示,变换结束后,其顺序将变为(n3 n2 n1),如:X?011 → x?110 ,即输入顺序为3,输出时顺序变为6。 更进一步,对于基16的变换,可由2×2×2×2,4×4,4×2×2等形式来构成,相对于不同的分解形式,往往会有不同的倒序方式。以4×4为例,其输入顺序可以用二进制序列(n1 n2 n3n4)来表示变换结束后,其顺序可变为((n3 n4)(n1 n2)),如: X?0111 → x?1101 。即输入顺序为7,输出时顺序变为13。 在2k/4k/8k的傅立叶变换中,由于要经过多次的基4和基2运算,因此,从每次运算完成后到进入下一次运算前,应对运算的结果进行倒序,以保证运算的正确性。旋转因子 N点傅立叶变换的旋转因子有着明显的周期性和对称性。其周期性表现为: FFT之所以可使运算效率得到提高,就是利用 FFT之所以可使运算效率得到提高,就是利用了对称性和周期性把长序列的DFT逐级分解成几个序列的DFT,并最终以短点数变换来实现长点数变换。 根据旋转因子的对称性和周期性,在利用ROM存储旋转因子时,可以只存储旋转因子表的一部分,而在读出时增加读出地址及符号的控制,这样可以正确实现FFT。因此,充分利用旋转因子的性质,可节省70%以上存储单元。 实际上,由于旋转因子可分解为正、余弦函数的组合,故ROM中存的值为正、余弦函数值的组合。对2k/4k/8k的傅立叶变换来说,只是对一个周期进行不同的分割。由于8k变换的旋转因子包括了2k/4k的所有因子,因此,实现时只要对读ROM的地址进行控制,即可实现2k/4k/8k变换的通用。存储器的控制 因FFT是为时序电路而设计的,因此,控制信号要包括时序的控制信号及存储器的读写地址,并产生各种辅助的指示信号。同时在计算模块的内部,为保证高速,所有的乘法器都须始终保持较高的利用率。这意味着在每一个时钟来临时都要向这些单元输入新的操作数,而这一切都需要控制信号的紧密配合。 为了实现FFT的流形运算,在运算的同时,存储器也要接收数据。这可以采用乒乓RAM的方法来完成。这种方式决定了实现FFT运算的最大时间。对于4k操作,其接收时间为4096个数据周期,这样?FFT的最大运算时间就是4096个数据周期。另外,由于输入数据是以一定的时钟为周期依次输入的,故在进行内部运算时,可以用较高的内部时钟进行运算,然后再存入RAM依次输出。 为节省资源,可对存储数据RAM采用原址读出原址写入的方法,即在进行下一级变换的同时,首先应将结果回写到读出数据的RAM存贮器中;而对于ROM,则应采用与运算的数据相对应的方法来读出存储器中旋转因子的值。 在2k/4k/8k傅立叶变换中,要实现通用性,控制器是最主要的模块。2k、4k、8k变换具有不同的内部运算时间和存储器地址,在设计中,针对不同的点数应设计不同的存储器存取地址,同时,在完成变换后,还要对开始输出有用信号的时刻进行指示。硬件的选择 本设计的硬件实现选用的是现场可编程门阵列(FPGA)来满足较高速度的需要。本系统在设计时选用的是ALTERA公司的STRATIX芯片,该芯片中包含有DSP单元,可以完成较为耗费资源的乘法器单元。同时,该器件也包含有大量存储单元,从而可保证旋转因子的精度。 除了一些专用引脚外,FPGA上几乎所有的引脚均可供用户使用,这使得FPGA信号处理方案具有非常好的I/O带宽。大量的I/O引脚和多块存储器可使设计获得优越的并行处理性能。其独立的存储块可作为输入/工作存储区和结果的缓存区,这使得I/O可与FFT计算同时进行。在实现的时间方面,该设计能在4096个时钟周期内完成一个4096点的FFT。若采用10MHz的输入时钟,其变换时间在200μs左右。而由于最新的FPGA使用了MultiTrack互连技术,故可在250MHz以下频率稳定地工作,同时,FFT的实现时间也可以大大缩小。 FFT运算结果的精度与输入数据的位数及运算过程中的位数有关,同时和数据的表示形式也有很大关系。一般来说,浮点方式比定点方式精度高。而在定点计算中,存储器数据的位数越大,运算精度越高,使用的存储单元和逻辑单元也越多。在实际应用中,应根据实际情况折衷选择精度和资源。本设计通过MATLAB进行仿真证明:其实现的变换结果与MATLAB工具箱中的FFT函数相比,信噪比可以达到65db以上,完全可以满足一般工程的实际应用要求2023-07-10 20:42:203
急!!求x(2n+1)的傅里叶变换。
如果题目是求x(2t+1)的FT,答案为:(1/2)exp[(1/2)jw]X(w/2)傅里叶变换是针对于连续时间信号的。x(2n+1)是一个离散信号应该求的是z变换,题目如果是已知x(n)的Z变换是X(Z)求x(2n+1)的z变换。但是离散信号压缩或拉伸没什么意思,容易导致信号丢失,所以这个题目不对。2023-07-10 20:42:305
卷积怎么计算
问题一:二维卷积如何运算? A=[100,100,100 100,100,100 100,100,100] B=[1/9,1/9,1/9 1/9,1/9,1/9 1/9,1/9,1/9] c=conv2(A,B) 问题二:两个函数的卷积怎么算 你好。 只要使用conv函数就可以了。 例子: u=ones(1,100); v=2*u; w = conv(u,v); plot(w); 问题三:什么是卷积?要怎么求两个函数的卷积? 15分 简介 褶积(又名卷积)和反褶积(又名去卷积)是一种积分变换的数学方法,在许多方面得到了广泛应用。用褶积解决试井解释中的问题,早就取得了很好成果;而反褶积,直到最近,Schroeter、Hollaender和Gringarten等人解决了其计算方法上的稳定性问题,使反褶积方法很快引起了试井界的广泛注意。有专家认为,反褶积的应用是试井解释方法发展史上的又一次重大飞跃。他们预言,随着测试新工具和新技术的增加和应用,以及与其它专业研究成果的更紧密结合,试井在油气藏描述中的作用和重要性必将不断增大[1] 。 2基本内涵 简单定义:卷积是分析数学中一种重要的运算。 设:f(x),g(x)是R1上的两个可积函数,作积分: 可以证明,关于几乎所有的实数x,上述积分是存在的。这样,随着x的不同取值,这个积分就定义了一个新函数h(x),称为函数f与g的卷积,记为h(x)=(f*g)(x)。 容易验证,(f * g)(x) = (g * f)(x),并且(f * g)(x)仍为可积函数。这就是说,把卷积代替乘法,L1(R1)空间是一个代数,甚至是巴拿赫代数。 卷积与傅里叶变换有着密切的关系。利用一点性质,即两函数的傅里叶变换的乘积等于它们卷积后的傅里叶变换,能使傅里叶分析中许多问题的处理得到简化。 由卷积得到的函数f*g一般要比f和g都光滑。特别当g为具有紧致集的光滑函数,f为局部可积时,它们的卷积f * g也是光滑函数。利用这一性质,对于任意的可积函数f,都可以简单地构造出一列逼近于f的光滑函数列fs,这种方法称为函数的光滑化或正则化。 卷积的概念还可以推广到数列、测度以及广义函数上去。 3定义 卷积是两个变量在某范围内相乘后求和的结果。如果卷积的变量是序列x(n)和h(n),则卷积的结果 , 其中星号*表示卷积。当时序n=0时,序列h(-i)是h(i)的时序i取反的结果;时序取反使得h(i)以纵轴为中心翻转180度,所以这种相乘后求和的计算法称为卷积和,简称卷积。另外,n是使h(-i)位移的量,不同的n对应不同的卷积结果。 如果卷积的变量是函数x(t)和h(t),则卷积的计算变为 , 其中p是积分变量,积分也是求和,t是使函数h(-p)位移的量,星号*表示卷积。 参考《数字信号处理》杨毅明著,p.55、p.188、p.264,机械工业出版社2012年发行。 4性质 各 perfect spaces卷积混响 种卷积算子都满足下列性质: 交换律 结合律 分配律 数乘结合律 其中a为任意实数(或复数)。 微分定理 其中Df表示f的微分,如果在离散域中则是指差分算子,包括前向差分与后向差分两种。 5卷积定理 卷积定理指出,函数卷积的傅里叶变换是函数傅里叶变换的乘积。即,一个域中的卷积相当于另一个域中的乘积,例如时域中的卷积就对应于频域中的乘积。 F(g(x)*f(x)) = F(g(x))F(f(x)) 其中F表示的是傅里叶变换。 这一定理对拉普拉斯变换、双边拉普拉斯变换、Z变换、Mellin变换和Hartley变换(参见Mellin inversion theorem)等各种傅里叶变换的变体同样成立。在调和分析中还可以推广到在局部紧致的阿贝尔群上定义的傅里叶变换。 利用卷积定理可以简化卷积的运算量。对于长度为n的序列,按照卷积的定义进行计算,需要做2n- 1组对位乘法,其计算复杂度为;而利用傅里叶变换将序列变换到频域上后,只需要一组对位乘法,利用傅里叶变换的快速算法之后,总的计算复杂度为。这一结果可以在快速乘法计算中得到应用。 6群上卷积 卷积与相关分析......>> 问题四:信号与系统,这个卷积按定义怎么算?求详细过程,谢谢。 卷积计算方法如上。 你的题里面 f1(tau)=e^(-2tau) (tau>0), =0 (tau0) =0 (tau 问题五:请问u(t)*u(t-1)卷积怎么算??? u(t)*u(t-1)=u(t)*u(t)*δ(t-1) =tu(t)*δ(t-1) =(t-1)u(t-1) 问题六:遥感图像卷积计算怎么搞? 通过对信号与线性系统中离散卷积及其运算方法的分析,研究序列形式的离散信号的卷积运算过程,在图解法基础上提出了较为简便的运算方法―――列表法.此列表法与图解法所得结果完全相同,却使运算过程大为简化 问题七:怎样理解卷积积分 对于非数学系学生来说,只要懂怎么用卷积就可以了,研究什么是卷积其实意义不大,它就是一种微元相乘累加的极限形式。卷积本身不过就是一种数学运算而已。就跟“蝶形运算”一样,怎么证明,这是数学系的人的工作。 在信号与系统里,f(t)的零状态响应y(t)可用f(t)与其单位冲激响应h(t)的卷积积分求解得,即y(t)=f(t)*h(t)。学过信号与系统的都应该知道,时域的卷积等于频域的乘积,即有Y(s)=F(s)×H(s)。(s=jw,拉氏变换后等到的函数其实就是信号的频域表达式) 有一点你必须明白,在通信系统里,我们关心的以及要研究的是信号的频域,不是时域,原因是因为信号的频率是携带有信息的量。 所以,我们需要的是Y(s)这个表达式,但是实际上,我们往往不能很容易的得到F(s)和H(s)这两个表达式,但是能直接的很容易的得到f(t)和h(t),所以为了找到Y(s)和y(t)的对应关系,就要用到卷积运算。 复频域。 s=jw,当中的j是复数单位,所以使用的是复频域。通俗的解释方法是,因为系统中有电感X=jwL、电容X=1/jwC,物理意义是,系统H(s)对不同的频率分量有不同的衰减,即这种衰减是发生在频域的,所以为了与时域区别,引入复数的运算。但是在复频域计算的形式仍然满足欧姆定理、KCL、KVL、叠加法。 负的频率。 之所以会出现负的频率,这只是数学运算的结果,只存在于数学运算中,实际中不会有负的频率。2023-07-10 20:42:561
Matlab 对函数中的系数作傅里叶变换 求助
看一下积分变换吧。2023-07-10 20:43:075
想用C语言实现一个1024点的FFT,找到的基2-FFT的程序能实现128以内的FFT,运行结果和matlab的fft()是一样的
我也写了个fft程序,256点时计算还正确,但是512和1024点结果就错了,希望楼主答案的话能告知,2023-07-10 20:43:241
什么是FFT算法?DSP是什么?
FFT是快速傅里叶变换( Fast Fourier Transform )DSP是数字信号处理 ( Digital Signal Processing )2023-07-10 20:43:311
数字信号处理 判断题
1.正确 2错误 3错误2023-07-10 20:43:371
8点ditfft蝶形图的对应关系
8点ditfft蝶形图的对应关系是:1. 原位运算 在DIT-FFT的蝶形图中,取第m级且两输入节点分别在第k、j行的蝶形为例,讨论DIT-FFT的原位运算规律。2. . 倒序规律 从图3.5可以看出,按原位计算时,蝶形图的输出正好是自然顺序X(0),X(1),...,X(7),2023-07-10 20:43:501
DSP芯片和DSP技术的问题
你说的是其中的一部分知识,是DSP处理的信息的原理。要向学习DSP的硬件开发,还要学习微机原理,由单片机系统的设计经验最好。还有就是DSP的开发环境,也就是CCS,要掌握常用的编程语言,有汇编语言和C语言的编程经验最好.首先要了解DSP的特点。数字信号处理相对于模拟信号处理有很大的优越性,表现在精度高、灵活性大、可靠性好、易于大规模集成等方面。随着人们对实时信号处理要求的不断提高和大规模集成电路技术的迅速发展,数字信号处理技术也发生着日新月异的变革。实时数字信号处理技术的核心和标志是数字信号处理器。自第一个微处理器问世以来,微处理器技术水平得到了十分迅速的提高,而快速傅立叶交换等实用算法的提出促进了专门实现数字信号处理的一类微处理器的分化和发展。数字信号处理有别于普通的科学计算与分析,它强调运算处理的实时性,因此DSP除了具备普通微处理器所强调的高速运算和控制功能外,针对实时数字信号处理,在处理器结构、指令系统、指令流程上具有许多新的特征,其特点如下:(1) 算术单元具有硬件乘法器和多功能运算单元,硬件乘法器可以在单个指令周期内完成乘法操作,这是DSP区别于通用的微处理器的一个重要标志。多功能运算单元可以完成加减、逻辑、移位、数据传送等操作。新一代的DSP内部甚至还包含多个并行的运算单元。以提高其处理能力。针对滤波、相关、矩阵运算等需要大量乘和累加运算的特点,DSP的算术单元的乘法器和加法器,可以在一个时钟周期内完成相乘、累加两个运算。近年出现的某些DSP如ADSP2106X、DSP96000系列DSP可以同时进行乘、加、减运算,大大加快了FFT的蝶形运算速度。(2) 总线结构传统的通用处理器采用统一的程序和数据空间、共享的程序和数据总线结构,即所谓的冯u2022诺依曼结构。DSP普遍采用了数据总线和程序总线分离的哈佛结构或者改进的哈佛结构,极大的提高了指令执行速度。片内的多套总线可以同时进行取指令和多个数据存取操作,许多DSP片内嵌有DMA控制器,配合片内多总线结构,使数据块传送速度大大提高。 如TI公司的C6000系列的DSP采用改进的哈佛结构,内部有一套256位宽度的程序总线、两套32位的数据总线和一套32位的DMA总线。ADI公司的SHARC系列DSP采用超级哈佛结构(Super Harvared Architecture Computer),内部集成了三套总线,即程序存储器总线、数据存储器总线和输入输出总线。(3) 专用寻址单元DSP面向数据密集型应用,伴随着频繁的数据访问,数据地址的计算也需要大量时间。DSP内部配置了专用的寻址单元,用于地址的修改和更新,它们可以在寻址访问前或访问后自动修改内容,以指向下一个要访问的地址。地址的修改和更新与算术单元并行工作,不需要额外的时间。DSP的地址产生器支持直接寻址、间接寻址操作,大部分DSP还支持位反转寻址(用于FFT算法)和循环寻址(用于数字滤波算法)。(4) 片内存储器针对数字信号处理的数据密集运算的需要,DSP对程序和数据访问的时间要求很高,为了减小指令和数据的传送时间,许多DSP内部集成了高速程序存储器和数据存储器,以提高程序和数据的访问存储器的速度。如TI公司的C6000系列的DSP内部集成有1M~7M位的程序和数据RAM;ADI公司的SHARC系列DSP内部集成有0.5M~2M位的程序和数据RAM,Tiger SHARC系列DSP内部集成有6M位的程序和数据RAM。(5) 流水处理技术 DSP大多采用流水技术,即将一条指令的执行过程分解成取指、译码、取数、执行等若干个阶段,每个阶段称为一级流水。每条指令都由片内多个功能单元分别完成取指、译码、取数、执行等操作,从而在不提高时钟频率的条件下减少了每条指令的执行时间。 (6) DSP与其它处理器的差别数字信号处理器(DSP)、通用微处理器(MPU)、微控制器(MCU)三者的区别在于:DSP面向高性能、 重复性、数值运算密集型的实时处理;MPU大量应用于计算机;MCU则适用于以控制为主的处理过程。DSP的运算速度比其它处理器要高得多,以FFT、相关为例,高性能DSP不仅处理速度是MPU的 4~10倍,而且可以连续不断地完成数据的实时输入/输出。DSP结构相对单一,普遍采用汇编语言编程,其任务完成时间的可预测性相对于结构和指令复杂(超标量指令)、严重依赖于编译系统的MPU强得多。以一个FIR滤波器实现为例,每输入一个数据,对应每阶滤波器系数需要一次乘、一次加、一次取指、二次取数,还需要专门的数据移动操作,DSP可以单周期完成乘加并行操作以及3~4次数据存取操作,而普通MPU完成同样的操作至少需要4个指令周期。因此,在相同的指令周期和片内指令缓存条件下,DSP的运算送到可以超过MPU运算速度的4倍以上。正是基于 DSP的这些优势,在新推出的高性能通用微处理器(如Pentium、Power PC 604e等)片内已经融入了 DSP的功能,而以这种通用微处理器构成的计算机在网络通信、语音图像处理、实时数据分析等方面的效率大大提高。2023-07-10 20:44:004
画出4点按时间抽取的基2FFT的蝶形图
基2FFT的蝶形图对信号进行分析和处理时最常用的工具之一。在200多年前法国数学家、物理学家傅里叶提出后来以他名字命名的傅里叶级数之后,用DFT这个工具来分析信号就已经为人们所知。历史上最伟大的数学家之一。它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。扩展资料:FFT的基本思想是把原始的N点序列,依次分解成一系列的短序列。充分利用DFT计算式中指数因子 所具有的对称性质和周期性质,进而求出这些短序列相应的DFT并进行适当组合,达到删除重复计算,减少乘法运算和简化结构的目的。此后,在这思想基础上又开发了高基和分裂基等快速算法,随着数字技术的高速发展,1976年出现建立在数论和多项式理论基础上的维诺格勒傅里叶变换算法(WFTA)和素因子傅里叶变换算法。它们的共同特点是,当N是素数时,可以将DFT算转化为求循环卷积,从而更进一步减少乘法次数,提高速度。2023-07-10 20:44:221
FFT原理的FFT基本原理
FFT是一种DFT的高效算法,称为快速傅立叶变换(fast Fourier transform)。FFT算法可分为按时间抽取算法和按频率抽取算法,先简要介绍FFT的基本原理。从DFT运算开始,说明FFT的基本原理。DFT的运算为:式中由这种方法计算DFT对于X(K)的每个K值,需要进行4N次实数相乘和(4N-2)次相加,对于N个k值,共需N*N乘和N(4N-2)次实数相加。改进DFT算法,减小它的运算量,利用DFT中的周期性和对称性,使整个DFT的计算变成一系列迭代运算,可大幅度提高运算过程和运算量,这就是FFT的基本思想。FFT基本上可分为两类,时间抽取法和频率抽取法,而一般的时间抽取法和频率抽取法只能处理长度N=2^M的情况,另外还有组合数基四FFT来处理一般长度的FFT 设N点序列x(n),,将x(n)按奇偶分组,公式如下图改写为:一个N点DFT分解为两个 N/2点的DFT,继续分解,迭代下去,其运算量约为其算法有如下规律两个4点组成的8点DFT四个2点组成的8点DFT按时间抽取的8点DFT原位计算当数据输入到存储器中以后,每一级运算的结果仍然储存在同一组存储器中,直到最后输出,中间无需其它存储器序数重排对按时间抽取FFT的原位运算结构,当运算完毕时,这种结构存储单元A(1)、A(2),…,A(8)中正好顺序存放着X(0),X(1),X(2),…,X(7),因此可直接按顺序输出,但这种原位运算的输入x(n)却不能按这种自然顺序存入存储单元中,而是按X(0),X(4),X(2),X(6),…,X(7)的顺序存入存储单元,这种顺序看起来相当杂乱,然而它也是有规律的。当用二进制表示这个顺序时,它正好是“码位倒置”的顺序。蝶形类型随迭代次数成倍增加每次迭代的蝶形类型比上一次蝶代增加一倍,数据点间隔也增大一倍 频率抽取2FFT算法是按频率进行抽取的算法。设N=2^M,将x(n)按前后两部分进行分解,按K的奇偶分为两组,即得到两个N/2 点的DFT运算。如此分解,并迭代,总的计算量和时间抽取(DIT)基2FFT算法相同。算法规律如下:蝶形结构和时间抽取不一样但是蝶形个数一样,同样具有原位计算规律,其迭代次数成倍减小 时,可采取补零使其成为,或者先分解为两个p,q的序列,其中p*q=N,然后进行计算。 前面介绍,采用FFT算法可以很快算出全部N点DFT值,即z变换X(z)在z平面单位圆上的全部等间隔取样值。实际中也许①不需要计算整个单位圆上z变换的取样,如对于窄带信号,只需要对信号所在的一段频带进行分析,这时希望频谱的采样集中在这一频带内,以获得较高的分辨率,而频带以外的部分可不考虑,②或者对其它围线上的z变换取样感兴趣,例如语音信号处理中,需要知道z变换的极点所在频率,如极点位置离单位圆较远,则其单位圆上的频谱就很平滑,这时很难从中识别出极点所在的频率,如果采样不是沿单位圆而是沿一条接近这些极点的弧线进行,则在极点所在频率上的频谱将出现明显的尖峰,由此可较准确地测定极点频率。③或者要求能有效地计算当N是素数时序列的DFT,因此提高DFT计算的灵活性非常有意义。螺旋线采样是一种适合于这种需要的变换,且可以采用FFT来快速计算,这种变换也称作Chirp-z变换。2023-07-10 20:45:031
一个关于128点的快速傅立叶的C语言程序
这是我写的1024点的快速傅里叶变换程序,下面有验证,你把数组doubleA[2049]={0};doubleB[1100]={0};doublepowerA[1025]={0};改成A[256]={0};B[130]={0};power[129]={0};就行了,voidFFT(doubledata[],intnn,intisign)的程序可以针对任何点数,只要是2的n次方具体程序如下:#include<iostream.h>#include"math.h"#include<stdio.h>#include<string.h>#include<stdlib.h>#include<fstream.h>#include<afx.h>voidFFT(doubledata[],intnn,intisign){//复数的快速傅里叶变换intn,j,i,m,mmax,istep;doubletempr,tempi,theta,wpr,wpi,wr,wi,wtemp;n=2*nn;j=1;for(i=1;i<=n;i=i+2)//这个循环进行的是码位倒置。{if(j>i){tempr=data[j];tempi=data[j+1];data[j]=data[i];data[j+1]=data[i+1];data[i]=tempr;data[i+1]=tempi;}m=n/2;while(m>=2&&j>m){j=j-m;m=m/2;}j=j+m;}mmax=2;while(n>mmax){istep=2*mmax;//这里表示一次的数字的变化。也体现了级数,若第一级时,也就是书是的第0级,其为两个虚数,所以对应数组应该增加4,这样就可以进入下一组运算theta=-6.28318530717959/(isign*mmax);wpr=-2.0*sin(0.5*theta)*sin(0.5*theta);wpi=sin(theta);wr=1.0;wi=0.0;for(m=1;m<=mmax;m=m+2){for(i=m;i<=n;i=i+istep){j=i+mmax;tempr=double(wr)*data[j]-double(wi)*data[j+1];//这两句表示蝶形因子的下一个数乘以W因子所得的实部和虚部。tempi=double(wr)*data[j+1]+double(wi)*data[j];data[j]=data[i]-tempr;//蝶形单元计算后下面单元的实部,下面为虚部,注意其变换之后的数组序号与书上蝶形单元是一致的data[j+1]=data[i+1]-tempi;data[i]=data[i]+tempr;data[i+1]=data[i+1]+tempi;}wtemp=wr;wr=wr*wpr-wi*wpi+wr;wi=wi*wpr+wtemp*wpi+wi;}mmax=istep;}}voidmain(){//本程序已经和MATLAB运算结果对比,准确无误,需要注意的的是,计算中数组都是从1开始取得,丢弃了A[0]等数据doubleA[2049]={0};doubleB[1100]={0};doublepowerA[1025]={0};charline[50];chardataA[20],dataB[20];intij;charch1[3]=" ";charch2[3]=" ";intstrl1,strl2;CStringstr1,str2;ij=1;//********************************读入文件data1024.txt中的数据,其中的数据格式见该文件FILE*fp=fopen("data1024.txt","r");if(!fp){cout<<"Openfileisfailing!"<<endl;return;}while(!feof(fp))//feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为1,否则为0。{memset(line,0,50);//清空为0memset(dataA,0,20);memset(dataB,0,20);fgets(line,50,fp);//函数的功能是从fp所指文件中读入n-1个字符放入line为起始地址的空间内sscanf(line,"%s%s",dataA,dataB);//我同时读入了两列值,但你要求1024个,那么我就只用了第一列的1024个值//dataA读入第一列,dataB读入第二列B[ij]=atof(dataA);//将字符型的dataA值转化为float型ij++;}for(intmm=1;mm<1025;mm++)//A[2*mm-1]是实部,A[2*mm]是虚部,当只要输入实数时,那么保证虚部A[mm*2]为零即可{A[2*mm-1]=B[mm];A[2*mm]=0;}//*******************************************正式计算FFTFFT(A,1024,1);//********************************************写入数据到workout.txt文件中for(intk=1;k<2049;k=k+2){powerA[(k+1)/2]=sqrt(pow(A[k],2.0)+pow(A[k+1],2.0));//求功率谱FILE*pFile=fopen("workout.txt","a+");//?a+只能在文件最后补充,光标在结尾。没有则创建memset(ch1,0,15);str1.Format("%.4f",powerA[(k+1)/2]);if(A[k+1]>=0)str2.Format("%d %6.4f%s%6.4f%s",(k+1)/2,A[k],"+",A[k+1],"i");//保存fft计算的频谱,是复数频谱elsestr2.Format("%d %6.4f%6.4f%s",(k+1)/2,A[k],A[k+1],"i");strl1=strlen(str1);strl2=strlen(str2);//用法:fwrite(buffer,size,count,fp);//buffer:是一个指针,对fwrite来说,是要输出数据的地址。//size:要写入的字节数;//count:要进行写入size字节的数据项的个数;//fp:目标文件指针。fwrite(str2,1,strl2,pFile);fwrite(ch1,1,3,pFile);fwrite(ch1,1,3,pFile);fwrite(str1,1,strl1,pFile);fwrite(ch2,1,3,pFile);fclose(pFile);}cout<<"计算完毕,到fft_testworkout.txt查看结果"<<endl;}2023-07-10 20:45:162
化油器与电喷的区别
动力方面,电喷比化油器更大一些。电喷最主要的作用就是控制空燃比和油气混合,使得燃烧更充分,释放出更大的功率。电喷喷油量精确省油,雾化好燃烧好动力强排放好,适应性好,海拔升高自动降低喷油量点火时间。而化油器排放无法支持最新标准,费油,冬天启动困难,操作不当有几率淹火花塞,无法根据需求调整喷油浓度,雾化效果差燃烧容易不充分。扩展资料:简单的化油器由上中下三部分组成,上部分有进气口和浮子室,中间部分有喉管、量孔和喷管,下部分有节气门等。浮子室是一个矩形容器,存储着来自汽油泵的汽油,容器里面有一只浮子利用浮面(油面)高度控制着进油量。中部的喷管一头进油口与浮子室的量孔相通,另一头出油口在喉管的咽喉处。喉管呈蜂腰状,两头大中间小,其中间咽喉处的截面积最小。当发动机启动时活塞下行产生吸力,吸入的气流经过咽喉处时速度最大,静压力却最低,故喉管压力小于大气压力,也就是说喉管咽喉处与浮子室之间产生了压力差,即有了人们常说的"真空度",压力差愈大真空度愈大。汽油在真空度的作用下从喷管出油口喷出,因为喉管咽喉处的空气流速是汽油流速的25倍,因此喷管喷出的油流即被高速的空气流冲散,形成大小不等的雾状颗粒,即“雾化”。初步雾化的油粒与空气混合成“混合气”,经节气门、进气管道(4)和进气门(5)进入气缸的燃烧室。在这里,节气门的开度大小和发动机的转速决定了喉管处的真空度,而节气门的开度变化直接影响着混合气的比例成份,这些都是影响发动机运行的重要原因。参考资料:化油器-百度百科2023-07-10 20:45:2514
谁知道DFT和FFT的发展历史啊
DFT/FFT的发展历史 离散傅里叶变换(Discrete Fourier Transform,DFT)是数字信号处理最重要的基石之一,也是对信号进行分析和处理时最常用的工具之一。在200多年前法国数学家、物理学家傅里叶提出后来以他名字命名的傅里叶级数之后,用DFT这个工具来分析信号就已经为人们所知。历史上最伟大的数学家之一。 欧拉是第一个使用“函数”一词来描述包含各种参数的表达式的人,例如:y = f(x)。他是把微积分应用于物理学的先驱者之一。 给出了一个用实变量函数表示傅立叶级数系数的方程; 用三角级数来描述离散声音在弹性媒介中传播,发现某些函数可以通过余弦函数之和来表达。 但在很长时间内,这种分析方法并没有引起更多的重视,最主要的原因在于这种方法运算量比较大。直到1965年,Cooley和Tukey在《计算机科学 》发表著名的《机器计算傅立叶级数的一种算法》论文,FFT才开始大规模应用。 那个年代,有个肯尼迪总统科学咨询委员会。其中有项研究主题是,对苏联核测试进行检测,Tukey就是其中一员。美国/苏联核测试提案的批准,主要取决于不实地访问核测试设施而做出检测的方法的发展。其中一个想法是,分析离海岸的地震计情况,这种计算需要快速算法来计算DFT。其它应用是国家安全,如用声学探测远距离的核潜艇。所以在军事上,迫切需要一种快速的傅立叶变换算法,这也促进了FFT的正式提出。 FFT的这种方法充分利用了DFT运算中的对称性和周期性,从而将DFT运算量从N2减少到N*log2N。当N比较小时,FFT优势并不明显。但当N大于32开始,点数越大,FFT对运算量的改善越明显。比如当N为1024时,FFT的运算效率比DFT提高了100倍。在库利和图基提出的FFT算法中,其基本原理是先将一个N点时域序列的DFT分解为N个1点序列的DFT,然后将这样计算出来的N个1点序列DFT的结果进行组合,得到最初的N点时域序列的DFT值。实际上,这种基本的思想很早就由德国伟大的数学家高斯提出过,在某种情况下,天文学计算(也是现在FFT应用的领域之一)与等距观察的有限集中的行星轨道的内插值有关。由于当时计算都是靠手工,所以产生一种快速算法的迫切需要。 而且,更少的计算量同时也代表着错误的机会更少,正确性更高。高斯发现,一个富氏级数有宽度N=N1*N2,可以分成几个部分。计算N2子样本DFT的N1长度和N1子样本DFT的N2长度。只是由于当时尚欠东风——计算机还没发明。在20世纪60年代,伴随着计算机的发展和成熟,库利和图基的成果掀起了数字信号处理的革命,因而FFT发明者的桂冠才落在他们头上。 之后,桑德(G.Sand)-图基等快速算法相继出现,几经改进,很快形成了一套高效运算方法,这就是现在的快速傅立叶变换(FFT)。这种算法使DFT的运算效率提高1到2个数量级,为数字信号处理技术应用于各种信号的实时处理创造了良好的条件,大大推进了数学信号处理技术。1984年,法国的杜哈梅(P.Dohamel)和霍尔曼(H.Hollamann)提出的分裂基块快速算法,使运算效率进一步提高。 库利和图基的FFT算法的最基本运算为蝶形运算,每个蝶形运算包括两个输入点,因而也称为基-2算法。在这之后,又有一些新的算法,进一步提高了FFT的运算效率,比如基-4算法,分裂基算法等。这些新算法对FFT运算效率的提高一般在50%以内,远远不如FFT对DFT运算的提高幅度。从这个意义上说,FFT算法是里程碑式的。可以说,正是计算机技术的发展和FFT的出现,才使得数字信号处理迎来了一个崭新的时代。除了运算效率的大幅度提高外,FFT还大大降低了DFT运算带来的累计量化误差,这点常为人们所忽略。 分给我吧 哈哈2023-07-10 20:46:1710
matlab程序画图
stem(n,x); 这句的错误,n和x的维度不一样,你一步步的运行试试 看看那儿出问题了(注意维度)2023-07-10 20:46:421
分别求f(t)=t和f(t)=1/t的 傅里叶变换
f(t)=t不满足绝对可积,不符合傅里叶变换的存在条件 所以不存在傅里叶变换1/t傅里叶变换为 -i*3.14*sgn(w)2023-07-10 20:46:572
《数字信号处理》中的DIT-FFT蝶形运算流图有谁看明白了?
按照图里的方法,把数带进去就能算了。2023-07-10 20:47:051
简要叙述基2 DIT-FFT与基2 DIF-FFT快速算法运算流图的主要异同点。
DIT先乘以旋转因子后蝶形运算DIF先蝶形运算后乘以旋转因子2023-07-10 20:47:331
抽样函数的傅里叶变换怎么算?
因为频域抽样函数,反变换回来时域就是方波) 序列福利叶变换的关系是特殊的"离散傅立叶变换",也就是时域序列被认为是各种方波抽样信号的叠加,认为复数的角度只取0和∏这两种情况,于是你就看到了序列的傅立叶变换。 序列的傅立叶变换,因为频率不再有意义(因为只有两种角度),所以X(k)之间只有顺序关系(原来是频移关系),通常写为Z变换。另外,虚机团上产品团购,超级便宜2023-07-10 20:47:442
求傅里叶变化 详细过程 谢谢 又追加悬赏
尽管最初傅立叶分析是作为热过程的解析分析的工具,但是其思想方法仍然具有典型的还原论和分析主义的特征。"任意"的函数通过一定的分解,都能够表示为正弦函数的线性组合的形式,而正弦函数在物理上是被充分研究而相对简单的函数类,这一想法跟化学上的原子论想法何其相似!奇妙的是,现代数学发现傅立叶变换具有非常好的性质,使得它如此的好用和有用,让人不得不感叹造物的神奇: 1. 傅立叶变换是线性算子,若赋予适当的范数,它还是酉算子; 2. 傅立叶变换的逆变换容易求出,而且形式与正变换非常类似; 3. 正弦基函数是微分运算的本征函数,从而使得线性微分方程的求解可以转化为常系数的代数方程的求解.在线性时不变的物理系统内,频率是个不变的性质,从而系统对于复杂激励的响应可以通过组合其对不同频率正弦信号的响应来获取; 4. 著名的卷积定理指出:傅立叶变换可以化复杂的卷积运算为简单的乘积运算,从而提供了计算卷积的一种简单手段; 5. 离散形式的傅立叶变换可以利用数字计算机快速的算出(其算法称为快速傅立叶变换算法(FFT)). 正是由于上述的良好性质,傅里叶变换在物理学、数论、组合数学、信号处理、概率、统计、密码学、声学、光学等领域都有着广泛的应用。 有関傅立叶变换的FPGA实现 傅立叶变换是数字信号处理中的基本操作,广泛应用于表述及分析离散时域信号领域。但由于其运算量与变换点数N的平方成正比关系,因此,在N较大时,直接应用DFT算法进行谱变换是不切合实际的。然而,快速傅立叶变换技术的出现使情况发生了根本性的变化。本文主要描述了采用FPGA来实现2k/4k/8k点FFT的设计方法。整体结构 一般情况下,N点的傅立叶变换对为: 其中,WN=exp(-2pi/N)。X(k)和x(n)都为复数。与之相对的快速傅立叶变换有很多种,如DIT(时域抽取法)、DIF(频域抽取法)、Cooley-Tukey和Winograd等。对于2n傅立叶变换,Cooley-Tukey算法可导出DIT和DIF算法。本文运用的基本思想是Cooley-Tukey算法,即将高点数的傅立叶变换通过多重低点数傅立叶变换来实现。虽然DIT与DIF有差别,但由于它们在本质上都是一种基于标号分解的算法,故在运算量和算法复杂性等方面完全一样,而没有性能上的优劣之分,所以可以根据需要任取其中一种,本文主要以DIT方法为对象来讨论。 N=8192点DFT的运算表达式为: 式中,m=(4n1+n2)(2048k1+k2)(n=4n1+n2,k=2048k1+k2)其中n1和k2可取0,1,...,2047,k1和n2可取0,1,2,3。 由式(3)可知,8k傅立叶变换可由4×2k的傅立叶变换构成。同理,4k傅立叶变换可由2×2k的傅立叶变换构成。而2k傅立叶变换可由128×16的傅立叶变换构成。128的傅立叶变换可进一步由16×8的傅立叶变换构成,归根结底,整个傅立叶变换可由基2、基4的傅立叶变换构成。2k的FFT可以通过5个基4和1个基2变换来实现;4k的FFT变换可通过6个基4变换来实现;8k的FFT可以通过6个基4和1个基2变换来实现。也就是说:FFT的基本结构可由基2/4模块、复数乘法器、存储单元和存储器控制模块构成,其整体结构如图1所示。 图1中,RAM用来存储输入数据、运算过程中的中间结果以及运算完成后的数据,ROM用来存储旋转因子表。蝶形运算单元即为基2/4模块,控制模块可用于产生控制时序及地址信号,以控制中间运算过程及最后输出结果。蝶形运算器的实现 基4和基2的信号流如图2所示。图中,若A=r0+j*i0,B=r1+j*i1,C=r2+j*i2,D=r3+j*i3是要进行变换的信号,Wk0=c0+j*s0=1,Wk1=c1+j*s1,Wk2=c2+j*s2,Wk3=c3+j*s3为旋转因子,将其分别代入图2中的基4蝶形运算单元,则有: A′=[r0+(r1×c1-i1×s1)+(r2×c2-i2×s2)+(r3×c3-i3×s3)]+j[i0+(i1×c1+r1×s1)+(i2×c2+r2×s2)+(i3×c3+r3×s3)]? (4) B′=[r0+(i1×c1+r1×s1)-(r2×c2-i2×s2)-(i3×c3+r3×s3)]+j[i0-(r1×c1-i1×s1)-(i2×c2+r2×s2)+(r3×c3-i3×s3)] (5) C′=[r0-(r1×c1-i1×s1)+(r2×c2-i2×s2)-(r3×c3-i3×s3)]+j[i0-(i1×c1+r1×s1)+(i2×c2+r2×s2)-(i3×c3+r3×s3)] (6) D′=[r0-(i1×c1+r1×s1)-(r2×c2-i2×s2)+(i3×c3+r3×s3)]+j[i0+(r1×c1-i1×s1)-(i2×c2+r2×s2)-(r3×c3-i3×s3)]? (7) 而在基2蝶形中,Wk0和Wk2的值均为1,这样,将A,B,C和D的表达式代入图2中的基2运算的四个等式中,则有: A′=r0+(r1×c1-i1×s1)+j[i0+(i1×c1+r1×s1)]? (8) B′=r0- (r1×c1-i1×s1)+j[i0-(i1×c1+r1×s1)] (9) C′=r2+(r3×c3-i3×s3)+j[i0+(i3×c3+r3×s3)]? (10) D′=r2-(r3×c3-i3×s3)+j[i0-(i3×c3+r3×s3)]? (11) 在上述式(4)~(11)中有很多类同项,如i1×c1+r1×s1和r1×c1-i1×s1等,它们仅仅是加减号的不同,其结构和运算均类似,这就为简化电路提供了可能。同时,在蝶形运算中,复数乘法可以由实数乘法以一定的格式来表示,这也为设计复数乘法器提供了一种实现的途径。 以基4为例,在其运算单元中,实际上只需做三个复数乘法运算,即只须计算BWk1、CWk2和DWk3的值即可,这样在一个基4蝶形单元里面,最多只需要3个复数乘法器就可以了。在实际过程中,在不提高时钟频率下,只要将时序控制好?便可利用流水线(Pipeline)技术并只用一个复数乘法器就可完成这三个复数乘法,大大节省了硬件资源。 图2 基2和基4蝶形算法的信号流图FFT的地址 FFT变换后输出的结果通常为一特定的倒序,因此,几级变换后对地址的控制必须准确无误。 倒序的规律是和分解的方式密切相关的,以基8为例,其基本倒序规则如下: 基8可以用2×2×2三级基2变换来表示,则其输入顺序则可用二进制序列(n1 n2 n3)来表示,变换结束后,其顺序将变为(n3 n2 n1),如:X?011 → x?110 ,即输入顺序为3,输出时顺序变为6。 更进一步,对于基16的变换,可由2×2×2×2,4×4,4×2×2等形式来构成,相对于不同的分解形式,往往会有不同的倒序方式。以4×4为例,其输入顺序可以用二进制序列(n1 n2 n3n4)来表示变换结束后,其顺序可变为((n3 n4)(n1 n2)),如: X?0111 → x?1101 。即输入顺序为7,输出时顺序变为13。 在2k/4k/8k的傅立叶变换中,由于要经过多次的基4和基2运算,因此,从每次运算完成后到进入下一次运算前,应对运算的结果进行倒序,以保证运算的正确性。旋转因子 N点傅立叶变换的旋转因子有着明显的周期性和对称性。其周期性表现为: FFT之所以可使运算效率得到提高,就是利用了对称性和周期性把长序列的DFT逐级分解成几个序列的DFT,并最终以短点数变换来实现长点数变换。 根据旋转因子的对称性和周期性,在利用ROM存储旋转因子时,可以只存储旋转因子表的一部分,而在读出时增加读出地址及符号的控制,这样可以正确实现FFT。因此,充分利用旋转因子的性质,可节省70%以上存储单元。 实际上,由于旋转因子可分解为正、余弦函数的组合,故ROM中存的值为正、余弦函数值的组合。对2k/4k/8k的傅立叶变换来说,只是对一个周期进行不同的分割。由于8k变换的旋转因子包括了2k/4k的所有因子,因此,实现时只要对读ROM的地址进行控制,即可实现2k/4k/8k变换的通用。存储器的控制 因FFT是为时序电路而设计的,因此,控制信号要包括时序的控制信号及存储器的读写地址,并产生各种辅助的指示信号。同时在计算模块的内部,为保证高速,所有的乘法器都须始终保持较高的利用率。这意味着在每一个时钟来临时都要向这些单元输入新的操作数,而这一切都需要控制信号的紧密配合。 为了实现FFT的流形运算,在运算的同时,存储器也要接收数据。这可以采用乒乓RAM的方法来完成。这种方式决定了实现FFT运算的最大时间。对于4k操作,其接收时间为4096个数据周期,这样?FFT的最大运算时间就是4096个数据周期。另外,由于输入数据是以一定的时钟为周期依次输入的,故在进行内部运算时,可以用较高的内部时钟进行运算,然后再存入RAM依次输出。 为节省资源,可对存储数据RAM采用原址读出原址写入的方法,即在进行下一级变换的同时,首先应将结果回写到读出数据的RAM存贮器中;而对于ROM,则应采用与运算的数据相对应的方法来读出存储器中旋转因子的值。 在2k/4k/8k傅立叶变换中,要实现通用性,控制器是最主要的模块。2k、4k、8k变换具有不同的内部运算时间和存储器地址,在设计中,针对不同的点数应设计不同的存储器存取地址,同时,在完成变换后,还要对开始输出有用信号的时刻进行指示。硬件的选择 本设计的硬件实现选用的是现场可编程门阵列(FPGA)来满足较高速度的需要。本系统在设计时选用的是ALTERA公司的STRATIX芯片,该芯片中包含有DSP单元,可以完成较为耗费资源的乘法器单元。同时,该器件也包含有大量存储单元,从而可保证旋转因子的精度。 除了一些专用引脚外,FPGA上几乎所有的引脚均可供用户使用,这使得FPGA信号处理方案具有非常好的I/O带宽。大量的I/O引脚和多块存储器可使设计获得优越的并行处理性能。其独立的存储块可作为输入/工作存储区和结果的缓存区,这使得I/O可与FFT计算同时进行。在实现的时间方面,该设计能在4096个时钟周期内完成一个4096点的FFT。若采用10MHz的输入时钟,其变换时间在200μs左右。而由于最新的FPGA使用了MultiTrack互连技术,故可在250MHz以下频率稳定地工作,同时,FFT的实现时间也可以大大缩小。 FFT运算结果的精度与输入数据的位数及运算过程中的位数有关,同时和数据的表示形式也有很大关系。一般来说,浮点方式比定点方式精度高。而在定点计算中,存储器数据的位数越大,运算精度越高,使用的存储单元和逻辑单元也越多。在实际应用中,应根据实际情况折衷选择精度和资源。本设计通过MATLAB进行仿真证明:其实现的变换结果与MATLAB工具箱中的FFT函数相比,信噪比可以达到65db以上,完全可以满足一般工程的实际应用要求。2023-07-10 20:47:521
怎样理解卷积积分?
对于非数学系学生来说,只要懂怎么用卷积就可以了,研究什么是卷积其实意义不大,它就是一种微元相乘累加的极限形式。卷积本身不过就是一种数学运算而已。就跟“蝶形运算”一样,怎么证明,这是数学系的人的工作。在信号与系统里,f(t)的零状态响应y(t)可用f(t)与其单位冲激响应h(t)的卷积积分求解得,即y(t)=f(t)*h(t)。学过信号与系统的都应该知道,时域的卷积等于频域的乘积,即有Y(s)=F(s)×H(s)。(s=jw,拉氏变换后等到的函数其实就是信号的频域表达式)有一点你必须明白,在通信系统里,我们关心的以及要研究的是信号的频域,不是时域,原因是因为信号的频率是携带有信息的量。所以,我们需要的是Y(s)这个表达式,但是实际上,我们往往不能很容易的得到F(s)和H(s)这两个表达式,但是能直接的很容易的得到f(t)和h(t),所以为了找到Y(s)和y(t)的对应关系,就要用到卷积运算。2023-07-10 20:48:122
怎么理解ofdm的cp将线性卷积转化为循环卷积
对于非数学系学生来说,只要懂怎么用卷积就可以了,研究什么是卷积其实意义不大,它就是一种微元相乘累加的极限形式。卷积本身不过就是一种数学运算而已。就跟“蝶形运算”一样,怎么证明,这是数学系的人的工作。在信号与系统里,f(t)的零状态响应y(t)可用f(t)与其单位冲激响应h(t)的卷积积分求解得,即y(t)=f(t)*h(t)。学过信号与系统的都应该知道,时域的卷积等于频域的乘积,即有Y(s)=F(s)×H(s)。(s=jw,拉氏变换后等到的函数其实就是信号的频域表达式)有一点你必须明白,在通信系统里,我们关心的以及要研究的是信号的频域,不是时域,原因是因为信号的频率是携带有信息的量。所以,我们需要的是Y(s)这个表达式,但是实际上,我们往往不能很容易的得到F(s)和H(s)这两个表达式,但是能直接的很容易的得到f(t)和h(t),所以为了找到Y(s)和y(t)的对应关系,就要用到卷积运算。复频域。s=jw,当中的j是复数单位,所以使用的是复频域。通俗的解释方法是,因为系统中有电感X=jwL、电容X=1/jwC,物理意义是,系统H(s)对不同的频率分量有不同的衰减,即这种衰减是发生在频域的,所以为了与时域区别,引入复数的运算。但是在复频域计算的形式仍然满足欧姆定理、KCL、KVL、叠加法。负的频率。之所以会出现负的频率,这只是数学运算的结果,只存在于数学运算中,实际中不会有负的频率。2023-07-10 20:48:191
如何画出4,8,16点基2 DIT-FFT和DIF-FFT的运算图?
如下:频域8点基2DFT。时域8点基2FFT。16点以此类推,两个8点。图像运算指以图像为单位进行的搡作(该操作对图像中的所有像素同样进行),运算的结果是一幅其灰度分布与原来参与运算图像灰度分布不同的新图像。具体的运算主要包括算术和逻辑运算,它们通过改变像素的值来得到图像增强的效果。算术和逻辑运算中每次只涉及一个空间像素的位置,所以可以“原地”完成,即在(x,y)位置做一个算术运算或逻辑运算的结果可以存在其中一个图像的相应位置,因为那个位置在其后的运算中不会再使用。换句话说,设对两幅图像f(x,y) 和h(x,y)的算术或逻辑运算的结果是g(x,y),则可直接将g(x,y)覆盖f(x,y)或h(x,y),即从原存放输入图像的空间直接得到输出图像。图像信号也具有频谱,虽然它的频谱比一般信号有更特别的解释。一般来说,图像频谱 的低频部分指那些灰度缓慢变化的部分,而高频成份意味着快速变化,往往是图像中物体的边缘。因为是从二维信号获得的频谱,所以包含着两个方向的频率数据。一个沿着图像的行, 一个沿着图像的列,因此,幅度和相位必须用第三维表示。一般在二维图上用不同的颜色强度表示这些量大小,或在三维图中用高度表示。二维DFT是首先沿图像的行作一维DFT,然后再沿中间结果数据的列作一维DFT。为提高计算速度,也存在2D FFT算法。一般要确定一幅图像需要图像的幅度和相位两部分信息,通过逆2D DFT变换即可精确还原图像。对于图像频谱,单独的相位谱往往携带了建立图像摹本的足够信息,而幅度却不能。2023-07-10 20:48:261
数字信号处理中按时间和按频率抽选的4点FFT运算流图怎么画啊 高手教一下
这个用说的不容易说也不容易理解,建议还是弄本书来看,书上讲得很详细2023-07-10 20:48:522
怎样用虚拟光驱装linux操作系统??
以前我们做实验,装红帽子是用虚拟软盘装的,安装虚拟软盘后,后面怎么弄得我忘了,时间太久了,你可以上网查查,下面是转自百度的:“不用刻盘的安装称之为“硬盘安装”。 根据发行版不同有不同的安装方法。 虚拟光驱的话,你只能安装在虚拟机中,不过虚拟机是支持 iso 的。 如果安装到实体计算机上,和安装 WinXP 一样,需要能启动计算机,至少能启动 Linux 的引导程序 grub 。 之后你就可以 grub 安装了。 常见的硬盘安装方法: 1、grub for win 引导安装启动镜像文件(不是 ISO,是 ISO 里的两个文件) 2、软盘安装,需要你的 Linux 安装盘支持软盘安装。 3、Vfloppy 安装,其实就是虚拟一个软盘,在 Windows 的引导程序后面启动这个软盘镜像文件。 最简单的还是刻盘安装,尤其是新手。”2023-07-10 20:41:411
庄家倒仓目的是什么?
倒仓有好几个目的:1、洗盘,垫高散户的成本 2、做下差价,减少拉高的成本,但这不是主要赚钱的目的 3、放大成交量,吸引跟风盘 4、赶走一些短线客2023-07-10 20:41:435
指环王上那个怪物是叫什么名字
咕噜姆,Gollum,在得到魔戒后嗓子里经常发出的古怪声音,他的族人随之这样称呼他他的原名叫斯梅戈尔Sméagol,源自古英语的词smygel,意思是“退避,挖地道”2023-07-10 20:41:462
如何用微安表改装欧姆表
http://www.phylab.cn/Article.asp?id=589里面有你想要的信息2023-07-10 20:41:482
无锡好茶有哪些
无锡的好茶有无锡毫茶、太湖翠竹茶、宜兴阳羡茶、太湖白茶、无锡桃花茶、江苏太湖白茶、二泉银毫、太湖毫红、宜兴贡茶、碧螺春绿茶、太湖三白、无锡银毫。无锡特产一:无锡毫茶无锡毫茶是江苏无锡的特色名茶,有着悠久的历史。无锡有着优越的地理环境,一年四季分明,气候温和,日照适宜,非常适合茶树的生长,所产出的无锡毫茶外形肥壮卷曲,身披茸毫,香高持久,滋味鲜醇,汤色绿而明亮,叶底嫩匀。冲泡后白毫显见,汤色碧绿澄清。无锡特产二:阳羡茶阳羡茶是无锡的特色名茶,有着非常悠久的历史,在三国时期就已经名声大噪,唐朝时被列为贡茶。无锡有着优越的地理环境四季分明,温和湿润,雨量充沛,适合于茶树的生长,所产出的阳羡茶条形紧直锋妙,色翠显毫。沏泡后,汤色清澈,叶底匀整,清香淡雅,滋味鲜醇,回味甘甜,沁人肺腑。无锡特产三:太湖白茶太湖白茶是江苏无锡的特色名茶,是20世纪90年代后期从浙江安吉县引种的安吉白茶为原料研制而成的名优茶。产地空气清新、无污染,植被多样,森林覆盖率高,生态环境优越,特别适合茶树的生长,所产出的太湖白茶冲泡后,犹如太湖银鱼或上下浮游或安详卧底,香气高,滋味鲜爽,深受消费者喜爱。2023-07-10 20:41:481
进入救援模式怎么找不到linux分区?
如果你只有一块硬盘,C和D盘只是逻辑分区,很可能在重现安装Windows2003时,选择了清除所有分区并重新分区选项,因为Windows2003对Linux分区认为是非dos分区或不可知分区,可以在安装时加以清除。如果你有两块硬盘,用盘符区分不是好办法,问题也就比较模糊,你可以说物理盘第一块或第二块。如果你肯定Windows2003安装时没有重新格式化第二块硬盘的分区,那么从BIOS中确认已经识别出第二块硬盘,用Linux的修复模式后便可以识别出分区。另外,还可以进入windows2003后用分区管理工具查看,是否windows2003占了全部物理硬盘,且没有未知分区存在。2023-07-10 20:41:504
指环王中的咕噜什么来历,是不是精神分裂,还是真有个什么族
咕噜姆原本是约第三纪元2470年生活在迷雾山脉以东,洛丝萝林以北的格拉顿荒原的斯图尔部落的霍比特人,原名斯密苟。魔戒大战三千年前,人类精灵最后联盟与摩多大战后,索隆惨败,但人类的国王埃西铎独占魔戒,魔戒召唤索隆的仆人在格拉顿荒原设伏杀死了埃西铎。魔戒沉入了荒原的宁格罗河。第三纪元1103年(两千年前)左右霍比特人大迁徙,一路持续从北方上安度因山谷迁往南方的霞尔附近。约1300年,一部分斯图尔人辗转回到了格拉顿荒原,这就是斯密苟的祖先。一日斯密苟和好友迪哥一起出去钓鱼。就发生了第三部开头的那一幕。。杀死同伴后斯密苟被众人怀疑。。魔戒对霍比特人的诱惑是很低的。。但是和比尔博一样,斯密苟发现了魔戒的让人隐身秘密。他利用它偷窥别人的隐私,散步闲言碎语,编造谎言,要挟别人(这也许也有魔戒的作用,但斯图尔人传说是所有的霍比特族群中比较野蛮的一支,*好吧。。评价标准其实只是只有他们会游泳。。爱冒险。。)。这样连他受人尊敬的祖母也看不下去。他便被众人驱逐。四处流浪过日。怀着对所有人的仇恨与悔恨,没入了迷雾山脉的深山中。戒指给与了斯密苟长寿以保全自己,同时渐渐腐蚀着他的心智(像腐蚀比尔博一样),看准机会逃脱。斯密苟在黑暗的寒冷仇恨怨念中忘记了所有美好的感受,封闭了自己而服从了戒指制造的怪物咕噜姆的人格。正如Gollum"s Song所唱:Where once was lightNow darkness fallsWhere once was loveLove is no moreDon"t say goodbyeDon"t say I didn"t try These tears we cryAre falling rainFor all the lies you told usThe hurt, the blameAnd we will weep to be so aloneWe are lost, we can never go homeSo in the endI"ll be what I will beNo loyal friendWas ever there for meNow we say goodbyeWe say you didn"t tryThese tears you cryHave come too lateTake back the liesThe hurt, the blameAnd you will weepWhen you face the end aloneYou are lost, you can never go homeYou are lost, you can never go home2023-07-10 20:41:542
直流微安表有哪些别称??
数字微安表、数字毫安表、直流高压微安表、直流高压毫安表2023-07-10 20:41:381
朔州十大名吃
朔州十大名吃有豌豆粥、右玉月饼、酸菜炒莜面、应县凉粉、右玉羊杂割、右玉熏鸡、孟门熬、山阴油炸糕、黄河蜜糖肘子、应县面皮。1、豌豆粥朔州名吃最为著名的就是豌豆粥,它选用当地优质豌豆精制而成,内含蛋白质、粗纤维,人体必须的八种氨基酸含量丰富。经常食用可以健脾胃,很不错的养生美食。2、右玉月饼右玉月饼是当地的传统名,是用面粉、白砂糖、葫麻油,辅之以玫瑰、青红丝、核桃仁、花生仁、葡萄干、芝麻等佐料,用传统工艺配方结合现代生产技术面制成的。其特点:甜而不腻、酥而不散、久放不馊。3、酸菜炒莜面酸菜炒莜面是当地的传统美食,酸菜炒莜面酸菜香脆,面粒筋道,是一道具有山西浓郁地方特色的菜肴,同时也是一道健康饮食。4、应县凉粉应县凉粉是用马铃薯淀粉制成的。在当地非常喜欢吃,在街头摆摊叫卖的四季不绝。每到夏日,凉粉摊尤多,这边的凉粉风味独特,而且到出售前,都是一直浸泡在凉水里。吃的时候在加盐、酱油、辣椒、醋、香油、味精、芥末、葱等佐料,非常好吃。5、右玉羊杂割右玉羊杂割,为右玉县一种地方小吃。右玉羊杂割是将羊下水洗净、煮熟,配以大葱、辣椒熬煮,其味甚美。6、右玉熏鸡右玉熏鸡是山西朔州的传统名吃,主要原料是右玉边鸡,用右玉边鸡做成的熏鸡色泽红艳,肉质细嫩,味道十分鲜美,而且易于保存,一般在夏季也可存放一周至十天不变质。7、孟门熬孟门熬是山西朔州的传统小吃。又叫豆腐熬饼子。是将豆腐切大块状,用少许葱油小炒几下,然后添上开水,加盐等佐料,在火上熬一阵子,再买几个三角“油斜”饼,每个用手扳成十来小块、放锅内一起熬片刻,加上一些鲜芜美,再浇几滴香油盛在碗内,就可以吃了。8、山阴油炸糕山阴油炸糕有甜、咸、辣味等等。油糕软糯多汁,而且猪油的香味浓郁。口感特别柔软,而且不油腻,特别好吃。9、黄河蜜糖肘子黄河蜜糖肘子是一道以黄河边特产蜂蜜入味、经四个小时慢火烤煮而成的美食,收到过很好的口碑。10、应县面皮应县面皮是应县一种常见的用纯白面制成的美食。冬天吃面皮你能保暖,夏天吃你能消署,春天吃你能解乏,秋天吃你能去湿,真可谓是四季皆宜的、不可多得的天然绿色无公害食品。2023-07-10 20:41:381
魔戒中的那个怪物咕噜
咕噜姆 人物名:咕噜姆 出现:《魔戒1-3部》 特点:巨大的脑袋,一双邪恶的蓝眼睛,瘦长的身材,经常爬行,说话的声音沙哑而令人讨厌,嘴里总是念着:“我的宝贝(宝贝指魔戒)”,魔戒的持有者之一,总是在善恶之间挣扎。 咕噜姆类型:反面人物 简介:咕噜姆是一只可怕的怪物,但他也有善良的一面,可惜后来还是变坏了,最后从主人公弗罗多·巴金斯手里夺回了魔戒,结果失足掉进了毁灭之山的滚滚岩浆之中。魔戒一共陪伴了咕噜姆500年,所以咕噜姆对他爱不释手,经常被他诱惑,也难怪他总要夺回魔戒。 人物小传: 在很久很久以前,咕噜姆还是一个霍比特人,他原来的名字叫做史密戈,在一次和朋友迪戈钓鱼时,迪戈被一条大鱼拉入水中,发现了埋在泥沙里的魔戒,被史密戈发现了,由于史密戈被魔戒诱惑,所以他坚持要从迪戈那里夺回魔戒,最后杀死了迪戈,拿到了魔戒,然后对他的朋友们说这是他的生日礼物。结果他的杀人事件被别人知道了,于是史密戈被驱除出境,被放逐到深山老林。不过魔戒的诱惑让他变了形,逐渐成了一只叫咕噜姆的怪物,他忘记了面包的滋味,开始吃鱼,在山洞里生活了500年,但是魔戒却厌倦了他,从他那里逃走了,被比尔博·巴金斯发现,从此咕噜就开始了搜寻宝贝的“征程”。后来,魔戒传到了弗罗多的手中,当弗罗多得知魔戒的害处后便开始了毁灭魔戒的征程,咕噜姆一直跟踪着他和一起毁灭魔戒的好友山姆,但直到第二部才真正露面。 在跟踪了弗罗多和山姆一段时间以后,咕噜姆的行踪被他们发现,结果被抓住了。为了逃命,咕噜姆只好发誓帮他们带路,后来咕噜姆发现了做好人的乐趣,便开始犹豫不决:到底是继续做坏人还是做好人?最终,咕噜姆选择了做好人,放弃了魔戒给他带来的长生不老。可后来由于一系列对弗罗多的误会,咕噜姆又变坏了,他违背了誓言,他那双手总是不由自主地向魔戒伸去,可又害怕地缩回来。为了得到宝贝,咕噜姆不惜一切代价,将弗罗多带到了一个有蜘蛛的秘密隧道,弗罗多死里逃生,可咕噜姆确要夺到魔戒,结果被扔进了一片黑暗之中。他原可以安全地逃走,可夺回魔戒的信念支持着他,在最后来到毁灭之山的那一刻,咕噜姆为了拿到魔戒,被用刀刺伤腹部,头也被石头砸破,可咕噜姆还是咬掉了戴着戒指的弗罗多的手指,拿到了宝贝,高兴地跳着,可弗罗多知道,他必须摧毁魔戒,于是冲上去与咕噜姆展开了激烈的搏斗,在搏斗中,咕噜姆失足掉下了陡崖,但他拿到了魔戒,于是便高兴地把戒指抱住······砰!一声巨响,咕噜姆掉进了滚滚岩浆里,他被融化了,和魔戒一起融化了。 人物总结: 其实,咕噜姆就是个凡人,所以凡人与咕噜姆一样都有着善恶的双重性格,我们不知道咕噜姆在漫长的路上付出了多少艰辛,也不知道他是如何闯过重重难关的,不过,咕噜姆,这只小怪物,没有他,魔戒就不可能被毁灭,魔戒的故事也会显得单调,如果用什么话能概括他的,那我的话是:“咕噜姆,在善与恶之间挣扎的小东西。”2023-07-10 20:41:344
建仓 倒仓 锁仓分别是什么意思
建仓也叫开仓,是指交易者新买入或新卖出一定数量的期货合约。倒仓就是当期货临近交割月,保证金比例提高,而且价格的不确定性也减少,投机的机会已经减少。出于这种考虑,主力会卖掉近期合约同时买进更远一点的合约。锁仓,一般是指期货交易者做数量相等但方向相反的开仓交易,以便不管期货价格向何方运动(或涨或跌)均不会使持仓盈亏再增减的一种操作方法。期货(Futures)与现货完全不同,现货是实实在在可以交易的货(商品),期货主要不是货,而是以某种大宗产品如棉花、大豆、石油等及金融资产如股票、债券等为标的标准化可交易合约。因此,这个标的物可以是某种商品(例如黄金、原油、农产品),也可以是金融工具。交收期货的日子可以是一星期之后,一个月之后,三个月之后,甚至一年之后。买卖期货的合同或协议叫做期货合约。买卖期货的场所叫做期货市场。投资者可以对期货进行投资或投机。大部分人认为对期货的不恰当投机行为,例如无货沽空,可以导致金融市场的动荡,这是不正确的看法,可以同时做空做多,才是健康正常的交易市场。2023-07-10 20:41:333
改微安表为欧姆表
高中问题微安表+串联电源、电阻=欧姆表我上初中,只知这么多2023-07-10 20:41:311
朔州特产有哪些土特产
朔州特产有:右玉熏鸡、油果子、混糖月饼、应县凉粉、应县面皮等。1、右玉熏鸡右玉熏鸡是山西传统的特色名吃。色泽红艳,肉质细嫩,味道十分鲜美,易于保存,右玉边鸡是国内著名的优良鸡种之一,这种鸡,生长快,肉质极其鲜美,是烹制鸡肴的上乘原料。2、油果子朔州特产油果子,早在清代已是走俏的外销特产之一,朔州油果子又叫“包尔沙克”,用牛奶加适量盐水和面(发酵的面为佳),然后搓成条状,用刀将和好的面切成菱形,再用煮沸的牛、羊、骆驼油或植物油炸成黄色即可。3、混糖月饼混糖月饼流行于山西朔州,它的存在更有传承的意义和文化脉络的延续。为千年以来中国文化的传承留下了重要的一笔和宝贵的财富。4、应县凉粉应县凉粉是用淀粉制成的。是当地别具风味的一种传统特色小食。在街头摆摊叫卖的四季不绝。每到夏日,凉粉摊尤多,街头巷尾比比皆是。应县凉粉不仅上市数量多,而且风味独特。5、应县面皮应县面皮是用纯白面制成的,是当地别具风味的一种小食。面皮又叫凉皮,根据原料选用的不同,叫法也不同,用(大)米制作的叫米皮,又叫凉皮,用面(粉)制作的叫面筋面皮,滑爽,口感好,所以比较出名。2023-07-10 20:41:301