Tải bản đầy đủ (.pdf) (10 trang)

Biến đổi fourier rời rạc part 4 potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (248.22 KB, 10 trang )


105





Hình 6.8 Lu đồ thuật toán giảm lợc đầu vào, N=4
for(iter=(m_output-m_input);iter<m_output;iter++)
{
for(j=0; j<N_output; j+=incr)
{
i=j+ip ;
Tr=xr [i];
Ti =xi [i] ;
xr[i]=xr[j]-Tr;
xi[i]=xi[j]-Ti;

xr[j]=xr[j]+Tr;
xi[j]=xi[j]+Ti;
}
for(k=l; k<ip; k++)
{
l=k*kk-1;
for(j=k; j<N_output; j+=incr)
{
i=j+ip;

Tr=xr[j]+xr[i];
Ti=xi[j]+xi[i];


diffr=xr[j]-xr[i];
diffi=xi[j]-xi[i];
xr[j]=Tr;


106
xi[j]=Ti ;

Tr=diffr*wr[l]-diffi*wi[l];
Ti=diffr*wi[l]+diffi*wr[l];
xr[i]=Tr;
xi[i]=Ti;
}
}

kk<<=l;
ip>>=l;
incr>>=l;
}
}

Bài tập 6.3
1.Cho dãy đầu vào :
x(k) = 1 k = 0,1,2, , 31.
x(k) = 0 các trờng hợp còn lại.
Tính 1024 điểm trong phổ tần số dùng chơng trình giảm lợc đầu vào
FFT.
2. Thêm các giá trị 0 vào dãy để làm cho chiều dài dãy thành 1024. Bây
giờ tính FFT scủa dãy dùng chơng trình FFT phân chia tần số không
giảm lợc. So sánh thời gian xử lý của phần 1 và 2.


Thuật toán FFT giảm lợc đầu ra. Giải thuật phân chia miền thời gian
thì thích hợp cho thuật toán giảm lợc đầu ra hơn là giải thuật phân chia
miền tần số. Lý do là đầu ra trong giải thuật phân chia miền thời gian không
phải sắp xếp lại. Hình 6.9 giới thiệu trờng hợp với M=4 và L=1.

107











H×nh 6.9 Lu ®å cho gi¶m lîc ®Çu ra FFT, N = 4.

Ch¬ng tr×nh 6.4 FFTOP.C Gi¶m lîc ®Çu ra FFT.

/*****************************
* Program developed by: *
* M.A.Sid-Ahmed. *
* ver. 1.0 1992. *
* @ 1994 *
*****************************/

/* FFT - output pruning using Decimation-in-time routine. */


# define pi 3.141592654

void bit_reversal(unsigned int *, int , int);
void WTS(float *, float *, int, int);
void FFTP(float *xr, float *xi, float *, float *,int, int, int, int);
0

2

4

6

8

10

12

14

1

3

5

7


9

11

13

15


0

4

8

12

2

6

10

14

1

5

9


13

3

7

11

15


0

8

4

12

2

10

6

14

1


9

5

13

3

11

7

15


0

8

4

12

2

10

6

14


1

9

5

13

3

11

7

15


0

1


W

n=0 ®Õn 7

W

n=0 ®Õn 3


W

n=0 ®Õn 1

W

n=0


108

void FFTP(float *xr, float *xi, float *wr, float *wi,
int m, int N, int m_output, int N_output)
{

/* FFT output pruning algorithm using
Decimation-in-time.
Note :
1. N=number of input samples
=2 to the power m.
N-output = number of output samples =2 to the power motput.

2. The input arrays are assumed to be rearranged in bit-reverse order.
You will need to use routine "bit-reversal" for that purpose.
3. The twiddle factors are assumed to be stored in LUT's wr[] and wi[].
You will need to use routine LUT for calculating and storing twiddle
factors.*/

int ip,k,kk,l,incr,iter,j,i;

float Tr,Ti;

ip=1;
kk=(N>>1 );
incr=2;
for(iter=0; iter<m_output; iter++)
{
for(j=0; j<N; j+=incr)
{
i=j+ip;
Tr=xr[i];
Ti=xi[i];
xr[i]=xr[i]-Tr;
xi[i]=xi[i]-Ti;
xr[j]=xr[j]+Tr;
xi[j]=xi[j]+Ti;
}
if(iter!=0)
{
for(k=1;k<ip; k++)

109
{
l=k*kk-1 ;
for(j=k; j<N; j+=incr)
{
i =j+ip;
Tr=xr[i]*wr[l]-xi[i]*wi[l];
Ti=xr[i]*wi[l]+xi[i]*wr[l];
xr[i]=xr[j]-Tr;

xi[i]=xi[j]-Ti;
xr[j]=xr[j]+Tr;
xi[j]=xi[j]+Ti;
}
}
}
kk>>=1;
ip<<=1;
incr<<=1;
}
for(iter=m_output; iter<m; iter++)
{
for(j=0; j<N; j+=incr)
{
i=j+ip;
xr[j]=xr[j]+xr[i];
xi[j]=xi[j]+xi[i];
}
for(k=1; k<N_output; k++)
{
l=k*kk-1 ;
for(j=k; j<N; j+=incr)
{
i=j+ip ;
Tr=xr[i]*wr[l]-xi[i]*wi[l];
Ti=xr[i]*wi[l]+xi[i]*wr[i];
xr[j]=xr[j]+Tr;
xi[j]=xi[j]+Ti;
}
}

kk>>=1;

110
ip<<=1;
incr<<=1;
}
}

Bài tập 6.4 Cho một bộ lọc thông cao Butterword:

2
2
0
)12(
1
1
)(





H
ở đây
0
= 0.3, phát triển một chơng trình C tính ra 1024 mẫu của đặc
tuyến tần số trên các khoảng bằng nhau của tần số từ 0 đến . Dùng các
mẫu này tính năm mẫu đầu tiên của đáp ứng xung dùng FFT giảm lợc.
6.4 2-D FFT
Một DFT hai chiều của tín hiệu lấy mẫu hai chiều h(k

1
,k
2
) cho bởi

)},({
),(),(
21
1
0
1
0
).(/2
2121
1 2
2211
kkhDFT
ekkhnnH
N
k
N
k
knknNj










(6.41)
ở đây n
1
= 0,1,2 , , N-1
n
2
= 0,1,2, , N-1
Biểu thức
)(/2
2211
knknNj
e


trong hai dấu tổng gọi là hạt nhân của phép biến đổi.
H(n
1
,n
2
), trong trờng hợp tổng quát, đầy đủ có thể biểu diễn theo:

)n,(nj
2
1
2
1
21
e )n,A(n )n,H(n




Trong không gian ba chiều, A(n
1
,n
2
) và

(n
1
,n
2
) nằm tại vị trí của n
1
và n
2

và gọi là phổ tần số và phổ pha của H(n
1
,n
2
).
6.4.1 Biến đổi ngợc 2-D DFT
Hàm h(k
1
,k
2
) là biến đổi ngợc của 2-D DFT (IFFT) của H(n
1

,n
2
) và đợc
cho bởi biểu thức








1
0
1
0
).(/2
21
2
21
1 2
2211
),(
1
),(
N
n
N
n
knknNj

ennH
N
kkh

(6.42)

111
6.4.2 Một số tính chất của 2-D DFT
Chuyển đổi. Từ định nghĩa của 2-D DFT và IDFT cho thấy
),(),(
21
)(
2
21
21
bnanHekkh
bkak
N
j



(6.43)

)(
2
2121
21
),(),(
bnan

N
j
ennHbkakh




(6.44)
Điều đó có nghĩa là một dịch chuyển pha tuyến tính trong một miền biểu
diễn bằng một dịch chuyển hằng số trong một miền khác. Xem xét biểu thức
(6.43), trờng hợp đặc biệt khi a = b = N/2.

212121
)1)(,())(,(),(
2
1
)
2
1
)(
2
1
kkkk
j
kkj
kkhekkhekkh






Hay là
)
2
,
2
()1)(,(
2121
21
N
n
N
nHkkh
kk


(6.45)
Nói cách khác, bằng cách nhân vào mỗi điểm (-1)
21
kk
trớc khi lấy DFT,
chúng ta sẽ rút ra đợc một phổ tần số mà điểm tần số (0,0) của nó sẽ nằm
giữa mảng 2-D. Biểu thức này rất hữu dụng trong hiển thị phổ tần số, phổ
biên độ và lọc dùng DFT.
Từ biểu thức (6.44) chúng ta rút ra kết luận rằng dịch chuyển một hằng số
trong ảnh sẽ không tác động đến phổ biên độ.
)()(
21
).(/2
21

21
nnHennH
bnanNj



(6.46)
Biểu thức (6.46) cũng quan hệ đến bộ lọc 2-D. Xem xét đặc tính của bộ
lọc 2-D cho bởi

).(/2
2
1
2
1
21
),(),(
bnanNj
ennAnnH




ở đây A(n
1
,n
2
) là phổ biên độ. Nếu một ảnh với phổ tần số cho bởi I(n
1
,n

2
)
đợc lọc qua bộ lọc có đặc tuyến pha tuyến tính cho bởi biểu thức ở trên, kết
quả sẽ là

a)-na,-(n
)],(),([),(]),([|
21
).(/2
212121
).(/2
21
2121
f
bnanNjbnanNj
i
ennAnnInnIennA





(6.47)
ở đây i
f
(n
1
-a, n
2
-b) ký hiệu cho ảnh đã đợc lọc. Một bộ lọc với đặc tuyến

pha tuyến tính có nghĩa là không dịch chuyển biên độ. Trong khi đó nếu bộ
lọc có đặc tuyến pha không tuyến tính thì pha của ảnh cũng bị biến dạng. Lý

112
do của sự biến dạng này là tất cả các điểm đều phải chịu một sự dịch chuyển
vị trí khác nhau tuỳ theo vị trí của ảnh. Tổng quát, ảnh đã đợc lọc có thể
cho bởi
))n,n f( - n ),n,(n f - (n i
212211f

ở đây f là hàm dịch chuyển vị trí. Chú ý rằng một ảnh biến dạng pha sẽ xuất
hiện trên màn hình nh một ảnh mờ .

Tính đối xứng liên hợp và tuần hoàn. Biến đổi2-D DFT và IDFT tuần
hoàn với chu kỳ N có nghĩa là :

N)nN,H(n
N)n,H(n )nN,H(n )n,(n
21
212121

H

(6.48)


N)kN,h(k
N)k,h(k )kN,h(k )k,h(k
21
212121



(6.49)
Biến đổi DFT đối xứng liên hợp khi
)n- ,(-n*H )n,H(n
2
1
2
1
(6.50)
hoặc
)n- ,H(-n )n,H(n
2
1
2
1
(6.51)
Quay. Nếu chúng ta đặt k
1
và k
2
dới dạng


cos r k
2

sinr k
1



thì )(r,h)rcos,rsin h( )k,h(k
2
1



Và tơng tự cho n
1
, n
2




sinn
cosn
1
2



hoặc )(r,H )n,H(n
2
1



từ định nghĩa của DFT chúng ta có thể có
h r H( , ) ( , )









0 0
(6.52)

113
Điều đó có nghĩa là nếu ảnh bị quay đi một góc

0
thì phổ của nó cũng bị
quay đi một góc nh vậy.

Phân phối và chia độ. Từ biểu thức (6.1) chúng ta dễ thấy
)n,(nbH)n,(naH )k,(kh b )k,(kh a
2
1
2
2
1
1
2
1
2
2

1
1
(6.53)
ở đây a,b là những độ chia. Cũng nh vậy
),(
1
),(
21
21
b
n
a
n
H
ab
bkakh (6.54)
6.4.3 Giá trị trung bình
Mức cờng độ sáng trung bình trong một ảnh cho bởi :

h
N
h k k
k
N
k
N







1
2 1 2
0
1
0
1
11
( , )
(6.55)
hoặc từ biểu thức (6.1) ta có thể viết
h H ( , )0 0
Điều này có nghĩa là H(0,0) biểu diễn mức sáng của ảnh.
6.4.4 Tích chập và sự tơng quan
Tích chập của tín hiệu 2-D h
1
(k
1
,k
2
) và h
2
(k
1
,k
2
) cho bởi

g n n h k k h n k n k

k
N
k
N
( , ) ( , ) ( , )
1 2 1 1 2 2 1 1 2 2
0
1
0
1
21






(6.56)
Nếu h
1
(k
1
,k
2
) đợc xác định trên miền














k A k B
1 1
0 1 0 1 , ,
và nếu h
2
(k
1
,k
2
) đợc xác định trên miền














k C k D
1 1
0 1 0 1 , ,
thì chúng ta có thể thấy rằng nếu hai tín hiệu có giá trị zero ngoài miền xác
định của chúng thì M = A + C - 1 và N = B + D - 1.
Tích chập của hai tín hiệu 2-D đợc viết trong dạng ký hiệu nh sau:
)k,(kh* )k,(kh
2
1
2
2
1
1

Có thể thấy rằng

114
)n,(n)Hn,(nH )k,(kh* )k,(kh
2
1
2
2
1
1
2
1
2
2
1

1
(6.57)
Điều này có nghĩa là, tích chập trong miền không gian biến thành phép
nhân bình thờng trong miền tần số. Tính chất này có thể dùng cho lọc 2-D
qua DFT. Chúng ta cần nhớ lại rằng bạn đã dùng kỹ thuật lọc FIR trong các
chơng trớc cho chức năng này. Khi áp dụng các lọc bộ lọc FIR cho chức
năng lọc bạn cần lấy tín hiệu khoảng cách 2-D đã đợc biến thành tín hiệu
có chu kỳ trớc khi tiến hành lấy DFT. Sự không đồng bộ của chu kỳ trong
biến đổi này cũng gây ra lỗi nh trong biến đổi 1-D. Vì vậy, để tránh trờng
hợp này ta cần thêm các số 0 vào cả hai các hàm không gian để cho chúng
có kích thớc M

N với M

A + C - 1 và N

B + D - 1.
Tơng quan hoặc tơng quan chéo của tín hiệu 2-D định nghĩa bởi

g n n h k k h n k n k
k
N
k
N
( , ) ( , ) ( , )
1 2 1 1 2 2 1 1 2 2
0
1
0
1

21







(6.58)

Biểu thức này đợc viết dới dạng ký hiệu
g n n h k k h k k( , ) ( , ) ( , )
1 2 1 1 2 2 1 2


(6.59)
Tơng quan chéo thờng đợc gọi là lọc kết hợp và dùng để phát hiện ra
phần đầu dấu hiệu các vết sắc nổi trên ảnh. Nó có thể cho thấy rằng
h k k h k k H n n H n n
1 1 2 2 1 2 1 1 2 2 1 2
( , ) ( , ) ( , ). ( , )


(6.60)
6.5 2-D FFT
Biểu thức cho 2-D DFT có thể dới dạng

11
1 2
22

./2.
1
0
1
0
./2.
2121
]),([),(
knNj
N
k
N
k
knNj
eekkhnnH








(6.61)
Đặt
2121
2
./2.
1
0

2121
),(),(
knNj
N
k
ekkhkkG





(6.62)
với k
1
= 0,1,2, , N-1. Vì vậy mà biểu thức (6.61) có thể viết lại dới dạng .


H n n G k n e
k
N
j N n k
( , ) ( , )
. / .
1 2 1 2
0
1
2
1
1 1







(6.63)
với n
1
=0,1,2, ,N-1.

×