matlab对信号DTFT,【MATLAB】离散傅里叶变换DTFT和IDTFT

1、已知用余弦序列x(n)=cos(2*pi*n/10),求其移位信号x(n-3)和x(n+3)在-3

MATLAB的程序如下:

n=-3:10;k0=3;k1=-3;

x=cos(2*pi*n/10);

x1=cos(2*pi*(n-k0)/10);

x2=cos(2*pi*(n-k1)/10);

subplot(3,1,1),stem(n,x,'filled','k');

ylabel('x(n)');

subplot(3,1,2),stem(n,x1,'filled','k');

ylabel('x(n-2)');

subplot(3,1,3),stem(n,x2,'filled','k');

ylabel('x(n+2)');

波形如下:

matlab对信号DTFT,【MATLAB】离散傅里叶变换DTFT和IDTFT_第1张图片

2、对基本序列x1(n)=e^(j*pi*n/8),x2(n)=sin(pi*n/8)进行16点DFT。

DFT.m的子程序:

function[Xk]=dft(xn,N)

n=[0:1:N-1];

k=[0:1:N-1];

WN=exp(-j*2*pi/N);

nk=n'*k;

WNnk=WN.^nk;

Xk=xn*WNnk;

主程序如下:

N=16;

n=0:N-1;

x1n=exp(j*pi*n/8);

X1k=dft(x1n,N);

x2n=cos(pi*n/8);

X2k=dft(x2n,N);

x3n=sin(pi*n/8);

X3k=dft(x3n,N);

subplot(2,3,1);stem(n,x1n,'.');

title('序列x1(n)');

xlabel('k');ylabel('x1(n)');

subplot(2,3,2);stem(n,x2n,'.');

title('序列x2(n)');

xlabel('k');ylabel('x2(n)');

subplot(2,3,3);stem(n,x3n,'.');

title('序列x3(n)');

xlabel('k');ylabel('x3(n)');

subplot(2,3,4);stem(n,abs(X1k),'.');

title('16点DFT[x1(n)]');

xlabel('k');ylabel('|X1(k)|');

subplot(2,3,5);stem(n,abs(X2k),'.');

title('16点DFT[x2(n)]');

xlabel('k');ylabel('|X2(k)|');

subplot(2,3,6);stem(n,abs(X3k),'.');

title('15点DFT[x3(n)]');

xlabel('k');ylabel('|X3(k)|');

波形如下:

matlab对信号DTFT,【MATLAB】离散傅里叶变换DTFT和IDTFT_第2张图片

3、序列x(n)=[2,-1,1,1],分别求其DFT和DTFT并比较

x=[2,-1,1,1];Xd=dft(x,4);nx=0:3;

Xd1=fftshift(Xd);

K=64;dw=2*pi/K;

k=floor((-K/2+0.5):(K/2-0.5));

X=x*exp(j*dw*nx'*k);

subplot(2,1,1),plot(k*dw,abs(X)),hold on;

plot([0:3]*2*pi/4,abs(Xd),'o');

subplot(2,1,2),plot(k*dw,abs(X)),hold on;

plot([-2:1]*2*pi/4,abs(Xd1),'x');

set(gcf,'color','w');

波形如下:

matlab对信号DTFT,【MATLAB】离散傅里叶变换DTFT和IDTFT_第3张图片

你可能感兴趣的:(matlab对信号DTFT)