Xử LÝ SỐ TÍn hiệU


Ví dụ 2: Tạo tín hiệu sine và vẽ với CCS



tải về 3.7 Mb.
Chế độ xem pdf
trang15/74
Chuyển đổi dữ liệu29.10.2022
Kích3.7 Mb.
#53684
1   ...   11   12   13   14   15   16   17   18   ...   74
TN DSP-2015-01-18-SinhVien (1)

Ví dụ 2: Tạo tín hiệu sine và vẽ với CCS 
Ví dụ này cũng tạo ra một tín hiệu sine với 8 điểm như trong ví dụ 1 nhưng nó minh họa khả 
năng vẽ dạng sóng trong miền thời gian và miền tần số của CCS. Chương trình chính 
sine8_buf.c có nội dung như sau: 
//sine8_buf Sine generation. Output buffer plotted within CCS 
#include "dsk6713_aic23.h" //codec-DSK support file 
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling rate 
int loop = 0; //table index 
short gain = 10; //gain factor 
short sine_table[8]={0,707,1000,707,0,-707,-1000,-707}; 
short out_buffer[256]; //output buffer 
const short BUFFERLENGTH = 256; //size of output buffer 
int i = 0; //for buffer count 
interrupt void c_int11() //interrupt service routine 

output_sample(sine_table[loop]*gain); //output sine values 
out_buffer[i] = sine_table[loop]*gain; //output to buffer 
i++; //increment buffer count 
if(i==BUFFERLENGTH) i=0; //if @ bottom reinit count 
if (++loop > 7) loop = 0; //check for end of table 
return; //return from interrupt 

void main() 

comm_intr(); //init DSK, codec, McBSP 
while(1); //infinite loop 


Bộ Môn Viễn Thông-ĐH Bách Khoa TpHCM
TÀI LIỆU THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU 
11 
}
Trong chương trình này, một vùng đệm out_buffer có kích thước 256 được sử dụng để lưu 
lại các dữ liệu xuất ra. 
Trong hàm maincomm_intr được gọi. Hàm này nằm trong c6713dskinit.c để hỗ trợ chương 
trình có dùng ngắt. Phát biểu while(1) trong hàm main tạo một vòng lặp vô hạn để chờ ngắt 
xảy ra. Khi có xung lấy mẫu, ngắt 11 xảy ra và trình phục vụ ngắt (ISR – interrupt service 
routine) c_int11 được gọi. Địa chỉ của ISR này được xác định trong tập tin vectors_intr.asm 
với một chỉ dẫn rẽ nhánh đến địa chỉ này, sử dụng vector ngắt INT11. 
Trong ISR này, hàm output_sample, chứa trong tập tin c6713dskinit.c, được gọi để xuất ra 
dữ liệu đầu tiên trong sine_table. Chỉ số loop được tăng cho đến hết bảng rồi lặp lại từ 0. 
Một bộ đệm ra được tạo để giữ 256 (xác định bởi BUFFERLENGTH) mẫu tín hiệu sine 
xuất ra. 

tải về 3.7 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   11   12   13   14   15   16   17   18   ...   74




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương