数字信号处理DFT实验

目录

x(n)=cos(0.48πn)+cos(0.52πn)

 (1)求它的有限样本的频谱。取0≤n≤10,确定并画出DFT[x(n)]。

 (2)取0≤n≤10,确定并画出DFT[x(n)],对序列补90个零后,确定并画出DFT[x(n)]。

 (3)求它的有限样本的频谱。取0≤n≤100,确定并画出DFT[x(n)]。

   (4)拓展部分


x(n)=cos(0.48πn)+cos(0.52πn)

(1)求它的有限样本的频谱。取0≤n≤10,确定并画出DFT[x(n)]。

clc;
clear all;

N=11;                               %序列长度
n=[0:1:N-1];
k=[0:1:N-1];
xn=cos(0.48*pi*n)+cos(0.52*pi*n);   %原始序列x(n)
WN=exp(-j*2*pi/N);                  %DFT公式的具体实现
nk=n'*k;
WNnk=WN.^nk;
Xk=xn*WNnk;
magXk=abs(Xk);
angXk=angle(Xk);
plot(k,magXk);grid                     %作图
xlabel('k');title('幅频特性曲线');ylabel('X(k)');

数字信号处理DFT实验_第1张图片

 从示意图中我们可以很明显看出来栅栏效应,图像显得很尖锐,在频率上抽样丢掉了很多重要信息。

 栅栏效应:描述的是信号采样时只能得到采样点的信息,而忽略了采样间隔中数据信息的现象。不管是时域采样还是频域采样,都有相应的栅栏效应,只是当时域采样满足采样定理时,栅栏效应不会有什么影响。而频域采样的栅栏效应则影响很大,“挡住”或丢失的频率成分有可能是重要的或具有特征的成分,使信号处理失去意义。

数字信号处理DFT实验_第2张图片

(2)取0≤n≤10,确定并画出DFT[x(n)],对序列补90个零后,确定并画出DFT[x(n)]。

clc;clear all;

N=101;                                  %序列长度
n=[0:1:N-1];
k=[0:1:N-1];
n1=[0:1:10];
xn=cos(0.48*pi*n1)+cos(0.52*pi*n1);    %前11个点为原始序列x(n)
xn=[xn,zeros(1,N-length(n1))];         %将序列补90个0至所需长度
WN=exp(-j*2*pi/N);                     %DFT公式的具体实现
nk=n'*k;
WNnk=WN.^nk;
Xk=xn*WNnk;
plot(k,abs(Xk));grid                   %作图
xlabel('k');title('幅频特性曲线');ylabel('|X(k)|');

数字信号处理DFT实验_第3张图片 如图所示,栅栏效应明显降低,但是本质上频率分辨率并没有提高,理论上两个余弦序列求和应该是两个很尖锐的锋。

 (3)求它的有限样本的频谱。取0≤n≤100,确定并画出DFT[x(n)]。

%求它的有限样本的频谱。取0≤n≤100,确定并画出DFT[x(n)]。

clear all;
clc;

N=101;                                  %序列长度
n=[0:1:N-1];
k=[0:1:N-1];
xn=cos(0.48*pi*n)+cos(0.52*pi*n);       %原始序列x(n)
WN=exp(-j*2*pi/N);                      %DFT公式的具体实现
nk=n'*k;
WNnk=WN.^nk;
Xk=xn*WNnk;
plot(k,abs(Xk));grid                    %作图
xlabel('k');title('幅频特性曲线');ylabel('|X(k)|');

数字信号处理DFT实验_第4张图片

 (4)拓展部分

思考一:如果我继续拓展样本的有效长度会怎么样?

数字信号处理DFT实验_第5张图片

图像更加清晰,从而逼近真实无限长序列的DFT

思考二:如果我提高时域抽样的精度对DFT有什么影响?

clear all;
clc;

N=101;                                  
n=[0:0.1:N-1];
xn=cos(0.48*pi*n)+cos(0.52*pi*n);  

k=[0:1:10*(N-1)];
n=[0:1:10*(N-1)];

     %原始序列x(n)
WN=exp(-j*2*pi/(10*N));                      %DFT公式的具体实现
nk=n'*k;
WNnk=WN.^nk;
Xk=xn*WNnk;
plot(k,abs(Xk));grid                    %作图
xlabel('k');title('幅频特性曲线');ylabel('|X(k)|');

 数字信号处理DFT实验_第6张图片

实际上,只提高信号的采样频率,但是不提高有效数据长度T_{0}是无法提高频率分辨率的。

F_{0}=1/T_{0}, 其中T_{0}为有效数据长度;T_{0}=N*TT为抽样间隔。DTFT中,频率分辨率F_{0}只与有效数据长度有关,成反比关系。

 

本篇为了深入理解DFT,采用的是用矩阵运算求解。MATLAB提供了DFT工具箱。

你可能感兴趣的:(DSP数字信号处理,算法,dsp开发)