1. Trang chủ
  2. » Cao đẳng - Đại học

Bài tập lớn tín hiệu và lọc số

28 504 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 352,6 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

EX2: Basic Signals-SinusoidsaChúng ta tạo các tín hiệu hình sin rời rạc trong MATLAB bằng cách lập hàm sau >> title'x[4]=cospi/sqrt23*n'; Nhận xét:... Cụ thể , công thức đưa ra có dạng:

Trang 1

Project 1:basic signals EX1: Basic Signals-Impulsesa)Chúng ta tạo các xung tín hiệu trong MATLAB bằng cách lập hàm sau đây:

% ung voi xung x[4]=4.5 δ[n+7] trong khoang -10 ≤ n ≤ 0

Ta có kết quả ở trang sau:

xung x[1]=0.9 δ[n-5] trong khoảng 1 ≤ n ≤ 20 xung x[2]=0.8 δ[n] trong khoảng -15 ≤ n ≤ 15

Trang 2

xung x[3]=1.5 δ[n-333] trong khoảng 300 ≤ n ≤ 350 xung x[4]=4.5 δ[n+7] trong khoảng -10 ≤ n ≤ 0

Nhận xét: -Ta sử dụng 2 vector nn và imp để tạo tín hiệu rời rạc và vẽ đồ thị.Trong

hàm new_impulse ta có 4 tham số vào là A(độ lớn của xung ), n0 (vị trí của xung trong dãy) , n1,n2(điểm bắt đầu và điểm kết thúc quá trình tạo xung ).Phải chú ý trong thực hiện lập trình vì imp bắt đầu từ 1 đến (n2-n1+1) trong khi nn bắt đầu

từ 0 đến (n2-n1) để khi thức hiện không có lỗi.Trong phần này ta không sử dụng

hàm title để dán nhãn chú tích cho mỗi hình vẽ do MATLAB không in ra kí hiệu δ

Error: Unexpected MATLAB operator.

b)Tín hiệu rời rạc có dạng (1.1) theo giả thiết đề bài là tín hiệu tuần hoàn có chu kì P=5, có chiều dài PM= 50 , bắt đầu từ n=0, kết thúc tại n=49 Để tạo tín hiệu trên

Trang 3

Nhận xét:

Dựa vào đồ thị ta thấy có 10 xung trong chuỗi tín hiệu rời rạc hữu hạn tương ứng

với các giá trị của l =(0 9) Ta tạo ra tín hiệu trên bằng 2 vector nn và x.Trong đó

x được xây dựng bằng cách nối tiếp nhau 10 lần 1 vector có dạng [1;0;0;0;0] Đây

là cách làm hiệu quả khi ta đã hiểu rõ được bản chất của tín hiệu.Tuy nhiên có 1 cách làm khác là sử dụng 1 vòng for như sau:

Ta cũng đạt được kết quả tương tự

c)Ta sử dụng đoạn mã trong ví dụ:

x=[0;1;1;0;0;0]*ones(1,7);

x=x( : );

size(x)

ans =

Trang 4

42 1

stem(x);

Ta có đồ thị:

Dựa vào đồ thị thu được ta có thể xây dựng công thức dạng (1.1) như sau:

Nhật xét: -Đây chính là tổng của hai dãy tín hiệu thành phần s1(n) và s2(n) có dạng công thức như (1.1).

Trong đó s1(n) =

s2(n) =

Trang 5

EX2: Basic Signals-Sinusoidsa)Chúng ta tạo các tín hiệu hình sin rời rạc trong MATLAB bằng cách lập hàm sau

>> title('x[4]=cos(pi/sqrt(23)*n)');

Nhận xét:

Trang 6

Ta xây dựng hàm tạo chuỗi hình sin rời rạc có các giá trị đầu vào là biên độ A, tần

số góc omega0, pha ban đầu phi và các giá trị bắt đầu và kết thúc n1 và n2 Khi gọi

hàm sẽ tự động vẽ đồ thị của tín hiệu.Sau đó ta gán cho mỗi đồ thị 1 tên riêng dựa

vào lệnh title

Ta có kết quả:

Dựa vào đồ thị ta thấy ta có thể biểu diễn x[3](n) không theo công thức dạng

lượng giác do:

sin(3*π*n+ π/2) = sin(3* π*n)*cos(π/2)+cos(3*π*n)*sin(π/2) = cos(3* π*n) = ±1

phụ thuộc vào n

Trang 7

Đó là tổng của 2 chuỗi xung có chu kì P là 2,có độ dài tương ứng lần lượt là 21 và

19

Cụ thể , công thức đưa ra có dạng:

b)Dựa vào hàm số đã xây dựng ở trên bao gồm 5 tham số: biên độ A, tần số góc omega,pha ban đầu ɸ và 2 vị trí bắt đầu và kết thúc tín hiệu.Ta chính sửa 1 số cấu

trúc trong đoạn mã để hàm sau khi thức hiện trả về các giá trị là vector chứa các

giá trị của sóng hình sin(thêm sinx,nn vào sau function để hàm trả về vector

sinx).Thử với tín hiệu rời rạc 2*sin(π*n/11) với n từ -20 đến 20.Ta có kết quả sau:

function [sinx,nn ] = new_sin(A,omega0,phi,n1,n2 )

Trang 8

EX3: Sampled Sinusoidsa)Ta có các công thức tín hiệu sin s(t) và tín hiệu sau khi lấy mẫu s[n]:

S(t)=A *cos(2*π*f0*t+ɸ)

S[n] = s(t)|t=n*T = A*cos (2*π*f0/fs*n+ɸ)

Đây chính là quá trình lấy mẫu tín hiệu , hay là việc nhân tín hiệu cần lấy mẫu với 1

xung dirac có chu kì là Te Ta lập hàm lấy mẫu tín hiệu hình sin có các tham số: biên độ A, tần số của tín hiệu hình sin,tần số của xung lấy mẫu tslm ,pha ban đầu

ɸ và 2 thời gian bắt đầu và kết thúc quá trình lấy mẫu.

function [sintg] = lay_mau_th( A,tsm,phi,t1,t2,tslm )

temptg=t1:1/tslm:t2; % chia theo cac moc don vi theo thoi gian voi buoc nhay 1/tslm

>> lay_mau_th(50,1200,pi/4,0,7*10^-3,8000)

sin_lay_mau =

Columns 1 through 9

35.3553 -7.8217 -44.5503 -44.5503 -7.8217 35.3553 49.3844 22.6995 -22.6995

Trang 9

Columns 10 through 18

-49.3844 -35.3553 7.8217 44.5503 44.5503 7.8217 -35.3553 -49.3844 -22.6995 Columns 19 through 27

22.6995 49.3844 35.3553 -7.8217 -44.5503 -44.5503 -7.8217 35.3553 49.3844 Columns 28 through 36

22.6995 -22.6995 -49.3844 -35.3553 7.8217 44.5503 44.5503 7.8217 -35.3553 Columns 37 through 45

-49.3844 -22.6995 22.6995 49.3844 35.3553 -7.8217 -44.5503 -44.5503 -7.8217 Columns 46 through 54

35.3553 49.3844 22.6995 -22.6995 -49.3844 -35.3553 7.8217 44.5503 44.5503 Columns 55 through 57

Trang 10

Ta nhận thấy chiều dài của tín hiệu lấy mẫu là 57, bao gồm 8 chu kì hoàn chỉnh

Trang 11

b)Lấy mẫu 1 tín hiệu cosin với thời gian lấy mẫu =n+3/4*T ,khi = 1/T ta có biến

đổi:

y[n]=A*cos(ω* (n+3/4*T)+ɸ) = A*cos(ω*n+ ω*3/4*T+ɸ)

y[n]= A*cos(ω*n+3/4*T*2*π/T+ɸ) = A*cos(ω*n+π/2 +π+ɸ )

Vậy y[n]= -A*sin(2*π*n/T+π+ɸ) = A*sin(2*π*n/T+ɸ)

Vậy với = 1/T ta có tín hiệu lấy mẫu là 1 hàm sin với chu kì T đã chọn.

Sử dụng hàm lay_mau_th đã viết ở phần a, ta sử dụng các tham số đầu vào như sau: A=50 , =n+3/4*T(ms) vậy từ đó ta tính được f( lấy mẫu) = 1/1(ms) = 1/10^3(s) = 1000 Hz,chọn T=0.1s ,vậy f(tín hiệu) =1 /T= 10Hz ,chọn khoảng thời gian theo n: 0 ≤ n ≤ 200 (ms)  Starting time =0+3/4*T = 0.075s , ending time =

Trang 12

a)Ta sử dụng đoạn mã theo mẫu để xây dựng tín hiệu rời rạc suy giảm theo hàm

mũ có dạng trong đoạn 0 20(có độ dài là 21)

Đồ thị đã thể hiện rõ 1 tín hiệu rời rạc suy giảm theo hàm mũ

b) Công thức toán học tính tổng của 1 chuỗi lũy thừa:

( a≠1) (1.2)

Để so sánh công thức (1.2) và giá trị tổng của các xung trong phần a ta sử dụng đoạn mã:

Trang 13

Ta xây dựng lại hàm genexp như sau để tiện tính toán tổng: hàm trả về biến tong

là tổng của các giá trị tín hiệu tại các điểm n=(1,2, ,L+1) trong tín hiệu rời rạc vừa

xây dựng, phương pháp tính toán là sử dụng 1 vòng for Đầu vào bao gồm cơ số b, điểm bắt đầu n0 và đồ dài L:

function [tong ] = genexp( b,n0,L)

y[n]=a*y[n-1] over the range 1 ≤ n ≤L-1 (1.3)

Lý do 1 dãy tín hiệu dạng mũ được tìm thấy thường xuyên trong DSP là thời giankhi bị dịch chuyển không làm thay đổi tín hiệu.Do đó 1 tín hiệu mũ rời rạc tỏa mãnquan hệ dịch chuyển như công thức (1.3)

Ta lấy dữ liệu đầu vào của phần trước: b=0.9 , L=21

Trang 14

Đồ thị kết quả:

Trang 15

Cách 1: sử dụng đoãn mã phía trên

Cách 2: sử dụng genexp

d)Ta sử dụng hàm filter thay vì xây dựng hàm genexp đã xây dựng để tạo dãy tín

hiệu rời rạc suy giảm theo hàm mũ ở phần trước với việc sử dụng công thức đệ

quy: y[n]-a*y[n-1]=x[n] và điều kiện ban đầu y[-1]=0

Trang 16

Cách sử dụng hàm lọc dữ liệu filter:

=>Trong SIGNAL PROCESSING TOOLBOX, hàm y =filter(b,a,x) lọc dữ liệu trong vector x với bộ lọc mô tả bởi các vectơ a và b, tạo ra dữ liệu y đã lọc Cấu trúc lọc

là bộ lọc dãy tổng quát mô tả bởi phương trình vi phân:

y(n) = b(1)x(n) + b(2)x(n-1) + + b(nb)x(n-nb+1) - a(2)y(n-1) - -a(na)y(n-na+1)

hoặc tương đương phép biến đổi Z:

Trang 17

Nhận xét:

-Sử dụng hàm filter, ta có kết quả tương tự như dãy tín hiệu đã tạo bằng hàm

genexp ở phần trước.

-Ta sử dụng hàm filter trong bài này do công thức đệ quy y[n] -a*y[n-1]=x[n]

tương ứng với bộ lọc được mô tả bởi phương trình sử dụng trong hàm trên(xem cách sử dụng ở trên) có thể tạo ra được tín hiệu rời rạc theo yêu cầu đề bài:

y[-1]=0 y[0]= x[0]=1 y[1]=a y[2]=a^2

y[n]=a^nPROJECT 2 : COMPLEX-VALUED SIGNALS

EX 1:Complex Exponentials

Trang 18

a)Để biểu diễn tín hiệu phức theo công thức Euler :==*(cos(θ*n)+j*sin(θ*n))

Ta xây dựng hàm như sau:

function [ ] = ham_phuc( r,phi,n1,n2)

Ta có kết quả:=> đồ thị bao gồm 2 phần, phần thực và phần ảo của tín hiệu

b)Để vẽ đồ thị hàm số của phần ảo đối với phần thực , ta sử dụng hàm sau, áp

dụng với z=(0.9 ,π/4) ,chiều dài xung 0≤n≤20 :

function [ ] = ham_xoan_oc( r,phi,n1,n2)

nn=n1:n2;

for i=1:1:(n2-n1+1)

Trang 19

Ta có đồ thị như hình vẽ, tuy nhiên đồ thị chưa thể hiện rõ được hình xoắn ốc như

yêu cầu bài toán, ta hiệu chỉnh các giá trị r và θ như sau: z=(0.9 ,π/10) ,chiều dài

xung 0≤n≤100.Ta sử dụng đoạn mã sau:

>> ham_xoan_oc(0.9,pi/10,0,100)

Ta có đồ thị kết quả rõ ràng hơn:

Trang 20

Nhận xét:đồ thị đã thể hiện rõ ràng được hàm xoắn ốc theo yêu cầu đề bài

c)Để thể hiện rõ hơn 1 tín hiệu phức,có đầy đủ pha ban đầu,biên độ, ta sử dụng

công thức thứ 2:

==*(cos(θ*n+ɸ)+j*sin(θ*n+ɸ))

Với G=A* A là biên độ, là pha ban đầu.

Trang 21

Áp dụng với 4 xung hình sin được yêu cầu,ta sử dụng đoạn mã cùng với hàm được xây dựng bởi hàm exp như sau:

function [ xx ] = new_ham_phuc_o( A,r,ro,phi,n1,n2)

Trang 24

d)Trong phần này ta sẽ xây dựng tín hiệu phức sử dụng hàm filter, với cách sử

dụng tương tự đã nêu ở phần trên, nhưng với hệ số a phức Ta dựa vào công thức

>> title('IMAG PART BY FILTER')

>>% tao lai bang ham mu

Trang 25

Nhận xét:

Dựa vào đồ thị ta thấy cách xây dựng tín hiệu phức theo cách thông thường( hàm

exp) và theo cách sử dụng bộ lọc ( hàm filter) cho kết quả hoàn toàn giống nhau.

Trang 26

e)Dựa vào công thức đệ quy: y[n]=*y[n-1]+x[n] ta có biến đổi sau để có thể biểu

diễn phần thực và phần ảo của tín hiệu y[n] 1 cách đệ quy, tức là và theo , ,x[n]

Ta có công thức đệ quy nhu yêu cầu đề bài

f) Từ lý thuyết phần e, ta xây dựng hàm tạo tín hiệu mũ phức theo kiểu đệ

quy.Hàm có tham số vào là A, r, θ,ɸ,n1,n2 và trả về dãy tín hiệu.So sánh với công thức sử dụng hàm filter đã xây dựng ở phần d.

Thử với A=1,ɸ=0,r=0.5,θ = 0 hoặc π/4

Trang 27

stem(nn,real(th_phuc_filter (1,0.5,0,0,0,20))); title('REAL PART BY FILTER')

subplot(211)

stem(nn,th_phuc_dequy(1,0.5,pi/4,0,0,20)); title('REAL PART BY RECURSION')

subplot(212)

stem(nn,real(th_phuc_filter (1,0.5,pi/4,0,0,20))); title('REAL PART BY FILTER')

Ta có các đồ thị:

Trang 28

Qua bài tập lớn trên chúng ta đã có 1 số kĩ năng cơ bản trong việc sử dụng phần

mềm MATLAB để xây dựng cũng như thao tác trên các dạng tín hiệu rời rạc, qua

đó có thể mở rộng hơn trong các công việc sau này.Ta cũng có những hình dung rõhơn về hình dạng của các dạng tín hiệu mà chúng ta thường sử dụng trong quá trình học

Ngày đăng: 10/08/2016, 11:09

HÌNH ẢNH LIÊN QUAN

Đồ thị tín hiệu theo thời gian(s).Ta thấy đồ thị hình sin tương ứng với kết quả tính  toán vừa tính toán ở phần đầu. - Bài tập lớn tín hiệu và lọc số
th ị tín hiệu theo thời gian(s).Ta thấy đồ thị hình sin tương ứng với kết quả tính toán vừa tính toán ở phần đầu (Trang 11)
Đồ thị đã thể hiện rõ 1 tín hiệu rời rạc suy giảm theo hàm mũ. - Bài tập lớn tín hiệu và lọc số
th ị đã thể hiện rõ 1 tín hiệu rời rạc suy giảm theo hàm mũ (Trang 12)

TỪ KHÓA LIÊN QUAN

w