1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập lớn Cảm Biến Đo Lường & Xử Lý Tín Hiệu BIẾN ĐỔI FOURIER NHANH

11 595 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 1,03 MB

Nội dung

III.Lọc tuyến tính A.Giải thuật Goertzel - Dựa vào tính chu kỳ của WNk và biểu diễn việc tính toán DFT như lọc tuyến tính : - Kết hợp các bộ cộng hưởng có pole liên hợp phức - Thực hiện

Trang 1

BIẾN ĐỔI FOURIER NHANH

Nội dung của biến đổi Fourier nhanh được biểu diễn bằng sơ đồ sau:

*Tính DFT & IDFT

Tính DFT:xác định chuỗi N giá trị phức {X(k) khi biết trước chuỗi } {x(n) chiều }

dài N

DFT X(k) = i = N-1

i = 0

x(n)Wn

kn

0 k N-1

IDFT x(n) = 1

N i = N-1

i = 0

X(k)Wn

-kn

0 n N-1

WN = e-j2/N

Giải thuật DFT cũng được áp dụng vào tính IDFT

I.Tính trực tiếp

- N2 phép nhân phức

- N(N-1) phép cộng phức

Đối với biến đổi WN :

- 2N2 phép tính lượng giác

- 4N2 phép nhân số thực

- 4N(N-1) phép cộng số thực

Trang 2

- Một số phép toán chỉ số và địa chỉ để nạp x(n)

II.Phương pháp chia - trị

-Nguyên tắc:phân rã nhỏ việc tính DFT N điểm thành việc tính các DFT kích thước nhỏ hơn  các giải thuật FFT

-Phương pháp:

+ Giả sử N=L.M

+ Lưu trữ x(n) và mảng 2 chiều LxM (l:chỉ số hàng, m: chỉ số cột)

x(1,0) x(1,1) x(1,2) x(1,M-1) x(2,0) x(2,1) x(2,2) x(2,M-1)

x(L-1,0) x(L-1,1) x(L-1,2) x(L-1,N-1)

m

l

0

1

2

L-1

+ Cách lưu trữ:

Theo dòng n=Ml+m Theo cột n=l+mL + Tương tự các giá trị DFT x(k) tính được cũng sẽ được lưu trong ma trận LxM (p:chỉ số hàng, q:chỉ số cột)

Theo dòng k=Mp+q Theo cột k=p+qL

Trang 3

+ Phương pháp chia - trị rất hiệu quả khi N=r1r2r3…rv phân rã nhỏ hơn đến (v-1) lần

A.FFT cơ số 2

- Tiếp tục phân f1(n) và f2(n) thành các chuỗi N/4 điểm:

Trang 4

- Ví dụ tính DFT 8 điểm

x(0) x(1) x(2) x(3) x(4) x(5) x(6) x(7)

x(0) x(2) x(4) x(6)

x(1) x(3) x(5) x(7)

x(0) x(4)

x(1) x(5) x(2) x(6)

x(3) x(7)

[0,1,2,3,4,5,6,7]

- Khối tính toán cho DFT 2 điểm (hình con bướm)

+ N=2v :

log2N :tầng tính toán N/2 :khối tính toán cơ bản cho mỗi lớp + Bộ nhớ : vào : (a,b) - số phức

ra : (A,B) - số phức + Có thể lưu đè (A,B) lên (a,b) chỉ cần N ô nhớ phức (2N ô nhớ thực), tính toán tại chỗ

- Thứ tự chuỗi dữ liệu vào sau khi phân (v-1) lần

+ Biểu diễn các chỉ số ở dạng nhị phân

+ Chuỗi sau khi phân chia sẽ lấy theo thứ tự đảo các bit

- Phân chia theo tần số

+ Phương pháp chia - trị + M=2, L=N/2

+ Chuỗi dữ liệu nhập được xếp theo cột

+ Phân chia X(k) thành X(2k) và X(2k+1)

+ Sau đó có thể phân chia tiếp mỗi X(k chẵn) và X(k lẻ)

Trang 5

B.FFT cơ số 4

x(0) x(2) x(4) x(N-1) N=4v

L=4 ,M=N/4 l,p=0,1,2,3

m,q=0,1, ,N/4 - 1

n=4m+1 k=(N/4)p+q

x(0) x(4) x(N-4)

l=0

x(1) x(5) x(N-3)

l=1

x(2) x(6) x(N-2)

l=2

x(3) x(7) x(N-1)

l=3

x(4n) x(4n+1) x(4n+2) x(4n+3)

n=0,1, N/4-1

- Độ phức tạp :1 khối tính toán cần : 3 nhân phức và 12 cộng phức

- N=4v : Tầng tính toán v=log4N

Mỗi tâng có N/4 khối tính toán

- Biểu diễn lại ma trận :

Trang 6

III.Lọc tuyến tính

A.Giải thuật Goertzel

- Dựa vào tính chu kỳ của WNk và biểu diễn việc tính toán DFT như lọc tuyến tính :

- Kết hợp các bộ cộng hưởng có pole liên hợp phức

- Thực hiện bằng dạng chuẩn tắc

- vk(n) được lặp lại cho n=0,1,2….,N ,ỗi vòng cần một phép nhân thực

- yk(n) được tính một lần duy nhất cho n=N

- Nếu x(n) là tín hiệu thực cần N+1 phép nhân thực để tính X(k) và X(N-k) do tính đối xứng

- Giải thuật Goertzel chỉ thích hợp khi số giá trị DFT cần tính khá nhỏ

(log2(N))

A.Giải thuật Chirp-z

- DFT N điểm  X(zk) với zk=ej2 kn/N ,k=0,1,2….N-1 (các điểm cách đều trên vòng tròn đơn vị)

Trang 7

- Nếu zk=rej2 kn/N (z là N điểm cách đều trên vòng tròn bán kính r):

- Tổng quát zk nằm trên cung xoắn ốc bắt đầu từ điểm z0=r0ej0 đi vào hoặc đi

ra gốc tọa độ:

zk=r0ej0(R0r0ej0)k k=0,1,K,L-1

- Xác định tổng chập vòng của chuỗi g(n) N điểm và chuỗi h(n) M điểm (M>N)

N-1 điểm đầu là điểm lặp lại M-(N-1) điểm còn lại chứa kết quả

- Giả sử M=L+(N-1)

- M điểm của chuỗi h(n) được xác định -(N-1) n  (L-1)

- Định nghĩa chuỗi M điểm h1(n)=h(n-N+1) n=0,1,2…M-1

- H1(k)=DFTM{h1(n)}

- G(k)=DFTM{g(n)} sau khi đã đệm thêm và g(n) L-1 số 0

- Y1(k)=G(k)H(k)  y1(n)=IDFT{Y1(k)} n=0,1,2…M-1

- N-1 điểm đầu tiên của y1(n) là các điểm lặp cho nên loại bỏ chúng

- Các điểm kết quả là giá trị của y1(n) khi N-1 n  M-1

y(n)=y1(n+N-1) n=0,1,2…L-1 Xz(k)= y(k)

h(k) k=0,1,2…L-1

Trang 8

TÌM HIỂU MATLAB

Một số lệnh và hàm của MATLAB :

zeros: tạo một ma trận với toàn bộ các phần tử có giá trị bằng 0

ones: tạo một ma trận với toàn bộ các phần tử có giá trị bằng 1

rand: tạo một ma trận với các phần tử nhận các giá trị ngẫu nhiên được phân bố

đều trong khoảng từ 0 đến 1

randn: tạo một ma trận với các phần tử nhận các giá trị ngẫu nhiên theo phân bố

Gauss có giá trị trung bình bằng 0, phương sai bằng 1

min: trả về giá trị nhỏ nhất trong một ma trận

max: trả về giá trị lớn nhất trong một ma trận

fliplr: lộn ngược lại thứ tự các phần tử trong một ma trận theo hướng xuất phát từ

phải qua trái trở thành từ trái qua phải

plot và stem: vẽ đồ thị của một dãy số, plot để thể hiện dạng liên tục, stem để thể hiện dạng rời rạc, thường sử dụng hàm stem để vẽ tín hiệu ở miền n

conv: trả về tích chập của 2 vector

filter: trả về đáp ứng theo thời gian của hệ thống được mô tả bởi một phương trình

sai phân tuyến tính hệ số hằng

Bài tập ví dụ về matlab

Bài 1 :Vẽ đồ thị hàm số y=sinx.cos2x trong [0-2]

Giải x=linspace(0,2,30) %chia doan tu 0-2 thanh 30 phan bang nhau

y=sin(x).*cos(2*x)

plot(x,y) %ve do thi

Trang 10

Bài 2 :

x=linspace(-10,10,10)

y=linspace(-10,10,10)

z=sin(sqrt(x.*x+y.*y))./sqrt(x.*x+y.*y)

plot3(x,y,z)

Ngày đăng: 10/08/2015, 15:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w