数字信号处理上机实验matlab程序及结果.docVIP

  • 34
  • 0
  • 约1.02万字
  • 约 27页
  • 2017-05-21 发布于浙江
  • 举报

数字信号处理上机实验matlab程序及结果.doc

数字信号处理上机实验matlab程序及结果

研究生《数字信号处理》(dsp) 上机MATLAB实验 实验1熟悉MATLAB环境,会用FFT求信号频谱,相关方法去除噪声。 %生成一个带有噪声的正弦信号 clear; t=linspace(-2*pi,2*pi,1000); y=sin(t)+rand(1,1000); plot(y); 波形图: %把带有噪声的正弦信号进行FFT分解 z=fft(y); plot(t,z); 波形图: %用相关方法除噪声 f=xcorr(y,y); plot(f); 波形图: 实验2利用相关算法求信号的幅值和相位 %用相关性求信号的幅值与相位 clear; t=linspace(-2*pi,2*pi,1000); s=5*sin(t+pi/6)+rand(1,1000); y=3*sin(t)+rand(1,1000); ss=s.*s; sy=s.*y; yy=y.*y; x1=length(ss); x2=length(yy); x3=length(sy); rx0=sum(ss)/x1; ry0=sum(yy)/x2; rxy0=sum(sy)/x3; A=sqrt(2*rx0); B=sqrt(2*ry0); C=acos(2*rxy0/(A*B)); sprintf(A=%d,B=%d,C=%d,A,B,C) 命令窗口输出结果: A=5.086632e+00,B=3.109529e+00,C=5.355640e-01 %用改进的相关算法求幅值和相位 clear; t=linspace(-2*pi,2*pi,1000); s=5*sin(t+pi/6)+rand(1,1000); z=3*sin(t); z1=3*cos(t); zz=z.*z; sz=s.*z; sz1=s.*z1; x1=length(sz); x2=length(zz); x3=length(sz1); rz=sum(zz)/x2; rsz=sum(sz)/x1; rsz1=sum(sz1)/x3; B=sqrt(2*rz); C=atan(rsz1/rsz); A=2*rsz/(B*cos(C)); sprintf(A=%d,B=%d,C=%d,A,B,C) 命令窗口输出结果: A=4.986266e+00,B=2.998500e+00,C=5.264407e-01 实验三设计一个巴尔低通滤波器 %设计一个巴尔沃特低通滤波器,fp=1khz,fs=2khz,ap=1db,as=40db; fp=1000; fs=2000; wp=2*pi*fp; ws=2*pi*fs; ap=1; as=40; [n,wc]=buttord(wp,ws,ap,as,s); fprintf(阶数为%d\n,n); [num,den]=butter(n,wc,s); %[z,p,k]=buttap(n); disp(分子多项式系数分别为); fprintf(%.4e\n,num); disp(分母多项式系数分别为); fprintf(%.4e\n,den); w=[wp ws]; h1=freqs(num,den,w); fprintf(Ap=%.4e\n,-20*log10(abs(h1(1)))); fprintf(As=%.4e\n,-20*log10(abs(h1(2)))); w1=[0:200:12000*pi]; h=freqs(num,den,w1); gain=20*log10(abs(h)); plot(w1/(2*pi),gain); xlabel(Hz); ylabel(dB); title(幅频特性); 输出结果: 阶数为8 分子多项式系数分别为 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 0.0000e+00 6.2187e+30 分母多项式系数分别为 1.0000e+00 3.6222e+04 6.5603e+08 7.7093e+12 6.4060e+16 3.8498e+20 1.6360e+24 4.5108e+27 6.2187e+30 Ap=6.1668e-01 As=4.0000e+01 图形为 实验四 设计一个高通滤波器 %设计一个高通滤波器fp=5khz,fs=1khz,ap=1db,as=40db; fp=5000; fs=1000; ap=1; as=40; wp=1/(2*pi*fp); ws=1/(2*pi*fs); [n,wc]=buttord(wp,ws,ap,as,s); disp(阶数为); disp(n); [num,den]=butter(n,wc,s); [numt,dent]=lp2hp(num,

文档评论(0)

1亿VIP精品文档

相关文档