⬢ Đề tài 1 · Lớp L03 · Nhóm 8

Mô phỏng Lấy mẫu & Khôi phục Tín hiệu

Mô phỏng tương tác định lý Nyquist–Shannon, ba phương pháp khôi phục, phân tích phổ FFT và đánh giá MSE / SNR

Lớp · Nhóm
L03 · N8
Tín hiệu
Sin đơn
Trạng thái
Đạt Nyquist
Nhóm 8 — Lớp L03 · Đề tài 1 04 thành viên · Khóa 2023 · Khoa Điện - Điện tử
VT
Lý thuyết lấy mẫu Võ Phúc Thịnh MSSV · 2313317
HP
Code tạo tín hiệu & lấy mẫu Hà Toàn Phú MSSV · 2312647
NQ
Code khôi phục & sai số Nguyễn Xuân Quyết MSSV · 2312889
HT
Giao diện · Báo cáo · Slide Hồ Minh Thao MSSV · 2313092
fmax
10.00Hz
Tần số cao nhất
Ngưỡng Nyquist
20.00Hz
2 · fmax
fs · sampling
80.00Hz
N = 81 mẫu
MSE
0.00e+0
Mean Squared Error
SNR
dB
Tỉ số tín hiệu / nhiễu
Trạng thái
Đạt Nyquist
fs > 2·fmax
Bảng điều khiển
Loại tín hiệu
x(t) = A·sin(2πft)
Biên độ A₁ 1.00
Biên độ A₂ 0.50
Tần số f₁ 10.00 Hz
Tần số f₂ 30.00 Hz
Pha φ₁ 0°
Pha φ₂ 0°
Tần số lấy mẫu fs 80.00 Hz
Thời gian quan sát T 1.00 s
Mức nhiễu σ 0.00
Sơ đồ khối hệ thống Đạt Nyquist
Tín hiệu liên tục
x(t)
Lấy mẫu (fs)
x[n] = x(nTs)
Khôi phục
linear interp
Tín hiệu khôi phục
x̂(t)

Miền thời gian —

FFT · Tín hiệu gốc

FFT · Sau lấy mẫu

FFT · Sau khôi phục

Phân tích phổ chi tiết — Bằng chứng định lượng RMSE phổ: —
Phổ gốc & phổ khôi phục — chồng lên nhau
Hai đường nằm sát nhau ⇒ hệ thống khôi phục đúng. Đường xanh là |X(f)| phổ tín hiệu gốc, đường cam là |X̂(f)| phổ tín hiệu sau khôi phục.
Phổ sai số |X(f) − X̂(f)|
Khoảng cách dọc giữa hai phổ ở trên. Nền càng thấp và phẳng ⇒ khôi phục càng chính xác. Nếu xuất hiện đỉnh ⇒ có thành phần tần số bị méo hoặc aliasing.

Vì sao hai phổ trên cùng nhìn "giống hệt"?

Khi tần số lấy mẫu thỏa fs > 2·fmax và tín hiệu băng tần hữu hạn, định lý Nyquist–Shannon đảm bảo x̂(t) ≡ x(t) với phương pháp nội suy sinc, dẫn đến |X̂(f)| ≡ |X(f)|. Việc hai phổ chồng khít chính là biểu hiện đúng đắn của định lý, không phải lỗi tính toán.

Cách đọc 4 chỉ số định lượng

RMSE phổ
Sai số trung bình giữa hai phổ trên dải [0, fs/2]
Sai số đỉnh
Chênh lệch lớn nhất giữa |X| và |X̂|
Tần số sai lệch
Vị trí xuất hiện sai số đỉnh
Tương quan
Hệ số tương quan Pearson · 1.0 = giống hệt

💡 Hãy thử bấm Aliasing hoặc đổi sang sóng vuông để thấy phổ sai số "nổi gai" rõ rệt.

Bảng kết quả chi tiết linear
So sánh trực tiếp 3 phương pháp khôi phục — cùng tín hiệu, cùng fs Tham số dùng từ tab Mô phỏng
Bảng đánh giá định lượng
Phương pháp MSE RMSE SNR (dB) Đặc điểm
🧮 Tính toán chi tiết

Cách các con số được tính ra như thế nào?

Trang này hiển thị từng bước tính toán dựa trên giá trị bạn đang chỉnh ở bảng điều khiển bên kia. Mỗi mục có ba dòng theo thứ tự: công thức tổng quát, thay số cụ thểkết quả. Khi bạn kéo bất kỳ thanh trượt nào, các con số ở đây sẽ tự động cập nhật.

Cập nhật trực tiếp theo điều khiển
1
Tần số cao nhất fmax
Phụ thuộc vào loại tín hiệu đang chọn
Công thức
Thay số
Kết quả
2
Ngưỡng Nyquist 2·fmax
Tần số lấy mẫu tối thiểu cần thiết
Công thức
Thay số
Kết quả
3
Chu kỳ lấy mẫu Ts
Khoảng cách giữa hai mẫu liên tiếp
Công thức
Thay số
Kết quả
4
Số mẫu N
Tổng số mẫu trong khoảng thời gian quan sát
Công thức
Thay số
Kết quả
5
Kiểm tra điều kiện Nyquist
So sánh fs với 2·fmax
Điều kiện
Thay số
Kết luận
6
Tần số alias gần đúng
Tần số mà fmax bị "gập" về dải Nyquist
Công thức
Thay số
Kết quả
7
Mean Squared Error (MSE)
Sai số trung bình bình phương giữa x(t) và x̂(t)
Công thức
Thay số
Kết quả
8
Signal-to-Noise Ratio (SNR)
Tỉ số công suất tín hiệu trên công suất sai số
Công thức
Thay số
Kết quả
📘 Cơ sở lý thuyết

Lấy mẫu & Khôi phục Tín hiệu — Toàn cảnh

Lấy mẫu là quá trình chuyển một tín hiệu từ liên tục theo thời gian sang rời rạc để có thể xử lý bằng máy tính. Khôi phục là chiều ngược lại: từ chuỗi mẫu rời rạc dựng lại tín hiệu liên tục. Toàn bộ lý thuyết của quá trình này được đặt nền móng bởi định lý lấy mẫu Nyquist–Shannon, một trong những kết quả quan trọng nhất của xử lý tín hiệu.

01

Tín hiệu liên tục và tín hiệu rời rạc

Tín hiệu liên tục x(t) tồn tại tại mọi thời điểm t ∈ ℝ. Đây là dạng tự nhiên của hầu hết các đại lượng vật lý trong thực tế: âm thanh, ánh sáng, điện áp cảm biến, nhịp tim…

Tín hiệu rời rạc x[n] chỉ được xác định tại các thời điểm rời rạc n = 0, 1, 2, …, thường là kết quả của việc lấy mẫu một tín hiệu liên tục với chu kỳ Ts:

Tín hiệu liên tục

Định nghĩa trên trục thời gian thực, có thể có vô hạn giá trị trong bất kỳ khoảng hữu hạn nào.

x(t) = A·sin(2πft)

Tín hiệu rời rạc

Là chuỗi giá trị x[0], x[1], x[2]… lấy tại các điểm thời gian cách đều Ts.

x[n] = x(nT_s), n ∈ ℤ

Mục tiêu của xử lý số tín hiệu là làm việc với tín hiệu rời rạc nhưng vẫn giữ được càng nhiều thông tin càng tốt từ tín hiệu liên tục gốc.

02

Mô hình toán của quá trình lấy mẫu

Về mặt toán học, lấy mẫu lý tưởng được mô tả bằng phép nhân tín hiệu liên tục với một chuỗi xung Dirac (Dirac comb) tại các thời điểm nTs:

Tín hiệu sau lấy mẫu là chuỗi xung có biên độ bằng giá trị tức thời của x(t):

Trong đó Ts = 1/fs là chu kỳ lấy mẫu và fs là tần số lấy mẫu. Mô hình này là lý tưởng — trong thực tế, các bộ ADC sử dụng mạch sample-and-hold để lưu giữ giá trị mẫu trong một chu kỳ.

03

Định lý lấy mẫu Nyquist–Shannon

Phát biểu kinh điển của định lý:

Một tín hiệu băng tần hữu hạn với tần số cao nhất fmax có thể được khôi phục chính xác từ các mẫu của nó nếu và chỉ nếu tần số lấy mẫu thỏa mãn fs ≥ 2·fmax.

Tần số 2·fmax được gọi là tần số Nyquist. Một số tài liệu định nghĩa "tần số Nyquist" là fs/2 — nghĩa là tần số cao nhất mà một hệ thống lấy mẫu với fs có thể biểu diễn được không bị aliasing.

Ba trường hợp điển hình

Trường hợp Điều kiện Kết quả
Đạt Nyquist fs > 2·fmax Khôi phục được chính xác (lý thuyết)
Tại ngưỡng fs = 2·fmax Trên lý thuyết khôi phục được, thực tế dễ hỏng do pha
Aliasing fs < 2·fmax Mất thông tin, các tần số cao bị "gập" về dải thấp
Lưu ý: Định lý chỉ đảm bảo khôi phục chính xác với tín hiệu băng tần hữu hạn. Các tín hiệu thực tế như sóng vuông, sóng tam giác, nhiễu… có vô hạn thành phần hài, do đó luôn có một mức aliasing nhất định và cần lọc trước khi lấy mẫu.

Bẫy pha 90° tại ngưỡng Nyquist

Trong định lý có dấu "lớn hơn hoặc bằng" — nhưng chính đẳng thức fs = 2·fmax lại chứa một lỗ hổng nguy hiểm phụ thuộc vào pha của tín hiệu.

Xét hai tín hiệu cùng tần số 10 Hz, lấy mẫu ở đúng fs = 20 Hz:

Tín hiệu Pha Các mẫu tại t = 0, 0.05, 0.10, 0.15 s Khôi phục
cos(2π·10·t) 90° [1, −1, 1, −1, …] Đúng dạng sóng
sin(2π·10·t) [0, 0, 0, 0, …] Mất sạch tín hiệu

Cùng tần số, cùng tần số lấy mẫu, nhưng chỉ vì pha lệch 90° mà một tín hiệu khôi phục được, một tín hiệu biến mất hoàn toàn. Lý do: ở pha 0°, các điểm lấy mẫu rơi đúng vào những điểm cắt 0 của sin, ADC ghi nhận tất cả là "im lặng".

Hệ quả thực tế: Trong kỹ thuật, kỹ sư luôn chọn fs > 2·fmax với một khoảng dư gọi là guard band:
  • Audio CD: 20 kHz × 2 = 40 kHz, nhưng dùng 44.1 kHz
  • Điện thoại: 4 kHz × 2 = 8 kHz, dùng 8 kHz với bộ lọc anti-aliasing chặt

Trong app, bạn có thể tự kiểm chứng bằng nút Bẫy pha 90° tại ngưỡng Nyquist ở panel Mô phỏng: khi đặt sin 10 Hz, fs = 20 Hz và đổi pha φ₁ giữa 0° và 90°, dạng sóng khôi phục sẽ chuyển từ "phẳng lì = 0" sang "có dạng cos" — minh họa trực quan vì sao không nên đặt fs đúng bằng 2·fmax.

04

Phổ tín hiệu & hiện tượng aliasing

Theo lý thuyết Fourier, lấy mẫu trong miền thời gian tương đương với tích chập với chuỗi xung Dirac trong miền tần số. Điều này khiến phổ của tín hiệu sau lấy mẫu bị lặp lại tuần hoàn với chu kỳ fs:

Khi fs > 2·fmax, các bản sao phổ tách rời nhau, ta có thể lọc lấy lại bản gốc bằng bộ lọc thông thấp. Khi fs < 2·fmax, các bản sao chồng lấn — đây chính là aliasing.

Một thành phần tần số f0 nằm ngoài dải Nyquist sẽ xuất hiện ở vị trí "gập" trong dải thấp:

Đây là lý do tại sao một sóng sin 60 Hz lấy mẫu ở 80 Hz lại "trông giống" sóng 20 Hz — bằng đúng |60 − 80| = 20. Hiệu ứng cánh quạt máy bay quay ngược chiều trên video chính là aliasing trong miền không gian/thời gian.

05

Bộ lọc anti-aliasing

Trong mọi hệ thống số thực tế, trước khi đưa tín hiệu vào ADC ta phải dùng một bộ lọc thông thấp (LPF) với tần số cắt nhỏ hơn fs/2 để loại bỏ các thành phần có thể gây aliasing.

Bộ lọc anti-aliasing thường dùng:

  • Butterworth — phẳng tối đa ở dải thông, chuyển tiếp mượt
  • Chebyshev — chuyển tiếp dốc hơn nhưng có gợn ở dải thông hoặc dải chặn
  • Elliptic (Cauer) — chuyển tiếp dốc nhất, có gợn ở cả hai dải
Trong app này, để giữ tính minh họa thuần lý thuyết, chưa thêm bộ lọc anti-aliasing. Khi gặp tín hiệu vuông hoặc tam giác có nhiều hài, ta cố tình quan sát aliasing để hiểu rõ hiện tượng.
06

Công thức nội suy Whittaker–Shannon

Định lý Nyquist khẳng định có thể khôi phục, công thức Whittaker–Shannon cho biết khôi phục bằng cách nào:

Ý nghĩa: thay mỗi xung lấy mẫu bằng một hàm sinc có biên độ bằng giá trị mẫu, rồi cộng tất cả lại. Hàm sinc(x) = sin(πx)/(πx)đáp ứng xung của bộ lọc thông thấp lý tưởng với tần số cắt fs/2.

Đây là phương pháp khôi phục lý tưởng, nhưng không thực hiện được trong phần cứng vì:

  • Hàm sinc kéo dài vô hạn → cần vô hạn mẫu trong tương lai và quá khứ
  • Bộ lọc thông thấp lý tưởng (cánh chữ nhật) không tồn tại vật lý

Vì vậy thực tế dùng các xấp xỉ: ZOH, nội suy tuyến tính, spline, sinc cửa sổ hữu hạn (sinc truncated, Lanczos)...

07

Ba phương pháp khôi phục được mô phỏng

7.1. Giữ bậc thang — Zero-Order Hold (ZOH)

Giữ nguyên giá trị mẫu cuối cùng cho tới khi có mẫu mới:

Đáp ứng tần số:

  • Là hành vi mặc định của hầu hết các DAC bậc 0 trong thực tế
  • Đơn giản, sai số trung bình lớn nhất trong 3 phương pháp
  • Phổ bị méo do "đáp ứng sinc" của khối giữ mẫu, các tần số cao bị suy hao

7.2. Nội suy tuyến tính — Linear Interpolation

Nối hai mẫu liên tiếp bằng đoạn thẳng:

  • Tương đương DAC bậc 1, có thể nhìn như tích chập với hàm tam giác
  • Mịn hơn ZOH, sai số nhỏ hơn ở những tín hiệu đổi chậm
  • Phổ có hệ số sinc² — suy hao tần số cao mạnh hơn ZOH

7.3. Nội suy sinc lý tưởng

Áp dụng trực tiếp công thức Whittaker–Shannon ở mục 6.

  • Khôi phục chính xác hoàn toàn nếu fs > 2·fmax và tín hiệu băng tần hữu hạn
  • Trong app này, sinc được tính trên một số mẫu hữu hạn nên có sai số biên
  • Dùng làm chuẩn so sánh với ZOH và Linear
Phương pháp Độ phức tạp Sai số Hiện thực phần cứng
ZOH O(1) mỗi điểm Lớn Rất dễ — DAC bậc 0
Linear O(1) mỗi điểm Trung bình Dễ — DAC bậc 1 / FPGA
Sinc O(N) mỗi điểm Nhỏ nhất Không — phải xấp xỉ bằng FIR cửa sổ
08

Đánh giá chất lượng khôi phục: MSE và SNR

Để đánh giá định lượng độ chính xác của tín hiệu khôi phục, dùng các chỉ số:

8.1. Mean Squared Error (MSE)

MSE càng nhỏ thì x̂(t) càng gần với x(t). Đơn vị là bình phương biên độ tín hiệu.

8.2. Root Mean Squared Error (RMSE)

Cùng đơn vị với biên độ tín hiệu, dễ so sánh trực quan với mức tín hiệu.

8.3. Signal-to-Noise Ratio (SNR)

Đơn vị decibel (dB). Trong app này, công suất nhiễu chính là MSE, công suất tín hiệu là (1/N)·Σx²(t).

Tham chiếu: với hệ thống ghi âm chất lượng tốt, SNR thường đạt 60–90 dB. Trong mô phỏng này, ở chế độ Nyquist sạch (không nhiễu), SNR có thể vượt 100 dB với phương pháp sinc.
09

FFT & phân tích phổ

Fast Fourier Transform (FFT) là thuật toán tính nhanh biến đổi Fourier rời rạc (DFT) với độ phức tạp O(N log N). Trong app này, FFT được hiện thực bằng giải thuật Cooley–Tukey radix-2:

FFT giúp ta quan sát ba bước của hệ thống lấy mẫu trong miền tần số:

  • FFT của tín hiệu gốc — phổ thật của x(t), có một hoặc vài đỉnh tại các tần số thành phần
  • FFT sau lấy mẫu — phổ rời rạc, tuần hoàn theo fs, có thể quan sát được hiện tượng aliasing nếu vi phạm Nyquist
  • FFT sau khôi phục — phổ của x̂(t), lý tưởng phải trùng với phổ gốc
Trong app, tín hiệu được loại bỏ thành phần DC trước khi tính FFT để các đỉnh phổ nổi bật hơn, và biên độ được chuẩn hóa P1 một phía, nhân 2 ở các bin giữa — giống cách MATLAB tính phổ một phía.
10

Ứng dụng thực tế

Lấy mẫu và khôi phục là nền tảng cho hầu hết các hệ thống điện tử số hiện đại. Một số ví dụ:

  • Âm thanh số (CD, MP3, AAC): tần số lấy mẫu chuẩn 44.1 kHz hoặc 48 kHz, đảm bảo khôi phục được dải nghe được của tai người (20 Hz – 20 kHz)
  • Truyền thông số (4G, 5G, Wi-Fi): lấy mẫu và lượng tử hóa tín hiệu RF để xử lý số trên DSP / FPGA
  • Hệ thống đo lường & điều khiển: ADC trong các bộ điều khiển PID, robot, IoT
  • Y sinh: ECG (≥250 Hz), EEG (≥256 Hz), siêu âm (≥1 MHz)
  • Xử lý hình ảnh: camera là quá trình lấy mẫu 2D — cần lọc anti-aliasing quang học (low-pass filter trước cảm biến)

Tài liệu tham khảo

  1. A. V. Oppenheim, R. W. Schafer. Discrete-Time Signal Processing, 3rd ed., Pearson, 2009.
  2. S. K. Mitra. Digital Signal Processing: A Computer-Based Approach, 4th ed., McGraw-Hill, 2010.
  3. C. E. Shannon. Communication in the Presence of Noise. Proc. IRE, vol. 37, no. 1, pp. 10–21, 1949.
  4. H. Nyquist. Certain topics in telegraph transmission theory. Trans. AIEE, vol. 47, pp. 617–644, 1928.
  5. R. G. Lyons. Understanding Digital Signal Processing, 3rd ed., Prentice Hall, 2010.
  6. MathWorks Documentation — Signal Processing Toolbox, R2024a.
Tóm tắt tham số & kết quả hiện tại
Xuất dữ liệu

Có thể tải dữ liệu mô phỏng dạng JSON để dùng lại trong MATLAB qua jsondecode(fileread('file.json')), hoặc tải PNG đồ thị để chèn vào báo cáo.

Kết luận tự động
Nhóm thực hiện đề tài 04 thành viên

Đề tài Mô phỏng Lấy mẫu & Khôi phục Tín hiệu được thực hiện bởi Nhóm 8 — Lớp L03, gồm 4 sinh viên khóa 2023, Khoa Điện - Điện tử, Đại học Bách Khoa TP.HCM.

VT
Võ Phúc Thịnh
2313317
Lý thuyết lấy mẫu
HP
Hà Toàn Phú
2312647
Code tạo tín hiệu & lấy mẫu
NQ
Nguyễn Xuân Quyết
2312889
Code khôi phục & sai số
HT
Hồ Minh Thao
2313092
Giao diện · Báo cáo · Slide
Phân công công việc
Thành viên Công việc chính Sản phẩm cần làm
Võ Phúc Thịnh
2313317
Lý thuyết lấy mẫu Viết phần cơ sở lý thuyết: tín hiệu liên tục, tín hiệu rời rạc, lấy mẫu, định lý Nyquist, hiện tượng aliasing
Hà Toàn Phú
2312647
Code tạo tín hiệu và lấy mẫu Viết chương trình tạo tín hiệu gốc (sin, tổng sin, vuông, tam giác), chọn tần số lấy mẫu, lấy mẫu tín hiệu
Nguyễn Xuân Quyết
2312889
Code khôi phục và tính sai số Hiện thực ba phương pháp khôi phục ZOH, Linear, Sinc; tính MSE / SNR; so sánh kết quả
Hồ Minh Thao
2313092
Giao diện, báo cáo, slide, demo Làm giao diện ứng dụng, tổng hợp báo cáo, làm PowerPoint và chuẩn bị kịch bản thuyết trình
Thông tin học phần
Học phầnXử lý số tín hiệu
Đề tàiĐề tài 1 — Mô phỏng lấy mẫu & khôi phục
LớpL03
NhómNhóm 8
TrườngĐại học Bách Khoa — ĐHQG TP.HCM
KhoaĐiện - Điện tử · Bộ môn Viễn thông
Học kỳ2025 — 2026
Số thành viên4