用matlab編寫實現fft的程式

2021-08-28 07:13:07 字數 1232 閱讀 4702

1樓:

function y=myditfft(x)

%本程式對輸入序列實現dit-fft基2演算法,點數取大於等於長度的2的冪次

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

% myditfft.c

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

m=nextpow2(x); %求的x長度對應的2的最低冪次m

n=2^m;

if length(x)

x=[x,zeros(1,n-length(x))]; %若的長度不是2的冪,補0到2的整數冪

endnxd=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;

endu=u*wn; %修改旋轉因子,多乘一個基本dft因子wn

endend

2樓:匿名使用者

你在matlab下,edit fft

就能調出fft的源**

您好怎麼樣用c語言編寫實現矩陣3行3列

include int fun int array 3 3 return 0 int main for i 0 i 3 i fun array printf converted array n for i 0 i 3 i return 0 從鍵盤輸入一個3行4列的矩陣,將其轉置後,變成4行3列的矩陣...

SQL語句編寫實現如下需求急,sql語句怎麼實現這樣的需求?

如果entry的值一直都是 15550 的話,還有creature loot template這個表是否只有這2列,如果還有別的列就不好辦了 自增長列除外 如果只有這2列,且是多條資料插入表中的情況可以按以下格式 不需要指定列,但是下面查詢出的結果列必須和要插入表的列數一樣,自增長列不算 inser...

matlab中使用FFT進行諧波分析的程式

參考 二.fft應用舉例 例1 x 0.5 sin 2 pi 15 t 2 sin 2 pi 40 t 取樣頻率fs 100hz,分別繪製n 128 1024點幅頻圖。clf fs 100 n 128 取樣頻率和資料點數 n 0 n 1 t n fs 時間序列 x 0.5 sin 2 pi 15 t...