ÀëÉ¢LSIϵͳ·ÖÎö

?1H(z)?AmNk?1?(1?cMmz)?AzN?Mz?1)?1?(z?cm?1Nk?1M (2.10)

m))?(1?dk?(z?dj?k¼ÙÉèϵͳÎȶ¨£¬½«z?ej?´úÈëÉÏʽ£¬µÃµ½ÆµÂÊÏìÓ¦

H(ej?)?Aej(N?M)ÉèN?M£¬ÓÉʽ(2.11)µÃµ½

(e??m?1Nk?1M (2.11)

?cm)?H(ej?)ejarg[H(ekj?)]?(e??dj)?1H(ej?)?AmNk?1?(eNj? (2.12)

?cm)k?(e??dj)ÔÚzƽÃæÉÏ£¬Ê¾£¬Í¬ÑùºÍ

ej??cmÓÃÒ»¸ùÓÉÁãµãcÖ¸Ïòµ¥Î»Ô²£¨ej?£©ÉÏÈÎÒ»µãBµÄÏòÁ¿±í

cmBm£¬ ¡£

ej??dkºÍ

ÓÃÒ»¸ùÓɼ«µãdÖ¸Ïòµ¥Î»Ô²£¨ej?£©ÉÏÈÎÒ»µãBµÄÏòÁ¿À´±íʾ£¬dkBcmBkdkB ·Ö±ð³ÆΪÁãµãʸÁ¿ºÍ¼«µãʸÁ¿£¬Óü«×ø±ê±íʾΪ£º

cmB?cmej?mdkB?dkej?k½«

cmBdkB±íʾʽ´úÈëʽ(2.12)£¬µÃµ½

?1H(ej?)?AmNk?1?(eNj??cm)k?(e??djj??1?AmN?ck?1N

mB?H(ej?)ej?(?)B)?dk|H(e)|?A?cm?1Nk?1N (2.13)

m?dNNm?1k?(?)???m???kk?1 (2.14)

ϵͳ»òÕßÐźŵÄƵÂÊÌØÐÔÓÉʽ(2.13)ºÍʽ(2.14)È·¶¨¡£°´ÕÕʽ(2.13)£¬ÖªµÀÁ㼫µãµÄ·Ö²¼ºó£¬¿ÉÒÔºÜÈÝÒ×µØÈ·¶¨Á㼫µãλÖöÔϵͳÌØÐÔµÄÓ°Ïì¡£µ±Bµãתµ½¼«µã¸½½üʱ£¬¼«µãʸÁ¿³¤¶È×î¶Ì£¬Òò¶ø·ù¶ÈÌØÐÔ¿ÉÄܳöÏÖ·åÖµ£¬ÇÒ¼«µãÓú¿¿½üµ¥Î»Ô²£¬¼«µãʸÁ¿³¤¶ÈÓú¶Ì£¬·åÖµÓú¸ßÓú¼âÈñ¡£Èç¹û¼«µãÔÚµ¥Î»Ô²ÉÏ£¬Ôò·ù¶ÈÌØÐÔΪ?£¬ÏµÍ³²»Îȶ¨¡£¶ÔÓÚÁãµã£¬Çé¿öÏà·´£¬µ±Bµãתµ½Áãµã¸½½üʱ£¬ÁãµãʸÁ¿³¤¶È±ä¶Ì£¬·ù¶ÈÌØÐÔ½«³öÏÖ¹ÈÖµ£¬ÇÒÁãµãÓú¿¿½üµ¥Î»Ô²£¬¹ÈÖµÓú½Ó½üÁã¡£µ±ÁãµãÔÚµ¥Î»Ô²ÉÏʱ£¬¹ÈֵΪÁã¡£×ÛÉÏËùÊö£¬¼«µãλÖÃÖ÷ÒªÓ°ÏìƵÏìµÄ·åֵλÖü°¼âÈñ³Ì¶È£¬ÁãµãλÖÃÖ÷ÒªÓ°ÏìƵÏìµÄ¹ÈֵλÖü°ÐÎ×´¡£

MatlabÌṩÁËרÃÅÓÃÓÚÇóÀëɢϵͳƵÂÊÏìÓ¦µÄº¯Êýfreqz(),Æäµ÷ÓøñʽÈçÏ£º [H,w] = freqz(b,a,n)£º·µ»ØÊý×ÖϵͳµÄnµãƵÂÊÖµ£¨¸´Êý£©£¬Õân¸öµã¾ùÔȵطֲ¼ÔÚ[0£¬¦Ð]ÉÏ£¬ÏµÍ³Ä¬ÈϵIJÉÑùµãÊýĿΪ512µã£»

[H,f] = freqz(b,a,n,Fs)£ºÓÃÓÚ¶Ô

H(ej?)ÔÚ[0£¬Fs/2]Éϵȼä¸ô²ÉÑùnµã£¬²ÉÑùµãƵÂʼ°ÏàÓ¦µÄƵÏìÖµ·Ö±ð´æ·ÅÔÚfºÍHÖС£

H = freqz(b,a,w)£ºÓÃÓÚ¶Ô

H(ej?)ÔÚ[0£¬2¦Ð]ÉϽøÐвÉÑù£¬²ÉÑùƵÂʵãÓÉwÖ¸¶¨¡£ H = freqz(b,a,f,Fs)£ºÓÃÓÚ¶Ô

H(ej?)ÔÚ[0£¬Fs]ÉϽøÐвÉÑù£¬²ÉÑùƵÂʵãÓÉfÖ¸¶¨¡£ freqz(b,a,n)£ºÓÃÓÚÔÚµ±Ç°Í¼Ðδ°¿ÚÖлæÖÆ·ùƵºÍÏàƵÌØÐÔÇúÏß¡£ ÏÂÃæ½éÉܼ¸¸öʵÓõĺ¯Êý£º

mag=abs(H):Çó½âϵͳµÄ¾ø¶Ô·ùƵÏìÓ¦£»

db=20*log10((mag+eps)/max(mag))£ºÇó½âϵͳµÄÏà¶Ô·ùƵÏìÓ¦£» pha=angle(H): Çó½âϵͳµÄÏàƵÏìÓ¦£» grd=grpdelay(b,a,w): Çó½âϵͳµÄȺÑÓ³Ù¡£

Èý¡¢ÊµÑéÄÚÈÝ

1.ÉèijLTIϵͳµÄ

h[n]??[n?5]£¬ÊäÈëx[n]?u[n]?u[n?5]£¬ÇóϵͳÊä³öy[n]?x[n]*h[n]:

Ö÷³ÌÐòÈçÏ£º clear;clf;clc;

n=[-5:20]; %É趨һ¸önµÄ¹Û²ì·¶Î§

h=delta(n-5);x=stepseq(0,-5,20)-stepseq(5,-5,20); [y,ny]=conv_m(x,n,h,n)

subplot(2,2,1);stem(n,x);title('x[n]'); xlabel('n');axis([-5,20,0,1.2]);grid on; subplot(2,2,2);stem(n,h);title('h[n]'); xlabel('n');axis([-5,20,0,1.2]);grid on;

subplot(2,2,3);stem(ny,y);title('y[n]'); xlabel('n');axis([-5,20,0,1.2]);grid on; delta.m

function y=delta(x) y=(x==0);

stepseq.mµÄÔ´³ÌÐòÈçÏ£º

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

if nargin~=3%nargin(number of arguments input)£»¡° ~=¡±±íʾ²»ÏàµÈ

disp('Usage: Y=stepseq(n0,n1,n2)');

return;

else if((n0n2)|(n1>n2))

error('arguments must satisfy n1<=n0<=n2')%n0n2»òÕßn1>n2

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

conv_m.mµÄÔ´³ÌÐòÈçÏ£º

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

%Modified convolution routine for signal processing %[y,ny]=conv_m(x,nx,h,nh) %y=convolution result %ny=support of y

%x=first signal on support nx

%nx=support of x

%h=second signal on support nh %nh=support of h if nargin~=4

disp('Usage:Y=conv_m(x,nx,h,nh)'); return; end;

nyb=nx(1)+nh(1); %ny£§s begining nye=nx(length(x))+nh(length(h)); %ny£§s end

ny=[nyb:nye]; %ny½ö½öΪÁ˼ÆËãһϽá¹ûy¶ÔÓ¦µÄºá×ø±ê·¶Î§

y=conv(x,h); %Convolution and polynomial multiplication;convΪMATLABµÄ¹ÌÓк¯Êý

%conv_mº¯Êý±Èconvº¯Êý¶àÓÃÁËÓÃÓÚ±íʾºá×ø±ê·¶Î§µÄny¡¢nx¡¢nh,ÒòΪÕâÀï¼Ù¶¨¶þά×ø±ê·¶Î§nxºÍnh¿ÉÄÜ´Ó¸ºÊý¿ªÊ¼£¬ËùÒÔÒªÖØмÆËãyµÄºá×ø±ê·¶Î§ny£»Èç¹ûnxºÍnh¾ùΪ[0:N]£¬Ôò¿ÉÒÔÖ±½ÓµÃ³önyΪ[0:2N](ÕýÈçconvº¯ÊýÖÐÄÇÑù£©£»ÔÚconv_mºÍconvº¯ÊýÖУ¬xºÍhµÄºá×ø±ê·¶Î§¶¼¿ÉÒÔʵ²»ÏàµÈµÄ

˼¿¼Ì⣺Èô½â£ºÒòΪ

y[n]?x[n]*?[n?n]0,ÊÔд³ö

y[n]Óëx[n]µÄ¹Øϵ£¬²¢¶ÔMATLABµÄ·ÂÕæ½á¹û¡£

??n?n0?º¯ÊýÊÇÑÓʱÆ÷£¬ËùÒÔy[n]=x[n]* ??n?n0?=x[n-n0]¡£

?n?2.ÉèijÏßÐÔʱ²»±äϵͳµÄh[n]=??0??10?n?5?ÊäÈëÐźÅΪx[n]=?

?0ÆäËü?0?n?5

ÆäËüÇóÊä³ö£ºa £ºy[n]?x[n]*h[n]; b£ºy[n]?x[n]*h[n?5]

12£¨a£©Ö÷³ÌÐòÈçÏ£º

n=[-5:20];

u1=stepseq(0,-5,20);u2=stepseq(6,-5,20);%u1=u[n]£»u2=u[n-6] %input x[n]

x=u1-u2;

%impulse response h[n] h=n.*x;

subplot(3,1,1);stem(n,x);axis([-5 20 0 2]);title('Input Sequence'); ylabel('x[n]');

subplot(3,1,2);stem(n,h);axis([-5 20 0 6]);title('Inpulse Response'); ylabel('h[n]'); %output response

[y1,ny]=conv_m(x,n,h,n);%conv_mΪ×Ô¶¨ÒåÇó¾í»ýµÄº¯Êý

subplot(3,1,3);stem(ny,y1);title('Output Sequence');xlabel('n'); ylabel('y_1[n]');

£¨b£©Ö÷³ÌÐòÈçÏ£º

n=-10:20;

u1=stepseq(0,-10,20);u2=stepseq(6,-10,20);%u1=u[n]£»u2=u[n-6] %input x[n] x=u1-u2;

u3=stepseq(-5,-10,20);u4=stepseq(1,-10,20);%u3=u[n+5]£»u4=u[n-1] x1=u3-u4;

%impulse rsponse h[n+5] h=(n+5).*x1;

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ì滻Ϊ@)