数字信号处理实验西安电子科技大学姓名:刘中山学号:03091404一、实验内容1.利用傅立叶级数展开的方法,自由生成所需的x(t);2.通过选择不同的采样间隔T(分别选T或1/2fc),从x(t)获得相应的x(n)(作出x(n)图形);3.对获得的不同x(n)分别作傅立叶变换,分析其频率响应特性(给出幅频与相频特性曲线);4.利用巴特沃思、切比雪夫或椭圆滤波器设计数字滤波器(滤波特性自定),要求通过改变滤波器参数或特性(低通、高通、带通或带阻)设计至少两种数字滤波器,分析所设计滤波器(画出频率特性曲线),并对上述给出的不同x(n)分别进行滤波(画出滤波结果),然后加以讨论;5.利用窗函数设计法或频率采样法设计数字滤波器(滤波特性自定),要求通过改变滤波器参数或特性(低通、高通、带通或带阻等)设计至少两种数字滤波器,分析所设计滤波器(画出频率特性曲线),并对上述给出的不同x(n)分别进行滤波(画出滤波结果),然后加以讨论。二、实验代码及注释%生成信号参数设置t=0:pi/1000:2*pi;f0=10;f1=50;f2=80;f3=150;%产生的信号x=4*sin(2*pi*f0*t)+sin(2*pi*f1*t)+1.2*sin(2*pi*f2*t)+0.8*sin(2*pi*f3*t);%采样1fs1=500;%5002*f3=300ts1=1/fs1;n1=0:149;%n=0:(fs1/f1)*3-1;t1=ts1*n1;y1=4*sin(2*pi*f0*t1)+sin(2*pi*f1*t1)+1.2*sin(2*pi*f2*t1)+0.8*sin(2*pi*f3*t1);%采样2fs2=200;%2002*f3=300ts2=1/fs2;n2=0:149;%n=0:(fs2/f1)*5-1;t2=ts2*n2;y2=4*sin(2*pi*f0*t2)+sin(2*pi*f1*t2)+1.2*sin(2*pi*f2*t2)+0.8*sin(2*pi*f3*t2);%傅里叶变换f1=fft(y1);f2=fft(y2);%作图figure;subplot(3,1,1),plot(x),gridon;axis([0,250,-8,8]);title('原始信号');subplot(3,1,2),stem(y1),grid;axis([0,99,-8,8]);title('采样后获得的序列1');subplot(3,1,3),stem(y2),grid;axis([0,39,-8,8]);title('采样后获得的序列2');figure;subplot(2,2,1),plot(abs(f1)),grid;title('序列1的幅频特性');subplot(2,2,3),plot(phase(f1)),grid;title('序列1的相频特性');subplot(2,2,2),plot(abs(f2)),grid;title('序列2的幅频特性');subplot(2,2,4),plot(phase(f2)),grid;title('序列2的相频特性');%Butterworth低通数字滤波器设计wpz=0.1;%0.1*250=25hz,通带边界频率归一化值wsz=0.2;%0.2*250=50hz,阻带边界频率归一化值rp=3;%通带最大衰减(dB)rs=50;%阻带最小衰减(dB)[Nd,wdc]=buttord(wpz,wsz,rp,rs);%Nd为滤波器的阶数,wdc为3dB截止频率[B,A]=butter(Nd,wdc);%B、A为系统函数的分子分母多项式系数[Hk,w]=freqz(B,A);%数字滤波器的频率响应的函数%作图,观察滤波器的特性figure;subplot(2,1,1),plot(w/pi,abs(Hk)),grid;axis([0,1,0,1.2]);title('Butterworth低通数字滤波的幅频特性');subplot(2,1,2),plot(w/pi,phase(Hk)),grid;axis([0,1,-15,0]);title('Butterworth低通数字滤波的相频特性');%滤波效果figure;subplot(2,2,1),plot(filter(B,A,y1)),grid;title('Butterworth低通数字滤波器滤波后序列1时域');subplot(2,2,2),plot(filter(B,A,y2)),grid;title('Butterworth低通数字滤波器滤波后序列2时域');btft1=fft(filter(B,A,y1));btft2=fft(filter(B,A,y2));subplot(2,2,3),plot(abs(btft1)),grid;title('Butterworth低通数字滤波器滤波后序列1频域');subplot(2,2,4),plot(abs(btft2)),grid;title('Butterworth低通数字滤波器滤波后序列2频域');%椭圆带通滤波器fpl=30;fpu=100;fsl=20;fsu=110;wp=[2*fpl/fs1,2*fpu/fs1];%参数针对序列y1ws=[2*fsl/fs1,2*fsu/fs1];rp=0.5;rs=40;[N,wpo]=ellipord(wp,ws,rp,rs);[B,A]=ellip(N,rp,rs,wpo);[Hk,w]=freqz(B,A);figure;subplot(2,1,1),plot(w/pi,abs(Hk)),grid;title('椭圆带通滤波器的幅频特性');subplot(2,1,2),plot(w/pi,phase(Hk)),grid;title('椭圆带通滤波器的相频特性');%滤波效果figure;subplot(2,2,1),plot(filter(B,A,y1)),grid;title('椭圆带通滤波器滤波后序列1时域');subplot(2,2,2),plot(filter(B,A,y2)),grid;title('椭圆带通滤波器滤波后序列2时域');btft1=fft(filter(B,A,y1));btft2=fft(filter(B,A,y2));subplot(2,2,3),plot(abs(btft1)),grid;title('椭圆带通滤波器滤波后序列1频域');subplot(2,2,4),plot(abs(btft2)),grid;title('椭圆带通滤波器滤波后序列2频域');%窗函数法(汉宁窗)设计线性相位高通FIR数字滤波器wp=pi*0.5;ws=pi*0.4;bt=wp-ws;N0=ceil(6.2*pi/bt);N=N0+mod(N0+1,2);%产生滤波函数序列长度wc=(wp+ws)/2/pi;hn=fir1(N-1,wc,'high',hanning(N));%傅里叶变换fh=fft(hn);figure;subplot(2,1,1),plot(abs(fh)),grid;axis([0,N,0,1.5]);title('汉宁窗,高通FIR数字高通滤波器幅频特性');subplot(2,1,2),plot(phase(fh)),grid;axis([0,N,0,10]);title('汉宁窗,高通FIR数字高通滤波器相频特性');%滤波效果figure;subplot(2,2,1),plot(filter(hn,1,y1)),grid;title('汉宁窗,高通FIR数字高通滤波器滤波后序列1时域');subplot(2,2,2),plot(filter(hn,1,y2)),grid;title('汉宁窗,高通FIR数字高通滤波器滤波后序列2时域');btft1=fft(filter(hn,1,y1));btft2=fft(filter(hn,1,y2));subplot(2,2,3),plot(abs(btft1)),grid;title('汉宁窗,高通FIR数字高通滤波器滤波后序列1频域');subplot(2,2,4),plot(abs(btft2)),grid;title('汉宁窗,高通FIR数字高通滤波器滤波后序列2频域');%窗函数法(哈明窗)设计线性相位带阻FIR数字滤波?wlp=0.1*pi;wls=0.15*pi;wus=0.4*pi;wup=0.45*pi;bt=wls-wlp;N0=ceil(6.2*pi/bt);N=N0+mod(N0+1,2);%产生滤波函数序列长度wp=[(wlp+wls)/2/pi,(wus+wup)/2/pi];hn=fir1(N-1,wp,'stop',hamming(N));%傅里叶变换fh=fft(hn);figure;subplot(2,1,1),plot(abs(fh)),grid;axis([0,N,0,1.5]);title('哈明窗,带阻FIR数字高通滤波器幅频特性');subplot(2,1,2),plot(phase(fh)),grid;axis([0,N,0,4]);title('哈明窗,带阻FIR数字高通滤波器相频特性');%滤波效果figure;subplot(2,2,1),plot(filter(hn,1,y1)),grid;title('哈明窗,带阻FIR数字高通滤波器滤波后序列1时域');subplot(2,2,2),plot(filter(hn,1,y2)),grid;title('哈明窗,带阻FIR数字高通滤波器滤波后序列2时域');btft1=fft(filter(hn,1,y1));btft2=fft(filter(hn,1,y2));subplot(2,2,3),plot(abs(btft1)),grid;title('哈明窗,带阻FIR数字高通滤波器滤波后序列1频域');subplot(2,2,4),plot(abs(btft2)),grid;title('哈明窗,带阻FIR数字高通滤波器滤波后序列2频域');