1、数字信号处理实验6数字信号处理实验六张达成 201000121241 通信二班给定信号 。信号图像编程:n=0:100;for n1=0:13 x(n1+1)=n1+1;endfor n2=14:26 x(n2+1)=27-n2;endfor n3=27:100 x(n3+1)=0;endstem(n,x);xlabel(n);ylabel(x(n);title(给定信号序列);编程图像:图0 给定信号图像1利用DTFT计算信号的频谱,一个周期内角频率离散为M=1000点,画出频谱图,标明坐标轴。n=0:26;for n1=0:13 xn(n1+1)=n1+1;endfor n2=14:26
2、xn(n2+1)=27-n2;endM=1000;%设定一个周期内1000个点k=0:M-1;w=2*pi*k/M;X=dtft(xn,M);plot(w,abs(X);xlabel(w/rad);ylabel(|X(ejw)|);title(信号频谱图 M=1000);编程图像:图1 给定信号的DTFT2分别对信号的频谱在区间上等间隔抽样16点和32点,得到和。离散傅里叶反变换后得到时域信号和。编程思路:只需要将代码中M的值分别更改为16和32即可完成对于DTFT的16点和32点抽样。编程代码:n=0:100;for n1=0:13 xn(n1+1)=n1+1;endfor n2=14:26
3、 xn(n2+1)=27-n2;endM=16;%M值即为抽样点数k=0:M-1;w=2*pi*k/M;X=dtft(xn,M);stem(w,abs(X);xlabel(k);ylabel(X16(k);title(Xejw16点抽样);32点抽样代码不再重复赘述编程图像:图2-1 16点DTFT抽样图像图2-2 32点DTFT抽样图像3画出信号和的图形,计算与和的均方误差。从时域角度上进行对比和分析,验证频域抽样定理。编程思路:抽样后套用IDFT函数对抽样进行还原,还原后的序列分别是从0到15以及0到31编程代码:for n1=0:13 xn(n1+1)=n1+1;endfor n2=14
4、:26 xn(n2+1)=27-n2;endM=16;%频率抽样16个点,故还原为时域信号也应包含16个点X=dtft(xn,M);xn16=idft(X,M);nn=0:15;stem(nn,xn16);xlabel(n);ylabel(x16(n);title(16点频率抽样信号还原);for n1=0:13 xn(n1+1)=n1+1;endfor n2=14:26 xn(n2+1)=27-n2;endM=32;X=dtft(xn,M);xn32=idft(X,M);nn=0:31;%频率抽样32个点,故还原为时域信号也应包含32个点stem(nn,xn32);xlabel(n);yla
5、bel(x32(n);title(32点频率抽样信号还原);编程图像:图3-1 16点DTFT抽样还原时域信号图3-1 32点DTFT抽样还原时域信号计算与和的均方误差:由于16点抽样还原信号产生混叠,故和原信号计算方差时应根据周期性变化补齐剩下的点;而计算32点抽样还原信号时,可以忽略27至31这5个零点。16点计算方差编程代码:for n1=0:13 xn(n1+1)=n1+1;endfor n2=14:26 xn(n2+1)=27-n2;endM=16;X=dtft(xn,M);xn16=idft(X,M);for c=17:27xn16(c)=12;%根据周期性将剩余的点补齐,值均为1
6、2endsum=0;for n=1:27 sum=sum+(abs(xn(n)-abs(xn16(n)2;endd=sum/27matlab计算得到16点抽样还原信号与原信号的方差为37.4815。32点计算方差编程代码:for n1=0:13 xn(n1+1)=n1+1;endfor n2=14:26 xn(n2+1)=27-n2;endM=32;X=dtft(xn,M);xn32=idft(X,M);sum=0;for n=1:27sum=sum+(abs(xn(n)-abs(xn32(n)2;%计算方差时舍去27至31这5个零点endd=sum/27matlab计算得到32点抽样还原信号
7、与原信号的方差为4.0178e-028,可视为0由此可得,16点抽样的还原信号明显出现了失真,而32点抽样还原信号则准确还原了原信号。因此从时域上证明了频域抽样定理。图像分析:从图像对比来看,16点DTFT抽样还原的时域信号出现了明显的混叠现象,导致失真较大;而32点DTFT抽样还原的时域信号则与原信号相吻合,从而证明了频域抽样定理,即对于M点的有限长序列,频域抽样不失真的条件是频域抽样点数N要大于或等于M,即满足NM。4利用内插公式,由和分别得到的估计值,计算均方误差,从频域角度验证频率抽样定理。编程思路:套用内插公式进行还原,其中编程代码:n=0:100;for n1=0:13xn(n1+
8、1)=n1+1;endfor n2=14:26xn(n2+1)=27-n2;endM=16;X=dtft(xn,M);L=1000;for b=0:L-1 wn=2*pi*b/L; sum=0; for k1=0:M-1 if sin(wn-(2*pi*k1/M)/2)=0 sum=sum+(1/M)*X(k1+1)*(sin(wn-(2*pi*k1/M)*M/2)/sin(wn-(2*pi*k1/M)/2)*exp(-j*(M-1)/2*(wn-(2*pi*k1/M);%内插公式分母不为0时,直接套用内插公式 else sum=sum+X(k1+1); end%当内插公式中分母为0时,求极限
9、可得三角函数部分为1,故内插公式的值为1 endXejw(b+1)=sum;endk2=0:L-1;w2=2*pi*k2/L;%重新设定X(ejw)序列坐标plot(w2,abs(Xejw);xlabel(w/rad);ylabel(|Xejw|);title(16点DTFT抽样还原Xejw);32点抽样还原只需将M值改为32,编程代码不再列举编程图像:图4-1 16点DTFT抽样还原X(ejw)图4-1 32点DTFT抽样还原X(ejw)计算均方误差:for n1=0:13 xn(n1+1)=n1+1;endfor n2=14:26 xn(n2+1)=27-n2;endM1=1000;X=d
10、tft(xn,M1);M=16;X1=dtft(xn,M);L=1000;for b=0:L-1 wn=2*pi*b/L; sum=0; for k1=0:M-1 if sin(wn-(2*pi*k1/M)/2)=0 sum=sum+(1/M)*X1(k1+1)*(sin(wn-(2*pi*k1/M)*M/2)/sin(wn-(2*pi*k1/M)/2)*exp(-j*(M-1)/2*(wn-(2*pi*k1/M); else sum=sum+X1(k1+1); end endXejw(b+1)=sum;endsum1=0;for c=1:L sum1=sum1+(abs(X(c)-abs(Xejw(c)2;end%计算方差循环累加d=sum1/Lmatlab计算可得16点DTFT抽样还原方差为230,32点DTFT抽样还原方差编程代码不再重复赘述,matlab计算得到32点DTFT抽样还原方差为1.0954e-026,近似可视为0,故32点抽样还原得到和原信号DTFT一致的图象。图像分析:从图像上来看,16点DTFT的抽样还原出现了明显的失真,而32点DTFT的抽样还原则和原DTFT图象相吻合。从而较好地证明了频域抽样定理,即对于M点的有限长序列,频域抽样不失真的条件是频域抽样点数N要大于或等于M,即满足NM。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1