1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

báo cáo thiết kế khối tổng hợp dao động số NCO

19 127 1

Đ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 19
Dung lượng 1,35 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thiết kế khối tổng hợp dao động số NCO Gồm 3 nội dung chính:  Định nghĩa và cơ sở toán học của NCO  Kết quả mô phỏng trên modelsim và hiện thực hóa khối tổng hợp dao động số NCO t

Trang 1

Thiết kế khối tổng hợp dao động số

NCO

Gồm 3 nội dung chính:

 Định nghĩa và cơ sở toán học của NCO

 Kết quả mô phỏng trên modelsim và hiện thực hóa

khối tổng hợp dao động số NCO trên FPGA

 Ứng dụng của khối tổng hợp dao động số NCO

Trang 2

Thiết kế khối tổng hợp dao động số NCO

1 Định nghĩa

NCO viết tắt của Numerically Controler Osillator Là khối tổng hợp dao động bằng vi mạch số Khối này có khả năng tổng tạo ra dao động với tần số mong muốn một các trực tiếp bằng một vi mạch số tích hợp

Cơ sở toán học của NCO

Sóng sin mà ta muốn tổng hợp có hàm số phụ thuộc thời gian và tần số như sau:

Nếu đặt φ(t) = ∆φt = 2пft thì φ(t) là một hàm phụ

thuộc tuyến tính theo thời gian, nếu biểu diễn giá trị pha theo thang 0-3600

Trang 3

Thiết kế khối tổng hợp dao động số NCO

Trang 4

Thiết kế khối tổng hợp dao động số NCO

 Chia trục thời gian thành các khoảng cách đều nhau ∆t, khi

đó giá trị biên độ tương ứng là:

y k = U 0 sin(φ k (t)) = U 0 sin(∆φ.k.∆t)

 Áp dụng định lý kachenhikov về rời rạc hóa và khôi phục tín

hiệu, để thu được tổ hợp các giá trị Uk đủ để khôi phục hoàn toàn sóng ban đầu giá trị đó phải thỏa mãn: ∆t < 1/2f

 Giá trị tích lũy pha không nhất thiết thay đổi từ 0-360 0 mà

trên thực tế chọn miền giá trị 0-2 N (2N > 3600),để thu được

độ chính xác và độ phân giải cao hơn

 Giá trị tích lũy pha Pk được tính bởi 1 khối cộng có đầu vào

là giá trị tích lũy N bit m

P k = k.m

 G iá trị biên độ Uk được số hóa tương ứng trong bảng Sin là:

U k =

Trang 5

Thiết kế khối tổng hợp dao động số NCO

Sơ đồ khối của NCO

Thời gian để thực hiện hết một chu kỳ sóng Sin là:

 Tần số của sóng thu được tính theo công thức:

Trang 6

Thiết kế khối tổng hợp dao động số NCO

 Nếu x3x2= 00 thì giá trị tương ứng giữ nguyên

 Nếu x3x2 = 01 thì giá trị tương của biên độ

 Nếu x3x2 = 10 thì giá trị tương của biên độ

 Nếu x3x2 = 11 thì giá trị tương của biên độ

Trang 7

Thiết kế khối tổng hợp dao động số NCO

2 Kết quả mô phỏng trên modelsim và hiện thực hóa khối

tổng hợp dao động số NCO trên FPGA

 Tài nguyên sử dụng:

 Chu kỳ nhỏ nhất: 5.656ns (Tần số lớn nhất: 176.803MHz)

 Thời gian trễ nhỏ nhất ở đầu vào trước xung nhịp clock: 2.360ns

 Thời gian đòi hỏi lớn nhất ở đầu ra sau xung nhịp clock: 5.434ns

 Kết quả về thời gian tĩnh sau khi thực hiện kết nối và phân bố thu được

chu kỳ nhỏ nhất là 4,947 ns tương ứng với xung nhip cực đại chính xác là 202,143 Mhz

Trang 8

Thiết kế khối tổng hợp dao động số NCO

3 Ứng dụng của khối tổng hợp dao động số NCO

 Điều chế biên độ:

Trang 9

Thiết kế khối tổng hợp dao động số NCO

3 Ứng dụng của khối tổng hợp dao động số NCO

 Điều chế tần số:

Trang 10

THUẬT TOÁN CORDIC

Gồm có 4 nội dung chính sau

A Giới thiệu thuật toán cordic

B Nội dung thuật toán

D Kết luận

Trang 11

A Giới thiệu

CORDIC = COordinate Rotation DIgital Computer

 Được tính toán và mô tả lần đầu tiên vào năm 1959 bởi

Jack E Volder cho việc tính toán các hàm lượng giác,

nhân và chia

 Năm 1971, John Walther phát triển giải thuật CORDIC

cho việc tính các hàm hypebolic Cùng thời gian này

Cochran cũng đánh dấu việc thay đổi giải thuật và chỉ ra rằng CORDIC là lựa chọn tốt nhất cho các ứng dụng tính toán khoa học

 Do tiềm năng, hiệu quả và chi phí thấp của CORDIC nên được phổ biến và phát triển mạnh

• CORDIC thực hiện một lớp lớn của các ứng dụng gồm các hàm: lượng giác, logarit và siêu việt; phép nhân số

phức, tính trị riêng của vector, ma trận nghịch đảo, giải các hệ thống tuyến tính và phân tích giá trị bất thường

trong xử lý tín hiệu, xử lý hình ảnh, và tính toán khoa học nói chung

Trang 12

B NỘI DUNG THUẬT TOÁN

 Quay (1,0) đi 1 góc f để đạt được

(x,y) : x = cos (f), y = sin (f)

f

(x’,y’)

Y

X (x,y)

Y

f

sin f

cos f

X

) sin(

)

cos(

.

) sin(

)

cos(

.

f f

f

f

x y

y

y x

x

)]

tan(

).[

cos(

)]

tan(

).[

cos(

f f

f

f

x y

y

y x

x

)

tan(

) cos(

)

sin(

f

Trang 13

B NỘI DUNG THUẬT TOÁN

 Ta chọn các góc đặc biệt: f1, f2, …, fm

Sao cho: fi = arctan 2-i hay tan fi = 2-i

Tại lần quay thứ i, tính được (x i+1 , y i+1 ) từ (x i , yi)

như sau:

 Trong đó:

 Sau n lần quay

)]

tan(

).[

cos(

)]

tan(

).[

cos(

f f

f

f

x y

y

y x

x

)]

tan(

).[

cos(

)]

tan(

).[

cos(

1

1

i i

i i

i i

i i

i i

i i

d x y

y

d y x

x

f f

f

f

] 2 [

] 2 [

1

1

i i

i i

i i

i i

i i

i i

d x y

K y

d y x

K

x

1

)) 2 ( cos(tan )

i

i i

i

d

i n

i

K

0

935 252

607 0

K n

Trang 14

B NỘI DUNG THUẬT TOÁN

9 0.1 0 0.001953125 = 2 -9

 Ví dụ: f =30.0°

 Start with 0 = 45.0 (> 30.0 )

 45.0 – 26.6 = 18.4 (< 30.0 )

 18.4 + 14.0 = 32.4 (> 30.0 )

 32.4 – 7.1 = 25.3 (< 30.0 )

 25.3 + 3.6 = 28.9 (< 30.0 )

 28.9 + 1.8 = 30.7 (> 30.0 )

 f = 30.0  45.0 – 26.6 + 14.0 – 7.1 + 3.6 + 1.8 – 0.9 + 0.4 – 0.2 + 0.1 = 30.1

45° 30°

Trang 15

C MÔ TẢ BẰNG VHDL VÀ KIỂM TRA TRÊN

MDELSIM

• Tại mỗi bước quay, cố gắng làm cho z = 0

( với z là góc hiện tại)

• Khởi đầu: x = 1; y = 0, z = f

• For i = 0 →n

 di = 1 when z>0, else -1

 xi+1= xi – di 2-i yi

 yi+1 = yi + di 2-i xi

 zi+1 = zi – di i

• Kết quả: xn=cos( f ), yn=sin( f )

y

x

x0,y0

30

- 45

x1,y1

+26.6

x2,y2

-14

x3,y3

Trang 16

Ví dụ với góc cần tính là 30 0

Kết quả trên mô phỏng hiển thị sau 14 lần quay

0 01 0110110100001 = 1.425

0 00 1101001011101 = 0.824

Cos 30 0 = 1.425*0.6073 = 0.866

Sin 30 0 = 0.824*0.6073 = 0.5003

SƠ ĐỒ KHỐI

Trang 17

C MÔ TẢ BẰNG VHDL VÀ KIỂM TRA TRÊN

MODELSIM

II CORDIC VECTOR MODE

• Sự khác nhau với rotation mode

• Khi chọn di, thay vì cố gắng làm cho z tiến tới 0, thì sẽ cố gắng làm cho yi

• di = –sign (xi yi)

• Các giá trị sẽ tiến tới là:

• xn = 1/K (x2 + y2)½

• yn = 0

• Zn = z + tan-1(y/x)

• Ứng dụng

• Nếu bắt đầu với x= 1, z= 0, giá trị z cuối cùng sẽ là

arctan(y)

Trang 18

SƠ ĐỒ KHỐI

Ví dụ:

arctan 0.577 = 300 = 0.5236 rad

Kết quả hiện trên mô phỏng

Input : 0 00 1001001111001 = 0.577

output : 0 00 1000011000000 = 0.523

•Chu kỳ nhỏ nhất: 10.061ns (Tần số lớn nhất: 99.390MHz)

• Thời gian trễ nhỏ nhất ở đầu vào trước xung nhịp clock: 3.672ns

• Thời gian đòi hỏi lớn nhất ở đầu ra sau xung nhịp clock: 8.570ns

Ngày đăng: 09/05/2019, 09:27

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w