Ai tốt bụng test thêm giùm đi hoặc có cách nào test chuyên nghiệp hơn ko?
Thông báo
Collapse
No announcement yet.
Hobby project ... FFT/IFFT
Collapse
X
-
Jeff kỳ này viết systemC hết xẩy rồi. Khi nào xét nghiệm xong ở floating point model rồi thì dùng systemC data type để chuyển qua bit accurate model nhe.
Jeff thử dùng header file để làm typedef thì sau này chuyển qua data type khác sẽ dễ dàng hơn. Ví dụ
// typedef.h
#ifndef BIT_ACCURATE
typedef float my_data_t;
#else
typedef sc_fixed<64,32> my_data_t;
#endif
Dùng my_data_t ở những chỗ dùng float. Thêm typedef nếu cần.
Chúc thành công
TonyLast edited by tonyvandinh; 25-05-2010, 07:28.
Comment
-
Nguyên văn bởi tonyvandinh Xem bài viếtJeff kỳ này viết systemC hết xẩy rồi. Khi nào xét nghiệm xong ở floating point model rồi thì dùng systemC data type để chuyển qua bit accurate model nhe.
Jeff thử dùng header file để làm typedef thì sau này chuyển qua data type khác sẽ dễ dàng hơn. Ví dụ
// typedef.h
#ifndef BIT_ACCURATE
typedef float my_data_t;
#else
typedef sc_fixed<64,32> my_data_t;
#endif
Dùng my_data_t ở những chỗ dùng float. Thêm typedef nếu cần.
Chúc thành công
Tony
Uhm, okie a. Em đang tính coi cái phần fixed-point này chứ viết kiểu integer hơi mệt. Thanks.
Comment
-
-
Đã chuyển sang mô phỏng với Fixed-point
Phương pháp kiểm tra và so sánh kết quả khi thay đổi độ rộng của input (bitwidth):
- Dùng Matlab tạo 1 chuỗi số nguyên random từ 0 tới 3, cái này dùng làm data, dùng hàm qammod để tạo số phức biểu diễn data ở dạng constellation:
X(k) = a+ bi, a, b = +/-1
- Dùng Matlab tạo ifft từ chuỗi X(k) ... W=ifft(x) ... rồi in mảng W ra file.
- Khi dùng SystemC chạy mô phỏng FFT, output sẽ được mảng Y, đem Y so sánh với mảng ban đầu X.
- Sai số giữa Y và X được đánh giá bằng thông số MER (modulation error ratio), trong đó:
ERROR = \sum_{}^{k} |Y(k)-X(k)|^2
SIGPOW=mean(|X(k)|^2)
MER = 10log10(SIGPOW/ERROR)
Kết quả:
Với 16bit twiddle factor:
Input Bit MER(dB)
8 | 27.38
9 | 33.40
10 | 39.21
11 | 45.14
12 | 51.16
13 | 57.22
14 | 63.24
Sai số này là do quá trính tính toán bằng số fixed-point (quantization noise)... Kết quả này khá khớp với công thức: "thêm 1 bit sẽ tảng thêm khoảng 6dB "Last edited by jefflieu; 05-06-2010, 02:23.
Comment
-
Jeff thử "profile" mấy variables mà chuyển từ floating to fixed point để xem sai số ở chỗ nào. Để profile cho một variable, thì chạy simulation rồi dùng printf để viết tất cả giá trị ra bài. Sau đó dùng excel để sort là sẽ biết minimum và maximum và từ đó có thể quyết đoán độ dài (bit width, cho nguyên và phân số, etc ), . Khi chuyển qua fixed point, cũng nên để ý tới "overflow" mode (by default, thường ở mode wrap over). Chuyển qua saturation có thể bị ít sai số hơn.Nguyên văn bởi jefflieu Xem bài viếtMắc kẹt chỗ này gần 1 tháng rồi.
Vừa bận vừa bí thiết kế chỗ Block Floating Point.
Haiz. Ai có cao kiến gì hok?
Chúc Jeff thành công.
Comment
-
Em chuyển qua fixed-point rồi và tăng bitwidth lên sau mỗi lần tính ... nên ít khả năng overflow.Nguyên văn bởi tonyvandinh Xem bài viếtJeff thử "profile" mấy variables mà chuyển từ floating to fixed point để xem sai số ở chỗ nào. Để profile cho một variable, thì chạy simulation rồi dùng printf để viết tất cả giá trị ra bài. Sau đó dùng excel để sort là sẽ biết minimum và maximum và từ đó có thể quyết đoán độ dài (bit width, cho nguyên và phân số, etc ), .
Nhưng nếu tăng bitwidth lên như vậy sẽ mất nhiều memory bit.
Phương pháp block-floating-point là dùng fixed point + một số gọi là exponent (khác biệt với dùng số float là, số exponent này được dùng chung cho 1 stage, tức là mọi số sẽ được scale với cùng 1 số exponent).
Vấn đề là làm sao biết được max, min trong lúc chạy (run-time) để scale cho phù hợp.
Oke, noted.Khi chuyển qua fixed point, cũng nên để ý tới "overflow" mode (by default, thường ở mode wrap over). Chuyển qua saturation có thể bị ít sai số hơn.
Comment
-
Như đã đề cập trước, nếu in (dùng fprintf) tất cả giá trị trong khi chạy simulation (run time) và khi variable còn ở float rồi dùng excel để xếp thứ tự (sorting) thì sẽ biết được min và max trong testcase đó.Nguyên văn bởi jefflieu Xem bài viếtVấn đề là làm sao biết được max, min trong lúc chạy (run-time) để scale cho phù hợp.
Comment
-
Như vậy thì làm sao chạy real-time?Nguyên văn bởi tonyvandinh Xem bài viếtNhư đã đề cập trước, nếu in (dùng fprintf) tất cả giá trị trong khi chạy simulation (run time) và khi variable còn ở float rồi dùng excel để xếp thứ tự (sorting) thì sẽ biết được min và max trong testcase đó.
Comment
Về tác giả
Collapse
Bài viết mới nhất
Collapse
-
bởi hayarNăm 2026 việc chọn laptop gaming chủ yếu vẫn là cân bằng vì giá cả và phần cứng thay đổi liên tục, nên tập trung vào GPU ổn, tản nhiệt tốt và hiệu năng thực tế sẽ quan trọng hơn việc chạy theo cấu hình cao nhất, giống như trong nulls brawl, chơi hay hơn khi biết cách tối ưu và chọn chiến...
-
Channel: Đánh giá sản phẩm DTVN
Hôm qua, 21:23 -
-
bởi theidiotcatDưới đây là một số gợi ý để các bạn sinh viên chọn được chiếc laptop phù hợp với nhu cầu, ngân sách và ngành học trong bối cảnh giá linh kiện leo thang kéo theo mức giá laptop liên tục tăng cao.
Bước vào mùa tựu trường năm...-
Channel: Đánh giá sản phẩm DTVN
30-06-2026, 11:26 -
-
bởi theidiotcatAMD Ryzen 9 9950X bước sang năm 2026 vẫn là một trong những bộ vi xử lý desktop mạnh mẽ nhất dành cho người dùng phổ thông cao cấp. Dù đã ra mắt từ thế hệ Zen 5 đầu tiên của dòng Ryzen 9000, con chip 16 nhân 32 luồng này vẫn giữ được sức...
-
Channel: Đánh giá sản phẩm DTVN
29-06-2026, 13:58 -
-
bởi theidiotcatTrong thị trường CPU năm 2026, khi các dòng vi xử lý đời mới liên tục ra mắt với những thông số kỹ thuật hào nhoáng, AMD Ryzen 5 7600X vẫn là một cái tên khiến nhiều game thủ và người dùng phổ thông phải cân nhắc kỹ lưỡng. Sau gần hai...
-
Channel: Đánh giá sản phẩm DTVN
29-06-2026, 13:42 -
-
bởi theidiotcatTrong bối cảnh giá linh kiện tăng cao, hiện tại mức giá laptop đã tăng đáng kể so với thời điểm trước cơn sốt AI. Chính vì vậy để lựa chọn được một chiếc laptop đáp ứng tốt nhu cầu vừa học vừa giải trí các bạn sinh viên cần...
-
Channel: Đánh giá sản phẩm DTVN
29-06-2026, 13:33 -
-
bởi theidiotcatViệc lựa chọn một chiếc laptop gaming phù hợp với nhu cầu, ngân sách chưa bao giờ là dễ dàng. Và điều đó càng khó hơn trong năm 2026 khi mà mức giá liên tục tăng.
Nếu bạn chưa biết nên chọn một chiếc laptop gaming như thế nào...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:29 -
-
bởi theidiotcatVới mức ngân sách 20 - 30 triệu đồng trong năm 2026, các bạn sinh viên và dân văn phòng có thể tìm thấy nhiều lựa chọn cao cấp, mạnh mẽ, pin “trâu”, đặc biệt là các mẫu laptop AI hỗ trợ cho học tập và làm việc.
Trong phân...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:25 -
-
bởi theidiotcatDưới đây là một số mẫu laptop nổi bật trong phân khúc dưới 20 triệu giúp các bạn văn phòng, sinh viên và đặc biệt là tân sinh viên có thể dễ dàng lựa chọn được mẫu laptop phù hợp với nhu cầu và ngân sách của mình.
Thị...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:07 -
-
bởi theidiotcatViệc chọn mua một bộ máy tính phục vụ cho các nhu cầu làm việc văn phòng và sử dụng cơ bản hàng ngày đang trở nên dễ dàng và tiết kiệm hơn bao giờ hết. Thay vì phải đau đầu trích ngân sách để mua cả vi xử lý lẫn card đồ họa rời...
-
Channel: Đánh giá sản phẩm DTVN
25-06-2026, 11:23 -

...
Comment