傅里叶变换的各个参数的意义? ( 积分: 100 )

  • 主题发起人 主题发起人 pascal
  • 开始时间 开始时间
P

pascal

Unregistered / Unconfirmed
GUEST, unregistred user!
这里找到的:
现在已经知道N个采样点经FFT后转换后得到N个复数,即时域变成频域,却不明白如何调整各频率段的振幅,qince你说实现了EQ,可否赐教?
X[1..N]是wav采样数据,FFT转换得到实数XR[1..N],虚数XI[1..N]

对采样信号的频谱,为提高计算效率,通常采用FFT算法进行计算,设数据点数为:
N = T/dt = T.fs
则计算得到的离散频率点为: Xs(fi) , fi = i.fs/N , i = 0,1,2,.....,N/2
不明白,请教:T,dt,fs,实数XR[1..N],虚数XI[1..N]的物理意义是什么?
X[1..N]是什么类型? A.实数;
B.复数
如何FFT逆转换:输入参数是什么?
数学没学好,看书不懂啊
分不够再加.
我也下载了两个FFT的程序,怎么使用啊?
TDSXFastFourier = Class(TComponent)

private
FNumSamples : integer;
FInBuffer : PComplexArray;
FOutBuffer : PComplexArray;
FOnGetData : TOnGetDataEvent;

function IsPowerOfTwo ( x: word ): boolean;
function NumberOfBitsNeeded ( PowerOfTwo: word ): word;
function ReverseBits ( index, NumBits: word ): word;
procedure FourierTransform ( AngleNumerator: do
uble );
procedure SetNumSamples(value : integer);
function GetTransformedData(idx : integer) : TComplex;

constructor
create(AOwner : TComponent);
destructor
destroy;

public
property TransformedData[idx : integer] : TComplex read GetTransformedData;

procedure fft;
procedure ifft;
procedure CalcFrequency (FrequencyIndex: word);
published
property OnGetData : TOnGetDataEvent read FOnGetData write FOnGetData;
property NumSamples : integer read FNumSamples write SetNumSamples;
property SampleCount : Integer read FNumSamples;
end;

NumSamples,SampleCount,TransformedData[idx : integer]该给什么值?结果在哪?什么意义?请举例说明好吗?

2.
procedure real_fft(tau,tau_2:Integer;VAR y:array of single;direkt:Boolean);
------------------------------------------------------------------------
real_fft(tau,
tau_2: Integer;
VAR y:array of single;
direkt:Boolean);

******* Usage to perform FFT : real_fft()
direkt=FALSE
size = tau = 2^tau_2
y : array[1..size] of single = Input

Output: y[0]=a0
y[k]=a(k+1)/2
with k=1,3,...,tau_2-1

if you need the real values you have to use the procedure
fft_makereal(var y:array of single;size:Integer);
Input: y : array[1..size] of single = Output of previous FFT
Output: y[0] = a0
y[1..size/2] = abs(FFT)

******* Usage to perform reverse FFT : real_fft()
direkt=TRUE
size = tau = 2^tau_2
y : array[1..size] of single = Output of previous FFT

Output: y[1..size] = Real Values

You can delete some of the y[...] values before you preform the reverse FFT.
If youdo
so and use WAV-Values for Input, you will get a digital filter.
You can use the procedure
delete_fft(from,to,count:Integer;
VAR y:array of single);
to delete y[1..from-1] and y[to+1..size-1]
---------------------------------------------------------------------------}
还是不明白,tau,tau_2:Integer;VAR y:array of single是什么.
direkt:Boolean应该是正/逆变换吧?
 
这里找到的:
现在已经知道N个采样点经FFT后转换后得到N个复数,即时域变成频域,却不明白如何调整各频率段的振幅,qince你说实现了EQ,可否赐教?
X[1..N]是wav采样数据,FFT转换得到实数XR[1..N],虚数XI[1..N]

对采样信号的频谱,为提高计算效率,通常采用FFT算法进行计算,设数据点数为:
N = T/dt = T.fs
则计算得到的离散频率点为: Xs(fi) , fi = i.fs/N , i = 0,1,2,.....,N/2
不明白,请教:T,dt,fs,实数XR[1..N],虚数XI[1..N]的物理意义是什么?
X[1..N]是什么类型? A.实数;
B.复数
如何FFT逆转换:输入参数是什么?
数学没学好,看书不懂啊
分不够再加.
我也下载了两个FFT的程序,怎么使用啊?
TDSXFastFourier = Class(TComponent)

private
FNumSamples : integer;
FInBuffer : PComplexArray;
FOutBuffer : PComplexArray;
FOnGetData : TOnGetDataEvent;

function IsPowerOfTwo ( x: word ): boolean;
function NumberOfBitsNeeded ( PowerOfTwo: word ): word;
function ReverseBits ( index, NumBits: word ): word;
procedure FourierTransform ( AngleNumerator: do
uble );
procedure SetNumSamples(value : integer);
function GetTransformedData(idx : integer) : TComplex;

constructor
create(AOwner : TComponent);
destructor
destroy;

public
property TransformedData[idx : integer] : TComplex read GetTransformedData;

procedure fft;
procedure ifft;
procedure CalcFrequency (FrequencyIndex: word);
published
property OnGetData : TOnGetDataEvent read FOnGetData write FOnGetData;
property NumSamples : integer read FNumSamples write SetNumSamples;
property SampleCount : Integer read FNumSamples;
end;

NumSamples,SampleCount,TransformedData[idx : integer]该给什么值?结果在哪?什么意义?请举例说明好吗?

2.
procedure real_fft(tau,tau_2:Integer;VAR y:array of single;direkt:Boolean);
------------------------------------------------------------------------
real_fft(tau,
tau_2: Integer;
VAR y:array of single;
direkt:Boolean);

******* Usage to perform FFT : real_fft()
direkt=FALSE
size = tau = 2^tau_2
y : array[1..size] of single = Input

Output: y[0]=a0
y[k]=a(k+1)/2
with k=1,3,...,tau_2-1

if you need the real values you have to use the procedure
fft_makereal(var y:array of single;size:Integer);
Input: y : array[1..size] of single = Output of previous FFT
Output: y[0] = a0
y[1..size/2] = abs(FFT)

******* Usage to perform reverse FFT : real_fft()
direkt=TRUE
size = tau = 2^tau_2
y : array[1..size] of single = Output of previous FFT

Output: y[1..size] = Real Values

You can delete some of the y[...] values before you preform the reverse FFT.
If youdo
so and use WAV-Values for Input, you will get a digital filter.
You can use the procedure
delete_fft(from,to,count:Integer;
VAR y:array of single);
to delete y[1..from-1] and y[to+1..size-1]
---------------------------------------------------------------------------}
还是不明白,tau,tau_2:Integer;VAR y:array of single是什么.
direkt:Boolean应该是正/逆变换吧?
 
好,帮顶



--------签名档---------------------------

比肩国内顶尖源码下载站点 -> 源码我爱你

http://www.source520.com
http://www.source520.net

80G源码电子书免费免注册下载,大量精辟技术文档库随时更新
******************************************************************
附:为了站点持续发展,现有本站近年来收藏的大量大型商业源码低价出售,
详情请进入以下链接查看:
http://www.source520.com/building_delphi.htm

浏览商业代码请从如下URL进入查看实物:
1.商业源码库1: ftp://source520see3:browse@61.152.199.245/
2.商业源码库2: ftp://source520see2:browse@61.152.199.245/
 
后退
顶部