>> lookfor log2 log2 - Base 2 logarithm and dissect floating point number.. fi_log2lookup_8_bit_byte - Base-2 logarithm fi_log2lookup_8_bit_byte_example - Implement Fixed-Point Log2 Usin
Trang 1BÁO CÁO TH C HÀNH ỰC HÀNH
Gi ng viên h ảng viên hướng dẫn: ướng dẫn: ng d n: ẫn: Cô Tú Anh.
Nhóm sinh viên th c hi n: ực hiện: ện:
1 Phan Đ c T Kỳ (20174002) ức Tử Kỳ (20174002) ử Kỳ (20174002)
2 Nguy n Vi t H i (20173829) ễn Việt Hải (20173829) ện: ảng viên hướng dẫn:
Trang 3Bài th c hành s ực hiện: ố 1: Làm quen v i ớng dẫn: Matlab
Bài 1 S d ng Matlab đ tính toán các bi u th c: ử dụng Matlab để tính toán các biểu thức: ụng Matlab để tính toán các biểu thức: ể tính toán các biểu thức: ể tính toán các biểu thức: ức:
>> x=1/sqrt(21)+(12^2-2)/(36+log(5))
x =
3.9939
>> y=2;
>> z=x/y+log(x)*log10(y)+x^y
z =
18.3648
Bài 2 S d ng l nh ử dụng Matlab để tính toán các biểu thức: ụng Matlab để tính toán các biểu thức: ệnh lookfor đ tìm ra các l nh th c hi n hàm tính log2( x) , sau đó s ể tính toán các biểu thức: ệnh ực hiện hàm tính log2( x) , sau đó sử ệnh ử dụng Matlab để tính toán các biểu thức:
d ng l nh ụng Matlab để tính toán các biểu thức: ệnh help đ tìm thêm thông tin v hàm này. ể tính toán các biểu thức: ề hàm này.
>> lookfor log2
log2 - Base 2 logarithm and dissect floating point number
fi_log2lookup_8_bit_byte - Base-2 logarithm
fi_log2lookup_8_bit_byte_example - Implement Fixed-Point Log2 Using Lookup Table
log2 Base 2 logarithm and dissect floating point number.
Y = log2(X) is the base 2 logarithm of the elements of X.
[F,E] = log2(X) for each element of the real array X, returns an array F of real numbers, usually in the range 0.5 <= abs(F) < 1, and
an array E of integers, so that X = F .* 2.^E Any zeros in X produce F = 0 and E = 0 This corresponds to the ANSI C function frexp() and the IEEE floating point standard function logb()
See also log, log10, pow2, nextpow2, realmax, realmin
Reference page for log2
Other functions named log2
>> help log2
Y = log2(X) is the base 2 logarithm of the elements of X.
[F,E] = log2(X) for each element of the real array X, returns an array F of real numbers, usually in the range 0.5 <= abs(F) < 1, and
an array E of integers, so that X = F .* 2.^E Any zeros in X produce F = 0 and E = 0 This corresponds to the ANSI C function frexp() and the IEEE floating point standard function logb()
See also log, log10, pow2, nextpow2, realmax, realmin
Reference page for log2
Other functions named log2
Bài 3
1 T o m t véct hàng b t đ u t −10 , k t thúc t i 18, v i bơ hàng bắt đầu từ −10 , kết thúc tại 18, với bước cộng là 4 ắt đầu từ −10 , kết thúc tại 18, với bước cộng là 4 ầu từ −10 , kết thúc tại 18, với bước cộng là 4 ừ −10 , kết thúc tại 18, với bước cộng là 4 ết thúc tại 18, với bước cộng là 4 ới bước cộng là 4 ưới bước cộng là 4 c c ng là 4
>> [-10:4:18]
ans =
-10 -6 -2 2 6 10 14 18
2 T o m t véct c t b t đ u t 6, k t thúc t i −9 , v i bơ hàng bắt đầu từ −10 , kết thúc tại 18, với bước cộng là 4 ắt đầu từ −10 , kết thúc tại 18, với bước cộng là 4 ầu từ −10 , kết thúc tại 18, với bước cộng là 4 ừ −10 , kết thúc tại 18, với bước cộng là 4 ết thúc tại 18, với bước cộng là 4 ới bước cộng là 4 ưới bước cộng là 4 c là −3
Trang 4>> [6:-3:-9].'
ans =
6
3
0
-3
-6
-9
3 T o m t véct hàng b t đ u v i 1, k t thúc t i 90 và có đúng 20 ph n t ơ hàng bắt đầu từ −10 , kết thúc tại 18, với bước cộng là 4 ắt đầu từ −10 , kết thúc tại 18, với bước cộng là 4 ầu từ −10 , kết thúc tại 18, với bước cộng là 4 ới bước cộng là 4 ết thúc tại 18, với bước cộng là 4 ầu từ −10 , kết thúc tại 18, với bước cộng là 4 ử dụng Matlab để tính toán các biểu thức:
>> linspace(1, 90, 20)
ans =
Columns 1 through 10
1.0000 5.6842 10.3684 15.0526 19.7368 24.4211 29.1053 33.7895 38.4737 43.1579
Columns 11 through 20
47.8421 52.5263 57.2105 61.8947 66.5789 71.2632 75.9474 80.6316 85.3158 90.0000
Bài 4:
1 Tạo các ma trận:
>> A=[2 3 7;1 5 6]
A =
2 3 7
1 5 6
>> B=[1 2 3;4 5 6]
B =
1 2 3
4 5 6
>> C=[1+i 2;3 4+i;5 6]
C =
1.0000 + 1.0000i 2.0000 + 0.0000i
3.0000 + 0.0000i 4.0000 + 1.0000i
5.0000 + 0.0000i 6.0000 + 0.0000i
2 Tính A+B, B+2, A−C.' , A.*B và A /B:
>> A+B
ans =
3 5 10
5 10 12
>> B+2
ans =
3 4 5
6 7 8
>> A-C.'
ans =
1.0000 - 1.0000i 0.0000 + 0.0000i 2.0000 + 0.0000i
-1.0000 + 0.0000i 1.0000 - 1.0000i 0.0000 + 0.0000i
>> A.*B
ans =
Trang 52 6 21
4 25 36
>> A./B
ans =
2.0000 1.5000 2.3333
0.2500 1.0000 1.0000
3 Có tồn tại phép A*B , A*B.' không?
>> A*B
Error using *
Inner matrix dimensions must agree
>> A*B.'
ans =
29 65
29 65
4 S d ng các l nh l y giá tr ma tr n c a Matlab tìm các giá tr sau:ử dụng Matlab để tính toán các biểu thức: ụng Matlab để tính toán các biểu thức: ệnh ấy giá trị ma trận của Matlab tìm các giá trị sau: ị ma trận của Matlab tìm các giá trị sau: ận của Matlab tìm các giá trị sau: ủa Matlab tìm các giá trị sau: ị ma trận của Matlab tìm các giá trị sau:
- Ph n t n m hàng th 2 và c t th 3 c a ma tr n A.ầu từ −10 , kết thúc tại 18, với bước cộng là 4 ử dụng Matlab để tính toán các biểu thức: ằm ở hàng thứ 2 và cột thứ 3 của ma trận A ở hàng thứ 2 và cột thứ 3 của ma trận A ức: ức: ủa Matlab tìm các giá trị sau: ận của Matlab tìm các giá trị sau:
>> A(2,3)
ans =
6
- Hàng 2 c a ma tr n B.ủa Matlab tìm các giá trị sau: ận của Matlab tìm các giá trị sau:
>> B(2,:)
ans =
4 5 6
- C t 3 c a ma tr n A.ủa Matlab tìm các giá trị sau: ận của Matlab tìm các giá trị sau:
>> A(:,3)
ans =
7
6
- Các ph n t n m hàng th 2 và c t th 2 và 3 c a ma tr n A.ầu từ −10 , kết thúc tại 18, với bước cộng là 4 ử dụng Matlab để tính toán các biểu thức: ằm ở hàng thứ 2 và cột thứ 3 của ma trận A ở hàng thứ 2 và cột thứ 3 của ma trận A ức: ức: ủa Matlab tìm các giá trị sau: ận của Matlab tìm các giá trị sau:
>> A(2, [2,3])
ans =
5 6
- T o m t ma tr n D có kích thận của Matlab tìm các giá trị sau: ưới bước cộng là 4 c 2×2, c t đ u tiên c a ma tr n D là c t th 2 c a maầu từ −10 , kết thúc tại 18, với bước cộng là 4 ủa Matlab tìm các giá trị sau: ận của Matlab tìm các giá trị sau: ức: ủa Matlab tìm các giá trị sau:
tr n A, và c t th 2 c a ma tr n D là c t th 3 c a ma tr n B.ận của Matlab tìm các giá trị sau: ức: ủa Matlab tìm các giá trị sau: ận của Matlab tìm các giá trị sau: ức: ủa Matlab tìm các giá trị sau: ận của Matlab tìm các giá trị sau:
>> D=[A(:,2),B(:,3)]
D =
3 3
5 6
5 S d ng các l nh ma tr n logic đ xác đ nh v trí các ph n t mà ma tr n A và ma tr n Bử dụng Matlab để tính toán các biểu thức: ụng Matlab để tính toán các biểu thức: ệnh ận của Matlab tìm các giá trị sau: ể tính toán các biểu thức: ị ma trận của Matlab tìm các giá trị sau: ị ma trận của Matlab tìm các giá trị sau: ầu từ −10 , kết thúc tại 18, với bước cộng là 4 ử dụng Matlab để tính toán các biểu thức: ận của Matlab tìm các giá trị sau: ận của Matlab tìm các giá trị sau:
có chung giá tr ị ma trận của Matlab tìm các giá trị sau:
>> logic_mat = (A==B)
logic_mat =
2×3 logical array
0 0 0
0 1 1
6 Tìm các phần tử nhỏ hơn hoặc bằng 3 của ma trận B
>> B(B<=3).'
ans =
Trang 61 2 3
Bài 5:
1 Vẽ phần thực, phần ảo và biên độ của hàm số sau trong cùng một hình vẽ Sử dụng các lệnh xlabel, ylabel, legend, grid, và cho các đường cong có màu sắc và kiểu đường thẳng khác nhau Sử dụng phông chữ 14
>> x = linspace(0, 10, 500);
>> y1=exp(-x).*cos(2*pi*x);
>> y2=exp(-x).*sin(2*pi*x);
>> y3=exp(-x);
>> y4=-exp(-x);
>> plot(x, y1, 'k-', 'linewidth', 1);
>> hold on
>> plot(x, y2, 'r ', 'linewidth', 1);
>> plot(x, y3, 'linewidth', 1);
>> plot(x, y4, 'b-', 'linewidth', 1);
>> legend('Re(S(t))','Im(S(t))','exp(-t)');
>> grid on;
>> legend('Re(S(t))','Im(S(t))','Amplitude');
>> xlabel('t');
>> ylabel('S(t)');
>> set(gca,'fontsize',14);
>> title('S(t)=exp(-t)*exp(j*2pi*t)');
2 Căn chỉnh đồ thị trên
với x từ 0 đến 5, y từ
−2 đến 2
>> axis([0 5 -2 2]);
Trang 7Bài 6 Viết hàm tính độ lệch chuẩn của một véctơ, với xi là phần tử thứ i
của véctơ đó, ´x là giá trị trung bình của véctơ.
function y = do_lech_chuan_vecto(x)
% tinh do lech chuan vecto
N = length(x);
X = sum(x)/N;
y=sqrt(sum((x-X).^2)/N)
Sử dụng hàm trên, tính độ lệch chuẩn của véctơ sau đây: x = [0, 3, 1, 5, -2, -4, 3,
2, -5]
>> x = [0, 3, 1, 5, -2, -4, 3, 2, -5];
>> y=do_lech_chuan_vecto(x)
y =
3.1972
Bài 7 Vi t m t hàm nh n véct x làm đ u vào Đ u ra y là m t véct cùng kích th ết thúc tại 18, với bước cộng là 4 ận của Matlab tìm các giá trị sau: ơ hàng bắt đầu từ −10 , kết thúc tại 18, với bước cộng là 4 ầu từ −10 , kết thúc tại 18, với bước cộng là 4 ầu từ −10 , kết thúc tại 18, với bước cộng là 4 ơ hàng bắt đầu từ −10 , kết thúc tại 18, với bước cộng là 4 ưới bước cộng là 4 c
v i x ới bước cộng là 4
function [y]= h(x)
y=x;
y(y>0)=sqrt(y(y>0));
y(y==0)=0;
y(y<0)=y(y<0).^2.*(-1);
end
Thử hàm vừa viết với véctơ x = −3 : 3
>> h(x)
Hay nhap vecto x:[-3:3]
x =
-3 -2 -1 0 1 2 3
Vecto y can tim la:
ans =
-9.0000 -4.0000 -1.0000 0 1.0000 1.4142 1.7321
Bài 8: Cho chu i: ỗi: x1=0 ,xn= ¿ 2 x3 ∕ 2 n−1+ 1
Sử dụng cấu trúc lặp để tìm số n nhỏ nhất thỏa mãn xn>100
>> x=0;
>> n=1;
>> while x<=100
x=2*x^(3/2)+1;
n=n+1;
end
>> n
n =
6
Trang 8Bài th c hành s 2 ực hiện: ố : TÍN HI U ỆU & HỆ THỐNG LIÊN T C ỤC
I.Hàm b ướng dẫn: nh y c ảng viên hướng dẫn: đ n ơn vị(unit step) và hàm d c ố đ n ơn vị(ramp):
- Hàm ustep:
function y = ustep(t,ad)
N = length(t);
y = zeros(1,N);
y(i)=1;
end
- Hàm uramp:
function y = uramp(t,ad)
N = length(t);
y = zeros(1,N);
y(i) = t(i)+ad;
end
Bài 4: Sử dụng Matlab để tính toán các biểu thức: d ng ụng Matlab để tính toán các biểu thức: hai hàm trên để tính toán các biểu thức: t o ra các tín hi u ệnh có đồ thị ma trận của Matlab tìm các giá trị sau: theo yêu c u ầu từ −10 , kết thúc tại 18, với bước cộng là 4
a
>> t=linspace(-10,10,100);
>> y=0.5*uramp(-abs(t),4);
>> plot(t,y)
>> axis([-10 10 -0.5 2])
b
>> t=linspace(-10,10,5000);
>>
y=0.5*uramp(-abs(t),4)+1->> plot(t,y)
Trang 9II Tín hi u ện: ch n ẵn , lẻ
Bài 1: Xây d ng hàm s tr v k t qu là ph n ch n và ph n l c a m t tín hi u nh ực hiện hàm tính log2( x) , sau đó sử ố trả về kết quả là phần chẵn và phần lẻ của một tín hiệu như ả về kết quả là phần chẵn và phần lẻ của một tín hiệu như ề hàm này ết thúc tại 18, với bước cộng là 4 ả về kết quả là phần chẵn và phần lẻ của một tín hiệu như ầu từ −10 , kết thúc tại 18, với bước cộng là 4 ẵn và phần lẻ của một tín hiệu như ầu từ −10 , kết thúc tại 18, với bước cộng là 4 ẻ của một tín hiệu như ủa Matlab tìm các giá trị sau: ệnh ư sau:
function [ye,yo]=evenodd(y)
yr=fliplr(y);
ye=0.5*(y+yr);
yo=0.5*(y-yr);
end
Bài 2: S d ng hàm s bài m t tìm ph n ch n l c a các tín hi u liên t c và vẽ đ th ử dụng Matlab để tính toán các biểu thức: ụng Matlab để tính toán các biểu thức: ố trả về kết quả là phần chẵn và phần lẻ của một tín hiệu như ở hàng thứ 2 và cột thứ 3 của ma trận A ầu từ −10 , kết thúc tại 18, với bước cộng là 4 ẵn và phần lẻ của một tín hiệu như ẻ của một tín hiệu như ủa Matlab tìm các giá trị sau: ệnh ụng Matlab để tính toán các biểu thức: ồ ị ma trận của Matlab tìm các giá trị sau:
c a tín hi u chính cũng nh ph n ch n và l c a nó trong cùng m t đ th s d ng các ủa Matlab tìm các giá trị sau: ệnh ư ầu từ −10 , kết thúc tại 18, với bước cộng là 4 ẵn và phần lẻ của một tín hiệu như ẻ của một tín hiệu như ủa Matlab tìm các giá trị sau: ồ ị ma trận của Matlab tìm các giá trị sau: ử dụng Matlab để tính toán các biểu thức: ụng Matlab để tính toán các biểu thức:
d ng đ ường thẳng và màu sắc khác nhau( miền t là [-10,10]): ng th ng và màu s c khác nhau( mi n t là [-10,10]): ẳng và màu sắc khác nhau( miền t là [-10,10]): ắt đầu từ −10 , kết thúc tại 18, với bước cộng là 4 ề hàm này.
y(t)=2r(t+2,5)-5r(t)+3r(t-2)+u(t-4).
>> t=linspace(-10,10,500);
>> y= 2*uramp(t,2.5)-5*uramp(t,0)+3*uramp(t,-2)+ustep(t,-4);
>> evenodd(y);
>> yr=fliplr(y);
>> ye=0.5*(y+yr);
>> yo=0.5*(y-yr);
>> plot(t,yo,'b '); hold on;
>> plot(t,ye,'r-');
>> xlabel('t');
>> ylabel('y');
>> title('do thi ham so y(t)');
>> plot(t, y, 'k-', 'linewidth', 1)
>> legend('yo','ye','y');
>> grid on;
Trang 10III T ng c a các tín hi u tu n hoàn ổng của các tín hiệu tuần hoàn ủa các tín hiệu tuần hoàn ện: ần hoàn
t=linspace(-10,10,1000);
x1=1+1.5*cos(2*pi*pi*t/10)-0.6*cos(4*pi*t/10); x2=1+1.5*cos(6*pi*t)-0.6*cos(4*pi*t/10);
figure(1);
plot(t,x1);
figure(2);
plot(t,x2);
- Tín hi u ệnh x1 không ph i là tín hi u tu n hoàn vì:ả về kết quả là phần chẵn và phần lẻ của một tín hiệu như ệnh ầu từ −10 , kết thúc tại 18, với bước cộng là 4
x1(t )=1+1,5 cos ( 2 π Ω0t ) −0,6 cos ( 4 Ω0t )
⟨¿⟩x1=1+ y1− y2
y1=1,5 cos ( 2 π Ω0t ) ⇒T1= 1
Ω0( s)
y2=0,6 cos ( 4 Ω0t ) ⇒T2= π
2 Ω0(s )
⇒ T1
T2=
2
π không là số hữu tỷ
- Tín hi u ề hàm này x2 là tín hi u tu n hoànệnh ầu từ −10 , kết thúc tại 18, với bước cộng là 4
x2(t )=1+1,5 cos (6 πt )−0,6 cos ( 4 Ω0t )
⟨¿⟩x2=1+ y3− y4
y3=1,5 cos (6 πt ) ⇒T3= 1
3 (s ) y2=0,6 cos ( 4 Ω0t ) ⇒T4= π
2 Ω0=5 (s )
⇒ T3
T4
= 1
15 ⇒T4=15 T3⇒ T0= T4=5 (s)
Trang 11IV Năng l ượng, công suất của một tín hiệu: ng, công su t c a m t tín hi u: ất của một tín hiệu: ủa các tín hiệu tuần hoàn ột tín hiệu: ện:
T=20;
u(t)=heaviside(t);
x(t)=exp(-t).*cos(2*pi*t).*u(t);
f=(abs(x(t))).^2;
E=int(f, t, -T/2, T/2)
P=int(f, t, -T/2, T/2)/T
>> BaiIV
E =
(exp(-20)*(2*pi^2 + 1)*(exp(20) - 1))/(2*(4*pi^2 + 1))
P =
(exp(-20)*(2*pi^2 + 1)*(exp(20) - 1))/(40*(4*pi^2 + 1))
V Phép d ch, phép co dãn và phép đ o tín hi u ị ảng viên hướng dẫn: ện:
Bài 1: Tín hi u b d ch ệnh ị ma trận của Matlab tìm các giá trị sau: ị ma trận của Matlab tìm các giá trị sau:
t=-10:0.01:10;
x=exp(-(abs(t)));
x1=exp(-(abs(t-2)));
x2=exp(-(abs(t+2)));
Bài 2: Co dãn tín hi u ệnh
t=-10:0.01:10;
x=exp(-(abs(t)));
x1=exp(-(abs(2*t)));
x2=exp(-(abs(0.5*t)));
Trang 12hold on;
Bài 3: Phép đ o tín hi u ả về kết quả là phần chẵn và phần lẻ của một tín hiệu như ệnh
t=-10:0.01:10;
x1=exp(-(abs(t)));
x2=exp(-(abs(-t)));
Bài 4.3: T n s và n t nh c: ầu từ −10 , kết thúc tại 18, với bước cộng là 4 ố trả về kết quả là phần chẵn và phần lẻ của một tín hiệu như ố trả về kết quả là phần chẵn và phần lẻ của một tín hiệu như
Ch ươ hàng bắt đầu từ −10 , kết thúc tại 18, với bước cộng là 4 ng trình Matlab đ ch i b n nh c sau: CCGGAAG ;FFEEDD ; ể tính toán các biểu thức: ơ hàng bắt đầu từ −10 , kết thúc tại 18, với bước cộng là 4 ả về kết quả là phần chẵn và phần lẻ của một tín hiệu như
>> Fs= 100e3;
>> Ts=1/Fs;
>> t=[0:Ts:0.8];
>> Fc=262;Fd=294;Fe=330;Ff=349;Fg=392;Fa=440;Fb=494;Fj=0;
>> notec=cos(2*pi*Fc*t);
>> noted=cos(2*pi*Fd*t);
>> notee=cos(2*pi*Fe*t);
>> notef=cos(2*pi*Ff*t);