đồ án viễn thông xử lý tín hiệu số trên matlab
Trang 1BỘ MÔN ĐIỆN TỬ TRUYỀN THÔNG
ĐỒ ÁN VIỄN THÔNG 1
ĐỀ TÀI:
XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB
Ngành Kỹ Thuật Điện Tử Truyền Thông
Sinh Viên: Huỳnh Thanh Phương
Trang 2ĐỒ ÁN VIỄN THÔNG 1
ĐỀ TÀI:
XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB
Ngành Kỹ Thuật Điện Tử Truyền Thông
Sinh Viên: Huỳnh Thanh Phương
MSSV: 2114230034
Nguyễn Tấn Bình
MSSV: 2114230003
TP HỒ CHÍ MINH - 6/2016
Trang 3Lời nói đầu
Công nghệ xử lý tín hiệu số là công nghệ bùng nổ nhanhchóng trong ngành công nghiệp điện tử và viễn thông hiện nay
Xử lý tín hiệu số có nhiều ứng dụng đa dạng, ví dụ như trongđiều chỉnh động cơ diesel, xử lý thoại, các cuộc gọi điện thoạikhoảng cách xa, xử lý tiếng nói, xử lý âm thanh, và tăng cườngchất lượng hình ảnh và truyền hình Các công nghệ nén MPEGhay WMV hiện nay đều dựa trên tiến bộ của công nghệ xử lý tínhiệu số
Xử lý tín hiệu số (tiếng Anh: Digital signal processing) là việc
xử lý những tín hiệu đã được biểu diễn dưới dạng chuỗi nhữngdãy số, đề cập đến các phép xử lý các dãy số để có được cácthông tin cần thiết như phân tích, tổng hợp mã hoá, biến đổi tínhiệu sang dạng mới phù hợp với hệ thống
Trong môn học Xử lý tín hiệu số, những nội dung chính được
đề cập bao gồm các khái niệm về tín hiệu và hệ thống, các phépbiến đổi cơ bản dùng trong xử lý tín hiệu số như biến đổi z, biếnđổi Fourier, biến đổi FFT, các phương pháp tổng hợp bộ lọc FIR,IIR và cấu trúc bộ lọc
Do vốn kiến thức có hạn nên cuốn đồ án này không thểtránh khỏi những thiếu sót nhất định, nhóm em rất mong nhậnđược sự chỉ bảo và đóng góp ý kiến của các thầy cô giáo trongkhoa Điện tử
Trang 4Nhận xét của giáo viên hướng dẫn
Trang 5
Nhận xét của các giáo viên khác
Trang 6
Mục lục
Trang 7Danh mục hình ảnh
Hình 1.1.1: Biểu diễn Step signal 6
Hình 1.1.2: Biểu diễn Impulse signal 7
Hình 1.2.1: Biểu diễn tín hiệu sin thực có tần số 0,1 8
Hình 1.2.2: Biểu diễn tín hiệu sin thực có tần số 0,9 9
Hình 1.2.3: Biểu diễn tín hiệu sin thực có tần số 1,1
10 Hình 1.3: Biểu diễn tín hiệu sin thực n=50, f=0,08 A=2,5 phase 90 12
Hình 1.4: Biểu diễn 1 tín hiệu dạng lũy thừa thực “x[n]=0,2.1,2”
13 Hình 1.5: Biểu diễn tín hiệu sin phức và sin thực 14
Hình 1.6: Chương trình phát dãy xung 16
Hình 2.1: Xung h(n) cho hệ thống có phương trình sai phân 22
Hình 2.2: Nghiên cứu tính chất tuyến tính của hệ thống
24 Hình 2.3: Mô phỏng hệ thống có phương trình sai phân
26 Hình 2.4: Ghép nối 2 hệ thống bậc 2 có phương trình sai phân
28 Hình 2.5: Các hệ thống tuyến tính và phi tuyến tính 30
Hình 2.6: Các hệ thống bất biến với thời gian 32
Hình 2.7: Chương trình tính và vẽ các tín hiệu lối ra y1[n] và y2[n]
Trang 834
Trang 9Giới thiệu Matlab
Matlab là từ viết tắt của Matrix Laboratory Matlab là một ngôn ngữ lậptrình cấp cao dạng thông dịch Nó là môi trường tính toán số được thiết kế bởicông ty MathWorks Matlab cho phép thực hiện các phép tính toán số, ma trận,
vẽ đồ thị hàm số hay biểu diễn thông tin (dưới dạng 2D hay 3D), thực hiện cácthuật toán và giao tiếp với các chương trình của các ngôn ngữ khác một cách dễdàng
Hiện nay có rất nhiều các công cụ phần mềm tiện ích rất mạnh để hỗ trợtính toán Hai trong số đó là MATHCAD của Mathsoft và MATLAB củaMathWorks Chúng là 2 gói phần mềm có thể dễ dàng kiếm được ở Việt Namvào thời điểm hiện nay Ngoài ra, gói phần mềm MATHEMATICA của Wolframcũng được giới khoa học và kỹ thuật trên thế giới ưa dùng Khả năng tính toándựa trên các phương pháp tính gần đúng chính là điểm mạnh của các phần mềmnày Phần mềm MATHCAD có đặc điểm là hiển thị ngay kết quả tính toán saukhi người dùng trực tiếp đánh công thức vào giao diện người sử dụng Tuy nhiên
sử dụng phần mềm này có khó khăn khi người dùng muốn đóng gói rồi kế thừa
và tái sử dụng các thiết kế trước đó Về điểm này phần mềm MATLAB là tươngđối mạnh, cho phép người dùng thiết kế phần mềm thông qua các câu lệnh, dễdàng mô-đun hoá dưới dạng các kịch bản và các hàm để có thể sử dụng, hoặcphát triển qua các quá trình thiết kế và các bài toán thiết kế khác nhau
Xử lý tín hiệu số thực hiện trên Matlab được chia làm 2 chương:
• Chương 1: Biểu diễn tín hiệu
• Chương 2: Hê thống LTI
Trang 10• Dãy xung đơn vị:
• Dãy nhảy bậc đơn vị:
Trang 11 Thành phần chẵn xe(n) = [x(n) + x(n)]
Thành phần lẻ xe(n) = [x(n) - x(n)]
Các phép biến đổi tín hiệu
Làm trễ tín hiệu (Delay, Dịch trái) y(n) = x(n – k)k ≥ 0
Lấy trước tín hiệu (Advance, Dịch phải) y(n) = x(n + k)k ≥ 0
Đảo y(n) = x(-n)
Cộng y(n) = (n) + (n)
Nhân y(n) =
Co giãn miền thời gian y(n) = x(n)
Co giãn miền biên độ y(n) = Ax(n)
Các hàm Matlab liên quan:
stemp: vẽ dãy dữ liệu như các que theo trục x
sum: Xác định tổng của tất cả các phần từ của một vector
min: Xác định phần tử nhỏ nhất của một vector
max: Xác định phần tử nhỏ nhất của một vector
zeros: cấp phát một vector hoặc ma trận với các phần tử 0
subplot: Chia đồ thị ra thành nhiều phần nhỏ, mỗi phần vẽ một đồ
thị khác nhau
title: Thêm tên tiêu đề cho đồ thị
xlabel: Viết chú thích dưới trục x trong đồ thị 2D
ylabel: Viết chú thích dưới trục y trong đồ thị 2D
1.2 Bài tập áp dụng
Bài 1: Biểu diễn Step signal và Impulse signal
Step Signal: u(n) =
Impulse Signal:
Giải :
Trang 14Bài 2: Biểu diễn tín hiệu sin thực có tần số 0,1 0,9 và 1,1
title(' day tin hieu sin');
xlabel(' chi so thoi gian n');
ylabel(' bien do');
% ket qua chuong trinh
Hình 1.2.1
Trang 15Nhận xét: kết quả thu được cũng là đồ thị dạng rời rạc hìnhsin có biên độ là 1,5, chu kỳ là 10 biến thiên liên tục theothời gian
%chuong trinh biểu diễn tín hiệu sin thực có tần số 0,9
title(' day tin hieu sin');
xlabel(' chi so thoi gian n');
ylabel(' bien do');
% ket qua chuong trinh
Hình 1.2.2
Trang 16%chuong trinh biểu diễn tín hiệu sin thực có tần số 1,1
titlc(' day tin hieu sin');
xlabel(' chi so thoi gian n');
ylabel(' bien do');
% ket qua chuong trinh
Trang 17-ở tần số 1,1 ta thấy so với f=0,1 thì đồ thị là dạng đườngthẳng do giá trị max của hàm sin là 1 và ở day giá trị là 1,1nên đồ thị sẽ có dạng dường thẳng (đạt giá trị =0)
Bài 3: Biểu diễn tín hiệu sin thực có chiều dài 50 mẫu, tấn số 0,08, biên
title(' day tin hieu sin bd bang lenh stem');
xlabel(' chi so thoi gian n');
ylabel(' bien do');
subplot(3,1,2);
plot(n,x);
title(' day tin hieu sin bd bang lenh plot');
xlabel(' chi so thoi gian n');
ylabel(' bien do');
subplot(3,1,3);
stairs(n,x);
title(' day tin hieu sin bd bang lenh stairs');
xlabel(' chi so thoi gian n');
Trang 18ylabel(' bien do');
% ket qua chuong trinh
Hình 1.3Nhận xét: đồ thị mà ta thu được sau khi chạy chương trình thể hiện dúngcác thông số của bài toán Khi ta sủ dụng các lệnh để vẽ đồ thị khác nhauthì sẽ cho ra các dạng đồ thị khác nhau Lệnh plot để vẽ đồ thị dưới dạngsóng liên tuc ,lệnh stem để vẽ đồ thị sóng dạng rời rạc , lệt stairs vẽ đồ thịdạng sóng bậc thang
Bài 4: Biểu diễn 1 tín hiệu dạng lũy thừa thực
“x[n]=0,2.1,2” Biểu diễn bằng các lệnh stem, plot, stairs
Trang 19xlabel('chi so thoi gian');
ylabel(' bien do');
subplot(3,1,2);
stem(x);
grid;
title ('tin hieu dang luy thua bd bang lenh stem');
xlabel('chi so thoi gian');
ylabel(' bien do');
subplot(3,1,3);
stairs(x);
grid;
title ('tin hieu dang luy thua bd bang lenh stairs');
xlabel('chi so thoi gian');
ylabel(' bien do');
% ket qua chuong trinh
Hình 1.4
Trang 20Nhận xét: tín hiệu lũy thừa được biểu diễn bằng 3 lệnh plot, stem và stairscho ra 3 dạng sóng khác nhau rời rạc, liên tục, bậc thang Ta nhận thấy tínhiệu được biểu diễn đi từ 0 và bắt đầu tăng dần lên khi gần tới 20 và đạt tớigiá trị đỉnh là >40 phù hợp với lý thuyết đã học.
Trang 21Bài 5: Biểu diễn tín hiệu sin phức và sin thực:
Trang 22Nhận xét: kết quả thu được la đồ thị biểu diễn tín hiệu phần thực và phần ảodưới dạng rời rạc nấc đơn vị trên trục thực và trục ảo nhờ hàm stem Tínhiệu biểu diễn dần tiến về không.
Bài 6: Dãy xung đơn vị[n]
a Tạo dãy xung đon vị [n] có chiều dài N mẫu:
b Tạo dãy xung đon vị [n] có chiều dài N mẫu bị trễ M mẫu (M<N)
c Tạo dãy nhảy bậc đơn vị u[n] dài N mẫu
d Tạo dãy nhảy bậc đơn vị u[n] dài N mẫu bị trễ M mẫu (M<N)
e Chương trình phát dãy xung
title('day xung don vi');
%day xung don vi chieu dai N tre M mau
title('day xung don vi chieu dai N tre M mau');
%tao day nhay bac dai N mau
u=[ones(1,n)];
subplot(5,1,3);
stem(u);
title('day nhay bac dai N mau')
%tao day nhau bac dai N bi tre M mau
Trang 23u1=[ones(1,n-m)];
subplot(5,1,4);
stem(u1);
title('day nhau bac dai N bi tre M mau');
%chuong trinh phat day xung
%tao kich thuoc truc do thi
% ket qua chuong trinh
Hình 1.6
Trang 241.3 Kết luận
Bài thực hành này giúp ta nắm rõ các vấn đề về mô phỏng
và tạo tín hiệu: công dụng của các hàm ở trong từng bài,cách sử dụng các lệnh , cách vẽ đồ thị, hiểu được đồ thị …
Trang 25• Định nghĩa: Hệ thống LTI là hệ thống tuyến tính và bất biến thời gian
• Tuyến tính: mối quan hệ giữa ngõ vào và ngõ ra của một hệ thống là
Trang 26• Bất biến thời gian: chúng ta có thể sử dụng tín hiệu nhập ở thời điểm
này hoặc ở thời điểm trước đó thì tín hiệu xuất cũng sẽ có giá trị với tínhiệu xuất so với thời điểm trước đó
Trang 27Ví dụ:
- Nếu tín hiệu nhập là x(t), tín hiệu xuất tương ứng là y(t)
- Thì khi sử dụng tín hiệu nhập là x(t – T) thì tín hiệu xuất tương ứng sẽ lày(t – T) Chính vì vậy mà hệ thống bất biến thời gian phụ thuộc vào thờigian được áp vào tín hiệu nhập
• Kết quả cơ bản trong lý thuyết hệ thống LTI là bất kỳ
hệ thống LTI nào đều cũng có thể được miêu tả hoàn toànbởi một hàm duy nhất được gọi là đáp ứng xung của hệthống Đầu ra của hệ thống chỉ đơn giản là tích chập củađầu vào của hệ thống với đáp ứng xung của hệ thống.Phương pháp phân tích này thường được gọi là quan điểmmiền thời gian Kết quả tương tự cũng đúng với các hệthống thời gian rời rạc tuyến tính thay đổi bất biến, trong
đó các tín hiệu được lấy mẫu theo thời gian rời rạc, và tíchchập được xác định theo trình tự
Một cách tương đương, bất kỳ hệ thống LTI nào cũng cóthể được miêu tả trong miền tần số bởi hàm truyền của hệthống đó, đó là biến đổi Laplace của đáp ứng xung của hệthống (hoặc biến đổi Z trong trường hợp của các hệ thốngthời gian rời rạc) Do tính chất của các phép biến đổi này,đầu ra của hệ thống trong miền tần số là tích của hàmtruyền và biến đổi của đầu vào hệ thống đó Nói cáchkhác, tích chập trong miền thời gian là tương đương vớiphép nhân trong miền tần số
Đối với tất cả các hệ thống LTI, các hàm đặc trưng và cáchàm cơ bản của các bộ biến đổi, là các hàm mũ phức Do
đó, nếu đầu vào của một hệ thống có dạng sóng phức Aest
với biên độ phức A và tần số phức s, thì đầu ra sẽ là hằng
Trang 28số phức nào đó nhân với đầu vào, đó là Best với biên độphức mới B Tỉ số là hàm truyền tại tần số.
Bởi vì sóng sin là một tổng của các hàm mũ phức tạp vớicác tần số phức liên hợp, nếu đầu vào của hệ thống làmột hình sin, thì đầu ra của hệ thống cũng sẽ là một hìnhsin, có lẽ với một biên độ khác và một pha khác, nhưngluôn luôn cùng tần số khi đạt đến trạng thái ổn định Các
hệ thống LTI không thể tạo ra các thành phần tần số màkhông có trong đầu vào
Lý thuyết hệ thống LTI mô tả nhiều hệ thống quan trọngrất tốt Hầu hết các hệ thống LTI được coi là "dễ" để phântích, ít nhất so với các trường hợp thời gian biến đổivà/hoặc phi tuyến Bất kỳ hệ thống nào có thể được môhình hóa bằng một phương trình vi phân tuyến tính thuầnnhất với các hệ số không đổi là một hệ thống LTI Ví dụ vềcác hệ thống như vậy là mạch điện gồm các điện trở,cuộn cảm, và tụ điện (mạch RLC) Các hệ thống giảm xócbằng lò xo lý tưởng cũng là những hệ thống LTI, và tươngđương toán học với các mạch RLC
Hầu hết các khái niệm hệ thống LTI là tương tự nhau giữacác trường hợp thời gian liên tục và thời gian rời rạc (dịchchuyển bất biến tuyến tính) Trong xử lý ảnh, các biến thờigian được thay thế bằng hai biến không gian, và kháiniệm thời gian bất biến được thay thế bởi dịch chuyển bấtbiến hai chiều Khi phân tích các giàn bộ lọc và các hệthống MIMO, thường rất hữu ích để xem xét các vectơ củatín hiệu
Trang 29Một hệ thống tuyến tính mà không phải là thời gian bấtbiến có thể được giải bằng cách sử dụng các phương phápkhác như phương pháp hàm Green Phương pháp tương tựcũng phải được sử dụng khi các điều kiện ban đầu của bàitoán không phải là rỗng.
• Một vài tính chất khác:
Một hệ thống được đặc trưng bởi đáp ứng xung h(n) (Đáp ứng của hệthống với đầu vào là xung đơn vị ∂(n))
Các thuộc tính quan trọng của hệ thống
Hai tính chất quan trọng nhất của một hệ thống là tính nhân quả và tính
ổn định Tính nhân quả là một điều cần thiết nếu biến độc lập là thờigian, nhưng không phải tất cả các hệ thống đều lấy thời gian là một biếnđộc lập Ví dụ, một hệ thống xử lý hình ảnh tĩnh không cần phải có tínhnhân quả Các hệ thống phi nhân quả có thể được xây dựng và có thể hữuích trong nhiều tình huống Ngay cả các hệ thống không thực có thể đượcxây dựng và rất hữu ích trong nhiều trường hợp
Tính nhân quả:
Một hệ thống là nhân quả nếu đầu ra chỉ phụ thuộc vào hiện tại và quákhứ, mà không phụ thuọc đầu vào tương lai Một điều kiện cần và đủ củaquan hệ nhân quả là trong đó h(t) là đáp ứng xung Nói chung không thể
xác định tính nhân quả từ biến đổi Laplace, vì biến đổi nghịch đảo làkhông duy nhất Khi một vùng hội tụ được xác định, thì tính nhân quả cóthể được xác định x(n) = 0 (n < n0) ⇒ y(n) = 0 (n < n0) hoặch(n) = 0 khi n < 0
Tính ổn định:
Một hệ thống là ổn định giới hạn đầu vào, giới hạn đầu ra(ổn định BIBO) nếu, với mỗi đầu vào bị chặn, đầu ra là hữuhạn Về mặt toán học, nếu mỗi đầu vào đáp ứng sẽ dẫn
Trang 30tới một đầu ra thỏa mãn (do đó, một giá trị tuyệt đối cực
đại của x(t) bao hàm giá trị tuyệt đối cực đại của y(t), thì
hệ thống đó là ổn định Một điều kiện cần và đủ là đáp
ứng xung h(t) phải nằm trong L1 (có một chuẩn mực L1
hữu hạn):Trong miền tần số, vùng hội tụ phải chứa trục ảo
S = JW
2.2Giới thiệu các hàm Matlab liên quan
• Hàm impz (num, den, N+1): Hàm xác định đáp ứng xung đơn vị của
một hệ thống
• Hàm filter (num, den, x, ic): lọc dữ liệu với mạch lọc IIR hoặc FIR.
• Hàm subplot: chia đồ thị thành nhiều phần nhỏ, mỗi phần vẽ một đồ thị
Trang 31Hình 2.1Kết quả thu được là dang tín hiệu được biểu diễn dưới dạng rời rạc và tiếndần về 0
Trang 32Bài 2: Nghiên cứu tính chất tuyến tính của hệ thống
y[n] - 0,4y[n - 1] + 0,75y[n2] = 2,2403x[n] + 2,4908x[n - 1]+ 2,2403x[n - 2]
Chương trình dưới đây để mô phỏng hệ thống này với 3 tínhiệu vào là:
Trang 33title('tin hieu loi ra theo x');
title('tin hieu sai so d');
%ket qua chay chuong trinh
Hình 2.2Nhìn vào đồ thị ta thấy tín hiệu lối ra theo x(y[n]), tín hiệu lối ra theoy(yt[n]) là giống nhau vì thế hai hệ thống này là tuyến tính vì y[n]=yt[n]
Trang 34Bài 3: Mô phỏng hệ thống có phương trình sai phân sau:
y[n] = 2,2403x[n] + 2,4908x[n - l] + 2,2403x[n - 2] +0,4y[n - l] + 0,75y[n - 2]
Mục đích của chương trình này là tìm tín hiệu lối ra y[n] đốivới 2 tín hiệu lối vào x[n] và x[n – n0] và hiệu của 2 tín hiệuđó
Trang 35Hình 2.3Dựa vào đồ thị ta nhận thấy hệ thống không bất biến với thời gian
Trang 36Bài 4: Ghép nối 2 hệ thống bậc 2 có phương trình sai phân sau:
y1[n] + 0,9y1[n1 ] + 0,8y1[n - 2] = 0,3x[n] - 0,3x[n -1] +0,4x[n - 2]
y2[n] + 0,7y2[n - l] + 0,85y2[n - 2] = 0,2yl[n] - 0,5yl[n - l] +0,3yl[n - 2]
để thu được hệ thống bậc 4 có phương trình sai phân sauy[n] + 1,6y[n -1] + 2,28y[n - 2] + 1,325y[n - 3] + 0,68y[n4]
%tin hieu ra y[2]
y2=filter(num2 ,den2 ,y1);