Professional Documents
Culture Documents
Bai N P - Long
Bai N P - Long
Bài 1: - Tạo 100 mẫu tín hiệu điện áp có biểu thức: . Biết ,
tần số rời rạc hóa Fs=1000 (Hz).
- Sử dụng các lệnh plot, stem để vẽ đồ thị tín hiệu nêu trên, trên đồ thị có ghi chú như hình 4, kèm theo
tên học viên. Học viên tự chọn số lượng mẫu để hiển thị, sao cho hình dễ quan sát.
A=10;
n=1:100;
F=100;
Fs=1000;
anfa=0.001;
s=A*exp((-anfa)*n/Fs).*cos(2*pi*F*n/Fs);
plot(s);
title('tin hieu hinh sin A=10, Fs=1000(Hz) :Nguyen Manh Long’);
xlabel('thoi gian(s)');
ylabel('volt');
A=10;
n=1:100;
F=100;
Fs=1000;
anfa=0.001;
s=A*exp((-anfa)*n/Fs).*cos(2*pi*F*n/Fs);
plot(n/Fs, s);
title('tin hieu hinh sin A=10(v), Fs=1000(Hz) : Nguyen Manh Long’);
xlabel('thoi gian(s)');
ylabel('volt');
A=10;
n=1:100;
F=100;
Fs=1000;
anfa=0.001;
s=A*exp((-anfa)*n/Fs).*cos(2*pi*F*n/Fs);
stem(s);
title('tin hieu hinh sin A=10, Fs=1000(Hz) : Nguyen Manh Long’);
xlabel('thoi gian(s)');
ylabel('volt');
Bài tập 2: - Tạo 100 mẫu tín hiệu điện áp có biểu thức: . Biết ,
tần số rời rạc hóa Fs=1000 (Hz).
- Sử dụng các lệnh plot, stem để vẽ đồ thị tín hiệu nêu trên, trên đồ thị có ghi chú như hình 4, kèm theo
tên học viên. Học viên tự chọn số lượng mẫu để hiển thị, sao cho hình dễ quan sát.
A=10;
n=1:100;
F=100;
Fs=1000;
anfa=0.001;
s=A*exp((-anfa)*n/Fs).*sin(2*pi*F*n/Fs);
plot(s);
title('tin hieu hinh sin A=10, Fs=1000(Hz) : Nguyen Manh Long’);
xlabel('thoi gian(s)');
ylabel('volt');
A=10;
n=1:100;
F=100;
Fs=1000;
anfa=0.001;
s=A*exp((-anfa)*n/Fs).*sin(2*pi*F*n/Fs);
plot(n/Fs,s);
title('tin hieu hinh sin A=10, Fs=1000(Hz) : Nguyen Manh Long’);
xlabel('thoi gian(s)');
ylabel('volt');
A=10;
n=1:100;
F=100;
Fs=1000;
anfa=0.001;
s=A*exp((-anfa)*n/Fs).*sin(2*pi*F*n/Fs);
stem(s);
title('tin hieu hinh sin A=10, Fs=1000(Hz) : Nguyen Manh Long’);
xlabel('thoi gian(s)');
ylabel('volt');
Bài 3:
- Tạo 100 mẫu tín hiệu điện áp có biểu thức: . Biết
, tần số rời rạc hóa Fs=1000 (Hz).
- Sử dụng các lệnh plot, stem để vẽ đồ thị tín hiệu nêu trên, trên đồ thị có ghi chú như hình 4, kèm theo
tên học viên ở phần tiêu đề (title). Học viên tự chọn số lượng mẫu để hiển thị, sao cho hình dễ quan sát.
A=10;
n=1:100;
Fs=1000;
anfa=0.001;
F=100+10*cos(2*pi*5*n/Fs);
s=A*cos(2*pi*F.*n/Fs);
plot(s);
title('tin hieu hinh sin A=10, Fs=1000(Hz) : Nguyen Manh Long’);
xlabel('thoi gian(s)');
ylabel('volt');
A=10;
n=1:100;
Fs=1000;
anfa=0.001;
F=100+10*cos(2*pi*5*n/Fs);
s=A*cos(2*pi*F.*n/Fs);
plot(n/Fs,s);
title('tin hieu hinh sin A=10, Fs=1000(Hz) : Nguyen Manh Long’);
xlabel('thoi gian(s)');
ylabel('volt');
A=10;
n=1:100;
Fs=1000;
anfa=0.001;
F=100+10*cos(2*pi*5*n/Fs);
s=A*cos(2*pi*F.*n/Fs);
stem(s);
title('tin hieu hinh sin A=10, Fs=1000(Hz) : Nguyen Manh Long’);
xlabel('thoi gian(s)');
ylabel('volt');
Bài 4: - Tạo 100 mẫu tín hiệu điện áp có biểu thức: . Biết , tần số rời rạc hóa Fs=1000 (Hz).
- Sử dụng các lệnh plot, stem để vẽ đồ thị tín hiệu nêu trên, trên đồ thị có ghi chú như hình 4,
kèm theo tên học viên ở phần tiêu đề (title). Học viên tự chọn số lượng mẫu để hiển thị, sao cho
hình dễ quan sát.
A=10;
n=1:100;
Fs=1000;
anfa=0.001;
F=100+10*sin(2*pi*5*n/Fs);
s=A*cos(2*pi*F.*n/Fs);
plot(s);
title('tin hieu hinh sin A=10, Fs=1000(Hz) : Nguyen Manh Long’);
xlabel('thoi gian(s)');
ylabel('volt');
A=10;
n=1:100;
Fs=1000;
anfa=0.001;
F=100+10*sin(2*pi*5*n/Fs);
s=A*cos(2*pi*F.*n/Fs);
plot(n/Fs,s);
title('tin hieu hinh sin A=10, Fs=1000(Hz) : Nguyen Manh Long’);
xlabel('thoi gian(s)');
ylabel('volt');
A=10;
n=1:100;
Fs=1000;
anfa=0.001;
F=100+10*sin(2*pi*5*n/Fs);
s=A*cos(2*pi*F.*n/Fs);
stem(s);
title('tin hieu hinh sin A=10, Fs=1000(Hz) : Nguyen Manh Long’);
xlabel('thoi gian(s)');
ylabel('volt');
Bài tập thực hành 2
Bài 1 Mỗi học viên lấy ngày, tháng, năm sinh của mình để tạo ra dãy rời rạc theo qui tắc sau:
Năm – tháng - ngày sinh. Sau đó sử dụng DFT phân tích phổ cho dãy này. Vẽ các đồ thị
và ghi chú đầy đủ theo hướng dẫn, bao gồm cả tên học viên.
Học viên Nguyễn mạnh Long sinh năm 1989, tháng 06, ngày 20 thì dãy rời rạc là
x= [1 9 8 9 0 6 2 0]
x=[1 9 8 9 0 6 2 0];
X=fft(x);
pho_bien_do=abs(X);
stem(pho_bien_do);
x=[1 9 8 9 0 6 2 0];
X=fft(x);
f=2*pi/8*[0:1:7];
pho_pha=angle(X);
stem(f,pho_pha);
title('Do thi pho pha, truc hoanh tan so chuon hoa__ Nguyen Manh Long’);
Bài 2:
- Hãy nêu rõ tác dụng và ý nghĩa của các dòng lệnh phân tích phổ cho tín hiệu thoại. Vì sao lại chỉ
cần lấy một nửa số mẫu?
- Mỗi học viên tự tạo một file .wav , sau đó thực hiện phân tích phổ cho file này. Vẽ đồ thị phổ
biên độ theo hướng dẫn. Nội dung file: “ Tên tôi là…….. . Lớp…….”.
-Tác dụng và ý nghĩa của dòng lệnh phân tích phổ cho tín hiệu thoại
>> N=length(s); %Độ dài của dãy tín hiệu rời rạc hóa.
[s,fs]=wavread('Long');
N=length(s);
M=round(N/2);
S=fft(s);
f=fs*(1:M)/N;
pho_bien_do= abs(S);
pho=pho_bien_do(1:M);
plot(f,pho);
Đồ thị
Từ hình ta nhận thấy phổ của file âm thanh này tập trung chủ yếu ở khu vực từ 300 Hz tới 2000
Hz., tần số cực đại của phổ khoảng 3500 Hz.
Fir1 thực hiện theo phương pháp cổ điển của giai đoạn cửa sổ tuyến tính kỹ thuật số thiết
kế bộ lọc FIR [1]. Nó thiết kế các bộ lọc trong dải thông thấp tiêu chuẩn, dải thông cao, dải
thông, và cấu hình dải chặn. Theo mặc định các bộ lọc được chuẩn hoá để đáp ứng cường độ của
bộ lọc tại các tần số trung tâm của dải thông là 0 dB.
Các cú pháp:
b = fir1(n,Wn)
b = fir1(n,Wn,'ftype')
b = fir1(n,Wn,window)
b = fir1(n,Wn,'ftype',window)
b = fir1(...,'normalization')
a/ Lệnh B = FIR1(N,Wn)
lệnh này cho phép tổng hợp lọc FIR thông thấp, cửa sổ mặc định là Hamming. Với N là bậc của mạch
lọc, Wn là tần số cắt chuẩn hóa, 0 < Wn < 1. Giá trị 1 tương ứng với một nửa tần số rời rạc hóa, đây là
điểm khác biệt với lý thuyết. Tần số cắt tương ứng với đặc tính biên độ tần số giảm xuống -6dB.
Nếu WN là một vector hai yếu tố, WN = [w1 W2], fir1 trả về một bộ lọc với dải thông BandPass w1
<<W2. Nếu WN là một vector đa yếu tố, WN = [w1 W2 w3 W4 W5 ... ] WN, fir1 để trả về một n lọc với
nhiều băng băng 0 <<w1, w1 <?? <W2, ..., <WN? <1. Theo mặc định, các bộ lọc được thu nhỏ để các
trung tâm của dải thông đầu tiên có cường độ chính xác 1 sau khi cửa sổ.
Ví dụ: B= fir1(100,0.5)
Sẽ tổng hợp lọc FIR thông thấp, cửa sổ Hamming có bậc 100, tần số cắt chuẩn hóa bằng 0.5. Như vậy
lệnh này lấy ra vector B có 101 hệ số lọc.
b/ Lệnh B = FIR1(N,Wn,'ftype') : xác định một loại bộ lọc. Với ftype là các kiểu:
'high' cho phép thiết kế bộ lọc thông cao với WN tần số cắt.
'Stop' cho phép thiết kế một bộ lọc dải chặn, nếu WN = [w1 W2]. vớiW1 < W < W2, thì lệnh B =
FIR1(N,Wn) sẽ thiết kế lọc thông dải. Các tần số cắt là W1, W2.
"DC-1" để làm cho các dải đầu tiên của dãy băng một bộ lọc một dải thông.
'DC-0 "để làm cho các dải tần đầu tiên của dãy băng một bộ lọc một dải chặn.
fir1 luôn luôn sử dụng một bộ lọc ngay cả bộ lọc dải thông cao và cấu hình dải chặn. Điều này là do các
bộ lọc đơn lẻ, đáp ứng tần số của tần số Nyquist là 0, mà là không thích hợp cho dải thông cao và bộ lọc
dải chặn. Nếu ta chỉ định một giá trị n lẻ, fir1 gia tăng bằng 1.
c/ b = fir1 (n, WN, window) sử dụng các cửa sổ theo quy định tại cửa sổ vector cột cho thiết kế. Cửa sổ
vector phải la n +1 phần tử dài. Nếu cửa sổ không có quy định, fir1 sử dụng một cửa sổ Hamming có độ
dài n+1
b = fir1 (n, WN, 'ftype', cửa sổ) chấp nhận cả hai kiểu thông số ‘ftype 'và các thông số cửa sổ.
b = fir1 (...,' normalization') xác định có hoặc không có biên độ lọc là bình thường. Chuỗi 'bình thường'
có thể là sau đây:
'scale’(mặc định): Chuẩn hóa các bộ lọc để đáp ứng cường độ của bộ lọc tại các tần số trung tâm của
dải thông là 0 dB.
'Noscale': Không bình thường hóa các bộ lọc.
Việc chậm trễ nhóm FIR các bộ lọc được thiết kế bởi fir1 là n / 2.
Thuật toán
fir1 sử dụng phương pháp thiết kế cửa sổ của bộ lọc FIR [1]. Nếu w (n) biểu thị một cửa sổ, nơi mà 1 = n
= N, và đáp ứng xung của bộ lọc lý tưởng là h (n), trong đó h (n) là biến đổi Fourier nghịch đảo của phản
ứng tần số lý tưởng, sau đó các cửa sổ kỹ thuật số hệ số bộ lọc được cho bởi
b(n)=w(n)h(n) 1≤n≤N
Bài 2: Tổng hợp lọc FIR thông cao sử dụng phương pháp cửa sổ, dùng cửa sổ Hamming. Biết bậc của
mạch lọc bằng 50, tần số cắt bằng 2000 Hz. Cho tần số rời rạc hóa bằng 18000 Hz. Khảo sát đặc tính tần
số của mạch lọc đã tổng hợp.
Giải: Tần số chuẩn hóa 1.0 ứng với 18000/2= 9000 Hz. Vậy 2000 Hz ứng với tần số chuẩn hóa
bằng 2/9.
Tìm các hệ số của mạch lọc
>> B= fir1(50,2/9,'high')
B=
Columns 1 through 7
Columns 8 through 14
Columns 15 through 21
Columns 22 through 28
Columns 29 through 35
Columns 36 through 42
Columns 43 through 49
Columns 50 through 51
0.0010 0.0010
Như vậy ta nhận được 51 hệ số lọc. Tuy nhiên độ chính xác chỉ đạt tới 4 chữ số thập phân. Để
tăng độ chính xác biểu diễn, ta gõ vào lệnh
>> B
B=
Columns 1 through 3
0.001004039126333 0.000961427056832 0.000447489694822
Columns 4 through 6
Columns 7 through 9
Columns 10 through 12
Columns 13 through 15
Columns 16 through 18
Columns 19 through 21
Columns 22 through 24
Columns 25 through 27
Columns 28 through 30
Columns 31 through 33
Columns 34 through 36
Columns 37 through 39
Columns 43 through 45
Columns 46 through 48
Columns 49 through 51
Nhận thấy các hệ số lọc được cho với độ chính xác cao hơn nhiều.
>> freqz(B)
BÀI 3:
Tổng hợp lọc FIR thông dải sử dụng phương pháp cửa sổ, dùng cửa sổ Hamming. Biết bậc của
mạch lọc bằng 50, tần số cắt 1 bằng 4000 Hz, tần số cắt 2 bằng 6000 Hz. Cho tần số rời rạc hóa
bằng 18000 Hz. Khảo sát đặc tính tần số của mạch lọc đã tổng hợp.
Giải: Tần số chuẩn hóa 1.0 ứng với 18000/2= 9000 Hz. Vậy 4000 Hz ứng với tần số chuẩn hóa
bằng 4/9; 6000 Hz ứng với tần số chuẩn hóa bằng 2/3.
B=
Columns 1 through 3
Columns 4 through 6
Columns 7 through 9
Columns 10 through 12
Columns 13 through 15
Columns 16 through 18
Columns 19 through 21
Columns 22 through 24
Columns 25 through 27
Columns 31 through 33
Columns 34 through 36
Columns 37 through 39
Columns 40 through 42
Columns 43 through 45
Columns 46 through 48
Columns 49 through 51
>> freqz(B)
Tổng hợp lọc FIR dải chặn sử dụng phương pháp cửa sổ, dùng cửa sổ Hamming. Biết bậc của
mạch lọc bằng 50, tần số cắt 1 bằng 4000 Hz, tần số cắt 2 bằng 6000 Hz. Cho tần số rời rạc hóa
bằng 18000 Hz. Khảo sát đặc tính tần số của mạch lọc đã tổng hợp.
Giải: Tần số chuẩn hóa 1.0 ứng với 18000/2= 9000 Hz. Vậy 4000 Hz ứng với tần số chuẩn hóa
bằng 4/9; 6000 Hz ứng với tần số chuẩn hóa bằng 2/3.
B=
Columns 1 through 3
Columns 4 through 6
Columns 10 through 12
Columns 13 through 15
Columns 16 through 18
Columns 19 through 21
Columns 22 through 24
Columns 25 through 27
Columns 28 through 30
Columns 31 through 33
Columns 34 through 36
Columns 37 through 39
Columns 40 through 42
Columns 43 through 45
-0.000653077973741 -0.000000000000000 0.000407461643637
Columns 46 through 48
Columns 49 through 51
>> freqz(B)