📄 dlrxframe.cpp.bak
字号:
#include "sample.h"
#include "dlRxDemod.h"
#include "RxPreamble.h"
#include "chTrack.h"
#include "chTrackStc.h"
#include "chcomp.h"
#include "channelDecoding.h"
#include "typedef.h"
#include "global_var.h"
#include <fstream.h>
#include <iomanip.h>
void dlRxFrame()
{
int i;
Uint16 g_dlRxFrameSymSize;
Uint16 rxModIndex = 0;
Int16 tempBuff0[DL_RX_BUFF_SIZE];
Int16 tempBuff1[DL_RX_BUFF_SIZE];
DlRxBurstParam *pRxBurstParam;
Int16 *pFftOutBuff;
pRxBurstParam = g_dlRxBurstParam;
pFftOutBuff = g_dlRxFftOutBuff;
g_dlRxFrameSymSize = g_ssDlFrameParam.frameDurationSym;
g_dlRxStcFlag = 0;
g_dlTxFrameSymIndex = 0;
ofstream out1;
ifstream fin0("temp\\txchannel0.txt");
ifstream fin1("temp\\txchannel1.txt");
//rx
while(rxModIndex < g_dlRxFrameSymSize)
{
if ((*pRxBurstParam).burstFlag == STCFCH_BURSTFLAG
|| (*pRxBurstParam).burstFlag == STC_BURSTFLAG)
{
if ((*pRxBurstParam).burstFlag == STCFCH_BURSTFLAG
&& (*pRxBurstParam).ofdmSymIndex == 0)
{
for (i = 0 ; i < 1280; i++)
{
fin0 >> g_dlTxInterpOutBuff0[i];
fin1 >> g_dlTxInterpOutBuff1[i];
}
sample (g_dlTxInterpOutBuff0, DL_TX_INTERP_OUTBUFF_SIZE/2, INTERP_RATE, tempBuff0);
sample (g_dlTxInterpOutBuff1, DL_TX_INTERP_OUTBUFF_SIZE/2, INTERP_RATE, tempBuff1);
for (i = 0; i < DL_RX_BUFF_SIZE; i++)
{
g_dlRxBuff[i] = tempBuff0[i] + tempBuff1[i];
}
dlRxDemod();
out1.open("temp\\rxstcpreamble.txt");
for (i = 0; i < 512; i ++)
{
out1 << setw(10) << g_dlRxFftOutBuff[i];
}
out1.close();
g_chEstMode = PREAMBLE_STC;
pdlPreambleChEstRes = g_dlPreambleChEstResStc;
dlRxPreamble();
out1.open("temp\\ChEstOutStc0.txt");
for (i = 0; i < 2 * PREAMBLE_FREQ_FULL_SIZE; i++)
{
out1 << setw(10) << g_dlRxPreambleChEstRes[0].ChEstOut[i];
}
out1.close();
out1.open("temp\\ChEstOutStc1.txt");
for (i = 0; i < 2 * PREAMBLE_FREQ_FULL_SIZE; i++)
{
out1 << setw(10) << g_dlRxPreambleChEstRes[1].ChEstOut[i];
}
out1.close();
}
else
{
for (i = 0 ; i < 1280; i++)
{
fin0 >> g_dlTxInterpOutBuff0[i];
fin1 >> g_dlTxInterpOutBuff1[i];
}
sample (g_dlTxInterpOutBuff0, DL_TX_INTERP_OUTBUFF_SIZE/2, INTERP_RATE, tempBuff0);
sample (g_dlTxInterpOutBuff1, DL_TX_INTERP_OUTBUFF_SIZE/2, INTERP_RATE, tempBuff1);
for (i = 0; i < DL_RX_BUFF_SIZE; i++)
{
g_dlRxBuff[i] = tempBuff0[i] + tempBuff1[i];
}
if (g_dlRxStcFlag == 0)
{
dlRxDemod();
g_dlRxStcFlag ^= 1;
}
else
{
pFftOutBuff += 2*FFT_SIZE;
dlRxDemod();
dlRxChTrackCompStc();
g_dlRxStcFlag ^= 1;
}
else
{
stcDecoding (g_dlRxStcFlag,
g_dlRxChCompOutBuff,
DL_RX_CHStcDecod_OUTBUFF_SIZE, //2*201
g_dlRxPreambleChEstRes,
g_dlRxChStcDecodOutBuff);
}
out1.open("temp\\rxchomp.txt",ios::app);
for (i = 0; i < 402; i ++)
{
out1 << setw(8) << g_dlRxChStcDecodOutBuff[i];
}
out1.close();
}
}
channelDecoding (pRxBurstParam, g_dlRxChStcDecodOutBuff);
}
else
{
for (i = 0 ; i < 1280; i++)
{
fin0 >> g_dlTxInterpOutBuff0[i];
}
sample (g_dlTxInterpOutBuff0, DL_TX_INTERP_OUTBUFF_SIZE/2, INTERP_RATE, g_dlRxBuff);
dlRxDemod();
out1.open("temp\\rx.txt");
for (i = 0; i < 512; i ++)
{
out1 << setw(10) << g_dlRxFftOutBuff[i];
}
out1.close();
if ((*pRxBurstParam).preambleFlag != NO_PREAMBLE
&& (*pRxBurstParam).ofdmSymIndex < 2)
{
if ((*pRxBurstParam).ofdmSymIndex == 0)
{
g_chEstMode = LONGPREAMBLE_64;
pdlPreambleChEstRes = &g_dlPreambleChEstRes64;
}
else
{
g_chEstMode = LONGPREAMBLE_128;
pdlPreambleChEstRes = &g_dlPreambleChEstRes128;
}
dlRxPreamble();
out1.open("temp\\ChEstOut.txt");
for (i = 0; i < 2 * PREAMBLE_FREQ_FULL_SIZE; i++)
{
out1 << setw(8) << g_dlRxPreambleChEstRes[0].ChEstOut[i];
}
out1.close();
out1.open("temp\\SignalandNoise.txt");
out1 << "rxsignal =" << g_dlRxPreambleChEstRes[0].rxSignalPower << endl;
out1 << "rxnoise =" << g_dlRxPreambleChEstRes[0].rxNoisePower << endl;
out1.close();
}
else
{
chTrack (g_dlRxFftOutBuff,
FFT_SIZE,
g_dlRxPreambleChEstRes,
&g_dlRxPilotParam,
&g_dlRxTrackPhaseShift);
chComp (g_dlRxFftOutBuff,
FFT_SIZE,
&g_dlRxTrackPhaseShift,
g_dlRxPreambleChEstRes,
g_dlRxChCompOutBuff);
out1.open("temp\\rxchomp.txt",ios::app);
for (i = 0; i < 2 * PREAMBLE_FREQ_FULL_SIZE; i++)
{
out1 << setw(10) << g_dlRxChCompOutBuff[i];
}
out1.close();
channelDecoding (pRxBurstParam, g_dlRxChCompOutBuff);
}
}
rxModIndex ++;
g_dlRxFrameSymIndex ++;
(*pRxBurstParam).ofdmSymIndex ++;
if ((*pRxBurstParam).ofdmSymIndex == (*pRxBurstParam).burstSizeSym
&& g_dlRxBurstIndex < g_ssDlFrameParam.burstNum - 1)
{
pRxBurstParam ++;
g_dlRxBurstIndex ++;
}
}
fin0.close();
fin1.close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -