1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xử Lý Số Tín Hiệu Thực hành xử lý số tín hiệu

12 393 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 50,99 KB

Nội dung

Bài 3.3 Cho phương trình sai phân: y(n)0.6(n1)+0.9y(n2)=x(n)+0.8x(n1)FIR 1: cho đáp ứng xung bộ lọc fir như sau h1=1 2 1.3 2.2 0.6 3 0.6 2.2 1.3 2 1;Xác định đáp ứng tần số và phân bố cực không của bộ lọcHàmcho đáp ứng xung bộ lọc fir 4cho đáp ứng xung bộ lọc fir 2cho đáp ứng xung bộ lọc fir 3Thiết kế bộ lọc thông thấp dùng cửa sổ blackmanThiết kế bộ lọc thông cao dùng cửa sổ blackmanThiết kế bộ lọc thông thấp dùng cửa sổ kasiser

Trang 1

Bài 3.3 Cho phương trình sai phân: y(n)-0.6(n-1)+0.9y(n-2)=x(n)+0.8x(n-1)

1

( )

H Z

=>

 

(Z) |

j

j

X e

Chương trình mô phỏng như sau:

num=[1 0.8];

den=[1 -0.6 0.9];

w=-4*pi:8*pi/511:4*pi

h=freqz(num,den,w);

subplot(231)

subplot(232)

subplot(233);

subplot(234);

subplot(235)

h=impz(num,den);

subplot(236)

FIR 1: cho đáp ứng xung bộ lọc fir như sau h1=[-1 2 1.3 -2.2 0.6 3 0.6 -2.2 1.3 2 -1];

Xác định đáp ứng tần số và phân bố cực không của bộ lọc

*Hàm

function [a,w,L,Hr]=loc1(h)

M=length(h);

L=(M-1)/2;

a=[h(L+1) 2*h(L:-1:1)]

Trang 2

w=linspace(0,2*pi,100)';

Hr=cos(w*n)*a';

stem(Hr);

end

*tạo file mới gõ

h1=[-1 2 1.3 -2.2 0.6 3 0.6 -2.2 1.3 2 -1];

M=length(h1);

n=0:M-1;

subplot(221)

stem(n,h1);

[a,w,L,Hr]=loc1(h1);

subplot(222)

stem(0:L,a);

subplot(223)

w=linspace(0,2*pi,100);

plot(w,Hr);

subplot(224)

zplane(h1,1);

FIR 2: cho đáp ứng xung của bộ lọc FIR 2 như sau h2=[1.5 -2.5 3 3 -2.5 1.5]; Xác định đáp ứng tần số và phân bố cực không của bộ lọc.

*Hàm

function [b,w,L,Hr]=loc2(h)

M=length(h);

L=M/2;

b=[2*h(L:-1:1)];

n=[1:1:L];

w=linspace(0,2*pi,100)';

Hr=cos(w*(n-0.5))*b';

Stem(Hr);

end

*tạo file mới gõ:

h2=[1.5 -2.5 3 3 -2.5 1.5];

M=length(h2);

n=0:M-1;

subplot(221)

stem(n,h2);

[b,w,L,Hr]=loc2(h2);

subplot(222)

Trang 3

stem(1:L,b);

subplot(223)

w=linspace(0,2*pi,100);

plot(w,Hr);

subplot(224)

zplane(h2,1);

FIR 3: cho đáp ứng xung của bộ lọc FIR 3 như sau h3=[1.5 -2.5 3 2.5 -1.5];

Xác định đáp ứng tần số và phân bố cực không của bộ lọc.

*hàm

function [c,w,L,Hr]=loc3(h)

M=length(h);

L=(M-1)/2;

c=[2*h(L:-1:1)];

n=[1:1:L];

w=linspace(0,2*pi,100)';

Hr=sin(w*n)*c';

stem(Hr);

end

*tạo 1 file mới:

h3=[1.5 -2.5 3 2.5 -1.5]

M=length(h3);

n=0:M-1;

subplot(221)

stem(n,h3);

[c,w,L,Hr]=loc3(h3)

subplot(222)

stem(1:L,c);

subplot(223)

w=linspace(0,2*pi,100);

plot(w,Hr);

subplot(224)

zplane(h3,1);

FIR 4: cho đáp ứng xung của bộ lọc FIR 4 như sau h4=[1.5 -2.5 3 -3 2.5 -1.5]; Xác định đáp ứng tần số và phân bố cực không của bộ lọc.

*Hàm:

Trang 4

function [d,w,L,Hr]=loc4(h)

M=length(h);

L=M/2

d=[2*h(L:-1:1)];

n=[1:1:L];

w=linspace(0,2*pi,100)';

Hr=sin(w*(n-0.5))*d';

stem(Hr);

end

*tạo 1 file mới:

h4=[1.5 -2.5 3 -3 2.5 -1.5]

M=length(h4);

n=0:M-1;

subplot(221)

stem(n,h4);

[d,w,L,Hr]=loc4(h4);

subplot(222)

stem(1:L,d);

subplot(223)

w=linspace(0,2*pi,100);

plot(w,Hr);

subplot(224)

zplane(h4,1);

Chương 2:

BÀI 1:Viết chương trình và vẽ tín hiệu dạng hàm u(n-3),u(n+2)

*Hàm stepseq

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

if((n0>n2)|(n0<n1)|(n2<n1))

end

n=[n1:n2];

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

*tạo file mới

n1=[-5:10];

x1=stepseq(3,-5,10);

Trang 5

stem(n1,x1);

axis([-5 10 -0.2 1.2]);

n2=[-5:10];

x2=stepseq(-2,-5,10);

subplot(2,1,2);

stem(n2,x2);

axis([-5 10 -0.2 1.2]);

BÀI 2:Viết chương trình và vẽ tín hiệu dạng hàm x(n)= 2u(n-2)+δu(n-2) trong khoảng (-10,10) Từ đó vẽ x(-n), x(2n), 2x(n)

*Hàm stepseq

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

if((n0>n2)|(n0<n1)|(n2<n1))

end

n=[n1:n2];

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

*Hàm impseq

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

if((n0<n1)|(n0>n2)|(n1>n2))

end

n=[n1:n2];

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

*Hàm sigadd

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

n=min(min(n1),min(n2)):max(max(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;

end

*Hàm sigfold

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

y=fliplr(x);n=-fliplr(n);

*tạo file mới

n=[-10:10];

x=[0:1:10:9:-1:1];

Trang 6

[x2,n2]=impseq(2,-10,10);

[x3,n3]=sigadd(2.*x1,n1,x2,n2);

[x4,n4]=sigfold(x3,n3);

subplot(2,1,1);

stem(n3,x3);

grid on;

subplot(2,1,2);

stem(n4,x4);

grid on;

BÀI 3:Viết chương trình thể hiện trên đồ thị kết quả phép tính tích chập giữa 2 dãy

6

0 con lai

x n rect n

n

n

h n

n



 

*Hàm stepseq

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

if((n0>n2)|(n0<n1)|(n2<n1))

end

n=[n1:n2];

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

*hàm sigadd

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

n=min(min(n1),min(n2)):max(max(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;

end

*Tạo file mới

n=-4:10;

[x1,n1]=stepseq(0,-4,10);

[x2,n2]=stepseq(5,-4,10);

[x3,n3]=sigadd(x1,n1,-1*x2,n2);

h=[0 0 0 0 1 3/4 1/2 1/4 0 0 0 0 0 0 0]

nh=[-4:10];

figure(1)

subplot(2,1,1);

stem(n3,x3);

Trang 7

subplot(2,1,2);

stem(n,h);

[y,ny]=conv_m(x3,n3,h,nh);

figure(2)

stem(ny,y);

Bài 4 trang 47 : Viet chương trình thể hiện trên đồ thị kết quả hàm tương tự tương quan của dãy sau: X(n) = {6,8,2,-5,4,-7,1} -3n3

*Funcion

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

n=[n1:n2];

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

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

n=[n1:n2];

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

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

n=min(min(n1),min(n2)):max(max(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;

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

y=fliplr(x);

n=-fliplr(n);

-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);

Trang 8

*Comment Window

n=[-4:10];

[x1,n1]=stepseq(0,-4,10);

[x2,n2]=stepseq(6,-4,10);

[x,n]=sigadd(x1,n1,-x2,n2);

nx=[-4:10];

h=[0,0,0,0,1,0.75,0.5,0.25,0,0,0,0,0,0,0];

nh=[-4:10];

figure(1)

subplot(2,1,1)

stem(n,x);axis([-4,10,0,2]);

title('day dau vao');

xlabel('n');

ylabel('x(n)');

subplot(2,1,2)

stem(n,h); axis([-4,10,0,2]);

title('dap ung xung');

xlabel('n');

ylabel('h(n)');

figure(2)

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

stem(ny,y); axis([-4,10,0,8]);

title(' day ra');

xlabel('n');

ylabel('y(n)');

BÀI 5:Xét hệ thống có phương trình sai phân y(n)=0.3x(n)+0.2x(n-1)-0.3x(n-2)-0.9y(n-1)+0.9y(n-2)

n=0:40;

y=[1 0.9 -0.9];

x=[0.3 0.2 -0.3];

h=impz(x,y,n+1);

stem(n,h);

Chương 3

BÀI 1:Xác định và vẽ điểm cực diểm không của các hệ thống sau:

( )

H z

num=[2 5 4 5 3];

Trang 9

den=[5 45 2 1 1];

[z,p,k]=tf2zp(num,den);

zplane(num,den);

BÀI 2 phân tích các biểu thức sau dùng phương pháp thặng dư:

( )

H z

;

1

1 ( )

(1 2 z )(1 z )

z

G z

num=[1 -4.2 0.8];

den=[1 -2.5 3 -1];

subplot(2,1,1);

[A,p,k]=residuez(num,den);

zplane(num,den);

num=[1 1];

den=[1 1 8 -8];

subplot(2,1,2);

[A,p,k]=residuez(num,den);

zplane(num,den);

BÀI 3:Cho hệ thống vào /ra là phương trường sai phân hằng:

y(n)=x(n)-2x(n-2)+0.81y(n-1).Xác định hàm truyền đạt H(z) rồi viết chương trình xác định điểm cực điểm không Phân tích dùng phương pháp thặng dư.

2 1

1 2

(z)

1 0.8

z H

z

num=[1 0 -2];

den=[1 -0.81];

[A,p,k]=residuez(num,den);

zplane(num,den);

BÀI 3:Tính DTFT trong khoảng [-π, π]:

2

j

X e

num=[0.8 3 -0.2 0.1];

den=[1 0.1 -0.4 0.7];

w=-4*pi:8*pi/511:4*pi;

h=freqz(num,den,w);

subplot(2,2,1);

plot(w/pi,real(h));

grid on;

subplot(2,2,2);

plot(w/pi,imag(h));

grid on;

subplot(2,2,3);

plot(w/pi,abs(h));

grid on;

Trang 10

title('pho bien do cua X(e^{j\omega})');

subplot(2,2,4);

plot(w/pi,angle(h));

grid on;

Bài 5a: Viết chương trình tính và thể hiện trên đồ thị fourier rời rạc của các dãy sau:

N=40 và

1 0 n<4 ( )

0 n con lai

x n  

N=5

M=40

x=[ones(1,N)];

X=fft(x,M);

t=0:1:N-1;

figure(1)

stem(t,x);

figure(2)

subplot(2,1,1);

k=0:1:M-1;

stem(k,abs(X));

grid on;

subplot(2,1,2);

plot(k,angle(X));

grid on;

Bài 5b: Viết chương trình tính và thể hiện trên đồ thị fourier rời rạc của các dãy sau:

N=60 và

1 0 n<4 ( )

0 n con lai

x n  

N=5

M=60

x=[ones(1,N)];

X=fft(x,M);

Trang 11

figure(1)

stem(t,x);

figure(2)

subplot(2,1,1);

k=0:1:M-1;

stem(k,abs(X));

grid on;

subplot(2,1,2);

plot(k,angle(X));

grid on;

Bài 5c: Viết chương trình tính và thể hiện trên đồ thị fourier rời rạc của các dãy sau:

N=60 và

1 0 n<6 ( )

0 n con lai

x n  

N=5

M=60

x=[ones(1,N)];

X=fft(x,M);

t=0:1:N-1;

figure(1)

stem(t,x);

figure(2)

subplot(2,1,1);

k=0:1:M-1;

stem(k,abs(X));

grid on;

subplot(2,1,2);

plot(k,angle(X));

grid on;

Ngày đăng: 12/12/2015, 18:00

TỪ KHÓA LIÊN QUAN

w