簡體   English   中英

使用fftpack5.1進行傅立葉變換時出現問題

[英]Trouble with Fourier Transform using fftpack5.1

我在Fortran 90中使用FFTPACK5.1遇到問題,該問題包含用於計算離散傅里葉變換的子例程。 我設法安裝它並使用例程,但是當我檢查頻率為A的簡單正弦波是否一切正常時,得到的非零系數不是A(在頻率空間,頻譜),而是2A 頻譜發生了變化,我不明白為什么。 我幾乎可以肯定(但我有疑問)可以正確計算頻率軸步長:

N為原始正弦波的點數,Fech為我的采樣頻率,我計算出頻率軸步長為df(i)= Fech(i-1)/ N。

我正在使用rfft1f例程,因此,如果有人對此有經驗並知道我的問題,那么我將非常高興了解這里的問題所在。

這是我的代碼:

! n: number of samples in the discret signal
integer ( kind = 4 ), parameter :: n = 4096
real, parameter :: deuxpi=6.283185307
!frequence is the frequence of the signal
!fech is the frequence of sampling
real :: frequence,fech 
integer :: kk
! r is the signal i want to process
! t is the built time and f is the built frequency
real ( kind = 4 ) r(n),t(n),f(n)


!Arrays routines need to work (internal recipe):
real ( kind = 4 ), allocatable, dimension ( : ) :: work
real ( kind = 4 ), allocatable, dimension ( : ) :: wsave

!size of arrays wsave and work for internal recipe 
lensav = n + int ( log ( real ( n, kind = 4 ) ) / log ( 2.0E+00 ) ) + 4
lenwrk = n
allocate ( work(1:lenwrk) )
allocate ( wsave(1:lensav) )


! initializes rttft1f, wsave array
call rfft1i ( n, wsave, lensav, ier )


frequence=0.5
fech=20

! I built here the signal
do kk=1,n
t (kk) = (kk-1) / (fech)
f (kk) = fech*(kk-1) / n
r (kk) = sin( deuxpi * t(kk) * frequence  ) 
end do


!and I call the rfft1f to build the Discrete Fourier Transform:
call rfft1f ( n, inc, r, lenr, wsave, lensav, work, lenwrk, ier )

!I get back r which contains now the fourier coefficients and plot it

我期望一個簡單的正弦波在頻率為0.5(cf代碼)時有一個狄拉克,但我卻在頻域中得到一個1.dirac。 此外,頻譜看起來很奇怪...這是我得到的:

光譜

正如計算實值序列的離散傅立葉變換的例程的典型做法一樣,所得的復值頻譜僅返回一半頻譜。 為了使這些值適合原始的N元素數組,僅返回第一個值的實數部分(始終為實數)。 類似地,在n為偶數的情況下,返回第n / 2個復數值的實數部分(也總是實數)。 對於所有其他復數值,實部和虛部是交織的。

因此,對於偶數n ,相應的頻率由下式給出:

r(1)       -> 0
r(2), r(3) -> Delta
r(4), r(5) -> 2*Delta
...
r(n)       -> (n/2)*Delta

對於奇數n

r(1)        -> 0
r(2), r(3)  -> Delta
r(4), r(5)  -> 2*Delta
...
r(n-1),r(n) -> ((n-1)/2) * Delta

其中Delta為fech/n

要繪制復雜值,您可能希望將實部(索引1,2,4,6,...)和虛部(索引3,5,7,...)繪制為兩個單獨的圖,或幅度和相位(還是兩個單獨的圖)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM