数字信号处理实验6Word文档下载推荐.docx
《数字信号处理实验6Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验6Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
forn3=27:
100
x(n3+1)=0;
stem(n,x);
xlabel('
n'
);
ylabel('
x(n)'
title('
给定信号序列'
编程图像:
图0给定信号图像
1.利用DTFT计算信号的频谱,一个周期内角频率离散为M=1000点,画出频谱图,标明坐标轴。
26;
xn(n1+1)=n1+1;
xn(n2+1)=27-n2;
M=1000;
%设定一个周期内1000个点
k=0:
M-1;
w=2*pi*k/M;
X=dtft(xn,M);
plot(w,abs(X));
w/rad'
|X(ejw)|'
信号频谱图M=1000'
图1给定信号的DTFT
2.分别对信号的频谱在区间上等间隔抽样16点和32点,得到和。
离散傅里叶反变换后得到时域信号和。
编程思路:
只需要将代码中M的值分别更改为16和32即可完成对于DTFT的16点和32点抽样。
编程代码:
M=16;
%M值即为抽样点数
stem(w,abs(X));
k'
X16(k)'
Xejw16点抽样'
32点抽样代码不再重复赘述
图2-116点DTFT抽样图像
图2-232点DTFT抽样图像
3.画出信号和的图形,计算与和的均方误差。
从时域角度上进行对比和分析,验证频域抽样定理。
抽样后套用IDFT函数对抽样进行还原,还原后的序列分别是从0到15以及0到31
%频率抽样16个点,故还原为时域信号也应包含16个点
xn16=idft(X,M);
nn=0:
15;
stem(nn,xn16);
x16(n)'
16点频率抽样信号还原'
M=32;
xn32=idft(X,M);
31;
%频率抽样32个点,故还原为时域信号也应包含32个点
stem(nn,xn32);
x32(n)'
32点频率抽样信号还原'
编程图像:
图3-116点DTFT抽样还原时域信号
图3-132点DTFT抽样还原时域信号
计算与和的均方误差:
由于16点抽样还原信号产生混叠,故和原信号计算方差时应根据周期性变化补齐剩下的点;
而计算32点抽样还原信号时,可以忽略27至31这5个零点。
16点计算方差编程代码:
forc=17:
27
xn16(c)=12;
%根据周期性将剩余的点补齐,值均为12
sum=0;
forn=1:
sum=sum+(abs(xn(n))-abs(xn16(n)))^2;
d=sum/27
matlab计算得到16点抽样还原信号与原信号的方差为37.4815。
32点计算方差编程代码:
sum=sum+(abs(xn(n))-abs(xn32(n)))^2;
%计算方差时舍去27至31这5个零点
matlab计算得到32点抽样还原信号与原信号的方差为4.0178e-028,可视为0
由此可得,16点抽样的还原信号明显出现了失真,而32点抽样还原信号则准确还原了原信号。
因此从时域上证明了频域抽样定理。
图像分析:
从图像对比来看,16点DTFT抽样还原的时域信号出现了明显的混叠现象,导致失真较大;
而32点DTFT抽样还原的时域信号则与原信号相吻合,从而证明了频域抽样定理,即对于M点的有限长序列,频域抽样不失真的条件是频域抽样点数N要大于或等于M,即满足N≥M。
4.利用内插公式,由和分别得到的估计值,计算均方误差,从频域角度验证频率抽样定理。
套用内插公式进行还原,其中
xn(n1+1)=n1+1;
xn(n2+1)=27-n2;
L=1000;
forb=0:
L-1
wn=2*pi*b/L;
sum=0;
fork1=0:
M-1
ifsin((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时,求极限可得三角函数部分为1,故内插公式的值为1
Xejw(b+1)=sum;
k2=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-116点DTFT抽样还原X(ejw)
图4-132点DTFT抽样还原X(ejw)
计算均方误差:
M1=1000;
X=dtft(xn,M1);
X1=dtft(xn,M);
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)));
sum=sum+X1(k1+1);
sum1=0;
forc=1:
L
sum1=sum1+(abs(X(c))-abs(Xejw(c)))^2;
%计算方差循环累加
d=sum1/L
matlab计算可得16点DTFT抽样还原方差为230,32点DTFT抽样还原方差编程代码不再重复赘述,matlab计算得到32点DTFT抽样还原方差为1.0954e-026,近似可视为0,故32点抽样还原得到和原信号DTFT一致的图象。
从图像上来看,16点DTFT的抽样还原出现了明显的失真,而32点DTFT的抽样还原则和原DTFT图象相吻合。
从而较好地证明了频域抽样定理,即对于M点的有限长序列,频域抽样不失真的条件是频域抽样点数N要大于或等于M,即满足N≥M。