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

📄 mod.c

📁 完整的OFDM系统,含Matlab仿真代码和DSP源代码下载.平台Tms320C6000.含项目说明文档.绝对高质量的源代码.
💻 C
字号:
//mod.c
//
// Project Red 2002: High Performance OFDM Modem 
// Against Channel Imperfections
// Auther: Linus Falk

//#include "ofdm.h"
#include "mod_tab.h"
#define RE_MASK_2 0x01	// 0000 0001
#define IM_MASK_2 0x02	// 0000 0010
#define RE_MASK_4 0x03	// 0000 0011
#define IM_MASK_4 0x0c	// 0000 1100
#define RE_MASK_6 0x07	// 0000 0111
#define IM_MASK_6 0x38	// 0011 1000
#define RE_MASK_8 0x0f	// 0000 1111
#define IM_MASK_8 0xf0	// 1111 0000

#define QAM_AMPLITUDE 1

				// indata,	antal bitar ,  pekare utdataminne
void mod(unsigned char data, char nr_bits, float *outdata_p){
switch(nr_bits){
	case 0: //no data sent
		*outdata_p = 0;
		*(outdata_p+1) = 0;
		break;
	case 1: //PSK
		if(data & 0x01 == 0x01){
			*outdata_p = 13.0;
			*(outdata_p +1) = 0;
		}else{
			*outdata_p = -13.0;
			*(outdata_p +1) = -0;
		}
		break;
	case 2: //4QAM, 
		*outdata_p = QAM_4_TABLE[(data & RE_MASK_2)];
		*(outdata_p+1) = QAM_4_TABLE[(data & IM_MASK_2)>>1];
		break;
	case 4: //16QAM, 
		*outdata_p = QAM_16_TABLE[(data & RE_MASK_4)];
		*(outdata_p+1) = QAM_16_TABLE[(data & IM_MASK_4)>>2];
		break;
	case 6: //64QAM, 
		*outdata_p = QAM_64_TABLE[(data & RE_MASK_6)];
		*(outdata_p+1) = QAM_64_TABLE[(data & IM_MASK_6)>>3];
		break;
	case 8: //256QAM, 
		*outdata_p = QAM_256_TABLE[(data & RE_MASK_8)];
		*(outdata_p+1) = QAM_256_TABLE[(data & IM_MASK_8)>>4];
		break;
	default: //never done
		*outdata_p = 0;
		*(outdata_p+1) = 0;
		break;
}
}

⌨️ 快捷键说明

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