验证离散傅里叶变换(DFT)的频域循环移位定理

离散傅里叶变换(DFT)的频域循环移位定理如下:

若:X(k)=DFT[x(n)]_N       0\leqslant k\leqslant N-1

                 Y(k)=X((k+l))_NR_N(k)

则: y(n)=IDFT[Y(k)]_N=W_N^n^lx(n)

接下来通过MATLAB编程进行验证,为了便于给出任意移位点数与任意序列的验证,此处将验证代码封装为一个DFT_frequency_circshift函数,代码如下:

function [yn,yn1] = DFT_frequency_circshift( xn,l )
%DFT_frequency_circshift 验证DFT的频域循环移位定理
%   xn0-信号,l-移位点数,l>左移,l<0,右移
N=length(xn);
Xk=fft(xn,N);
n=0:N-1;
Yk=circshift(Xk,[1,N-l]);  %左移l位
yn=ifft(Yk,N);
WNnl=exp(-j*2*pi/N).^(l*n);
yn1=xn.*WNnl;
figure
subplot(3,1,1);stem(xn);title('时域x(n)');
subplot(3,1,2);stem(Xk);title('频域X(k)');
subplot(3,1,3);stem(Yk);title('X(k)移位l点后的Y(k)');
figure
subplot(2,1,1);stem(yn);title('移位后时域y(n)');
subplot(2,1,2);stem(yn1);title('y_1(n)=x(n)*W_N^n^l');
end

用任意序列xn进行验证,代码如下:

clear all
clc
xn=[zeros(1,5),1:4,5:-1:1,zeros(1,6)];
l=10;
[yn,yn1]=DFT_frequency_circshift( xn,l );

运行后的结果如下图:

由图可看出频域移为后经过傅里叶反变换后的y(n)y_1(n)=W_N^n^lx(n)(函数代码中的yn1)相等即可验证离散傅里叶变换(DFT)的频域循环移位定理。

 

 

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值