BÀI 1: TRUYỀN DẪN SỐ I.
Lý thuyết Ý nghĩa của truyền dẫ n số Khi nói đến “điều chế số” là ta đang đề cập đén việ c truyền dẫn tín hi ệu số nói chung. Tín hiệu điện được định nghĩa dướ i dạ ng số khi các mức điện áp đượ c biết và mang một giá tr ị xác định. Điều chế số được đặc trưng bở i các thong số sóng mang. Các trạng thái khác nhau của sóng mang sẽ tương ứ ng vớ i nhữ ng kí tự khác nhau đượ c truyền đi. Do đó, bộ giải điều chế không nhất thiết phải tái tạo một cách chính xác tín hi ệu truyền đi ở phía phát mà chỉ cần phân bi ệt các trạng thái khác nhau của sóng mang. Trong thự c tế, các trạng thái này t ại một thời điểm không d ễ để xác định một cách chính xác do có sự hiện diện của nhiễu và méo dạ ng. Trong bất k ỳ trườ ng ng h ợ p nào, bộ quyết định đóng vai trò rấ t quan tr ọng và ảnh hưởng đế n xác suất lỗi ở bộ tái tạo. Chất lượ ng ng của các phương pháp điều ch ế và giải điều chế khác nhau được đánh giá dựa trên số tốc độ l ỗi (thể hiện số bit khác nhau giữa phía thu và phía phát). Một yếu t ố khác ảnh hưởng đến việc tái tạo tín hi ệu ở bộ giải điều ch ế đó là sự sai biệt về thờ i gian khi so sánh vớ i một thời điểm tham chi ếu. Ảnh hưở ng ng của y ếu t ố này là sự sai bi ệt v ề pha tạ m gọi là Timing Jitter. Trong truyền dẫn dữ liệu các bit lien ti ếp nhau, Jitter gây ra càng nhi ều l ỗi khi tốc độ truyền tăng lên (do các bit trở nên ngày càng hẹp khi t ốc độ tăng và việc các bit này dịch chuyển hơi sai khác so vớ i v ị trí lý tưở ng ng có thể gây ra l ỗi ở phía thu). 2. Phân loại phương pháp điề u chế Về cơ bản, điều ch ế số có thể đượ c chia làm ba lo ại: điều chế biên độ, điề u chế tầ n số và điều chế pha. Chất lương của phương pháp điề u chế phụ thuộc vào cách giải điều chề và tiêu chu ẩn đề quyết định (decision criterion) Ta thườ ng ng phân biệt điều ch ế số làm 2 loại: điều chế tuyến tính và không tuyến tính: 1.
s(t) = A.cos(w0t) + B.sin(w0t) Họ điều ch ế tuy ế n tính:
Họ điều ch ế phi tuy ế n: n:
- ASK: Amplitude modulation
- FSK: Frequency modulation
- M-ASK: Multiplelevel amplitude
- M-FSK: Multiplelevel frequency
modulation
modulation
- PSK: Phase modulation
- PM: Phase modulation
- M-PSK: Multilevel phase modulation m odulation
- CPM: Phase modulation with
- QAM: Amplitude and phase modulation - QPR: “ Partial respone” amplitude and phase modulation
coherent demodulator
II. Câu hỏi chuẩn bị 1. Vẽ sơ đồ điều ch ế ASK 2. Viết công thức tín hi ệu điều chế ASK s(t) theo tín hi ệu vào m(t) 3. Giải thích và minh h ọa mã đườ ng ng truyền NRZ (ưu, khuyế t, v ẽ hình minh h ọa tín hiệu được mã hóa tương ứ ng vớ i tín hiệu vào) 4. Vẽ sơ đồ điều ch ế FSK 5. Viết công thức tín hi ệu điều chế FSK s(t) theo tín hi ệu vào m(t) binary (ưu, khuyế khuy ết, v ẽ hình minh họa tín 6. Giải thích và minh h ọa mã đườ ng ng truyền Duo- binary hiệu được mã hóa tương ứ ng vớ i tín hi ệu vào) 7. Vẽ sơ đồ điều ch ế PSK 8. Viết công thức tín hi ệu điều chế PSK s(t) theo tín hi ệu vào m(t) 9. Giải thích và minh h ọa mã đườ ng ng truyền DPSK (ưu, khuyế t, vẽ hình minh h ọa tín hi ệu được mã hóa tương ứ ng vớ i tín hiệu vào)
III. Giớ i thiệu các KIT s ử dụng 1. KIT bổ trợ DL 2560B
-
Bộ tạ o xung clock và sóng mang: Các tín hiệu này thu đượ c bằng cách chia tần số thạ ch anh nguồn là 2.4576 Mhz. Xung clock được dùng để đồ ng bộ tín hi ệu đượ c phát, tín hi ệu mã hoá và tín hi ệu giải mã. T ần số xung clock có th ể đượ c chọn giữa các giá trị 2400, 4800, 9600, 19200, 38400 Hz. Các kit DL 2561, 2562, 2563 đượ c thi ết k ế để hoạt động vớ i xung clock có t ần số 2400 Hz.Tốc độ cao hơn được dùng để tìm hi ểu sự giảm đi củ a chất lượ ng ng truyền độ bit tăng. dẫn khi tốc độ bit Sóng mang thu đượ c bằng cách chia từ bộ dao động ban đầ u. Tần số sóng mang là 307.2 Khz.
II. Câu hỏi chuẩn bị 1. Vẽ sơ đồ điều ch ế ASK 2. Viết công thức tín hi ệu điều chế ASK s(t) theo tín hi ệu vào m(t) 3. Giải thích và minh h ọa mã đườ ng ng truyền NRZ (ưu, khuyế t, v ẽ hình minh h ọa tín hiệu được mã hóa tương ứ ng vớ i tín hiệu vào) 4. Vẽ sơ đồ điều ch ế FSK 5. Viết công thức tín hi ệu điều chế FSK s(t) theo tín hi ệu vào m(t) binary (ưu, khuyế khuy ết, v ẽ hình minh họa tín 6. Giải thích và minh h ọa mã đườ ng ng truyền Duo- binary hiệu được mã hóa tương ứ ng vớ i tín hi ệu vào) 7. Vẽ sơ đồ điều ch ế PSK 8. Viết công thức tín hi ệu điều chế PSK s(t) theo tín hi ệu vào m(t) 9. Giải thích và minh h ọa mã đườ ng ng truyền DPSK (ưu, khuyế t, vẽ hình minh h ọa tín hi ệu được mã hóa tương ứ ng vớ i tín hiệu vào)
III. Giớ i thiệu các KIT s ử dụng 1. KIT bổ trợ DL 2560B
-
Bộ tạ o xung clock và sóng mang: Các tín hiệu này thu đượ c bằng cách chia tần số thạ ch anh nguồn là 2.4576 Mhz. Xung clock được dùng để đồ ng bộ tín hi ệu đượ c phát, tín hi ệu mã hoá và tín hi ệu giải mã. T ần số xung clock có th ể đượ c chọn giữa các giá trị 2400, 4800, 9600, 19200, 38400 Hz. Các kit DL 2561, 2562, 2563 đượ c thi ết k ế để hoạt động vớ i xung clock có t ần số 2400 Hz.Tốc độ cao hơn được dùng để tìm hi ểu sự giảm đi củ a chất lượ ng ng truyền độ bit tăng. dẫn khi tốc độ bit Sóng mang thu đượ c bằng cách chia từ bộ dao động ban đầ u. Tần số sóng mang là 307.2 Khz.
-
-
Bộ tạ o tín hi ệu giả ngẫu nhiên Vớ i chuỗi dữ liệu đượ c tạo ra, cần chú ý : + Cả hai chu ỗi dữ liệu là những bit „1‟ và „0‟ liên tiế p nhau một cách ngẫu nhiên. Chuỗi này đượ c gọi là giả ngẫu nhiên vì chúng đượ c lặp đi lặ p lại và rõ ràng hoàn toàn không phải ngẫu nhiên. + Chiều dài là 15 hay 255 bit là m ột số tiêu chuẩn được dùng để tránh tần số lặp lại của chuỗi là hài con của xung clock truyền đi. Máy đo tốc độ bit lỗi BER và Digital Delay D elay Equalizer Máy đo BER so sánh chuỗ i nhậ n và chu ỗi thu được để đế m số lỗi. 4 5 6 7 Có th ể đế m số bit lỗi trong 10 , 10 , 10 hoặ c 10 bit. S ố bit lỗi sẽ hiển thị ở cuối
chu kì đo. Máy đo BER hoạt độ ng sau khi nhấn nút START/STOP. Đèn Led GO sáng cho biế t máy vẫn còn đang đế m. Nhấn nút START/STOP l ầ n nữa để đế m lại. Máy đo BER đượ c dùng cung vớ i bộ digital delay equalizer. Tín hiệu thu đượ c chắ n chắ n sẽ bị trễ do đó để có thể so sánh hai chuỗi bit phát và thu, tín hi ệu thu đượ c đem đi so sánh vớ i tín hiệu phát đượ c làm tr ễ. Độ trễ đượ c chỉnh bằ ng nút DELAY. Khi tín hi ệu nhận và tín hi ệu làm tr ễ giống nhau thì LED (EQUAL) sáng. - Bộ tạ o nhi ễu Bộ tạ o nhi ễu vớ i mức nhiễu có thể điều chỉnh đượ c tạo ra tín hi ệu có phổ gần như nhiễu trắng. Vớ i tín hi ệu nhiễu cho phép theo dõi h ệ thống truyền dẫn vớ i sự hiện diện của nhiễu. - Máy đo độ trễ Tín hiệu t ừ bộ tạo và tái tạo xung clock được đo đạ c bằ ng 2 thông số JITTER và WANDER. Jitter là thông s ố cho thấy sự khác nhau của tín hi ệu chu k ỳ và pha nhỏ của 2 xung clock trong khi Wander là thông s ố đượ c dùng cho tín hi ệu có chu k ỳ lớn hơn (ngày, tháng ,năm) Trong kit này, ta chỉ khảo sát Jitter. Mạ ch này bao gồm một toán tử OREXCLUSIVE theo sau là m ột bộ l ọc thông thấ p. Giá tr ị trung bình điệ n áp ngõ là là hằng số khi jitter = 0. 2. KIT DL 2561
-
NRZ, Duo-binary encoder: mã hóa m ức đi ện áp TTL của tín hi ệu từ bộ tạ o tín hi ệu DL 2560B theo dạ ng bipolar NRZ, Duo-binary. AM modulator: dung để điều chế tin hi ệu s ố. Độ sâu điều chế được điều chỉnh bằ ng
núm MODULATION - Receiver: bao gồm bộ khuếch đại trung tầ n (IF), bộ tạ o tín hiệu cho bộ điều khiển độ lợ i hồi tiếp và khối suy hao ngõ vào đề làm chức năng AGC. - AM detector: là m ột mạch tách song đường bao đơn giả n gồm diode và mạ ch lọc thong thấ p. - NRZ decoder: nhậ n tín hiệu ngõ vào từ bộ giải điều chế. Hoạt động dựa trên sự định thời đượ c tao ra ở bộ nhận (bộ tái tạ o xung clock). B ộ giải mã NRZ có th ể điều chỉnh được ngưỡ ng quyết định để phân biệt các mứ c logic của tín hiệu bên nhận. - Duo-binary decoder: mạ ch này dung xung clock tạo ra từ mạ ch tái tạo của phía thu. Mạch này còn cho phép ta ch ỉnh đượ c các mức ngưỡ ng quyết định. - Reception clock regenerator: module này đóng vai trò như mạ ch tái tạo tín hiệu định thờ i ở phía thu trong hệ thống truyền dẫ n số. Mạch chứa một PLL (Phase Locked Loop) được đồ ng bộ vớ i sự dịch chuyển của tín hi ệu thu. Để sử dụng dễ dàng, mạch đượ c trang bị them một nút chỉnh tay f ADJ . Khi mạch đã khóa ( xung clock tái tạ o giống vớ i xung clock phía phát), LED LOCK sẽ sáng. Module còn có them một mạ ch dịch pha cho phép làm lệch pha của xung clock lên đến 180. 3. KIT DL 2562
NRZ, Duo-binary encoder: mã hóa m ức điện áp TTL của tín hi ệu từ bộ tạ o tín hi ệu DL 2560B theo dạ ng bipolar NRZ, Duo-binary. - FM generator/modulator: dung để điều chế tin hiệu s ố. Độ sâu điều ch ế được điều chỉnh bằng núm MODULATION - Receiver: bao gồm bộ khuếch đạ i trung tầ n (IF) . - FM demodulator: là m ột dạng của PLL v ớ i một bộ l ọc thong thấ p theo sau. - NRZ decoder: nhậ n tín hiệu ngõ vào từ bộ giải điều chế. Hoạt động dựa trên sự định thời đượ c tao ra ở bộ nhận (bộ tái tạ o xung clock). B ộ giải mã NRZ có th ể điều chỉnh được ngưỡ ng quyết định để phân biệt các mứ c logic của tín hiệu bên nhận. - Duo-binary decoder: mạ ch này dung xung clock tạo ra từ mạ ch tái tạo của phía thu. Mạch này còn cho phép ta ch ỉnh đượ c các mức ngưỡ ng quyết định. - Reception clock regenerator: mod ule này đóng vai trò như mạ ch tái tạo tín hiệu định thờ i ở phía thu trong hệ thống truyền dẫ n số. Mạch chứa một PLL (Phase Locked Loop) được đồ ng bộ vớ i sự dịch chuyển của tín hi ệu thu. Để sử dụng dễ dàng, mạch đượ c trang bị them một nút chỉnh tay f ADJ . Khi mạch đã khóa ( xung clock tái tạ o giống vớ i xung clock phía phát), LED LOCK sẽ sáng. Module còn có them một mạ ch dịch pha cho phép làm lệch pha của xung clock lên đến 180. 4. KIT DL 2563 -
-
-
-
-
NRZ, DPSK (Different PSK), Duo-binary encoder: mã hóa m ức điện áp TTL của tín hi ệu từ bộ tạo tín hi ệu DL 2560B theo dạ ng bipolar NRZ, DPSK, Duo-binary. PSK modulation: trướ c khối này là b ộ điều chỉn pha để canh chỉnh pha của song mang vớ i tín hiệu s ố đang điều ch ế. Bộ điều chế hoạt động v ớ i tín hi ệu s ố và do đó không đượ c cung cấ p chức năng điều chỉnh độ sâu điều chế. Sóng mang sẽ có pha là 1800 cho ngõ vào dương, 270 0 0 cho mứ c 0 và 0 cho ngõ vào âm. Ba mứ c này cần thiết khi mã hóa tín hi ệu vớ i kiểu mã hóa duo-binary. Receiver: bao gồm bộ khuếch đại trung tầ n (IF) và mạ ch tái tạ o song mang. Demodulator of coherent type: dùng tín hi ệu song mang sau khi tái t ạo trong mạ ch IF. Pha của sóng mang này được điề u chỉnh để có được điều kiện giải điều ch ế tốt. Reception carrier regenerator: mạch này dưa tr ên PLL (PLL có t ầ n số dao động rất gần vớ i tần số dao độ ng của song mang bên phía phát). Để việc sử dụ ng dễ dàng, LED sẽ sáng khi song mang tái tạ o giống với sóng mang được phát đi. NRZ decoder: nhậ n tín hiệu ngõ vào từ bộ giải điều chế. Hoạt động dựa trên sự định thời đượ c tao ra ở bộ nhận (bộ tái tạ o xung clock). B ộ giải mã NRZ có th ể điều chỉnh được ngưỡ ng quyết định để phân biệt các mứ c logic của tín hiệu bên nhận. Duo-binary decoder: mạ ch này dung xung clock tạo ra từ mạ ch tái tạo của phía thu. Mạch này còn cho phép ta ch ỉnh đượ c các mức ngưỡ ng quyết định. DPSK decoder: mạch này có chúc năng bổ sung cho bộ mã hóa ở phía phát. Đượ c nối vớ i ngõ ra của NRZ decoder và b ộ tạo xung clock để đị nh thờ i. Reception clock regenerator: module này đóng vai trò như mạ ch tái tạo tín hiệu định thờ i ở phía thu trong hệ thống truyền dẫ n số. Mạch chứa một PLL (Phase Locked Loop) được đồ ng bộ vớ i sự dịch chuyển của tín hi ệu thu. Để sử dụng dễ dàng, mạch đượ c trang bị them một nút chỉnh tay f ADJ . Khi mạch đã khóa ( xung clock tái tạ o giống vớ i xung clock phía phát), LED LOCK sẽ sáng. Module còn có them một mạ ch dịch pha cho phép làm lệch pha của xung clock lên đến 180.
IV. Thí nghiệm 1.
Điều chế ASK Thiết bị: - Bộ nguồn - Dao động kí - KIT DL 2560B, 2561 Thực hiện: Phầ n A - Kết nối như hình vẽ:
-
Xung clock và dữ liệu truyền đi đượ c tao ra bởi DL 2560B được đưa vô ngõ vào của phía phát DL 2561. Tín hi ệu được mã hóa sau đó được đưa vào bộ điều ch ế. Ngõ ra TX đượ c nối vớ i ngõ vào RX của bộ thu và tầng khu ếch đại IF nối vào bộ tách song đường bao. Ngõ ra sau đó đưa v ào bộ giải mã NRZ. 4 Chỉnh CK RATE = 2400 Hz và WORD LENGTH = 2 – 1. Dao động kí ở chế độ đồ ng bộ ngoài nối vớ i (1). Tầng IF ở WIDE BAND. Quan sát dao động kí và ghi lại các đặc tính của tín hi ệu: Sóng mang: ………………………………………………………………………
-
Data:……………………………………………………………………………… Clock:…………………………………………………………………………… Nối CH1 vào DATA IN ngõ vào c ủa bộ điều ch ế (5) và CH2 vào ngõ ra c ủa bộ điều chế (6). Quan sát sự thay đổi của tín hi ệu được điều chế khi điều chỉnh độ sâu điều chế và xác đị nh giớ i hạ n tuyến tính của b ộ điều chế.
……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… - Đưa CH2 đến ngõ ra của IF (7), quan sát dạng song trong trườ ng hợ p bộ khu ếch đại đăt cho narrow band và wide band . - Chức năng củ a bộ AGC: ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… - Quan sát tín hi ệu của ngõ ra b ộ giải điều chế (9) khi thay đổi độ sâu điều ch ế - Để mạ ch hoạt động một cách dễ dàng, một đèn chỉ thị sẽ sang khi mà bộ tái tạo xung khóa theo một cách đúng vớ i chuỗi dữ liệu nhận đượ c. Đưa CH2 đến ngõ ra của PHASE SHIFTER (10). Điề u chỉnh ADI để cho chu k ỳ làm vi ệc đạt 50%. - Đưa CH1 đến ngõ vào của bộ giải mã (9) và CH2 đến REF để đo điện áp tham chiếu cho ngưỡ ng quyết định của b ộ giải mã. Chỉnh để mức điện áp này nằ m giữa mứ c cao nhất và mứ c thấ p nhất c ủa tín hi ệu ngõ vào tại (9). Chuyển CH1 đế n (3) và CH2 đến (11). So sánh hai tín hi ệu này và độ trễ pha giữa chúng. ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… Thực hiện: Phần A - Kết nối như hình vẽ: 4 - Chỉnh CK RATE = 2400 Hz và WORD LENGTH = 2 – 1 - Chỉnh mứ c nhiễu ở mức nh ỏ nhất, OUTPUT LEVEL = 100%. Ch ỉnh bộ khóa pha để tín hiệu giả mã (8) giống vớ i tín hi ệu gốc (2).
Chỉnh DELAY của DIGITAL DELAY EQUALIZER c ủa DL 2560B để cho led EQUAL sáng. Ki ểm tra lại tín hi ệu của (8) và (9) giống nhau. - Chỉnh MEASUREMENT BASE = 10 4 . Nhấn START, ch ờ cho đến khi LED GO 4 tắt (báo hiệu k ết thúc quá trình đo). Đánh giá số bit sai trên t ổng cộng 10 bit. 2. Điều chế FSK Thiết bị: - Bộ nguồn -
- Dao động kí - KIT DL 2560B, 2562 Thực hiện: Phầ n A - Kết nối như hình vẽ:
-
4
Chỉnh CK RATE = 2400 Hz và WORD LENGTH = 2 – 1. Kết nối EXTERNAL TRIGGER đến (1), CH1 đến DATA IN (2) và CH2 đế n ngõ ra của bộ duo-binary pre-coder (3). Kiểm tra dạng sóng và giải thích:
……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… - Khóa bộ tạ o xung clock bằng cách điều ch ỉnh ADJ cho đến khi led LOCK sáng. - Chuyển CH1 đến (4) và CH2 đế n (3). Chỉnh DECISION POINT để có điện áp ngưỡ ng H có giá tr ị nằm giữa 0 và mứ c cao của tín hiệu nhận. Chuyển CH1 đến (5), ki ểm tra điện áo ngưỡ ng L nằ m giữa 0 và mứ c thấ p của tín hiệu nhận đượ c. - Chuyển CH1 đến ngõ ra của bộ giải mã (6) và CH2 đế n (3) - Điều chỉnh pha của bộ tái tạ o xung clock bằng núm PHASE và điề u ch ỉnh tầ n số, mức ngưỡ ng H và L (n ếu cần) để làm cho tín hi ệu giải mã xu ất hiện. - Đưa CH1 đến (2) và so sánh vớ i tín hiệu đượ c giải mã. ……………………………………………………………………………………… Thực hiện: Phầ n B (Làm tương tự phần A nhưng có them sự xuất hiện của nhiễu. Quan sát ảnh hưở ng của nhiễu lên tín hi ệu sau khi đượ c giải mã) ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… 3. Điều chế PSK Thiết bị: - Bộ nguồn - Dao động kí - KIT DL 2560B, 2563 Thực hiện: -
Kết nối như hình vẽ:
-
Làm tương tự như phần 2.
BÀI 2: GHÉP KÊNH I.
Lý thuyết 1. Multiplied transmission Để tăng hiệu quả của hệ thống truyền dẫn, càng nhiều nguồn thong tin đượ c truyền đi ở cùng một thời điểm càng tốt vớ i một nguồn thong tin đượ c gán cho một địa chỉ. Có 3 loại ghép kênh thường đượ c dùng: - Ghép kênh chia theo thờ i gian - Ghép kênh chia theo tầ n số - Ghép kênh chia theo tầ n số và thờ i gian 2. Thuyết lấy mẫu Bước đầu tiên trướ c khi chuyển một tín hi ệu thự c và lien tụ c trong mi ền thờ i gian thành tín hiệu PAM đó là lấ y mẫu.
Hình 1: Tín hi ệu lấy mẫu trong mi ền thờ i gian Số lượ ng mẫu lấ y trong một đơn vị thờ i gian phải xác đị nh và phụ thuộc vào tần số lớ n nhất của tín hi ệu đượ c lấ y mẫu. Do đó tín hiệu này cầ n nằm trong một băng thong giớ i hạn. Đây là lý do cầ n có một bộ lọc dung để lọc tín hiệu lien tục trướ c khi lấ y mẫu
Hình 2: Quá trình l ấy mẫu và tái tạo tín hi ệu tương tự Tín hiệu lấy mẫu có thể được xem như là kết quả của phép nhân giữa tín hi ệu gửi đi V(t) và một chu ỗi xung Dirac C(t). Hình 4 bi ễu diễn V(t), C(t) và U(t) ở miền thờ i gian với xung Dirac đượ c coi là lý tưở ng. Chuỗi xung Dirac tu ần hoàn vớ i tầ n số fc = 1/Tc
Hình 3: Lấy mẫu tức thờ i Phổ của tín hi ệu PAM sau khi đượ c lấy mẫu sẽ tuần hoàn vớ i chu kỳ fc
Hình 4: Phổ của tín hi ệu đượ c lấy mẫu đúng
Trong thực tế, xung lấy mẫu không hề lý tưở ng mà nó sẽ có độ rộng xung xác đị nh (τ≠0)
Hình 5: Lấy mẫu thự c 3. TDM - PAM Multiplexing Trong điều ch ế biên độ xung (PAM), một tín hi ệu liên tục (VD: giọng nói) sẽ đượ c biểu diễn bằ ng một chu ỗi xung gọi là mẫu. Biên độ của từng mẫu tỉ lệ với biên độ tức thờ i của tín hi ệu lien tục tại thời điểm lấy mẫu.
Hình 6: biểu di ễn theo thờ i gian của tín hiệu đươc lấy mẫu Theo lý thuyết lấy mẫu, tốc độ lấy mẫu là xác định do đó ta có thể dung kiểu ghép kênh theo thờ i gian TDM. Khoảng thờ i gian (1/fc – τ) gọi là khoả ng thờ i gian chết. Nếu như ta muốn truyền cùng lúc 3 thông tin khác nhau trên cùng m ột đườ ng truyền, ta có thể áp dụ ng TDM vớ i các tín hi ệu đượ c lấy mẫu tại các thời điểm khác nhau
Hình 7: Ghép TDM-PAM Ghép kênh theo th ờ i gian có th ể đượ c biểu di ễn như một bộ chuyển xoay tròng có tốc độ fc lầ n chuyển trong một giây. Bộ chuyển này có chức năng lấ y mẫu. Để phía thu có thể khôi phục đượ c tín hiệu thì giữa phía phát và phía nhậ n cần có sự đồng bộ (2 bộ chuyển cầ n có cùng một tốc độ và lệch một pha thích hợ p).
Hình 8: Bi ểu diễn ghép kênh TDM-PAM vớ i rotor 4. Demultiplexing and bộ lọc phía nhận Tín hiệu PAM thu ở phía Rx trướ c hết sẽ đượ c khuếch đại để đạt đượ c mứ c công suất cần thiết ở mỗi kênh. Tín hi ệu này sau đó được đưa đế n các kênh khác nhau, tại đây sẽ có các switch tương tự như switch lấ y mẫu ở phía phát.
Hình 9: Chia kênh tín hi ệu PAM Tín hiệu PAM ở mỗi kênh cần được đưa qua mộ t bộ lọc để loại bỏ thành phần tầ n số lớn hơn f max ( thực tế đây là một mạch giữ)
Hình 10
Hình 11: Ph ổ của tín hi ệu sau khi lấy mẫu
II. Câu hỏi chuẩn bị 1. Giải thích các loại ghép kênh. Ứ ng dụ ng của chúng 2. Nêu lý thuyết lấy mẫu. Ý nghĩa củ a nó
III. Giớ i thiệu các KIT sử dụng 1. KIT DL 2540 – Multiplexed PAM TRANSMITTER-RECEIVER a. Giớ i thi ệu Kit DL 2540 gồm 2 phầ n riêng biệt dùng để phụ c v ụ cho việc ghép kênh/truyền dẫn và phân kênh/nhậ n tín hiệu. Sơ đồ khối của kit DL 2540 đượ c miêu tả ở hình 1. Chức năng cơ bản c ủa t ừng khối sẽ đượ c giớ i thi ệu trong phần này.
Hình 12 Thiết b ị bao gồm 4 b ộ tạ o sóng sine khác nhau về biên độ và t ần số 2720, 1360, 680, 340 Hz.
Pha của 4 tín hi ệu này có th ể khác nhau vì sóng sine này đượ c tạo ra bằng cách lọc bỏ các hài từ sóng vuông. Kit DL 2540 còn có thêm m ột mạch dùng để mô phỏng môi trườ ng truyền giữa ngõ ra của nơi phát và ngõ vào ở nơi thu. Vớ i mạ ch này, ta có thể thay đổi mức suy hao cũng như thêm nhiễu vào tín hi ệu. Phổ của nhiễu có thể được xem như là phân bố đều trong miền tầ n số hoạt động của kit. b. Định thờ i ở phía phát Hình 13a là sơ đồ đã được đơn giản hoá của bộ đị nh thờ i. TRANMITTER tượng trưng cho bộ tạo xung clock. Khi nút gạt ở vị trí FCK1 thì tầ n số của xung clock là 40KHz và tín hi ệu này cấu tạ o thành bộ định thờ i cho phía ghép kênh. Ở hình 13b, việc đị nh thời được điều khiển nhờ vào các xung clock có duty-cycle đố i xứng nhau. Trong thực tế, tín hiệu này có duty-cycle là bất đối xứng. Xung clock được dùng để tạo sự đồng bộ. Xung clock đượ c n ối vớ i ngõ vào của IC HCF 4017. Đây là IC đếm 10 nhưng dùng trong kit DL 2540 với vai trò là đếm 4. B ộ đếm sẽ tăng thêm 1 cứ mỗi khi có 1 tín hiệu cạnh lên của xung clock vào. Ngõ ra bình thườ ng sẽ ở mức logic thấp. MR là ngõ vào của chân reset, đượ c giữ ở mức thấp trong quá trình đế m. Khi MR đượ c kích cho một mức điện áp dương , nó sẽ khởi động l ại tất cả ngõ ra trừ Q0 sẽ ở mức cao. Các ngõ ra Q1,Q2,Q3,Q4 được dùng để kích hoạt việc lấ y mẫu ở 4 kênh tín hi ệu. Ngõ ra Q 0 đóng vai trò kích hoạ t tín hi ệu đồng b ộ khung ( hoạt động như kênh truyề n thứ 5). Một chu kì quét các kênh b ắt đầu v ớ i Q 0. B ộ đếm sẽ tăng dầ n mỗi khi có xung clock vào đến cho đế n khi Q4 tích cự c. B ộ đếm không đếm ti ếp n ữa mà khi đó sẽ quay về Q0. Chu kì quét bắt đầu lại từ đầu. Ngõ ra Q5 đượ c n ối với MR để reset IC. Một khi Q 4 kết thúc khoả ng thờ i gian dành cho nó, Q5 sẽ kích hoạt MR để reset trở lại Q0. Thờ i gian cho Q 5 rất nhỏ (khoả ng 100ns) cho nên ta có thể bỏ qua trong thực tế.
Hình 13a
Hình 13b c. Analog switches Ta thườ ng hay dùng các bộ chuyển cho tín hi ệu analog trong các ứng dụng như: mạ ch lấy mẫu, chuyển đổi A/D và D/A, ghép kênh… Hình 14 là sơ đồ đơn giản của một bộ chuyển tương tự.
Hình 14: mô hình đơn giả n của switch tương tự
Tín hiệu điều khiển, tín hiệu số, cho phép switch mở theo một trong hai mứ c logic và switch đóng ở mứ c logic còn lại. Điện trở của ngõ vào khi ở mức thấp vào khoảng 109 Ohm và vài trăm Ohm khi ở mức cao. Do đó bộ chuyển tương tự có thể đóng vai trò như một bộ đóng, mở tu ỳ thuộc vào trong thái logic ở ngõ vào. Dòng lớ n nhất mà switch có thể chịu đượ c vào khoảng vài chục mA. Điện áp ngõ vào không đượ c xuống dướ i mức 0 hay vượ t qua mức điện áp cấ p cho IC. Trong trườ ng hợ p này, mức điện áp ngu ồn +15V là cố định và điện áp đứ ng của các kênh thoại khi không có tín hiệu là 7.5V. Một Diode Zener được dùng để k ẹp tín hi ệu không cho nó vượ t quá gi ớ i hạn đã được đề cập. d. Khuếch đại ngõ vào Tín hiệu thoại ở ngõ vào sẽ qua các kênh khuếch đại, hình 18. Bộ khuếch đại hoạt động vớ i chức năng cách ly vớ i các bộ tạo tín hiệu bên ngoài, gi ớ i hạn băng thông cũng như biên độ tín hiệu ngõ vào. Giớ i hạ n tầng trên được xác đị nh bằ ng hằng số th ờ i gian C2*R3 trong khi giớ i hạ n dưới liên quan đế n giá trị của C1 và tổng trở của R1 cộng v ới điện tr ở ngõ ra của bộ tạo sóng. C1 còn có chức năng cách ly sự xuất hiện của điện áp DC v ớ i tín hiệu ngõ vào để điểm hoạt động của bộ khuếch địa c ố đị nh ở giá tr ị 7.5V. Diode Zener V1 và V2 dùng để k ẹp các đỉnh của tín hiệu không cho vượ t quá giá trị ngưỡ ng. Tín hiệu ngõ ra đượ c giớ i hạn trong khoảng +-5V so với điểm hoạt động 7.5V. Bằng cách này, các đỉ nh của tín hi ệu sẽ không ảnh hưởng đến các xung đồ ng bộ.
Hình 15: khu ếch đại ngõ vào
e. Canh chỉnh và đồng bộ nơi phát Tín hiệu sau khi ghép bao gồm các mẫu đã có đượ c từ 4 kênh và kênh đồng b ộ đượ c minh hoạ ở hình 16a. Một khung như thế bao gồm 5 khe thờ i gian.
Hình 16a: Tín hi ệu sau khi ghép Xung clock có tầ n số là 40 KHz, tần số khung và tần số lấ y mẫu cùng là 8 KHz. Theo lý thuyết lấ y mẫu, tần số tối đa củ a tín hiệu tương tự có thể phát đi là 8/2=4KHz. Trong trườ ng h ợp đang xét, các bộ khuếch đại giớ i h ạn băng thông từ 360 đến 3600 Hz theo tiêu chuẩn băng thông thoạ i. Việc tổ chức khung, phía phát phải gửi cho phía nhận “khoá” để đảm bảo phía thu thu tín hi ệu và đưa ra các kênh mộ t cách chính xác. Để giải quyết vấn đề này, trước khi phát đi tín hiệu đã đượ c ghép, một số thông tin được đưa thêm vào tín hiệu cho phép phía nhậ n sắ p xếp chính xác tín hi ệu mà nó nhận đượ c. Khe thờ i gian T 0 phụ c vụ cho mục đích này. Điệ n áp của khe thờ i gian này luôn ở mứ c 0, khác bi ệt vớ i các khe thờ i gian khác bị giớ i hạn gi ữa 2.5 và 7.5 V. Do đó, khe thờ i gian 0 có thể phân biệt đượ c. Tín hi ệu ở khe thời gian 0 đượ c g ọi là tín hi ệu đồng bộ khung. Việc đồng bộ các khe thời gian đượ c thể hiện trong hình 16b và 17. Các xung này giúp phía nhận xác định đượ c các mẫu trong mỗi khung. Để tránh nhầm lẫn, biên độ của xung đồ ng bộ đượ c chọn là 15V.
Hình 16b: tín hi ệu đã ghép sau khi them xung đồ ng bộ
Hình 17: tạo và them xung đồ ng bộ f. Đồng bộ và giải điều chế ở phía thu Hình 18 là sơ đồ khối của phia thu.
Hình 18: Sơ đồ khối bộ thu
Tín hiệu nhậ n từ bộ khuếch đại đượ c gửi đến mạ ch tách tín hiệu đồng bộ. Mạch này bao gồm hai bộ so sánh hai ngưỡng dùng để kích hoạt ngõ ra tương ứ ng khi tín hi ệu xuống thấp hơn bộ so sánh A hay cao hơn bộ so sánh B. Hai bộ khối so sánh A và B dùng để phát hiện các xung đồ ng bộ xung và các xung đánh dấu khe thờ i gian. Ngõ ra từ bộ so sánh B là tín hiệu 40 Khz giống như xung clock phía phát và đượ c dùng như xung clock ở phía nhậ n. Tín hi ệu này cho phép tăng bộ đếm HCF 4017. Tín hiệu ra từ bộ so sánh A là xung mứ c cao theo khe thời gian 0. Nó đượ c dùng để reset bộ đếm để đồng bộ khung. Trước khi đưa các mẫu qua switch đế n các mạch giữ và lọc, cầ n phải khử các xung đồng bộ. g. Khuếch đại ngõ ra Mạch khuếch đại ngõ ra đượ c vẽ ở hình 19.
Hình 19 Trở kháng ngõ vào lớn đảm bả o mạ ch hoạt động tốt. Tụ mắc song song với điện trở hồi tiếp giớ i hạn băng thông vào khoả ng 3400Hz và giảm độ gợ n của tín hi ệu được điều chế.
IV. Thí nghiệm 1. Thí nghiệm 1: Đặc tính của các bộ tạo tín hiệu và khu ếch đại ngõ vào Thiết bi: - Double trace oscilloscope - Audiofrequency generator - Kit DL 2450 Để kit DL 2450 có th ể hoạt động, cung cấp cho kit điện áp +15V.
Thí nghiệm 1.1 Các bộ tạ o tín hiệu Mục đích của bài tập này là để quan sát hoạt động của b ộ tạ o sóng. - Nối kit vớ i nguồn điện áp +15V. - Chỉnh oscilloscope 0.5msec/div và 2 V/div. Nối probe của oscilloscope đế n ngõ ra của bộ tạo sóng G1 - Quan sát dạng sóng ngõ ra của G1 bằng cách điều chỉnh A1 f1 = …… Hz ; Vppmax = …… V - Lần lượt đưa probe của oscilloscope đế n các ngõ ra của G2, G3, G4. Quan sát dạng sóng và ghi lại các giá trị: f2 = …… Hz ; Vppmax = …… V f3 = …… Hz ; Vppmax = …… V f4 = …… Hz ; Vppmax = …… V Các tín hiệu sin này có các tần số là 340, 680, 1360 và 2720 Hz. Chú ý là các tần số này gấp đôi nhau. Đây là các tầ n số trong băng thông thoạ i (300-3400 Hz) dùng như tín hiệu ki ểm tra trong bài tập này. - Quan sát trên oscilloscope sự thay đổi biên độ của các tín hi ệu bằng cách thay đổi A1, A2, A3, A4. Biên độ có thể chỉnh trong khoả ng 0-9V đỉnh-đỉ nh. Chú ý: G1 và G4 đượ c trang bị thêm ngõ ra sóng vuông có tầ n số cố đị nh vớ i mức điện áp TTL. Hai tín hi ệu này có thể dùng như tín hiệu đồ ng bộ ngoài cho oscilloscope. 1.2 Phân tích ngõ ra bộ khuếch đại ngõ vào Các khối có nhãn là CH1-CH4 là các ngõ vào của các bộ khuếch đại của 4 kênh có chức năng cách ly vớ i b ộ tạ o sóng, giớ i hạn băng thông và giớ i hạn biên độ tín hiệu vào.
- Nối ngõ vào của CH1 vớ i sóng vuông tầ n số f1 của G1 - Nối probe của oscilloscope đến ngõ ra của bộ khuếch đại CH1. - Quan sát và phân tích ngõ ra của CH1 - Lặp lại các bước trên đố i vớ i các bộ khuếch đại CH2, CH3, CH4. Vẽ tín hi ệu ngõ ra vớ i tín hi ệu ngõ vào tương ứ ng là sóng vuông và sóng sin. Nhận xét và giải thích. 2. Thí nghiệm 2: Định thờ i phía phát Thiết bị: - Double trace oscilloscope - Audiofrequency generator - Kit DL 2450
Thí nghiệm Mục đích củ a thí nghi ệm này là để tìm hi ểu v ề định thời được dùng để tạ o nên tín hiệu ghép kênh. - Nối kit vớ i nguồn - Nối probe của oscilloscope (chỉnh 10us/div) vớ i ngõ ra của khối tạ o xung clock ở phía trên của kit. - Chỉnh nút ở vị trí FCK1 - Kiểm tra tín hi ệu xung clock phát Vẽ lạ i tín hi ệu này. Nhiệm vụ của nó? - Chỉnh nút sang vị trí FCK2. T ần số xung clock lúc này là bao nhiêu? - Chỉnh nút tr ở lại vị trí FCK1 - Đưa kênh A của oscilloscope đế n ngõ ra 0 của mạ ch lái switch (RING COUNTER) và kênh B tu ần tự đến các ngõ ra 1, 2, 3, 4 Vẽ lại tín hi ệu ở Q0, Q1, Q2, Q3, Q4. Nhậ n xét. Giải thích hoạt động của RING COUNTER. - Nối các ngõ ra của các bộ tạo sóng sine đế n ngõ vào của các bộ khuếch đại tương ứng. - Chỉnh oscilloscope ở chế độ đồng bộ ngoài và chọn tín hi ệu đồng bộ là Q0 - Nối kênh B đế n TX - Quan sát và vẽ lại 1 khung tín hi ệu. Giải thích chi tiết ý nghĩa củ a hình vừa vẽ. 3. Thí nghiệ m 3: Ghép kênh PAM
Thiết bị: - Double trace oscilloscope - Audiofrequency generator - Kit DL 2450
Thực hiện: - Nối kit vớ i nguồn - Nối ngõ ra của các bộ tạ o sóng vớ i các ngõ vào tương ứng của các bộ khuếch đại - Chỉnh A1, A2, A3, A4 v ề vị trí 0 - Chỉnh oscilloscope ở chế độ đồng bộ ngoài vớ i tín hi ệu đồng bộ lấ y từ Q0 - Nối kênh A của oscilloscope đế n TX - Chỉnh oscilloscope: 20usec/div và 2V/div để có thể thấ y trọn vẹn một khung - Tăng dầ n biên độ của G1 và chú ý thấy khe thờ i gian T1 có một vùng phủ màu thể hiện các giá trị lấy mẫu của kênh tín hiệu 1. Thay đổi biên độ Á và quan sát sự thay đổi của vùng này. Vẽ lại. - Thay tín hiệu đồng bộ Q0 bằng ngõ ra xung vuông của G1. Chỉnh oscilloscope 0.5msec/div. Bằ ng cách này, thi ết bị được đồng bộ vớ i tín hi ệu ở kênh 1 và vùng phủ màu sẽ xuất hiện như các mứ c riêng biệt có thể phân biệt đượ c. - Tăng dần biên độ tín hi ệu của 3 kênh còn lại và phân tích dạng sóng xuất hiện trên oscilloscope 4. Thí nghiệ m 4: Định thờ i phía nh ận Thiết bị: - Double trace oscilloscope - Audiofrequency generator - Kit DL 2450
Thực hiện: - Nối kit vớ i nguồn - Nối ngõ ra của phía phát TX vớ i ngõ vào của phía nhận RX - Chỉnh oscilloscope ở chế độ đồng b ộ ngoài, tín hi ệu đồng bộ lấy t ừ ngõ ra 0 của mạ ch lái switch ở phía nhậ n - Nối kênh A của oscilloscope vớ i ngõ ra của mạ ch phát hiện xung đồ ng bộ ( Sample Synchronism Detector) - Chỉnh oscilloscope 20usec/div và 5V/div. Quan sát và v ẽ lại. - Nối kênh A đến ngõ ra 1 của RING COUNTER phía nhận và kênh B đến ngõ ra của Frame Synchronism Detector. Sử dụng RESET làm tín hi ệu đồng bộ. Quan sát và vẽ lại tín hi ệu nhậ n ở cả 2 kênh. - Nối các ngõ ra của b ộ tạo sóng G1-G4 đến ngõ vào tương ứ ng của các bộ khuếch đại. - Đưa kênh A đến RX và kênh B lần lượt đến các ngõ ra của RING COUNTER: RESET, 1, 2, 3, 4. Nhận xét. - Đưa probe của oscilloscope đế n ngõ ra của Synchronism Pulse Suppressor. Quan sát và nhậ n xét 5. Thí nghiệ m 5: phân kênh PAM và khu ếch đại ngõ ra Thiết bị: - Double trace oscilloscope - Audiofrequency generator - Kit DL 2450
Thực hiện: - Nối kit vớ i nguồn - Nối ngõ ra của G1-G4 đến các ngõ vào tương ứ ng của các bộ khuếch đại và nối TX vớ i RX - Chỉnh oscilloscope ở chế độ đồng bộ ngoài vớ i tín hiệu đồng bộ lấ y từ ngõ ra sóng vuông của G4. Chỉnh oscilloscope 0.5msec/div - Nối kênh A của oscilloscope đến ngõ vào đầ u tiên của bộ khuếch đại ngõ ra. Quan sát và vẽ lại tín hiệu này - Đưa kênh A tuầ n tự đến ngõ vào của các bộ khuếch đại khác. Quan sát. Giải thích. 6. Thí nghiệm 6: Khảo sát đặc tính c ủa hệ thống truyền PAM có s ự hiện diện c ủa nhiễ u và suy hao Thiết bị: - Double trace oscilloscope - Audiofrequency generator - Kit DL 2450
Thực hiện: - Nối kit vớ i nguồn - Nối các ngõ ra của G1-G4 đến các ngõ vào tương ứ ng của các bộ khu ếch đại. - Nối Line Simulator v ớ i TX và RX - Tắt bộ tạo nhiễu bằ ng cách chỉnh nút vặn hoàn toàn sang hướng ngượ c chiều kim đồng hồ - Vặ n nút chỉnh suy hao hoàn toàn sang hướ ng cùng chiều kim đồng hồ. - Đưa kênh A của oscilloscope đế n ngõ ra của Line Simulator. - Lấy ngõ ra 0 của RING COUNTER làm kênh đồng bộ ngoài cho oscilloscope - Chú ý tín hiệu hi ện trên oscilloscope lúc này chưa bị ảnh hưở ng của nhiễu và suy hao. - Tăng dầ n mức suy hao và quan sát ảnh hưở ng của nó. Tín hiệu ngõ ra sẽ có biên độ giảm đi. Khi tăng dầ n suy hao, sẽ đến một lúc tín hiệu đồng bộ không còn khả năng đượ c phát hiện ở phía nhận. - Chỉnh suy hao tr ở về mứ c thấp và tăng dầ n nhiễu. - Quan sát nhiễu bằng cách bỏ liên kết của Line Simulator v ớ i TX. - Khi k ết nối đượ c khôi phục trở lại, quan sát tín hiệu RX bị ảnh hưở ng của nhiễu - Đưa probe của oscilloscope đế n ngõ ra của bộ khuếch đại phía nhậ n CH1. Quan sát. Chú ý: nhi ễu và suy hao không nhữ ng ảnh hưởng đến tín hiệu nhận đượ c mà còn gây khó khăn trong quá trình đồ ng bộ.
BÀI 3: ĐIỀU CHẾ XUNG I.
Lý thuyết 1.
Điều chế a. Tổng quan Điều chế là k ỹ thuật dung để truyền tín hi ệu đi xa vớ i mục đích thích nghi tín hiệu vớ i đặc tính của kênh truyền và không làm thay đổ i nội dung cần truyền đi. Giả sử ta đang khả o sát tín hi ệu là gi ọng nói đượ c truyền đi trong môi trườ ng là không khí từ một anten và ở phía thu sẽ có một anten để thu lại tín hiệu này. Băng tầ n thoại của giọng nói không vượt quá 5Khz, khi đó tầ n số của sóng điện từ truyền trong không gian cũng sẽ không vượt quá 5Khz. Điều này sẽ gây ra nhi ều khó khăn trong thự c tế: - Kích thướ c của anten: sẽ rất l ớ n. Với kích thướ c của anten là λ/4 hoặc λ/2 thì vớ i tần số 5Khz, chiều dài của anten có th ể lên đến 15Km hoặc 30Km - Năng lượng để cung cấp cho anten v ới kích thướ c này sẽ rất lớ n. - Bộ phát sẽ rất nặ ng nề và cồng k ềnh. - Tần số sẽ như nhau vớ i vớ i tất cả ngườ i sủ dụng nếu như không có điều ch ế. Khi đó ai cũng có thể nghe đượ c giọng nói của ngườ i khác . - Nhìn về phương diệ n truyền thông đạ i chúng, thông tin s ẽ không có tín bảo mật. b. Các thành phần điều ch ế Điều chế là quá trình làm thích nghi đặ c tính của phổ của tín hiệu đượ c truyền vớ i kênh truyền. Như vậy, thông tin phải luôn hi ện hữu trong tín hiệu sau khi điều chế. Bên cạnh tín hiệu chứ thông tin, tín hi ệu sau khi điều ch ế còn chứa m ột tín hi ệu khác gọi là tín hiệu sóng mang.
Quá trình điều chế diễn ra ở phía phát:
Quá trình ngượ c lại sẽ diễn ra ở phía thu:
c. Phân loại điều chế Các cách điều chế đượ c phân loại như hình vẽ bên dướ i:
Mặc dù các cách điều chế đượ c phân loại như hình vẽ , tuy nhiên chúng s ẽ đượ c nhóm vào 2 lớp như sau: - Dịch tần (điều chế số và điều chế tương tự): toàn bộ dải nền của tín hi ệu s ẽ đượ c đưa lên miền tầ n số cao hơn - Số hóa (PAM, PWM, PPM, PFM, PCM, ...): tín hi ệu s ẽ đượ c chuyển sang dạng số thông qua quá trình l ấy mẫu, lượ ng tử, mã hóa. 2. Điều chế xung a. Tổng quan Trong điều ch ế xung, tín hi ệu truyền đi là chuỗi các xung. Các thông s ố của xung sẽ thay đổi theo thông tin đượ c truyền đi. Điều chế xung đượ c chia làm hai lo ại: - Điều chế xung không lượ ng tử : các thông số của xung là nhữ ng hàm lien tụ c theo tín hiệu truyền đi (PAM, PWM, PPM, PFM) - Điều chế xung có lương tử: thông tin đượ c xấp xỉ bở i một số lượ ng giớ i hạ n các giá tr ị rờ i rạc (PCM, ΔM) Ứ ng dụ ng chính của điều chế xung là là ghép kênh theo th ờ i gian Khi nhìn từ gó độ tỉ l ệ tín hiệu trện nhiễu, điều chế xung có lượ ng tử hiệu qu ả hơn. Tuy nhiên điều này sẽ bị đánh đổi khi băng thông sử dụng cũng sẽ nhiều hơn. b. Điều ch ế xung không lượ ng tử Chia làm 4 lo ại dựa vào khả năng chịu đượ c nhiễu: - Điều chế biên độ xung (PAM) - Điều chế độ r ộng xung (PWM) - Điểu chế vị trí xung (PPM) - Điều chế tần số xung (PFM)
Ngày này, các k ỹ thuật điều ch ế nói trên không còn đượ c sử dụng nhiều và b ị thay thế bở i PCM. i. Điều chế biên độ xung Trong điều ch ế PAM, biên độ xung sẽ thay đổi theo n ội dung cầ n truyền đi.
ii.
Điều chế độ rộng xung Đối với điều chế PWM, biên độ và chu k ỳ của chuỗi xung không đổi mà độ rộng của nó sẽ thay đổi theo thông tin truy ền đi.
iii.
Điều chế vị trí xung Điều chế PPM cho phép tat hay đổ i vị trí của xung theo thông tin cầ n truyền đi. Biên độ và độ rộng của các xung này không thay đổ i.
Ta cũng phát cả xung tham chiếu để phía thu có th ể đánh giá đượ c sự dịch chuyển của xung sau khi điều ch ế. Ưu điểm chính của điều chế PPM là khả năng chố ng nhiễu. Có nhi ều cách để giải điều chế PPM. Một trong những cách đó là chuyể n tín hiệu PPM sang tín hi ệu PWM và dung bộ giải điều ch ế PWM để thu lại tín hiệu ban đầ u. iv. Điều chế tần số xung Vớ i loại điều ch ế này, tần số của chuỗi xung sẽ thay đổi theo thông tin c ần truyền đi. PFM đượ c dung nhiều trong hệ thống điều khiển vì dễ điều chỉnh. PFM không thích hợ p vớ i các ứ ng dụ ng trong hệ thống thông tin.
II. Câu hỏi chuẩn bị 1. Tại sao phải điều ch ế trướ c khi truyền tín hiệu? 2. Đánh giá ưu và khuyế t của các loại điều chế (dịch tầ n và số hóa)? 3. Đánh giá ưu và khuyế t của các loại điều chế xung?
III. Giớ i thiệu KIT sử dụng KIT DL 3155M61 – Digital T elecommunications Kit DL 3155M61 có các khối chính như sau: Unit A: Điều chế PCM Bộ điều ch ế và giải điều ch ế PCM Mã hóa 8 bit vớ i nén theo quy lu ật A hoặ c µ 2 kênh truy ền và 2 kênh nhận Bộ l ọc tương tự chống chồng lấ n ở phía thu Băng thông: 300 -3400Hz Có khả năng điều chỉnh mứ c thu và mức nhậ n cho từng kênh ở phía thu và phát Unit F: Điều chế PAM Bộ điều ch ế và giải điều ch ế PAM Có khả năng ghép 2 kênh truyề n Bộ tái tạ o tín hi ệu đồ ng bộ Tín hiệu lấy mẫu không được lượ ng tử hóa Bộ l ọc tương tự Băng thông đến 4000Hz
Unit L: Điều chế PWM, PPM Bộ điều ch ế và giải điều ch ế PWM, PPM Băng thông mỗi kênh đế n 4000Hz Bộ tái tạ o tín hi ệu đồ ng bộ Bộ chuyển từ PWM sang PPM và từ PPM sang PWM Tái tạo tín hi ệu thông qua mạch tích phân và mạ ch giữ.
Có thể chỉ nh mức offset
Unit D : Điều chế PFM Bộ điều ch ế và giải điều ch ế PFM Mỗi kênh truyền có băng thôn 300 -3400Hz Có sử dụ ng mạch PLL Unit E: Điều chế Delta Bộ điều ch ế và giải điều ch ế Delta Mỗi kênh truyền có băng thông đế n 3400Hz Các khố i phụ tr ợ : Unit B: PLD và Generator Unit C: Noise generator Unit G: Analog filter Unit H: Output amplifier Unit I: Microphone input
IV. Thí nghiệm 1. Thí nghiệ m 1: Điề u chế biên độ xung PAM F1 - ngõ vào kênh 1 của bộ điều chế F2 - ngõ vào kênh 2 của bộ điều chế F3 - ngõ ra của bộ điều ch ế F4 - ngõ vào của bộ giải điều chế F5 - ngõ ra kênh 1 của b ộ giải điều ch ế F6 - ngõ ra kênh 2 của b ộ giải điều ch ế F7 - tín hi ệu đồng b ộ của kênh 1 đượ c tái tạo bở i bộ giải điều ch ế F8 - tín hi ệu đồng b ộ của kênh 2 đượ c tái tạo bở i bộ giải điều ch ế 1.1 Thí nghi ệm
Kiểm tra thiết bị
Chỉ nh máy phát sóng tín hiệu ra là sóng sine có t ần số trong khoả ng 10-5000 Hz với biên độ tối đa là 8 V đỉ nh-đỉnh. Nối máy phát sóng với điểm nối đất và ngõ vào F1. Quan sát tín hi ệu ở ngỏ ra F3. Vẽ lạ i tín hi ệu này. Nối F3 vớ i F4 và quan sát tín hi ệu ở cả 2 ngõ F5 và F8 của bộ giải điều chế. Vẽ lại tín hi ệu quan sát đượ c. Nối F5 vớ i G1. Quan sát tín hi ệu ra ở G2. So sánh 2 tín hi ệu G1 và G2. Gi ải thích.
Đưa nhiễ u vào kênh truy ề n
Chỉ nh máy phát sóng tín hiệu ra là sóng sine có t ần số trong khoả ng 10-5000 Hz với biên độ tối đa là 8 V đỉ nh-đỉnh. Nối máy phát sóng vớ i F1; F3 v ớ i C1; C2 vớ i F4.
Nối probe của oscilloscope vớ i G2 của bộ lọc tương tự . Vẽ và nhậ n xét tín hi ệu G2. Nối G2 v ớ i H1 và nối H2 vớ i loa.
ở
Đưa nhiễ u vào ngõ ra c ủa bộ gi ải điề u chế
Chỉ nh máy phát sóng tín hiệu ra là sóng sine có t ần số trong khoả ng 10-5000 Hz với biên độ tối đa là 8 V đỉ nh-đỉnh. Nối máy phát sóng vớ i F1; F3 v ớ i F4. Nối F5 vớ i C1 và C2 v ớ i G1. Dùng oscilloscope quan sát tín hiệu ở G2. So sánh tín hi ệu ở G2 trong trườ ng hợ p này với trườ ng hợp đưa nhiễu vào kênh truyền. Nối G2 v ớ i H1 và nối H2 vớ i loa.
Ghép kênh PAM
Chỉ nh máy phát sóng tín hiệu ra là sóng sine có t ần số trong khoả ng 10-5000 Hz với biên độ tối đa là 8 V đỉ nh-đỉnh. Nối microphone vớ i jack cắ m; I1 vớ i ngõ vào F1 của bộ điều chế. Nối máy phát sóng vớ i ngõ vào F2. Nối F3 vớ i F4. Nối F5 vớ i G1; F6 v ớ i G3; G2 vớ i H1. Cuối cùng, nối loa v ớ i H2 và dùng oscilloscope quan sát ngõ ra G4 c ủa bộ l ọc tương tự. Dùng oscilloscope quan sát tín hiệu tại F3 và G2 khi nói vào microphone. 1.2 Câu hỏi: Nếu tầ n số của tín hi ệu sine đem đi điề u ch ế lớn hơn ½ tần số lấy mẫu thì điều gì xảy ra? a. Tín hiệu giải điều ch ế có tần số bằ ng một nửa của tín hi ệu điều ch ế b. Tín hiệu giải điều ch ế có tần số bằ ng vớ i sự khai khác giữa tầ n số tín hiệu điều chế và tần số lấy mẫu c. Tín hiệu giải điều ch ế có biên độ bằng một nửa biên độ tín hi ệu điều ch ế d. Tín hiệu giải điềi chế có dạng tam giác Nếu tín hi ệu sin ở ngõ vào của bộ điều chế PAM ( v ớ i tần số nhỏ hơn ½ tần số lấ y mẫu) có biên độ làm bão hoà b ộ điều chế thì: a. Bộ giải điều chế không thể tạo đượ c tín hi ệu đồng b ộ nữa
b. Tín hiệu giải điều ch ế có biên độ bằng ½ biên độ tín hi ệu điều ch ế c. Bộ giải điều chế cho ra tín hi ệu gấp đôi tín hiệu điều ch ế
2. Thí nghiệ m 2: Điề u chế độ rộng xung và điề u chế vị trí xung L1 – Ngõ vào bộ điều ch ế PWM L2 – Ngõ vào bộ giải điều chế PWM L3 – Tín hi ệu độ dốc đượ c tạo ra b ở i PLD (block B) L4 – Ngõ vào bộ giải điều chế PPM (chuyển tín hi ệu từ PPM sang PWM) L5 – Ngõ ra b ộ điều chế PPM L6 – Ngõ ra b ộ điều chế PWM L7 – Ngõ ra b ộ chuyển từ PPM sang PWM L8 – Tín hi ệu đồng bộ đượ c tái tạo bở i bộ giải điều chế L9 – Ngõ ra b ộ giải điều chế PWM 2.1 Thí nghi ệm
PWM
Chỉ nh máy phát sóng tín hiệu ra là sóng sine có t ần số trong khoả ng 10-5000 Hz với biên độ tối đa là 8 V đỉ nh-đỉnh. Nối máy phát sóng vớ i ngõ vào L1. Quan sát tín hi ệu ở L6. Vẽ lại. Nối L6 v ớ i L2. Quan sát tín hi ệu ở L8 và L9. Vẽ lại.
PPM
Chỉ nh máy phát sóng tín hiệu ra là sóng sine có t ần số trong khoả ng 10-5000 Hz với biên độ tối đa là 8 V đỉ nh-đỉnh. Nối máy phát sóng vớ i ngõ vào L1. Quan sát tín hi ệu ở L5. Vẽ lại. Nối L5 v ớ i L4 và L7 vớ i L2. Quan sát tín hi ệu ở L7, L8, L9.
PWM có nhi ễu
Chỉ nh máy phát sóng tín hiệu ra là sóng sine có t ần số trong khoả ng 10-5000 Hz với biên độ tối đa là 8 V đỉ nh-đỉnh. Nối máy phát sóng vớ i ngõ vào L1. Nối L6 v ớ i C1; C2 v ớ i L2; L9 vớ i G1. Nối probe của oscilloscope vớ i G2, quan sát tín hi ệu. Nối G2 vớ i H1; H2 vớ i loa.
PPM có nhiễu
Chỉ nh máy phát sóng tín hiệu ra là sóng sine có t ần số trong khoả ng 10-5000 Hz với biên độ tối đa là 8 V đỉ nh-đỉnh. Nối máy phát sóng vớ i L1. Nối L5 v ớ i C1; C2 v ớ i L4; L7 vớ i L2 và L9 vớ i G1. Nối probe của oscilloscope vớ i G2, quan sát và nhậ n xét. Nối G2 v ớ i H1 và H2 vớ i loa. Tần số dốc của PLD là 64 kHz. 2.2 Câu hỏi: Nếu tín hi ệu điều chế có tầ n số không quá nhỏ so vớ i tần số đố c, tín hiệu ngõ ra sẽ: a. Bị suy hao b. Bị biến dạ ng c. Tần số thay đổi do hi ện tượ ng aliasing d. Tín hiệu có dạng tam giác Tín hiệu PWM có thông tin đượ c chứa ở : a. Biên độ xung của tín hi ệu được điều chế b. Độ r ộng xung của tín hi ệu được điều ch ế c. Vị trí xung của tín hiệu được điều ch ế d. Tần số của tín hi ệu được điều chế Nếu mạch đượ c mắc như hình sua thì vấn đề nào đượ c giải quyết? a. Bộ điều chế không thể bị bão hoà nữa b. Không còn hi ện tượ ng aliasing c. Giảm ảnh hưở ng của nhiễu
3. Thí nghiệ m 3: Điề u chế tần số xung Bộ điều chế PFM là một VCO v ớ i tần số trung tâm là 55 KHz và độ di tần tối đa là 25 KHz. Bộ giải điều chế là một mạ ch PLL vớ i tần số trung tâm gi ống vớ i mạch điều chế. Trong mạch giải điều ch ế PFM luôn có một mạ ch lọc giớ i hạn tần số ngõ ra. Mạch lọc này rất cần thi ết cho hoạt động của bộ so pha. D1 – Ngõ ra của bộ điều chế PFM D2 – Ngõ vào bộ điều chế D3 – Ngõ vào bộ giải điều chế D4 – Ngõ ra bộ giải điều chế
3.1 Thí nghi ệm
Điều chế và gi ải điều chế PFM
Bộ điều ch ế PFM là một VCO v ớ i tần số trung tâm là 55 KHz và độ di tần tối đa là 25 KHz. Nối máy phát sóng vớ i D2. Quan sát tín hi ệu ở D1. Vẽ lại và nhậ n xét. Nối D1 v ớ i D3. Quan sát tín hi ệu ở D4. Quan sát sự thay đổi của tần số tín hi ệu ra khi điện áp tín hi ệu vào thay đổi.
PFM vớ i nhiễu
Bộ điều ch ế PFM là một VCO v ớ i tần số trung tâm là 55 KHz và độ di tần tối đa là 25 KHz. Nối máy tạ o sóng vớ i D2; D1 v ớ i C1; C2 v ớ i D3. Dùng oscilloscope quan sát tín hiệu ở D4. Nối D4 vớ i H1 và H2 v ớ i loa. 3.2 Câu hỏi: Tín hiệu PWM có thông tin đượ c chứa ở : a. Biên độ xung của tín hi ệu được điều chế b. Độ r ộng xung của tín hi ệu được điều ch ế c. Vị trí xung của tín hiệu được điều ch ế d. Tần số của tín hi ệu được điều chế Fsample= 33,333 Khz PWM: chỉnh fsin gần bằng ½ fsample để quan sát PFM: dùng trigger Alt1/2
[Type text]
BÀI 4: THỰ C HIỆN BỘ LỌC FIR 1. SỬ DỤNG MATLAB ĐỂ THIẾT KẾ BỘ LỌC SỐ 1.1
Thiết kế bộ lọc số bằng công c ụ SPTool
SPTool là một công cụ có giao diện tương tác dùng cho xử lý số tín hiệu. Công cụ này có thể đượ c sử dụng để phân tích tín hi ệu, thiết k ế các bộ lọc, phân tích các bộ lọc, lọc tín hiệu và phân tích phổ của tín hi ệu. Để khởi động SPTool, từ dấu nhắc lệnh của MATLAB, nhập lệnh >> sptool Khi đó, giao diện của SPTool sẽ xuất hiện như sau:
Hình 1. Giao diện của SPTool Khi mớ i mở SPTool, nó chứa một tập hợ p các tín hi ệu, bộ lọc và phổ mặc định. Trên giao diện của SPTool, có 3 cột: Signals, Filters và Spectra. Dướ i mỗi cột có các nút sử dụng cho cột đó. Cột Signals hiển thị các tín hi ệu, cột Filters hiển thị các bộ lọc và cột Spectra hiển thị các phổ trong workspace (vùng làm việc) của SPTool. Các tín hiệu, bộ lọc hoặc phổ trong workspace của MATLAB có thể được đưa vào SPTool bằng lệnh Import trong menu File của SPTool. Các tín hi ệu, bộ lọc hoặc phổ đượ c tạo ra hoặc đượ c import vào SPTool tồn tại dướ i dạng các cấu trúc của MATLAB. Để lưu lại các tín hi ệu, bộ lọc và phổ đã tạo ra hoặc chỉnh sửa trong SPTool, sử dụng lệnh Export trong menu File , chúng cũng sẽ được lưu lại dướ i dạng các cấu trúc MATLAB. Để bắt đầu thiết k ế một bộ lọc mớ i, các bạn hãy nhấn vào nút New ngay dướ i cột Filter. Khi đó, giao diện Filter Designer dùng để thiết k ế bộ lọc như sau sẽ xuất hiện. Filter Designer cung cấp một môi trường đồ họa tương tác để thiết k ế các bộ lọc số IIR hoặc FIR dựa trên các tiêu chu ẩn do người dùng xác định. -
Các loại bộ lọc có thể thiết k ế: Thông thấp, thông cao, thông dải, chắn dải. Các phương pháp thiết k ế bộ l c FIR: Equiripple, Least squares, Window
[Type text] -
Các phương pháp thiết k ế bộ lọc IIR: Butterworth, Chebyshev loại I, Chebyshev loại II, Elliptic.
Hình 2. Giao diện Filter Designer
Ví dụ 1: Thiết kế một bộ lọc FIR chắn dải bằng SPTool Bộ lọc, đượ c thiết k ế bằng phương pháp cửa sổ Kaiser, vớ i các thông số sau: Chiề u dài của đáp ứ ng xung: N = 89 (MATLAB hi ể n thị bậc bộ lọc bằ ng 88) T ần số trung tâm: 2700 Hz T ần số cắ t: 2500 Hz và 2900 Hz Giá tr ị của = 4 T ần số lấ y mẫ u 8000 Hz
Các bướ c thiết k ế như sau: 1. Khởi động SPTool. Dướ i cột Filters, nhấn nút New để mở cửa sổ Filter Designer. 2. Trong giao diện của Filter Designer: a. Trong text box Filter: Tên bộ lọc đượ c tự đặt (ở đây là filt1). Tên này có thể thay đổi sau này. b. Nhập các thông số thiết k ế vào: i. Sampling Frequency = 8000 ii. Algorithm: Kaiser Window FIR iii. Bỏ chọn ở check box Minimum Order. (nếu chọn thì sẽ thiết k ế bộ lọc có bậc tối thiểu). iv. Filter Order = 88, Type = Bandstop, Fc1 = 2500, Fc2 = 2900, Beta = 4 c.
Nhấn Apply. Khi đó đáp ứng tần số của bộ lọc thiết k ế sẽ đượ c hiển thị.
[Type text]
Hình 3. Đáp ứ ng tần số của bộ lọc đã thiết kế 3. Trở về cửa sổ SPTool, trong cột Filters sẽ xuất hiện thêm một dòng filt1 [design]. Đây chính là bộ lọc vừa thiết k ế. Sau này, nếu muốn sửa đổi thiết k ế, ch ọn l ại tên bộ lọc và nhấn nút Edit ở phía dưới. Để dễ nhớ , ta sẽ thay đổi tên bộ lọc trên thành bs2700 bằng cách chọn Edit Name…filt1 [design]. Trong cửa sổ mớ i xuất hiện, nhập tên mớ i. Khi thiết k ế một bộ lọc FIR như trên, kết quả mà ta cần nhận đượ c sau khi thiết k ế là các giá tr ị của vector đáp ứng xung h của bộ lọc thiết k ế. Để lấy các giá trị của vector đáp ứng xung, ta thực hiện như sau: 1. Từ cửa sổ SPTool, chọn File Export… Trong Export Filter: bs2700 [design] rồi nhấn nút Export to workspace
list xuất hiện, chọn
Đóng cửa sổ SPTool lại. Một thông báo xuất hiện hỏi có muốn lưu lại phiên làm vi ệc hiện tại hay không. Nếu muốn lưu lại, chọn Save. 3. Mở cửa sổ Workspace của MATLAB, ta sẽ thấy trong workspace sẽ xuất hi ện biến mớ i là bs2700. Đây chính là bộ lọc mà ta đã thiế t k ế trong SPTool và xuất ra workspace c ủa MATLAB. Biến này được lưu dướ i dạng một c ấu trúc mô tả bộ lọc đã thiết k ế. Nhấn đúp chuột vào tên biến bs2700 trong workspace, ta sẽ thấy đượ c các field c ủa cấu trúc này như sau: 2.
[Type text]
Hình 4. Các field của bs2700 4. Trong các field này, field tf thể hiện hàm truyền c ủa bộ lọc. Field này cũng là một cấu trúc gồm 2 field: tf.num và tf.den thể hiện tương ứng các hệ số của đa thức t ử số và đa thức mẫu số. Đối v ớ i bộ lọc FIR, hàm truyền chỉ có t ử số và các hệ số của t ử số chính là đáp ứng xung của bộ lọc. Do đó, vớ i bộ lọc trên, các giá trị của vector đáp ứng xung được lưu trong bs2700.tf.num. Trong cửa sổ Array Editor trên, lần lượ t nhấn đúp vào field tf rồi nhấn đúp vào num, ta sẽ thấy các hệ số đáp ứng xung của bộ lọc. Để gán các hệ số này vào một vector h, trong MATLAB có thể dùng lệnh sau: >> h = bs2700.tf.num
Hình 5. Vector đáp ứ ng xung của bộ lọc đã thiết kế Các giá trị thu DSP.
đượ c của vector đáp ứng xung sẽ đượ c sử dụng để thực hiện bộ lọc số lên trên kit
Ví dụ 2: Thiết kế bộ lọc IIR chắn dải bằng SPTool Sử dụng phương pháp Elliptic để thiết k ế một bộ lọc IIR chắn dải bậc 10, tần số trung tâm 1750Hz. Chú ý rằng MATLAB hiển thị bậc bộ lọc là 5, bi ểu diễn số phần bậc 2 của bộ lọc. (Điều này đúng vớ i các bộ lọc IIR thông dải và chắn dải) Các thông số của bộ lọc này như sau. T ần số cắ t: 1700 Hz và 1800 Hz
[Type text]
Độ gợ n d ải thông và d ải chắn tương ứ ng là 1 dB và 60 dB T ần số lấ y mẫ u: 8000 Hz Thực hiện tương tự như ví dụ trên, lưu bộ lọc thiết k ế vớ i tên bs1750 và xuất ra workspace. Trong workspace sẽ có một cấu trúc tên là bs1750. Các hệ số tử số và mẫu số của hàm truyền đượ c lưu tương ứng trong các biến bs1750.tf.num và bs1750.tf.den.
Hình 6. Đáp ứ ng tần số của bộ lọc IIR đã thiết kế Dạng cực – zero của một hàm truyền H(z) như sau:
H ( z ) k Hàm truyền trên có thể đượ c viết lại
H ( z ) g
z z1 z z 2 ... z zn z p1 z p2 ... z pm
như sau: L
L
H z g k
k 1
k 1
b2k z 2 1 a1k z 1 a2 k z 2
b0 k b1k z
1
Vớ i L là số nguyên gần nhất l ớn hơn cực đại của n/2 và m/2. Trong MATLAB, các phần bậc 2 của H(z) được lưu trong 1 ma trận như sau:
b01 b11 b21 1 a11 a21 b b12 b22 1 a12 a22 02 sos 1 b b b a a 1 L 2 L 0 L 1 L 2 L Từ các hệ số tử và mẫu ở trên, ta sẽ chuyển thành dạng các phần bậc hai bằng các lệnh sau: >> [z,p,k] = tf2zp(bs1750.tf.num, bs1750.tf.den) >> sos = zp2sos(z,p,k)
[Type text] Các phần tử của ma trận sos này sẽ đượ c sử dụng để thực hiện bộ lọc IIR này lên kit DSP.
1.2
Thiết kế bộ lọc bằng lệnh của MATLAB
Bên cạnh việc sử dụng công cụ SPTool để thiết k ế bộ lọc như trên, MATLAB cũng có một số lệnh có thể sử dụng để thiết k ế bộ lọc. Các lệnh này có thể đượ c sử dụng khi thiết k ế một số loại bộ lọc mà SPTool không có sẵn, ví dụ như các bộ lọc multiband.
Ví dụ 1: Thiết kế bộ lọc FIR multiband bằng các lệnh MATLAB Trong ví dụ này, chúng ta sẽ thiết k ế một bộ lọc FIR multiband gồm 63 hệ số. Tần số lấy mẫu là 10 kHz. Chúng ta sử dụng hàm remez của MATLAB. Hàm remez sử dụng giải thuật Parks – McClellan dựa trên giải thuật Remez và lý thuy ết xấp xỉ Chebyshev. Bộ lọc cần thiết k ế có đáp ứng tần số như sau:
1.2
1
0.8
0.6
0.4
0.2
0 0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
Hình 7. Đáp ứ ng tần số của bộ lọc multiband FIR cần thiết kế Bộ lọc mong muốn có 2 dải thông, đượ c biểu diễn bở i 5 dải như sau:
Dải
Tần số (Hz)
Tần số chuẩn hóa f/FN
Biên đ ộ
1 2 3
0 – 500
0 – 0.1
0
600 – 900
0.12 – 0.18
1
1000 – 1500
0.2 – 0.3
0
4
1600 – 1900
0.32 – 0.38
1
5
2000 5000
0.4 - 1
0
Trong đó FN là tần số Nyquist, bằng ½ tần số lấy mẫu. Chúng ta viết một file .m để thiết k ế bộ lọc này, lưu lại vớ i tên multibandfir63.m Nội dung của file này như sau: %multibandfir63.m: Multiband FIR filter with 63 coefficients
[Type text] f = [0 0.1 0.12 0.18 0.2 0.3 0.32 0.38 0.4 1]; m = [0 0 1 1 0 0 1 1 0 0]; n = 63;
cof = remez(n-1,f,m); % frequency response with 256 points [h w] = freqz(cof,1,256); % plot magnitude of the filter plot(5000*f,m); figure; plot(w/pi,abs(h));
Trong đoạn chương trình trên, có một số lưu ý: - Dòng lệnh cof = remez(n-1,f,m) trả về vector hệ số của bộ lọc FIR bậc n – 1, vớ i f và m xác định các dải tần số theo bảng ở trên. - Lệnh freqz để tính đáp ứng tần số của bộ lọc - Lệnh plot thứ nhất vẽ đáp ứng tần số mong muố n dựa trên f và m. - Lệnh figure tạo ra một cửa sổ mớ i và lệnh plot thứ hai vẽ đáp ứng tần số của bộ lọc đã thiế t k ế đượ c lên cửa sổ mớ i này. Ở đây, kết quả của quá trình thiết k ế mà ta cần nhận đượ c chính là các hệ số chứa trong biến cof . Chúng đượ c sử dụng khi thực hiện bộ lọc lên trên kit DSP. Ví dụ 2: Thiết kế bộ lọc IIR multiband bằng các lệnh của MATLAB Trong thí nghiệm này, chúng ta thi ết k ế một bộ lọc IIR multiband có đáp ứ ng mong muốn như bộ lọc ở ví dụ 1. Tần số lấy mẫu cũng là 10 kHz. Các bướ c thiết k ế giống như trên vớ i nội dung file multibandiir63.m dùng để thiết k ế như sau: %multibandiir63.m: Multiband IIR filter with 63 coefficients f = [0 0.1 0.12 0.18 0.2 0.3 0.32 0.38 0.4 1]; m = [0 0 1 1 0 0 1 1 0 0]; n = 63;
[num, den] = yulewalk(n-1,f,m); % frequency response with 256 points [h w] = freqz(num,den,256); % plot magnitude of the filter plot(5000*f,m); figure; plot(w/pi,abs(h));
Trong đoạn chương trình trên, lưu ý: - Lệnh remez đượ c thay bằng lệnh yulewalk dùng để thiết k ế bộ lọc IIR. Lệnh này trả về các hệ số của tử số và mẫu số của hàm truyền b ộ lọc, đượ c ch ứa tương ứng trong biến num và den. - Lệnh freqz đượ c sửa đổi để vẽ đáp ứng tần số của bộ lọc IIR đã thiế t k ế. Các giá trị của num và den đượ c sử dụng khi cần thực hiện bộ lọc này lên kit DSP.
[Type text]
2. SỬ DỤNG KIT X Ử LÝ SỐ C6713 DSK (DSP STARTER KIT) 2.1
Kit C6713 DSK
Kit DSK là một hệ thống DSP hoàn chỉnh. Board DSK bao gồm bộ xử lý số dấu chấm động C6713 và bộ codec 32 bit stereo TLV320AIC23 (AIC23) để xuất nhập. Bộ codec onboard AIC23 sử dụng k ỹ thuật sigma – delta để biến đổi A/D và D/A. Nó đượ c k ết nối vớ i một đồng hồ hệ thống 12 – MHz. Tần số lấy mẫu có thể thay đổi từ 8 đến 96 KHz. Board DSK bao gồm 16MB SDRAM và 256kB Flash memory. Bốn jack cắm trên boad cho phép xuất nhập: MIC IN (microphone input), LINE IN (line input), LINE OUT (line output) và HEADPHONE (headphone output). Trạng thái của 4 dip switch trên DSK có th ể đọc đượ c từ chương trình. DSK hoạt động ở tần số 225 MHz. Trên board DSK cũng bao gồm các ổn áp cung cấp 1.26V cho nhân C6713 và 3.3V cho bộ nhớ và các ngoại vi. Bộ xử lý TMS320C6713 dựa trên kiến trúc VLIW (very-long-instruction-word), phù hợ p cho các giải thuật nặng về tính toán số. Bộ nhớ chương trình nội đượ c t ổ chức để mỗi chu k ỳ có thể nạp 8 lệnh (instruction), mỗi instruction dài 32 bit. Các bộ xử lý C67xx (ví dụ C6701, C6711 và C6713) thuộc về họ các bộ xử lý C6x dấu chấm động, trong khi đó C62xx và C64xx thuộc về họ các bộ xử lý C6x dấu chấm tĩnh. C6713 có thể xử lý cả dấu chấm động và dấu chấm tĩnh.
Hình 8. Sơ đồ khối của DSK
2.2
Code Composer Studio (CCS)
CCS là một môi trườ ng phát triển tích hợ p (IDE). CCS cung cấp các công c ụ sinh mã, như một bộ biên dịch C, một chương trình assembler và một chương trình linker. Nó có khả năng đồ họa và hỗ trợ real-time debug. Nó cung c ấp một công cụ phần mềm thuận tiện cho việc xây dựng và sửa l ỗi chương trình. Trình dịch C sẽ dịch chương trình nguồn viết bằng C (tập tin có kiểu .c) để tạo thành một t ập tin nguồn assembly (kiểu .asm). Trình assembler sẽ tạo ra các tập tin đối tượ ng ngôn ngữ máy (.obj) từ các t ập tin .asm. Trình linker sẽ k ết hợ p các t ập tin đối tượng và các thư việc đối tượ ng để tạo ra một tập tin thực thi vớ i kiểu .out. Tập tin thực thi này có thể đượ c nạp và chạy trực tiếp trên bộ xử lý C6713. Để tạo một project, ngườ i dùng có thể thêm vào các t ập tin phù hợ p. Các tùy chọn về compiler/linker có thể xác định dễ dàng. Một số tính năng debug có sẵn, như đặt các breakpoint và xem các biến; xem bộ nhớ , các thanh ghi và trộn C vớ i assembly code; các k ết quả đồ họa; và theo dõi thờ i gian thực thi.
[Type text] Chúng ta sẽ làm việc vớ i một vài kiểu tập tin khác nhau, bao gồm: 1. 2. 3. 4. 5. 6. 7. 8.
2.3
file.pjt: để tạo và xây dựng một project có tên là “file” file.c: chương trình nguồn viết bằng C file.asm: chương trình nguồn bằng ngôn ngữ assembly, đượ c tạo bởi ngườ i dùng hoặc bở i bộ dịch C. file.h: tập tin header file.lib: t ập tin thư việ n file.cmd: tập tin lệnh của linker, ánh xạ các section vào bộ nhớ file.obj: tập tin đối tượng đượ c tạo ra bở i assembler file.out: tập tin thực thi đượ c tạo ra bởi linker để nạp và chạy trên bộ xử lý C6713
Các t ập tin hỗ tr ợ
Các tập tin hỗ trợ sau đượ c chứa trong folder C:\CCStudio_v3.1\myprojects\source\support (trừ các tập tin thư viện) đượ c sử dụng trong hầu hết các bài thí nghi ệm. 1. C6713dskinit.c : chứa các hàm khởi động DSK, codec, các c ổng nối ti ếp và để xuất nhập. Tập tin này không đượ c bao gồm vớ i CCS. 2. C6713dskinit.h : tập tin header chứa các prototype của các hàm. 3. C6713dsk.cmd : T ập tin lệnh linker. Tập tin này có thể đượ c sửa ngoài thay cho bộ nhớ trong.
đổi khi sử dụng bộ nhớ
4. vectors_intr.asm : một tập tin vector bao gồm trong CCS đã đượ c sửa đổi để quản lý ngắt. Có 12 ngắt, từ INT4 đến INT15, và ngắt 11 đượ c chọn trong tập tin này. Chúng đượ c dùng cho các chương trình có sử dụng ngắt. 5. vectors_poll.asm : tập tin vector cho các chương trình hỏi vòng (polling) 6. rts6700.lib , dsk6713bsl.lib , csl6713.lib : Tập tin thư việ n hỗ trợ run – time, board và chip. Các t ập tin này đượ c cung cấp với CCS và đượ c chứa trong các folder C6000\cgtools\lib, C6000\dsk6713\lib và C6000\csl\lib một cách tương ứng. (Thư mục C6000 nằm trong thư mục cài đặt của CCS, mặc định là C:\CCStudio_v3.1\)
2.4
Các ví dụ lập trình trên DSK
Sau đây là một số ví dụ lập trình để minh họa cho một số đặc tính của CCS và board DSK. M ục tiêu chính là để làm quen vớ i các công cụ phần mềm và phần cứng.
Ví dụ 1: Tạo tín hi ệu dùng 8 điểm với điều khiển DIP Switch (sine8_LED) Ví dụ này tạo ra một tín hi ệu hình sine bằng phương pháp tra bảng. Quan trọng hơn, nó minh họa vài đặc tính của CCS trong hiệu chỉnh, xây dựng một project, sử dụng các công cụ sinh mã và chạy một chương trình trên bộ xử lý C6713. Chương trình nguồn sine8_LED.c thực hiện việc tạo sóng sine có nội dung như dưới đây. // Sine8_LED.c Sine generation with DIP switch control #include "dsk6713_aic23.h" //support file for codec,DSK Uint32 fs = DSK6713_AIC23_FREQ_8KHZ; //set sampling rate short loop = 0; //table index short gain = 10; //gain factor
short sine_table[8]={0,707,1000,707,0,-707,-1000,-707};//sine values void main() { comm_poll(); //init DSK, codec, McBSP DSK6713_LED_init(); //init LED from BSL DSK6713_DIP_init(); //init DIP from BSL while(1) //infinite loop
[Type text] { if(DSK6713_DIP_get(0)==0) //=0 if switch #0 pressed { DSK6713_LED_on(0); //turn LED #0 ON output_sample(sine_table[loop]*gain);//output every Ts (SW0 on) if (++loop > 7) loop = 0; //check for end of table } else DSK6713_LED_off(0); //LED #0 off } //end of while (1) }
Giải thích chương trình Trong chương trình này, một bảng sine_table đượ c tạo ra và chứa 8 điểm thể hiện giá trị của sin(t) tại t = 0, 45, 90, 135, 180, 225, 270 27 0 và 315 độ (tỷ lệ 1000). Trong hàm main(), một hàm khác, comm_poll, đượ c gọi. Hàm này đượ c chứa trong tập tin c6713dskinit.c . Nó khởi động DSK, bộ codec AIC onboard và các cổng nối tiếp trên bộ xử lý C6713. Lệnh while(1) trong hàm main tạo một vòng lặp vô tận. Khi dip switch 0 đượ c nhấn, LED 0 đượ c DSK6713_DIP_get(0) get(0) sẽ là false và LED 0 bật lên và tín hi ệu sine đượ c tạo ra. Ngượ c lại, hàm DSK6713_DIP_ sẽ tắt. Hàm output_sample , chứa trong tập tin hỗ trợ C6713dskinit.c , đượ c gọi để xuất giá trị dữ liệu đầu tiên trong bảng sine_table[0] = 0. Chỉ số lặp loop sẽ được tăng dần cho đến hết bảng và trở lại giá trị zero. Fs = 1/8000 = 0.125ms, giá trị của dip switch 0 đượ c kiểm tra và một giá Mỗi chu k ỳ lấy mẫu T s = 1/ F trị tiếp theo trong bảng sine_table (nhân vớ i tỷ lệ gain) đượ c xuất ra. Trong một chu k ỳ tín hiệu, 8 giá trị dữ liệu ( cách nhau 0.125ms) đượ c xuất ra để tạo một tín hi ệu sine. Chu k ỳ của tín hiệu 8(0.125ms) = 1ms ứng vớ i t ần số f = 1/ T sine thu đượ c là T = 8 T = 1 kHz. Tạo project Phần này sẽ minh họa cách tạo một project mớ i, i, thêm các t ập tin cần thiết để biên dịch project sine8_LED. 1. Trong CCS, chọn Project New. Trong hộp thoại tạo Project, nhập tên project là sine8_LED, chọn Project Type là Executable (.out) và Target là TMSC67xx.
Hình 9. Hộp thoại Project Creation CCS sẽ tự tạo ra một thư mục tên là sine8_LED trong thư mục C:\CCStudio_v3.1\myprojects. 2. Sau khi tạo project, c ần chép các tập tin cần thiết trướ c khi thêm các tập tin này vào project.
vào trong thư mục sine8_LED vừa tạo
[Type text] a.
Chép các tập tin sine8_LED.c và gain.gel từ thư mục myprojects\source\project_1 vào trong thư mục sine8_LED ở trên. Tập tin sine8_LED.c chính là tập tin nguồn chính đượ c viết bằng C ở trên. Tập tin gain.gel đượ c viết bằng một ngôn ngữ thông dịch gọi là GEL (General Extension Language), t ập tin này sẽ tạo ra một giao diện có thanh trượt (slide) để cho phép thay đổi bi ến gain trong chương trình chính khi đang chạy chương trình trên kit.
b. Chép các t ập tin hỗ trợ : c6713dskinit.h , c6713dskinit.c , vectors_poll.asm và c6713dsk.cmd trong myprojects\source\support vào trong thư mục sine8_LED. Do chương trình này sử dụng cách lập trình hỏi vòng (polling) nên ta sử dụng tập tin hỗ trợ vectors_poll.asm . Trong trườ ng ng hợ p lập trình có ngắt, ta sẽ sử dụng tập tin vectors_intr.asm. c.
Cuối cùng, chép các t ập tin dsk6713.h và C6000\dsk6713\include vào trong thư mục sine8_LED.
dsk6713_aic23.h
trong
Sau khi đã chuẩn bị xong các tập tin cần thiết, trở về CCS để thêm các t ập tin vào project. Để thêm tập tin vào project, chọn Project Add Files to Project. Trong hộp thoại xuất hiện, vào thư mục sine8_LED ở trên. a. Chọn kiểu tập tin (File of Types ) là C Source Files và chọn các tập tin C6713dskinit.c và sine8_LED.c rồi nhấn nút Open để thêm chúng vào project. Source Files Files và thêm tập tin vectors_poll.asm vào project. b. Chọn kiểu tập tin là ASM Source Linker Command Command File File và thêm tập tin c6713dsk.cmd vào project. c. Chọn kiểu tập tin là Linker d. Chọn kiểu tập tin là Object and Library Files để thêm các t ập tin thư viện vào project. Thêm tập tin rts6700.lib (hỗ trợ kiến trúc C67x) nằm ở C6000\cgtools\lib vào project. Tương tự, thêm tập tin dsk6713bsl.lib (nằm ở C6000\dsk6713\lib ) và tập tin csl6713.lib (nằm ở C6000\csl\lib ) vào project. e. Chọn Project Scan All Fil e Dependencies để CCS tự thêm vào các t ập tin header. Sau khi thực hiện các bướ c trên, cửa sổ Project View sẽ hiển thị các tập tin đã đượ c thêm vào 3.
Project.
Xác định các tùy chọn để biên dịch chương trình Ở bướ c này, các tùy chọn để CCS dịch chương trình nguồn thành tập tin thực thi sẽ đượ c thiết lập. Các tùy chọ n củ a Compiler Compiler 1. Trong CCS, chọn Project Build Options. Trong cửa sổ xuất hiện, chọn thẻ Compiler. 2. Chọn mục Basic (trong Category), và đặt các tùy chọn như sau: (xem hình 10) a.
Target Version: C671x {-mv6710}
b. Generate Debug Info: Full Symbolic Debug c.
Opt Speed vs. Size: Speed most Critical
d. Opt Level and Program Level Opt. : None
[Type text]
Hình 10. Tùy chọn Compiler – Mục Basic 3. Chọn mục Preprocessor và nhập vào Pre-Define Symbol (-d) là CHIP_6713
Hình 11. Tùy chọn Compiler - Mục Preproce P reprocessor ssor 4. Chọn mục Feedback và chọn Interlisting là OPT/C and ASM {-s}
[Type text]
Hình 12. Tùy chọn Compiler - Mục Feedback 5. Chọn mục Advanced và chọn Memory Models là Far (--mem_model:data=far)
Hình 13. Tùy chọn Compiler - Mục Advanced Các tùy chọ n củ a Linker 1. Trong cửa sổ Build Options, chọn thẻ Linker để đặt các tùy chọn của Linker. 2. Mặc định CCS để Output Filename cùng tên vớ i tên project là sine8_LED.out . Tạm thờ i vẫn giữ nguyên như vậy. 3. Chọn Autoinit Model là Run-time Autoinitialization.
[Type text]
Hình 14. Các tùy chọn của Linker
Dịch và chạy chương trình Sau khi đã thiế t lập các tùy chọn phù hợ p cho Compiler và Linker, chúng ta hãy tiến hành biên dịch chương trình và nạp lên trên kit để chạy. 1. Chọn Project Rebuild All hoặc nhấn nút có hình 3 mũi tên xuống trên toolbar. CCS sẽ dịch t ất cả các tập tin C và Assembly. Các t ập tin đối tượ ng tạo ra đượ c liên k ết v ớ i các tập tin thư viện. Cuối cùng, CCS tạo ra một t ập tin thực thi sine8_LED.out có thể nạp lên kit để chạy. 2. Chọn File Load Program, mở thư mục Debug trong thư mục sine8_LED , chọn t ập tin sine8_LED.out để nạp nó lên trên kit. Sau đó, chọn Debug Run để chạy chương trình. 3. Như đã giải thích ở trên, khi DIP Switch 0 ở vị trí ON, chương trình sẽ bật sáng LED 0 và xuất ra tín hi ệu sine vớ i tần số 1KHz. Để quan sát k ết quả của chương trình, có thể thực hiện theo một trong các cách như sau: a. Dùng headphone và cắm vào ngõ ra HEADPHONE trên kit để nghe âm thanh. b. Quan sát dạng sóng sine trên máy dao động ký (oscilloscope): k ết nối oscilloscope vớ i ngõ ra LINE OUT của kit. c. Trong máy tính ở phòng thí nghiệm có sẵn phần mềm mô phỏng Oscilloscope có tên là DSP_Tool. Phần mềm này sẽ đọc dữ liệu từ soundcard của máy tính và hiển thị. Để sử dụng chương trình này, sử dụng cáp Audio (đượ c cung cấp) k ết n ối ngõ ra LINE OUT trên DSK vớ i ngõ vào LINE IN trên Soundcard của máy tính. Trong DSP_Tool, chọn File Oscilloscope để hiển thị giao diện Oscilloscope rồi chọn File Start get real data from soundcard để bắt đầu đọc d ữ liệu vào. Ngoài ra, cũng có thể hiển thị phổ bằng cách chọn File Spectrum Analyzer. (Chú ý cần c ấu hình để soundcard nhận dữ liệu vào từ ngõ Line In) Cử a sổ Watch window Cửa sổ Watch Window cho phép thay đổi giá trị của một thông số hoặc để theo dõi một biến. Trong khi chương trình đang chạy và DIP Switch 0 đang đượ c nhấn. (Lưu ý dòng chữ DSP RUNNING trên thanh Status c ủa CCS).
[Type text] 1. Chọn View Quick Watch window. Thườ ng c ửa sổ này hiển thị ở phần bên dướ i của CCS. Nhập gain và nhấn “Add to Watch”. Giá trị gain bằng 10 (đã được đặt trong chương trình) sẽ xuất hiện trong cửa sổ Watch. 2.
Thay đổi gain từ 10 thành 30 trong cửa sổ Watch rồi nhấn Enter. Dạng sóng quan sát sẽ thay đổi khi biến gain thay đổi giá trị.
Sử dụng tập tin gain.gel Trong phần trên chúng ta đã đề cập đến tập tin gain.gel . Tập tin này tạo một giao diện để cho phép thay đổi biến gain một cách tương tác khi chương trình đang chạ y. 1. Trướ c hết, c ần phải n ạp tập tin này vào bằng cách chọn File Load GEL và mở tập tin gain.gel . Nhấn đúp chuột lên tập tin này trong cửa sổ Project View để xem nội dung của nó.
/*gain.gel Create slider and vary amplitude (gain) of sinewave*/ menuitem "Sine Gain" slider Gain(10,35,5,1,gain_parameter) /*incr by 5,up to 35*/ { gain = gain_parameter; /*vary gain of sine*/ } Nội dung của tập tin gain.gel như trên. Trong đó, hàm slider Gain đượ c tạo ra để hiển thị thanh trượt. Thanh trượ t này bắt đầu từ giá trị 10 và k ết thúc ở giá trị 35 và mỗi mức tăng là 5 đơn vị. 2. Chọn GEL Sinde Gain Gain, cửa sổ sau sẽ xuất hi ện biến gain.
cho phép thay đổi giá trị của
Hình 15. Cử a sổ slider cho phép thay đổ i biến gain 3. Nhấn nút mũi tên hướ ng lên để thấy sự thay đổi.
để tăng gain từ 10 đến 15 và quan sát dạng sóng sine tạo ra
Thay đổi tần số của tín hiệ u sine tạo ra Tần số của tín hiệu sine tạo ra có thể thay đổi bằng một trong các cách sau. 1. Thay đổi tần số lấy mẫu. Trong tập tin nguồn ở trên, tần số lấy mẫu fs đượ c gán giá trị là DSK6713_AIC23_FREQ_8KHZ. Giá trị này là 1 hằng số nguyên đã được định nghĩa sẵn. B ộ codec AIC hỗ trợ các t ần số lấy mẫu 8, 16, 24, 32, 44.1, 48 và 96kHz. Ví dụ, để có tín hiệu sine ra có tần số là 2kHz, cần tăng tần số lấy mẫu lên 16kHz bằng cách đặt fs=DSK6713_AIC23_FREQ_16KHZ.
[Type text]
Thay đổi số điểm ở trong bảng tra, ví dụ còn 4 điểm thay vì 8 điể m – ví dụ, {0, 1000, 0, 1000}. Khi đó cần thay đổi kích thướ c của mảng sine_table và giá trị biến loop. Hãy chứng minh rằng tần số tạo ra là f = fs/(số điể m). Hai thanh trượ t có thể đượ c sử dụng để vừa thay đổi gain, vừa thay đổi tần số. Các tần số tín hiệu khác nhau có thể tạo ra bằng cách thay đổi biến loop trong chương trình (ví dụ như nhảy cách một điểm lấy một điểm). Lưu ý rằng với chương trình trên sóng sine chỉ đượ c tạo ra khi DIP Switch 0 đượ c nhấn. Để sử dụng một DIP Switch khác, ví d ụ DIP Switch 3, trong chương trình phải sử dụng các hàm 2.
DSK6713_DIP_get(3) , DSK6713_LED_on(3) và DSK6713_LED_off(3).
Ví dụ 2: Tạo tín hi ệu sine và v ẽ vớ i CCS Ví dụ này cũng tạo ra một tín hi ệu sine với 8 điểm như trong ví dụ 1 nhưng nó minh họa khả năng vẽ dạng sóng trong miền thờ i gian và mi ền tần số của CCS. Chương trình chính sine8_buf.c có nội dung như sau: // sine8_buf Sine generation. Output buffer plotted within CCS #include "dsk6713_aic23.h" //codec-DSK support file Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling rate int loop = 0; //table index short gain = 10; //gain factor short sine_table[8]={0,707,1000,707,0,-707,-1000,-707}; short out_buffer[256]; //output buffer const short BUFFERLENGTH = 256; //size of output buffer int i = 0; //for buffer count interrupt void c_int11() //interrupt service routine { output_sample(sine_table[loop]*gain); //output sine values out_buffer[i] = sine_table[loop]*gain; //output to buffer i++; //increment buffer count if(i==BUFFERLENGTH) i=0; //if @ bottom reinit count if (++loop > 7) loop = 0; //check for end of table return; //return from interrupt }
void main() { comm_intr(); //init DSK, codec, McBSP while(1); //infinite loop }
Trong chương trình này, một vùng đệm out_buffer có kích thước 256 đượ c sử dụng để lưu lại các dữ liệu xuất ra. Trong hàm main, comm_intr đượ c gọi. Hàm này nằm trong c6713dskinit.c để hỗ trợ chương trình có dùng ngắt. Phát biểu while(1) trong hàm main t ạo một vòng lặp vô hạn để chờ ngắt xảy ra. Khi có xung lấy mẫu, ngắt 11 xảy ra và trình phục vụ ngắt (ISR – interrupt service routine) c_int11 đượ c gọi. Địa chỉ của ISR này được xác định trong tập tin vectors_intr.asm vớ i một chỉ dẫn rẽ nhánh đến địa chỉ này, sử dụng vector ngắt INT11.
[Type text] Trong ISR này, hàm output_sample , chứa trong tập tin c6713dskinit.c , đượ c gọi để xuất ra dữ liệu đầu tiên trong sine_table . Chỉ số loop được tăng cho đến hết bảng rồi lặp lại từ 0. Một bộ đệm ra đượ c tạo để giữ 256 (xác định bở i BUFFERLENGTH) mẫu tín hiệu sine xuất ra.
Xây dựng chương trình Hãy tạo project sine8_buf.pjt và thêm các t ập tin cần thiết như trong ví dụ 1. Lưu ý rằng chương trình này sử dụng ngắt nên tập tin vectors_intr.asm đượ c sử dụng thay cho tập tin vectors_polls.asm . Tập tin sine8_buf.c đượ c chứa trong thư mục C:\CCStudio_v1.3\myprojects\source\project_2 . Xác lập các tùy chọn như trong ví dụ 1 và dịch chương trình. Nạp và chạy chương trình trên kit và kiểm tra rằng có một sóng sine 1KHz đượ c tạo ra.
Vẽ vớ i CCS Bộ đệm ra đượ c cập nhật liên t ục mỗi 256 điểm. Sau đây CCS sẽ đượ c sử dụng để vẽ dữ liệu ra hiện tại chứa trong bộ đệm out_buffer. 1. Chọn View Graph Time/Frequency. Thay đổi các tùy chọn trong cửa sổ Graph Property Dialog như sau để vẽ trong miền thời gian. Địa chỉ bắt đầu của bộ đệm chính là tên mảng out_buffer đượ c nhập vào Start Address. Các tùy chọn khác có thể để như mặc đị nh.
Hình 16. Các tùy ch ọn để vẽ trong miền thờ i gian 2.
Để vẽ trong miền tần số, chọn các tùy chọn như trong hình sau. Chọn bậc c ủa FFT (FFT Order ) sao cho FFT Framesize = 2
order
.
[Type text]
Hình 17. Các tùy ch ọn để vẽ trong miền tần số
Kết quả vẽ đượ c thể hiện trên hình sau:
Hình 18. K ết quả vẽ bằng CCS cả trong miền tần số và trong miền thờ i gian
[Type text]
1. Mục đích thí nghiệ m 1. Hiểu rõ các bướ c từ thiết k ế đế n hiện thực bộ lọc FIR lên trên một kit DSP. 2. Hệ th ống lại các lý thuy ết đã họ c. 2. Thiết bị thí nghiệm STT
Tên thiết bị
Sốlượng
01
Máy vi tính
01
02
Kit C6713 DSK
01
03
Máy phát sóng
01
04
Bộ dây nối tín hiệu
01
3. Giớ i thiệu Lọc là m ột trong những hoạt động xử lý tín hi ệu quan tr ọng. Một bộ lọc tương tự hoạt động trên các tín hi ệu liên tục và thường đượ c thự c hiện vớ i các linh ki ện như khuếch đạ i thuật toán, các điện trở và các tụ điệ n. Một bộ lọc số hoạt động trên tín hi ệu th ờ i gian r ờ i rạ c và có th ể thự c hiện vớ i một bộ xử lý số tín hiệu như họ TMS320C6x. Quá trình l ọc bao gồm sử dụng một bộ biến đổi A/D để nhậ n tín hiệu vào, xử lý các mẫu vào rồi gử i k ết quả ra thông qua một bộ biến đổi D/A. Các bộ l ọc số có rất nhiều ưu điể m so vớ i các bộ lọc tương tự. Các ưu điể m này bao gồm độ tin cậy cao hơn, độ chính xác cao hơn và ít nhạ y vớ i nhi ệt độ và tuổi đời. Các đặ c tính lọc như tần số trung tâm, băng thông và loạ i bộ lọc có thể thay đổi dễ dàng. Một số công cụ có sẵn cho việc thi ết k ế và thự c hiện các bộ l ọc số một cách nhanh chóng trên kit TMS320C6x. 4. Cơ sở lý thuyết Bộ l ọc FIR nhân qu ả bậc M có đáp ứ ng xung h = [h 0, h1, …, h M] (chiều dài bằng M + 1) Ngõ ra của bộ l ọc được xác đị nh theo công thức tích chập: y (n)
h(m) x(n m) x(m)h(n m) m
m
trong đó x(n) là ngõ vào củ a bộ lọc. Hàm truyền của b ộ lọc được xác đị nh từ biến đổi Z của h(n): H ( z )
M
h(n) z
n
h0 h1 z 1 ... h M z M
n 0
trong đó các hệ số của hàm truyền chính là đáp ứ ng xung h của bộ lọc. [Type text]
[Type text] Bộ l ọc FIR có th ể thiết k ế bằ ng nhiều phương pháp, trong đó phương pháp đơn giả n nhất là phương pháp cử a sổ. Bộ l ọc có thể đượ c thực hiện bằng hai phương pháp: Phương pháp xử lý khối và phương pháp xử lý mẫu. Với phương pháp xử lý mẫu, bộ lọc có thể đượ c thự c hiện dạ ng trực tiếp như sau:
Hình 19. Thự c hiệ n bộ lọc FIR dạng trự c tiế p Nếu đặt các biến trạng thái v0(n) = x(n) v1(n) = x(n – 1)
… vM(n) = x(n – M) Ta sẽ có giải thuật xử lý mẫu ứng với sơ đồ kh ối trên như sau: Vớ i mỗi mẫu vào x: v0 = x
y
M
h
v k
k
k 0
vM = vM-1
… v1 = v0
5. Chuẩn bị thí nghiệ m 1. Cho một bộ lọc FIR có đáp ứ ng xung h = [1; -2; -3; -4]. Hãy xác đị nh: a. Bậc bộ lọc b. Phương trình sai phân I/O củ a bộ lọc c. Sơ đồ khối thự c hiện dạ ng trự c tiếp và giải thuật xử lý mẫu. [Type text]
[Type text] 2. Trình bày tóm tắt các bướ c thiết k ế một bộ lọc FIR bằ ng SPTool của MATLAB. Có mấ y phương pháp thiế t k ế bộ lọc FIR trong SPTool? Hãy li ệt kê. 3. Thế nào là một bộ lọc multiband? Thử phát họa đáp ứ ng tầ n số của một bộ lọc multiband? Có th ể dùng MATLAB để thiết k ế một bộ lọc FIR multiband hay không? 4. Tóm tắt các bướ c sẽ làm để thực hiện các phầ n thí nghi ệm sau.
6. Tiến hành thí nghi ệ m 6.1 Thự c hiện bộ lọc FIR Trướ c hết, hãy thự c hiện theo từng bướ c ví dụ đơn giản sau. Sau đó, hãy tự thực hiện các bộ lọc FIR khác theo yêu cầu. p bậc 88 vớ i t ần số cắ t 2.5 kHz, t ần số lấ y mẫ u 8 Ví d ụ : Thiế t k ế một bộ lọc FIR thông thấ kHz. Thự c hiện nó trên kit C6713 DSK. Kiể m ch ứ ng bộ lọc đã thự c hiện.
Trong ví dụ này có 3 phầ n chính cầ n phải thự c hiện: 1. Thiết k ế bộ l ọc FIR: k ết quả của phần này là có được đáp ứ ng xung h(n) của bộ lọc. 2. Thực hi ện bộ l ọc lên trên kit C6713 DSK: S ử dụng đáp ứng xung thu đượ c t ừ phầ n thiết k ế, vi ết chương trình thự c hiện mạ ch l ọc lên kit. Chương trình sẽ đọ c t ừng mẫu dữ liệu vào và ti ến hành giải thuật xử lý mẫu để tính ngõ ra. 3. Kiểm tra bộ l ọc đã thự c hiện: Trong phần này, bộ l ọc đã thự c hi ện trên kit s ẽ đượ c kiểm tra xem có đáp ứ ng yêu cầu đặt ra hay không. Chúng ta s ẽ sử dụ ng một máy phát sóng để tạ o tín hi ệu ngõ vào và quan sát tín hi ệu ngõ ra của bộ lọc khi thay đổi tín hiệu ngõ vào. Thiế t kế bộ l ọ c 1. Sử dụng công cụ SPTool Least Squares FIR. 2.
trong MATLAB để thiết k ế bộ lọc trên với phương pháp
Lưu bộ lọc đã thiết k ế vớ i tên là lp2500 r ồi xuất ra workspace của MATLAB.
Thự c hiệ n bộ l ọ c Bộ l ọc này đượ c thự c hiện trên kit bằng chương trình sau (viết bằng ngôn ngữ C) //Fir.c FIR filter. Include coefficient file with length N #include "coefficients.h" //coefficient file #include "dsk6713_aic23.h" //codec-dsk support file Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling rate int yn = 0; //initialize filter's output short dly[N]; //delay samples
[Type text]
[Type text] interrupt void c_int11() //ISR { short i; dly[0]=input_sample(); //input newest sample yn = 0; //initialize filter's output for (i = 0; i< N; i++) yn += (h[i] * dly[i]); //y(n) += h(i)* x(n-i) for (i = N-1; i > 0; i--) //starting @ end of buffer dly[i] = dly[i-1]; //update delays with data move output_sample(yn >> 15); //scale output filter sample return; } void main() { comm_intr(); while(1); }
//init DSK, codec, McBSP //infinite loop
Trong chương trình này, N là chiề u dài của đáp ứ ng xung của bộ lọc ( bằ ng M + 1 vớ i M là bậc của bộ l ọc) và đáp ứ ng xung của bộ lọc là mảng h có kích thướ c N. Giá tr ị của N và vector h đượ c khai báo trong t ậ p tin coefficients.h. T ập tin này đượ c gộp vào nhờ chỉ dẫn #include. Như vậ y, khi mu ốn thay đổi bộ lọc, chỉ cần thay đổi nội dung của tập tin coefficients.h.
Chương trình trên có sử dụ ng ngắt. Khi có có xung l ấy mẫu (tần số chọn ở đây là 8KHz), trình phụ c vụ ngắt c_int11 đượ c gọi, đọc mẫu vào và thự c hiện giải thuật xử lý m ẫu để tính ngõ ra. Do các h ệ số của đáp ứng xung nhận đượ c từ quá trình thi ết k ế là khá nhỏ, chúng ta sẽ nhân nó 15 15 vớ i 2 . Mẫu ra sau khi xử lý đượ c chia lại cho 2 bằ ng cách dịch phải 15 bit (trong hàm 15 output_sample(yn >> 15)). Vi ệc nhân các hệ số vớ i 2 cũng là do bộ xử lý s ẽ lượ ng tử hóa các hệ số vớ i một số lượ ng bit hữu hạn và việc nhân lên sẽ giảm đi sai số. Tóm lại, các bước để thự c hiện bộ l ọc lên kit như sau: 1. Lấy các hệ số của hàm truyền của bộ l ọc, nhân vớ i hệ số tỉ l ệ 2
15
>> cof = round(lp2500.tf.num*2^15) 2. Nếu cửa sổ workspace của MATLAB chưa hiể n thị, hãy mở nó lên. Trong workspace, nhấn đúp chuộ t vào tên bi ến cof để mở cửa sổ Array Editor. 3. Mở CCS (nhớ mở nguồn của DSK trướ c khi mở CCS). 4. Mở tập tin project (đã C:\CCStudio_v3.1\myprojects\FIR.
[Type text]
đượ c
tạo
sẵn)
FIR.pjt
trong
[Type text] 5. Trong cửa sổ Project View, tab File View, m ở rộng phần Include, mở tập tin coeficients.h.
Đặt các hệ số của b ộ lọc vừa thiết k ế vào trong tập tin này. (Có thể copy và paste t ừ cửa s ổ Array Editor trên). Điểu ch ỉnh giá trị N cho đúng vớ i chiều dài đáp ứ ng xung. Lưu ý rằ ng các giá tr ị của đáp ứ ng xung cách nhau bằng một dấu phẩy (,). Lưu tập tin sau khi sửa đổi. 7. Xác lập các tùy ch ọn phù hợ p (xem phần hướ ng dẫn sử dụ ng trong tài li ệu này) rồi tiến hành biên dịch chương trình. Sau khi dị ch thành công, hãy nạp chương trình lên trên kit và chạy chương trình. 6.
Đánh giá kế t quả thự c hiệ n 1. Hãy thử xem đáp ứ ng t ần s ố của b ộ lọc vừa th ự c hiện bằ ng cách sử dụ ng công cụ vẽ trong mi ền tần s ố của CCS. Chọn View Graph Time/Frequency. Ch ọn Display Type là FFT Magnitude và Start Address là đị a ch ỉ bắt đầu của vector đáp ứ ng xung, tức là tên mảng h. 2. Mở nguồn của máy phát sóng. T ạo m ột tín hi ệu hình sine từ máy phát sóng và quan sát dạng sóng ngõ ra. Thay đổ i t ầ n s ố của tín hi ệu vào và hãy xác đị nh t ầ n s ố cắt 3dB của bộ lọc. Sau khi đã thự c hiện ví dụ trên, hãy áp dụng những gì đã học để thự c hiện các thí nghiệm sau. Vớ i mỗi bài thí nghi ệm, hãy đưa đáp ứ ng tầ n số của bộ lọc vào trong bài báo cáo. (Hướ ng d ẫn: nêu sao chép thư mục FIR đã có thành một thư mụ c vớ i tên khác và thự c hiện trên thư mục mớ i này ứ ng vớ i t ừ ng bộ lọc). 1. Thiết k ế một bộ l ọc FIR chắn dải bằng phương pháp Kaiser Window có các thông số như sau: a. Chiều dài đáp ứ ng xung N = 89 (Bậc bộ lọc: 88) b. Tần số cắt: 2500 và 2900 Hz. c. Giá trị của = 4 d. Tần số lấ y mẫu: 8 kHz. Thực hiện bộ l ọc lên trên kit và ki ểm tra k ết quả. 2. Thiết k ế bộ lọc FIR thông dải bằng phương pháp Kaiser Window vớ i các thông số như sau: a. Chiều dài đáp ứ ng xung: 81 b. Tần số cắt: 1500 và 2000 Hz. c. Giá trị của = 5 d. Tần số lấ y mẫu: 8 kHz. Thực hiện bộ l ọc và ki ểm tra k ết quả. 3. Thực hi ện và thi ết k ế bộ lọc thông cao sau bằng phương pháp Kaiser Window. Sau đó, cho một tín hi ệu xung vuông tầ n s ố 1 kHz vào và hi ển thị tín hi ệu ra. Giải thích k ết quả. Các thông số của bộ lọc như sau: [Type text]