Lập trình Xử lý tín hiệu số theo phơng pháp Fht trên hệ vi xử lý vectơ MC
3.3.1 Thực hiện 3 bớc đầu tiên của FHT 256 điểm
Giả thiết rằng dữ liệu đầu vào đợc đóng gói thành các từ 64 bit. Vì vậy NM6403 xử lý song song trên 8 phần tử dữ liệu (mỗi phần tử trong vectơ dữ liệu đầu vào dài 8 bit). Các kết quả tính toán đợc tích lũy dới dạng các phần tử 16 bit. Và chúng cũng đợc đóng gói thành các từ 64 bit để đa tới 5 bớc tính toán tiếp theo. Nh vậy cứ 4 phần tử kết quả đợc đóng gói thành một từ kiểu long (64 bit).
Trong 3 bớc đầu tiên, sử dụng ma trận Hadamard bậc 8 (8 hàng ì 8 cột). Mỗi phần tử 8 bit của dữ liệu đầu vào đợc nhân với một ô của hàng t- ơng ứng trong ma trận Hadamard này. Các kết quả của phép nhân đợc tích lũy theo từng cột. Việc sử dụng 16 bit cho mỗi phần tử kết quả nhằm tránh tràn dữ liệu. Do đó, độ dài tối thiểu của bộ tích lũy là 16.8 = 128 bit.
Các từ lẻ của kết quả Các từ chẵn của kết quả Hình 3.4. Quá trình chia ma trận Hadamard bậc 8 thành hai ma trận con
Do các kết quả đợc tích lũy theo cột, lu trữ dạng 16 bit mà kích thớc ma trận hoạt động của NM6403 là 64ì64 bit nên ma trận Hadamard bậc 8 đợc chia thành hai ma trận con (hình 3.4). Ma trận thứ nhất để tính toán các từ long có thứ tự chẵn, còn ma trận thứ hai cho tính toán các từ long có thứ tự lẻ của vectơ kết quả. Nh vậy, mỗi ma trận gồm 8.4 = 32 phần tử nên trong mỗi chu kỳ NM6403 thực hiện 32 MAC (Multiplications and Accumulations – phép nhân và tích lũy).
Các tính toán đợc thực hiện theo trình tự sau:
• Nạp ma trận con các trọng số Hadamard thứ nhất vào ma trận hoạt động của bộ xử lý.
• Tính các từ long chẵn của vectơ kết quả. Các kết quả đợc tích lũy trong bộ đệm afifo. Dung lợng của afifo là 32 từ long (64 bit).
• Lu trữ các kết quả tính đợc trong bớc trên vào các vị trí chẵn của mảng kết quả.
• Thực hiện các tính toán cho các từ long lẻ và lu các kết quả vào các vị trí lẻ của mảng kết quả.
Sau đây ta sẽ lần lợt thực hiện lập trình tính toán cho các bớc trên.