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

离散傅里叶变换时域循环移位定理如下:

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

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

对于序列1,进行验证,代码如下:

t=1:1:20;
xn=2*sin(2*t)+3*cos(4*t);
m=5;
[Xk,Yk,Yk1]=DFT_time_circshift( xn,m );

运行后的结果如下图所示:

由图可看出时域移位后的Y(k)Y_1(k)=X(k)*W_N^-^k^m(代码中的Yk1)相等,接下来再看一下工作区的Y(k)Y_1(k),如下图,(由于篇幅限制,并未全部展示)

通过Yk与Yk1的图形与元素值得比较可知,Y(k)=Y_1(k),即离散傅里叶变换(DFT)的时域循环移位定理得以验证。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值