Êý×ÖÐźŴ¦ÀíʵÑéÈ«²¿³ÌÐòMATLAB ÏÂÔر¾ÎÄ

title('N=128µã µçÐÅ1201')

ÒÑÖª´øÓвâÁ¿ÔëÉùÐźÅf1=50Hz,f2=1Ϊ¾ùֵΪÁã¡¢·½²îΪ1µÄËæ»úÐźţ¬²ÉÑùƵÂÊΪ1000Hz£¬ t=0:0.001:0.6;

x=sin(2*pi*50*t)+sin(2*pi*120*t); y=x+2*randn(1,length(t)); Y=fft(y,512);

P=Y.*conj(Y)/512; %Çó¹¦ÂÊ f=1000*(0:255)/512; subplot(2,1,1); plot(y);

title('µçÐÅ1201') subplot(2,1,2); plot(f,P(1:256));

title('µçÐÅ1201')

¶ÔÐźŠ½øÐÐDFT£¬¶ÔÆä½á¹û½øÐÐIDFT£¬²¢½«IDFTµÄ½á¹ûºÍÔ­ÐźŽøÐбȽϡ£ fs=100; N=128; n=0:N-1; t=n/fs; x=sin(2*pi*40*t)+sin(2*pi*15*t); subplot(2,2,1) plot(t,x)

title('original signal µçÐÅ1201') y=fft(x,N); mag=abs(y);

f=(0:length(y)-1)'*fs/length(y); subplot(2,2,2) plot(f,mag)

title('FFT to original signal µçÐÅ1201') xifft=ifft(y); magx=real(xifft);

ti=[0:length(xifft)-1]/fs; subplot(2,2,3) plot(ti,magx);

title('signal from IFFT µçÐÅ1201') yif=fft(xifft,N); mag=abs(yif); subplot(2,2,4) plot(f,mag)

title('FFT to signal from IFFT µçÐÅ201')

Óú¯ÊýconvºÍFFT¼ÆËãͬһÐòÁеľí»ý£¬±È½ÏÆä¼ÆËãʱ¼ä¡£ L=5000; N=L*2-1; n=1:L; x1=0.5*n; x2=2*n;

t0=clock; yc=conv(x1,x2); conv_time=etime(clock,t0) t0=clock;

yf=ifft(fft(x1,N).*fft(x2,N)); fft_time=etime(clock,t0)

ʵÑéËÄ

Àý£ºÓó弤ÏìÓ¦²»±ä·¨Éè¼ÆButterworthµÍͨÊý×ÖÂ˲¨Æ÷£¬Í¨´ø²¨ÎÆСÓÚ1dB£¬×è´øÔÚ wp=0.2*pi; ws=0.3*pi;

rp=1;rs=15;ts=0.01;Nn=128; Wp=wp/ts; Ws=ws/ts;

[N,Wn]=buttord(Wp,Ws,rp,rs,'s'); [z,p,k]=buttap(N);

[Bap,Aap]=zp2tf(z,p,k); [b,a]=lp2lp(Bap,Aap,Wn); [bz,az]=impinvar(b,a,1/ts); freqz(bz,az,Nn,1/ts)

title('µçÐÅ1201')

Éè¼ÆÒ»¸öButterworth¸ßͨÊý×ÖÂ˲¨Æ÷£¬Í¨´ø±ß½çƵÂÊΪ300Hz£¬×è´ø±ß½çƵÂÊΪ200Hz£¬Í¨´ø²¨ÎÆСÓÚ1dB£¬×è´øË¥¼õ´óÓÚ20dB£¬²ÉÑùƵÂÊΪ1000Hz¡£ fs=1000;

wp=300/(fs/2); ws=200/(fs/2); rp=1; rs=15; Nn=128;

[N,Wn]=buttord(wp,ws,rp,rs); [b,a]=butter(N,Wn,'high'); freqz(b,a,Nn,fs)

title('µçÐÅ1201')

Éè¼ÆÒ»¸ö24½×FIR´øͨÂ˲¨Æ÷£¬Í¨´øƵÂÊΪ wp=[0.35,0.65]; N=24;

b=fir1(2*N,wp); freqz(b,1,512)

title('µçÐÅ1201')

f=0:0.002:1;

m(1:201)=1;m(202:301)=0;

m(302:351)=0.5;m(352:401)=0;m(402:501)=1; hold

plot(f,m,'r:') b=fir2(64,f,m); [h,f1]=freqz(b); f1=f1./pi;

plot(f1,abs(h))

title('N=64 µçÐÅ1201')

f=0:0.002:1;

m(1:201)=1;m(202:301)=0;

m(302:351)=0.5;m(352:401)=0;m(402:501)=1; hold

plot(f,m,'r:') b=fir2(256,f,m); [h,f1]=freqz(b); f1=f1./pi;

plot(f1,abs(h))

title('N=256 µçÐÅ1201')

Õë¶ÔÒ»¸öº¬ÓÐ5Hz¡¢15HzºÍ30HzµÄ»ìºÍÕýÏÒ²¨Ðźţ¬Éè¼ÆÒ»¸öFIR´øͨÂ˲¨Æ÷¡£ fc1=10; fc2=20; fs=100;

[n,Wn,beta,ftype]=kaiserord([7 13 17 23],[0 1 0], [0.01 0.01

0.01],100);

w1=2*fc1/fs; w2=2*fc2/fs;

window=kaiser(n+1,beta); %ʹÓÃkaiser´°º¯Êý

b=fir1(n,[w1 w2],window); %ʹÓñê׼ƵÂÊÏìÓ¦µÄ freqz(b,1,512); %Êý×ÖÂ˲¨Æ÷ƵÂÊÏìÓ¦ t = (0:100)/fs;

s = sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30); sf = filter(b,1,s); %¶ÔÐźÅs½øÐÐÂ˲¨ figure

subplot(2,1,1); plot(t,s); title(' subplot(2,1,2); plot(t,sf) title(' µçÐÅ1201')

1201') µçÐÅ