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

📄 butfly4.m

📁 基4-FFT蝶形单元实现
💻 M
字号:
function [xk1,xk2,xk3,xk4]=butfly4(x1,x2,x3,x4,wn1,wn2,wn3);
%--输入:x1,x2,wn都是8位有符号数,复数形式
%--输出:xk1,xk2也是8位有符号数,复数形式
% clear all;
% clc;
% % x1=3.6+4*i;
% x2=2+3.6*i;
% x3=6+8*i;
% x4=2+2.4*i;
% wn1=128+0*i;
% wn2=128+0*i;
% wn3=128+0*i;
% 

DataWidth=8;
PointDot=64;

xr1=real(x1);
xi1=imag(x1);
xr2=real(x2);
xi2=imag(x2);
xr3=real(x3);
xi3=imag(x3);
xr4=real(x4);
xi4=imag(x4);

wr1=real(wn1);
wi1=imag(wn1);
wr2=real(wn2);
wi2=imag(wn2);
wr3=real(wn3);
wi3=imag(wn3);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
mid21=xr2-xi2;
mid22=wr1-wi1;
mid23=wr1+wi1;

mul21out=wr1*mid21;
mul22out=mid22*xi2;
mul23out=mid23*xr2;

midaddout2r=mul22out+mul21out;  %BWp的实部
midsubout2i=mul23out-mul21out;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
mid31=xr3-xi3;
mid32=wr2-wi2;
mid33=wr2+wi2;

mul31out=wr2*mid31;
mul32out=mid32*xi3;
mul33out=mid33*xr3;

midaddout3r=mul32out+mul31out;  %CW2p的实部
midsubout3i=mul33out-mul31out;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
mid41=xr4-xi4;
mid42=wr3-wi3;
mid43=wr3+wi3;

mul41out=wr3*mid41;
mul42out=mid42*xi4;
mul43out=mid43*xr4;

midaddout4r=mul42out+mul41out;  %DW3p的实部
midsubout4i=mul43out-mul41out;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
midadd_acr=round(xr1/2)+floor(midaddout3r/2^DataWidth);
midadd_aci=round(xi1/2)+floor(midsubout3i/2^DataWidth);
midsub_acr=round(xr1/2)-floor(midaddout3r/2^DataWidth);
midsub_aci=round(xi1/2)-floor(midsubout3i/2^DataWidth);

midadd_bdr=round(midaddout2r/2^DataWidth)+round(midaddout4r/2^DataWidth);
midadd_bdi=round(midsubout2i/2^DataWidth)+round(midsubout4i/2^DataWidth);
midsub_bdr=round(midaddout2r/2^DataWidth)-round(midaddout4r/2^DataWidth);
midsub_bdi=round(midsubout2i/2^DataWidth)-round(midsubout4i/2^DataWidth);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% midadd_acr=round(xr1)+round(midaddout3r/2^(DataWidth-1));
% midadd_aci=round(xi1)+round(midsubout3i/2^(DataWidth-1));
% midsub_acr=round(xr1)-round(midaddout3r/2^(DataWidth-1));
% midsub_aci=round(xi1)-round(midsubout3i/2^(DataWidth-1));
% 
% midadd_bdr=round(midaddout2r/2^(DataWidth-1))+round(midaddout4r/2^(DataWidth-1));
% midadd_bdi=round(midsubout2i/2^(DataWidth-1))+round(midsubout4i/2^(DataWidth-1));
% midsub_bdr=round(midaddout2r/2^(DataWidth-1))-round(midaddout4r/2^(DataWidth-1));
% midsub_bdi=round(midsubout2i/2^(DataWidth-1))-round(midsubout4i/2^(DataWidth-1));

xkr1=midadd_acr+midadd_bdr;
xkr2=midsub_acr+midsub_bdi;
xkr3=midadd_acr-midadd_bdr;
xkr4=midsub_acr-midsub_bdi;

xki1=midadd_aci+midadd_bdi;
xki2=midsub_aci-midsub_bdr;
xki3=midadd_aci-midadd_bdi;
xki4=midsub_aci+midsub_bdr;


xk1=xkr1+i*xki1;    %--组合成复数后输出
xk2=xkr2+i*xki2;
xk3=xkr3+i*xki3;    %--组合成复数后输出
xk4=xkr4+i*xki4;

⌨️ 快捷键说明

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