⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matlabfft.txt

📁 可实现FFT功能的MATLAB源代码
💻 TXT
字号:
用函数FFT近似画出x(n)=R10(n)在(-4pi,4pi)上的幅频相应曲线


以下是我在MatLab里写的16点Base-4 FFT. 
"%"后面的是我写的注释 

xi=[1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0]; %输入序列,按照你的要求是R10(n) 
trans=[1,1,1,1;1,-j,-1,j;1,-1,1,-1;1,j,-1,-j]; %系数矩阵 
x=zeros(4); %储存 输入序列转换成 Base-4形式后的矩阵 
X1=zeros(4); %储存 一次Base-4 FFT蝶形运算后的矩阵 
X2=zeros(4); %储存 两次Base-4 FFT蝶形运算后的矩阵 
W=zeros(1,4).'; %储存 旋转因子矩阵 
y=zeros(1,16); %储存 整序后的结果 
for n=1:4 
x(n,1:4)=xi(:,4*n-3:4*n); %对输入整序 
end 
for n=1:4 
X1(:,n)=trans*x(:,n); %第一次蝶形运算 
end 
for n=1:4 
for k=1:4 
W(k,1)=exp(-j.*2.*pi./16.*(k-1).*(n-1)); %取得第二次蝶形运算的旋转因子矩阵 
end 
X2(n,:)=(trans*(X1(n,:).'.*W)).'; %第二次蝶形运算 
end 
for n=1:4 
y(:,4*n-3:4*n)=X2(:,n).'; %对输出整序 
end 
subplot(3,2,1); %以下是输出到屏幕的代码 
stem(real(xi)); 
axis([0,17,0,7]); 
title('时域实部'); 
subplot(3,2,2); 
stem(imag(xi)); 
axis([0,17,0,1]); 
title('时域虚部'); 
subplot(3,2,3); 
stem(real(y)); 
axis([0,17,-24,24]); 
title('频域实部'); 
subplot(3,2,4); 
stem(imag(y)); 
axis([0,17,-10,10]); 
title('频域虚部'); 
subplot(3,2,5); 
stem(abs(y)); 
axis([0,17,0,22]); 
title('频域-模'); 
subplot(3,2,6); 
stem(angle(y)); 
axis([0,17,-2*pi,2*pi]); 
title('频域相角'); 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -