如何用matlab定义DFT

如何用matlab定义DFT,第1张

1、首先双击matlab软件图标,打开matlab软件,可以看到matlab软件的界面。

2、使用syms命令,创建四个符号变量a、b、c、x、t。

3、使用符号变量a,创建代数式A,其中A=7*sin(a)。

4、使用函数fourier(A,a,t),对代数式A进行DFT变换。得到的结果中diract(t-1)是狄拉克函数。

5、使用符号变量c,创建代数式B,其中A=3*c^2。

6、使用函数fourier(B,c,t),对代数式B进行DFT变换。得到的结果中dirac(2,t)是对狄拉克函数的二阶导数。

function y=myditfft(x)

%本程序对输入序列实现DIT-FFT基2算法,点数取大于等于长度的2的幂次

%------------------------------------

% myditfft.c

%------------------------------------

m=nextpow2(x) %求的x长度对应的2的最低幂次m

N=2^m

if length(x)<N

x=[x,zeros(1,N-length(x))] %若的长度不是2的幂,补0到2的整数幂

end

nxd=bin2dec(fliplr(dec2bin([1:N]-1,m)))+1 %求1:2^m数列的倒序

y=x(nxd)%将倒序排列作为的初始值

for mm=1:m%将DFT做m次基2分解,从左到右,对每次分解作DFT运算

Nmr=2^mm

u=1 %旋转因子u初始化

WN=exp(-i*2*pi/Nmr) %本次分解的基本DFT因子WN=exp(-i*2*pi/Nmr)

for j=1:Nmr/2 %本次跨越间隔内的各次碟形运算

for k=j:Nmr:N %本次碟形运算的跨越间隔为Nmr=2^mm

kp=k+Nmr/2%确定碟形运算的对应单元下标

t=y(kp)*u %碟形运算的乘积项

y(kp)=y(k)-t %碟形运算的加法项

y(k)=y(k)+t

end

u=u*WN%修改旋转因子,多乘一个基本DFT因子WN

end

end


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12144534.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存