THÍ NGHIỆM DSP
BÀI 1 - FIR
Các PP thiết kế bộ lọc FIR:
- Equiripple
- Least squares
- Windows
Câu lệnh để làm multiband:
f=[0 0.1 0.12 0.18 0.2 0.3 0.32 0.38 0.4 1];
m=[0 0 1 1 0 0 1 1 0 0 ];
n=63;
cof=remez(n-1,f,m);
[h w]=freqz(cof,1,256);
plot(5000*f,m);
figure;
plot(w/pi , abs(h));
Đối với IIR, đổi dòng remez thành:
[num,den]=yulewalk(n-1,f,m);
Bậc bộ lọc là N thì chiều dài đáp ứng xung là N-1.
Hệ số nhân 2^15:
cof=round(lp2500.tf.num*2^15);
Nếu cần vẽ FFT, địa chỉ đầu là h.
BÀI 2 - IIR
Các PP thiết kế bộ lọc IIR:
-Butterworth (không có gợn)
-Chebyshev1 (gợn trên cao)
-Chebyshev2 (gợn ở dưới)
-Elliptic (gợn cả 2 phía)
Câu lệnh để chuyển về dạng sos:
[z,p,k]=tf2zp(X.tf.num, X.tf.den);
sos= zp2sos(z,p,k);
sos= sos * 2^15;
Chú ý 3 column đầu của sos ghi vào mảng A của CCS, 2 column cuối ghi vào mảng B.
Tạo 2 tone:
-y = Ay(n-1) - y(n-2) = sin(nwT)
-A = 2cos(wT)
-Mảng y[3]=(y(0) , y(-1), y(-2) ) tính bằng sinnwT
- Nhớ nhân cho 2^14
- Các hệ số mẫu:
0,-15137,-11585; 12540 (1.5khz)
0,-16384,0; 0 (2khz)
-Vẽ FFT địa chỉ là sinegen_buffer.
Tạo 1 tone:
-y = Ay(n-1) - y(n-2) + Cx(n-1)= sinnwT
- A=2cos(nwT); C=sin(nwT); các y(n) tính bằng công thức sin(nwT).
BÀI 3 – THÍCH NGHI
Chú ý bài lọc nhiễu:
-Sau khi edit file .m cần cho Run để tạo file lại
Vị trí của GEL: Vào file>LoadGel nạp out_type.gel.
Sau đó: GEL>Output signal>Output
-Bài nhiễu: 1=TH sai lệch, 2=mong muốn.
-Bài thích nghi: 1=thích nghi, 2=cố định.
BÀI 4 – ĐIỀU CHẾ PAM, QPSK
PAM:
- 7FFF -> -8000
- Để lấy giá trị số âm nhớ x(-1).
-Vẽ hình Graph CCS nhớ 32bit có dấu, nhớ chọn Datasize, Framesize… địa chỉ đầu là out_buffer.
-Sample dễ thấy là 0x569C.
PSK:
-Mẫu dễ thấy 0x0F0F và 0x1EDA
-Mảng array đúng dạng greycode với 00=00
GÓC DIBITS 4 ĐIỂM SIN
0 00 0 1 0 -1
270 01 -1 0 1 0
90 10 1 0 -1 0
180 11 0 -1 0 1