1. Trang chủ
  2. » Công Nghệ Thông Tin

ỨNG DỤNG MATLAB TRONG VIỆC GIẢNG DẠY VÀ NGHIÊN CỨU KHOA HỌC TẠI TRƯỜNG KỸ THUẬT THIẾT BỊ Y TẾ

12 513 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 12
Dung lượng 238 KB

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

Nội dung

ỨNG DỤNG MATLAB TRONG VIỆC GIẢNG DẠY VÀ NGHIÊN CỨU KHOA HỌC TẠI TRƯỜNG KỸ THUẬT THIẾT BỊ Y TẾ Hoàng Mạnh Hà Trần Thị Phượng Trường Kỹ thuật thiết bị y tế Tóm tắt: Việc tích hợp ngày càn

Trang 1

ỨNG DỤNG MATLAB TRONG VIỆC GIẢNG DẠY VÀ NGHIÊN CỨU KHOA HỌC TẠI TRƯỜNG KỸ THUẬT THIẾT BỊ Y TẾ

Hoàng Mạnh Hà Trần Thị Phượng

Trường Kỹ thuật thiết bị y tế

Tóm tắt:

Việc tích hợp ngày càng tăng các thành tựu tốt nhất của Toán học, Công nghệ thông tin đã cải thiện chất lượng, tính năng của các thiết bị y tế Song song với những lợi ích này là yêu cầu đối với người quản lý, hiệu chỉnh, kiểm chuẩn thiết bị y tế phải có kiến thức về một số phương pháp toán học như biến đổi Fourier/ Wavelet, cách tính tích chập (Convolution), tương quan (Correlation), các thuật toán thích nghi như LMS/RLS, ước lượng gradient bằng phương pháp Canny Chúng tôi nhận thấy qua thực tế tại Trường Kỹ thuật thiết bị y tế cũng như tại một số các trường Kỹ thuật khác, học sinh tỏ ra rất vất vả khi tiếp thu các phương pháp trên Để hỗ trợ giải quyết vấn đề này chúng tôi quyết định dùng Signal Processing Toolbox của Matlab Với đặc điểm: Các hàm xử lý tín hiệu được xây dựng sẵn rất dễ

sử dụng, mang tính trực quan cao, có nguồn tại liệu hướng dẫn đáng tin cậy Matlab đã trở thành công cụ giảng dạy và nghiên cứu khoa học không thể thiếu ở Trường Kỹ thuật thiết bị y tế, giới thiệu điều đó là nội dung chính của bài viết này

I Ứng dụng Matlab trong giảng dạy

Trong các thiết bị y tế, chức năng thu nhận và xử lý tín hiệu giữ vai trò đặc biệt quan trọng, kết quả của nó được sử dụng làm căn cứ cho chẩn đoán của bác sỹ Do vậy mục tiêu giảng dạy đặt ra là:

- Học sinh nắm được cơ sở và y nghĩa toán học của từng phương pháp xử lý tín hiệu cơ bản

- Có khả năng mô phỏng các phương pháp xử lý tín hiệu trong y tế bằng Matlab

Để thực hiện được hai mục tiêu trên, ngay sau khi giới thiệu cơ sở và

ý nghĩa toán học của từng phương pháp chúng tôi đã tiến hành giới thiệu các hàm tương ứng trong Matlab

Ví dụ:

Bài I Các tín hiệu và hệ thống rời rạc

1.1 Tín hiệu rời rạc theo thời gian

Các tín hiệu rời rạc cơ sở và các hàm mô phỏng tương ứng

Trang 2

- Xung đơn vị:

0

1 ( )

0

n n

n n

n n

   

Mô phỏng bằng Matlab

function [x,n] = impseq(n0,n1,n2)

n = [n1:n2]; x = [(n-n0) ==0];

Khi hàm được gọi ta sẽ có xung đơn vị như sau

Hình 1.1: Xung đơn vị với n0=2; n1=-1; n2=5

- Dãy nhảy đơn vị

0

0

1 ( )

0

n n

U n n

n n

 

Mô phỏng bằng Matlab

function [x,n] = stepseq(n0,n1,n2)

n = [n1:n2];

x = [(n-n0) >= 0];

Khi hàm được gọi sẽ có dãy nhảy đơn vị sau

Hình 1.2: Dãy nhảy đơn vị với n0=2; n1=-1; n2=5

- Biểu diễn tín hiệu hàm số mũ

Mô tả: x n( ) a n, n a; R

Mô phỏng bằng matlab

n=[0:10]; x(n) = (0.9).^n

Hình 1.3: Tín hiệu hàm số 0.9n với n=0  10

0 0.2 0.4 0.6 0.8

1 Xung don vi voi tre = 2

0 0.2 0.4 0.6 0.8

1 Day nhay don vi voi tre = 2

0 0.2 0.4 0.6 0.8

Trang 3

- Biểu diễn tín hiệu dạng sin(x)

Mô tả: x n( ) sin(   0n  ), n

Mô tả bằng Matlab trường hợp:

( ) 3cos(0.1 ) 2sin(0.5 )

3

x n  n  n với 0  n 10:

n= [0:10]; x = 3*cos(0.1*pi*n + pi/3) + 2*sin(0.5*pi*n)

Kết quả

Hình 1.4: Tín hiệu hàm ( ) 3cos(0.1 ) 2sin(0.5 )

3

x n  n  n

- Biểu diễn tín hiệu bằng hàm mũ phức

Mô tả: ( 0 )

( ) j n,

x n e   n

Mô phỏng bằng Matlab trường hợp: (2 3)

( ) j n

x n e

n = [0:10]; x = exp((2+3j)*n);

0

x     Hàm   angle(x): Cho ta giá trị góc  arctg0

Kết quả:

-5 -4 -3 -2 -1 0 1 2 3

Trang 4

Hình 1.5: Biểu diễn các thông tin của hàm x n( ) e(2 j n3)

- Biểu diễn tín hiệu ngẫu nhiên

Matlab dùng hàm rand(1,N) để tạo ra dãy tín hiệu ngẫu nhiên có độ dài = N, có độ lớn trong khoảng từ 0  1 theo phân phối Gaussian

Mô phỏng bằng Matlab trường hợp N=100

N=100; x = rand(1,N);

Hình 1.6: Biểu diễn hàm ngẫu nhiên phân phối Gaussian

1.2 Hệ thống rời rạc

- Hệ thống cộng 2 dãy tín hiệu rời rạc

x n1 ( )  x n2 ( )  x n1 ( ) x n2 ( )

Thực hiện bằng Matlab

function [y,n] = sigadd(x1,n1,x2,n2)

n= min(min(n1), min(n2)):max(max(n1),max(n2));

0.5 1 1.5 2

Frequency in pi unit

Magnitude part

-0.8 -0.6 -0.4 -0.2 0

Angle in pi unit Angle part

-0.8

-0.6

-0.4

-0.2

0

Imagine in pi unit

Imagine part

0.5 1 1.5 2

Real in pi unit Real part

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Trang 5

y1=zeros(1,length(n)); y2=y1;

y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;

y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;

y=y1+y2;

- Hệ thống nhân 2 dãy tín hiệu rời rạc

x n1 ( )  x n2 ( )  x n x n1 ( ) ( ) 2 

Thực hiện bằng Matlab

function [y,n] = sigmult(x1,n1,x2,n2)

n = min(min(n1),min(n2)):max(min(n1),max(n2));

y1 = zeros(1,length(n));

y2=y1;

y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;

y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;

y = y1.*y2;

- Hệ thống dịch dãy tín hiệu

( ) ( )

y nx n k

Thực hiện bằng Matlab

function [y,n] = sigshift(x,m,n0);

n=m+n0; y=x;

- Hệ thống “lật” dãy tín hiệu

( ) ( )

y nx n

Thực hiện bằng Matlab

function [y,n] = sigfold(x,n)

y = fliplr(x);

n = -fliplr(n);

1.3 Phép tích chập (Convolution)

Phép tích chập được dùng để mô tả đáp ứng của hệ thống tuyến tính bất biến theo thời gian LTI (Linear Time Invariance) Trong xử lý tín hiệu

số, tích chập là toán tử quan trọng, được xử dụng rộng rãi Do vậy học sinh phải hiểu được điều kiện sử dụng, ý nghĩa và có hàm tính tích chập chính xác

Mô tả: Cho hệ thống tuyến tính bất biến theo thời gian, trong đó

x(n): Tín hiệu đầu vào của hệ thống tuyến tính bất biến theo thời gian y(n): Đáp ứng ra của hệ thống tuyến tính bất biến theo thời gian

  ( ) ( )

y nLTI x n

( ) ( )* ( ) ( ) ( )

k

y n x n h n x k h n k

 

h(n): Đáp ứng xung của hệ thống tuyến tính bất biến theo thời gian, và được đinh nghĩa là:

  ( ) ( )

h nLTIn

h(n)

Trang 6

Matlab có sẵn hàm tính tích chập cho 2 dãy số a,b là conv(a,b), nhưng chưa đáp ứng yêu cầu tính ra khoảng tồn tại của kết quả nên ta có thể tự viết hàm tính tích chập dựa vào hàm conv như sau

function [y,ny] = conv_m(x,nx,h,nh)

nyb = nx(1) + nh(1);

nye = nx(length(x)) + nh(length(h));

ny = [nyb:nye];

y=conv(x,h);

Trong đó:

x, nx : Là tín hiệu đầu vào và khoảng tồn tại của nó

h, nh: Là đáp ứng xung và khoảng tồn tại của nó

y, ny: Là đáp ứng ra và khoảng tồn tại của nó

Ví dụ:

x(n) = 3 11 7 0 -1 4 2 3 3 ( ) 2 3 0 5 2 1 1 4

n

  

Ta có đáp ứng ra ( ) ( )* ( ) ( ) ( )

k

y n x n h nx k h n k

 

Hình 1.7: Tín hiệu đầu vào x(n)

Hình 1.8: Đáp ứng xung h(n) của hệ thống

Dùng hàm conv_m trên ta có:

-2 0 2 4 6 8 10

-5 -4 -3 -2 -1 0 1 2

Trang 7

Hình 1.9: Đáp ứng ra của hệ thống

Hình 1.9: Đáp ứng ra của bộ lọc

1.4 Hàm Filter

Một bộ lọc số có thể được mô tả:

Hình 1.10 Dạng tổng quát của bộ lọc số

Bộ lọc số này được biểu diễn qua phương trình sai phân như sau:

a x n k b y n r

Matlab đã xây dựng sẵn hàm Filter cho phép tính đáp ứng ra y(n)

trong trường hợp biết các hệ số ak , br và dãy tín hiệu đầu vào x(n)

y = filter(a,b,x)

Trong đó a = [a1 a2 ak]

b = [b1 b2 b3 br] 1.5 Biến đổi Fourier thời gian rời rạc:

Biến đổi Fourier (Fourier Tramsform) là phép biến đổi dãy tín hiệu từ miền thời gian (Time Domain) sang miền tần số (Frequency Domain)

Nếu tín hiệu được biểu diễn trong miền thời gian rời rạc thì ta có phép biến đổi Fourier thời gian rời rạc như sau:

-60

-40

-20

0

20

40

60

Delay

Delay

Delay

.

x(n)

x(n-1)

x(n-2)

x(n-k)

a0

a1

ak

Delay

Delay

Delay

y(n)

y(n-1)

y(n-r) y(n-2)

b0

b1

br

Trang 8

j   ( ) ( ) j n

n

X eF x n x n e 

 



 Hàm tính biến đổi Fourier thông qua ví dụ như sau:

clear;

%w=[0:1:1000]*2*pi/1000;

w=[0:1:2000]*4*pi/2000;

X=exp(j*w) /(exp(j*w) - 0.5*ones(1,2001));

mag=abs(X); subplot(2,2,1); plot(w/2/pi,mag); ylabel('Magnitude');

xlabel('Frequency in pi unit'); title('Magnitude part');

angle=angle(X); subplot(2,2,2); plot(w/2/pi,angle); ylabel('Angle'); xlabel('Angle in pi unit'); title('Angle part');

imagine=imag(X); subplot(2,2,3); plot(w/2/pi,imagine);

ylabel('Imagine');

xlabel('Imagine in pi unit'); title('Imagine part');

realp=real(X); subplot(2,2,4); plot(w/2/pi,realp); ylabel('Real');

xlabel('Real in pi unit'); title('Real part');

Kết quả thực hiện

Hình 1.11 Biểu diễn các thông tin của tín hiệu sau biến đổi Fourier

II Ứng dụng Matlab trong nghiên cứu khoa học

2.1 Thử nghiệm các bộ lọc cố định bằng hàm Filter

Trước đây sau khi thiết kế, việc thử nghiệm các bộ lọc cố định đòi hỏi nhiều thời gian, dụng cụ linh kiện Đặc biệt là giai đoạn hiệu chỉnh hoặc thay đổi thử các tham số, đặc tính Nhiều khi không thể thực hiện được các ý tưởng chỉ vì không các yếu tố trên Hàm Filter như giới thiệu trên cho phép rút ngắn thời gian triển khai thử nghiệm, dễ dàng thay đổi các tham số Nhưng để sử dụng được, người học cần được trang bị một số kiến thức như trên đã nêu

- Trình tự thiết kế và thử nghiệm bộ lọc

0.5

1 1.5

2

Frequency in pi unit

Magnitude part

-1 -0.5 0 0.5 1

Angle in pi unit Angle part

-1 -0.5

0 0.5

1

Imagine in pi unit

Imagine part

0.5 1 1.5 2

Real in pi unit Real part

Trang 9

+ Thiết lập trạng thái đáp ứng ra y n( ) mong muốn tương ứng với tín

hiệu đầu vào x n( )

+ Thực hiện biến đổi sang miền Z hai tín hiệu x n( )và y n( )

( ) Z Transform ( )

x n  X Z

( ) Z Transform ( )

+ Tính ( ) ( )

( )

Y Z

H Z

X Z

 + Thực hiện biến đổi Z ngược hàm truyền đạt

-1

H(Z) Z Transform ( )  h n

+ Nạp vào hàm Filter các hệ số a và b từ h n( )

+ Chạy thử và đánh giá Hiệu chỉnh nếu cần thiết

2.2 Thử nghiệm bộ lọc thích nghi qua thuật toán Newton

- Thuật toán Newton: Dựa trên cực tiểu hoá sai số giữa tín hiệu mong muốn

và tín hiệu ra thực tế

w 1

Đường mức

Gradient

Hình chiếu của Gradient xuống mặt phẳng trọng số

Gradient

Hình chiếu

của

Gradient

xuống mặt

phẳng

trọng số

Trang 10

Hình 2.1 Mặt parapoloid của sai số giữa tín hiệu thực tế với tín hiệu mong muốn

và hình chiếu của nó xuống mặt phẳng trọng số

Phương pháp Newton thực hiện bình phương 2 vế hàm tính sai số đó Khi đó nếu hàm bình phương của sai số là mặt parapoloid không giới hạn dương như hình 2.1 trên đây

Khi đó tồn tại duy nhất 1 điểm cực tiểu có toạ độ ( * *

1 , 2

w w ) trên mặt phẳng trọng số, tại đó sai số giữa tín hiệu thực tế với tín hiệu mong muốn là nhỏ nhất Thuật toán Newton tìm cách đạt đến điểm cực tiểu đó từ một điểm bất

kỳ trên mặt parapoloid bằng cách đi dần theo hướng ngược chiều với chiều của Gradient tại mỗi điểm (Hình 2.1)

Thuật toán Newton được thực hiện bằng Matlab như sau:

function [W,e] = lmsfir(X,d,N)

delta=0.7;

M=length(X);

y=zeros(1,M);

W=[ 0 0];

x=X(n:-1:n-N+1);

y=W*x';

W= W + delta*e(n)*x;

end;

Ứng dụng thuật toán Newton để lọc nhiễu cho tín hiệu được mô tả trong hình vẽ (2.2)

Hình 2.2 Kết quả của nghiên cứu lọc nhiễu cho tín hiệu bằng bộ lọc thích

nghi dùng thuật toán Newton

-10 0 10

Tin hieu co nhieu

-1 0 1

Dau ra cua bo loc co nhieu giam dan

0 2 4

6 Sai so giua tin hieu sach va dau ra thuc te

Trang 11

Sau đó chúng tôi thử nghiệm trên tín hiệu y sinh (tín hiệu điện tim), thu được kết quả như sau (Hình vẽ 2.3)

Hình 2.3: Kết quả lọc nhiễu cho tín hiệu điện tim (Nhiễu giảm dần)

III Kết luận và kiến nghị

Matlab với đặc điểm có các hàm toán học đáp ứng được yêu cầu giảng dạy các kiến thức xử lý tín hiệu cơ bản ở các trường kỹ thuật Có thể tiếp cận nhanh, thân thiện với người sử dụng, đơn giản về yêu cầu thiết bị thực hiện (Có thể dùng PC cấu hình thấp như: CPU tốc độ 200MHz, RAM 64MB, Cache 64KB) Có thể dùng làm công cụ học tập và nghiên cứu khoa học cho các đối tượng là Kỹ sư, sinh viên

Kiến nghị đưa vào giảng dạy môn xử lý tín hiệu số có lồng nội dung hướng dẫn sử dụng Matlab vào chương trình, bắt buộc sinh viên giải bài tập môn bằng Matlab

IV Tài liệu dẫn

[1] B.Widrow & S.T Stearns, “Adaptive Signal Processing”, Prentice – Hall, Engle wood Cliffs, USA, 1985

[2] V.K Ingle & J.G Proakis, “Digital Signal Processing Using Matlab”, PWS, USA, 1997

-0.01

0

0.01

0.02

0.03

0.04

Trang 12

[3] R Aston, “Principles of BioMedical Instrumentation and Mesurement”, Merrill, pp 37 – 255, 1990

[4] S.HAYKIN, “Adaptive Filter Theory” , Prentice – Hall, Engle wood Cliffs, USA, 2sd edition, 1995

[5] Jonathan Richard ShewChuk, “An instrudution to the conjugate gradient method without the Agonizing pain” , School of Computer Science Carngie Mellon University, 1st edition, 1994

[6] Hoàng Mạnh Hà - Phạm Trần Nhu “Phần mềm nhúng trong lọc nhiễu điện tim” Tạp chí khoa học và Công nghệ, Tập 43, số 3, 2005

Ngày đăng: 06/07/2017, 10:27

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w