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

📄 top.m

📁 FPGA开发光盘各章节实例的设计工程与源码
💻 M
字号:
%-------------------------------------------------------------------------%
%--     时间抽取32点基-2固定缩小比例(2/级)fft的matlab验证程序。         --%
%--         作者:Xudong                                                --%
%--         时间:2004年5月7日                                          --%
%------------------------------------------------------------------------%

%--本代码主要用来分析,此种FFT算法中相位误差的来源。
clear;
clc;

PI=3.14159265357;
DWIDTH=5;
POINTS=32;
OutDataWidth=16;


%--下面的程序用于产生仿真所需的输入信号(正弦信号)。
%                  ^
%                  |       *
%                  |    *     *
%                  |  *         *
%                  | *            *               
%                --|*--------------*--------------*----->
%                  |0 1 ...         *            *31
%                  |                  *         *
%                  |                    *     *
%                  |                       *
MULT_F=3;
OMIGA=2*PI/(POINTS-1)*MULT_F;
N=[0:1:31];
indata_signal=sin(OMIGA*N);
CONSTANT=0;

fftout_orig=fft(indata_signal+CONSTANT);
fftout_orig_xil=fftout_orig*2^DWIDTH/(2^log2(POINTS))*2^OutDataWidth;
thetaout_orig=angle(fftout_orig);
thetaout_orig_xil=thetaout_orig*2^(OutDataWidth-3);


indata=round((indata_signal+CONSTANT)/max(indata_signal+CONSTANT)*2^(DWIDTH-1));%--相当于是一个A/D采用器。

fftout_mat=fft(indata);%--Malab计算出的FFT理论输出。
fftout_xil=floor(fftout_mat/(2^log2(POINTS)));%--因为在设计中为了防止每级蝶形运算的数据逸出,
                                              %--所以每级输出数据缩小了2倍。
absout_xil=abs(fftout_xil);%--FFT结果的理论模值。
thetaout=angle(fftout_xil);%--FFT结果的理论相位值(弧度表示)。
thetaout_xil=thetaout*2^(OutDataWidth-3);%--按Xilin的CORDIC核中定义的数据格式缩放后的数值(波形中的理论数值,便于比较用)。
%thetaout_du=thetaout/PI*180;%--度数表示的FFT相位理论输出结果。
[g1out,g2out,g3out,g4out,g5out]=simfft(indata);
absg5out=abs(g5out)*2^(OutDataWidth-8);
%--图形化输出。
figure(1);
subplot(2,1,1);
stem(indata,'*-r');
title('输入数据时域值','color','b','FontSize',8);

subplot(2,1,2);
stem(abs(fftout_xil),'*-r');
title('FFT输出理论值','color','b','FontSize',8);

figure(2);
stem(absg5out);

⌨️ 快捷键说明

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