![]() |
|
Tài trợ cho PIC Vietnam |
dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 1 túi
Tham gia ngày: Sep 2006
Bài gửi: 14
: |
nhân *i_Ptr với bảng sin_Table[]. Nhân hai sóng trong xử lý tín hiệu số
|
![]() |
![]() |
![]() |
#2 |
Trưởng lão PIC bang
|
Nếu bạn thực hiện việc nhân và lọc ngay sau khi lấy mẫu, thì tại thời điểm lấy mẫu tn = nT (T là chu kỳ lấy mẫu), bạn nhân hai mẫu thứ n với nhau rồi lưu vào bộ đệm. Tôi không hiểu có vấn đề gì ở đây mà bạn không thể nhân chúng với nhau được.
Bạn viết code rải rác ở nhiều tập tin nguồn, đối với tôi là khá khó khăn trong việc theo dõi. Do đó, liệu bạn có thể mô tả vắn tắt bạn thực hiện những gì trong chương trình của bạn hay không? Quan trọng nhất là phần thực hiện lấy mẫu và lọc tín hiệu: Bạn lấy mẫu toàn bộ một chu kỳ ngõ vào rồi mới lọc và xử lý hay là thực hiện lọc và xử lý sau mỗi lần lấy mẫu ngõ vào? Dựa vào chú thích của bạn, tôi cho là tần số lấy mẫu và chuyển đổi ADC là 320 kHz (do Timer3 tạo ra). Và với mỗi ngắt ADC, bạn đều bật cờ doFilterFlag. Khi cờ doFilterFlag được bật, bạn thực hiện một loạt các thao tác tính toán và hiển thị. Trong một lần xử lý cờ doFilterFlag, bạn có 3 phép nhân float, 1 phép chia float, 1 lần gọi hàm sqrt(), 1 lần gọi hàm atan2(), cùng với 1 loạt thao tác hiển thị ra LCD. Với tần số lấy mẫu và chuyển đổi ADC là 320 kHz, bạn sẽ bật cờ doFilterFlag mỗi 3.125 us. Liệu 3.125 us (khoảng 94 chu kỳ máy khi dsPIC30F4011 chạy ở 30 MIPS) có đủ cho một loạt các thao tác vừa kể trên hay không? Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|