数字信号处理实验二:DFT的共轭对称性及应用

实验目的

1、掌握实序列的DFT共轭对称性的特点;

2、学习应用实序列DFT的共轭对称性构建频域序列以保证时域序列为实数的方法;

实验原理

1.DFT的共轭对称性

 

其中:

2.有限长实序列的DFT的共轭对称性

为长度为N的有限长实序列,则是圆周共轭对称序列:。此对称性又可表示为: 。

实验内容

1、试利用 DFT 的共轭对称性,设计两种高效算法,使得计算一个N 点DFT 来得到两个实序列的 N 点 DFT。设:

(1)算法一:令,计算其16点离散傅里叶变换(提示:取 N=16时,

分别求出,并通过 求IDFT的方法验证得出的结果是否正确。

clc,clear,close all
N=16;
n=0:1:N-1;
x1=cos(pi/4*n);
x2=sin(pi/8*n);
xn=x1+x2;
Xk=fft(xn,16);
X1=real(Xk);
X2=imag(Xk);
x11=ifft(X1,16);
x22=ifft(1i*X2,16);

subplot(611)
stem(n,X1)
xlabel('k');
ylabel('real(X1)');

subplot(612)
stem(n,X2)
xlabel('k');
ylabel('real(X2)');

subplot(613)
stem(n,x1);
xlabel('n');
ylabel('x1');

subplot(614)
stem(n,x11);
xlabel('n');
ylabel('x1恢复');

subplot(615)
stem(n,x2);
xlabel('n');
ylabel('x2');

subplot(616)
stem(n,x22);
xlabel('n');
ylabel('x2恢复');

实验结论 1-1的关系?

答:

(2)算法二:令,重复(1)。

clc,clear,close all
N=16;
n=0:1:N-1;
k=0:1:N-1;
x1=cos(pi/4*n);
x2=sin(pi/8*n);
xn=x1+1i*x2;
Xk=fft(xn,16);
Xkx=conj(Xk);%取共轭
X1=1/2*(Xk+[Xkx(1),fliplr(Xkx(2:16))]);
X2=1/2*(Xk-[Xkx(1),fliplr(Xkx(2:16))]);
x11=ifft(X1,16);
x22=ifft(X2,16)*(-1i);

subplot(611)
stem(n,real(X1))
xlabel('k');
ylabel('real(X1)');

subplot(612)
stem(n,real(X2))
xlabel('k');
ylabel('real(X2)');

subplot(613)
stem(n,x1);
xlabel('n');
ylabel('x1');

subplot(614)
stem(n,x11);
xlabel('n');
ylabel('x1恢复');

subplot(615)
stem(n,x2);
xlabel('n');
ylabel('x2');

subplot(616)
stem(n,x22);
xlabel('n');
ylabel('x2恢复');

实验结论 1-2的关系?

答:

2.有限长实序列的DFT的共轭对称性

由有限长实序列的DFT的共轭对称性可知,频域成共轭对称的序列作IDFT

后为实序列,而实数的发送可以大大简化发送设备。OFDM 正是利用这一特性来保证发往信道的序列为实数序列的。

按要求编程完成以下内容:

设 XK_in 为一频域复数序列,XK_in=[1+j,-3-j,-3+3*j,-1-3*j];

试利用实序列的 DFT 的共轭对称性公式,将频域序列

XK_in 扩展成共轭对称形式Xk,以保证其对应的时域序列xn =ifft(Xk,16)为实数序列。

(1)求频域序列Xk;并给出Xk的实部与虚部图;

clc,clear,close all
format compact
N=16;
n=0:1:N-1;
k=0:1:7;
XK_in=[1+1i,-3-1i,-3+3*1i,-1-3*1i];
XKf=conj(fliplr(XK_in)); 
Xk=[0,XK_in,0,0,0,0,0,0,0,XKf];

subplot(211)
stem(n,real(Xk));
xlabel('k');
ylabel('real(Xk)');
subplot(212)
stem(n,imag(Xk));
xlabel('k');
ylabel('imag(Xk)');

实验结论 2-1:说明Xk的实部与虚部各有何特点;

答:实部关于N/2偶对称,虚部关于N/2奇对称。

(2)求xn =ifft(Xk,16);  

clc,clear,close all
format compact
N=16;
n=0:1:N-1;
k=0:1:7;
XK_in=[1+1i,-3-1i,-3+3*1i,-1-3*1i];
XKf=conj(fliplr(XK_in)); 
Xk=[0,XK_in,0,0,0,0,0,0,0,XKf];
xn =ifft(Xk,16)

subplot(211)
stem(n,real(xn));
xlabel('n');
ylabel('real(xn)');
subplot(212)
stem(n,imag(xn));
xlabel('n');
ylabel('imag(xn)');

实验结论 2-2:说明xn是否为实数序列,可以用xn的实部与虚部图来说明。

答:由上图可知,xn虚部恒为0,为实数序列。

实验思考

1.对序列x(n),如何通过计算N/2点DFT而得到N点DFT?

答:

  (1)对于序列x(n),可由基2FFT算法,对x(n)进行奇偶序列划分来求N/2点DFT,从而求出N点DFT。

(2)特别的,若x(n)为实序列,则由,当N=偶数时,只需计算X(k)的前面N/2+1点,而N=奇数时,只需计算X(k)的前面(N+1)/2点,从而计算出N点DFT。

猜你喜欢

转载自blog.csdn.net/yyfloveqcw/article/details/124188895