Search results

  1. Ngô Văn Tuân

    Định lý Bayes (Bayes' theorem)

    Bài trước: Các công thức xác suất cơ bản Công thức của định lý Bayes \begin{equation} P(A|B) = \frac{P(B|A)P(A)}{P(B)} \end{equation} Chứng minh: \begin{equation} P(A|B) = \frac{P(AB)}{P(B)} = \frac{P(BA)}{P(B)} = \frac{P(B|A)P(A)}{P(B)} \end{equation} Định lý Bayes cho hàm mật độ xác...
  2. Ngô Văn Tuân

    Các công thức xác suất cơ bản

    Bài trước: Biến ngẫu nhiên (random variable) 1. Các ký hiệu cơ bản \(X\) là một biến ngẫu nhiên; \(x\) là một giá trị của biến ngẫu nhiên \(X\); \(p(X=x)\) là xác suất biến ngẫu nhiên \(X\) có giá trị \(x\); \(p(x)\) là viết tắt của \(p(X=x)\), là hàm mật độ xác suất hay probability density...
  3. Ngô Văn Tuân

    Biến ngẫu nhiên (random variable)

    0. Phân tích từ vựng "biến ngẫu nhiên": Thứ nhất: là biến, giá trị biến có tính chất là có thể thay đổi được, đối lập với hằng (giá trị không thay đổi được); Thứ hai: là ngẫu nhiên, tức là giá trị đạt được của biến không bị tác động bởi bất kỳ yếu tố nào. Lý thuyết là không chịu tác động nhưng...
  4. Ngô Văn Tuân

    [C20] C Programming Language Review

    Bài này cung cấp các câu hỏi giúp các bạn ôn tập lại kiến thức cơ về ngôn ngữ lập trình C. Xem tài liệu đính kèm để biết thêm chi tiết. 1. Constant #include <stdio.h> const int NUMBER = 10; int main() { NUMBER = 100; printf("Number is: %d", NUMBER); return 0; } 2. Variable...
  5. Ngô Văn Tuân

    [C] Function Pointer (Con trỏ hàm) - P2

    Bài này sẽ trình bày một số ví dụ ứng dụng con trỏ hàm: 1. Supervisor call interface #include <stdio.h> #include <stdint.h> /* Library */ int add(int a, int b) { return a + b; } /* End of library */ int main() { int svc; svc = (int)(&add); int sum =...
  6. Ngô Văn Tuân

    [C] Function Pointer (Con trỏ hàm) - P1

    Một cách ngắn gọn: Con trỏ hàm là biến lưu địa chỉ của hàm. Nếu bạn tự hỏi học con trỏ hàm để làm gì thì mình sẽ cho bạn một lý do để học con trỏ hàm: một ứng dụng phổ biến của con trỏ hàm là để pass sự kiện từ lớp dưới lên các lớp trên. Lấy ví dụ khi bạn click chuột, sự kiện này được gửi từ...
  7. Ngô Văn Tuân

    [C] Variable Pointer (Con trỏ biến) - P2

    Bài này sẽ trình bày sâu hơn về con trỏ trong ngôn ngữ lập trình C: 1. Kích thước con trỏ Lưu ý: Hàm sizeof() là hàm lấy kích thước của một đối tượng tính theo byte. Xét ví dụ sau: #include <stdio.h> #include <stdint.h> char var0 = 19; int var1 = 1000; float var2 = 10.2; double var3 =...
  8. Ngô Văn Tuân

    [C20] Interrupt

    Nếu CPU yêu cầu module thực hiện một công việc nào đó. Để biết rằng công việc đó đã được thực hiện xong chưa, CPU có thể liên tục đọc một bit flag (cờ) trên một SFR nào đó (module sẽ set bit này lên 1 nếu công việc hoàn thành). Tuy nhiên, cách này có một số vấn đề sau: Nếu CPU còn việc khác...
  9. Ngô Văn Tuân

    [C] Variable Pointer (Con trỏ biến) - P1

    Một cách ngắn gọn: Pointer là một biến lưu địa chỉ của biến khác. Dài hơn một chút: Pointer là một biến gần giống như biến thông thường ta khai báo khi ta mới học C nhưng điểm khác biệt lớn nhất là ở ứng dụng của pointer, ở giá trị mà nó lưu trữ: là địa chỉ của một biến khác trong bộ nhớ. 1...
  10. Ngô Văn Tuân

    [C20] Special Function Register - Thanh ghi chức năng đặc biệt

    Chào các bạn, Bài viết sẽ cung cấp cho các bạn một số kiến thức cơ bản về thanh ghi mà nếu các bạn không biết vẫn có thể code được VĐK như thường bằng ngôn ngữ lập trình C và SDK do nhà sản xuất cung cấp. Nhưng nếu các bạn không biết thì sẽ có những vấn đề mà bạn sẽ không thể giải quyết được...
  11. Ngô Văn Tuân

    [Attention] Giới thiệu diễn đàn phiên bản 2020

    1. Giao diện mới, cool hơn. 2. Trình soạn thảo văn bản mới ngầu đời hơn được bổ sung thêm khác nhiều tính năng hữu ích: Code được soạn thảo trong vùng riêng để dễ theo dõi (copy) hơn: #include <stdio.h> int main(void) printf("Hello world!!!"); return 0; } Inline code...
  12. Ngô Văn Tuân

    [C20] C - Intermediate Level

    Chào các bạn, Hôm nay chúng ta đã học qua một số kiến thức mà hiện giờ ta coi là nâng cao trong C bao gồm: Pointer Struct Enum Mong rằng sau khi học bài này, các bạn sẽ có thể tự tin đọc hiểu và sử dụng thư viên HAL của STM32. Vì một tương lai kiến thức nâng cao biến thành kiến thức cơ bản...
  13. Ngô Văn Tuân

    [C20] Thông báo chuẩn bị buổi 4

    Chào các bạn:1cool_byebye:, Chúc mừng các bạn đã vượt qua kì thi đầu vào để bước tiếp tới những buổi học tiếp theo. Nếu các bạn cho rằng kì thi vừa rồi thật khó khăn thì chắc hẳn các bạn sẽ cảm thấy thật vui mừng khi biết rằng những khó khăn mới chỉ bắt đầu :D. Thôi thì thôi thế thế thế thôi...
  14. Ngô Văn Tuân

    [C20] Tổng kết buổi 01

    Chào các bạn, :1cool_byebye: Vậy buổi học thứ nhất đã kết thúc, mặc dù gặp một số khó khăn, nhưng cuối cùng cũng đã có khá nhiều bạn có thể thực hành ví dụ chớp tắt LED đầu tiên bằng vi điều khiển. Các bạn chưa cài đặt xong phần mềm hay vẫn còn gặp bug thì có thể tham khảo làm theo video hướng...
  15. Ngô Văn Tuân

    [C20]Thông báo chuẩn bị cho buổi học đầu tiên của lớp C20

    :1cool_byebye:Xin chào chào các bạn,:1cool_byebye: Đến hẹn lại lên, một mùa Cx mới lại bắt đầu. Khóa C20 này, chúng ta sẽ cùng đi tìm hiểu về vi điều khiển STM32F103C8T6 nằm trên board Blue Pill và tập tành vẽ board mạch với phần mềm Altium Designer :3cool_adore:. Giới thiệu chung khóa học...
  16. Ngô Văn Tuân

    [Signal processing with Python] Bài 2: Tạo âm thanh hình Sine

    Chào các bạn:1cool_byebye:, Trong bài này, chúng ta sẽ tạo ra một sóng hình Sine và lưu nó theo định dạng WAV. Code mình đã quăng lên một cục từ bài trước, hôm nay chúng ta sẽ bóc tách nó ra để coi cách tạo ra một sóng hình Sine bằng Python và lưu nó dưới định dạng WAV. Chúng ta bắt đầu nào:D...
  17. Ngô Văn Tuân

    [Signal processing with Python] Bài 1 (tt): WAV file

    4. Thực hành: Lưu ý: Nếu bạn chưa hiểu được bài giải thì cứ copy vào chạy trước đã, giải thích code sẽ được trình bày ở những bài sau. a. Tạo sóng sin với tần số 1000Hz và lưu dưới định dạng wav. import numpy as np import wave import struct import matplotlib.pyplot as plt # Create sine wave...
  18. Ngô Văn Tuân

    [Signal processing with Python] Bài 1: WAV file

    Chào các bạn:1cool_byebye:, Trước khi nói về xử lý tín hiệu với python, chúng ta hãy cùng đi tìm hiểu cách mà tín hiệu, cụ thể ở đây là âm thanh được lưu trong máy tính của chúng ta như thế nào :gach? Tổng quan: Một file được lưu trong hard disk bao gồm metadata và data. Trong đó: Metadata là...
  19. Ngô Văn Tuân

    [C19] Tổng hợp bài UART

    Chào các bạn:1cool_byebye:, Sau một ngày đầy nắng và gió, tuy đã có người mệt, người bị thương và cũng có những sự hi sinh nhất định, chúng ta cuối cùng cũng lê lết qua được bài UART:5cool_still_dreaming:. Để tổng hợp lại kiến thức đã học, hãy trả lời những câu hỏi sau. Nếu bạn trả lời hết được...
  20. Ngô Văn Tuân

    [STIoT] [Bài 01 (Part 3)] Tổng quan về BLE protocol stack

    4. Logical Link Control and Adaption Protocol (L2CAP): L2CAP có hai nhiệm vụ chính: Chức năng như một multiplexer, có nhiệm vụ lấy dữ liệu từ các lớp trên (ATT và SMP), đóng giói thành chuẩn format của BLE packet và ngược lại. Fragmentation (phân mảnh) và Recombination (Kết hợp): Dự liệu từ...
Top