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

📄 readme.txt

📁 软件无线电尝试
💻 TXT
字号:
一个软件无线电的函数库,它实现了调制、解调等操作,用户只要给它一些ASCII码(汉字也可),它就可以产生一帧帧的数据,这些数据经DA后可直接发射。用户也可以将实际接收到的一帧帧数据通过AD后传给函数,它就能解出原始的信息。可以参见例子。
当然,AD、DA的工作是由用户负责的,函数库和硬件操作是隔离的。
建议选用计算机声卡作AD、DA。

特点是抗干扰能力强。

仅是个展现软件无线电能力的东东,用户可试用于任意方面。
免费。


说明
(1)计算机的速度要足够快否则可能无法实时解码。
(2)库并没有限定AD、DA的采样频率,只是假定采样频率是工作频率的4倍,例如如果采集设备工作在24000Hz,则系统的中心频率为6000Hz。
(3)函数说明
__declspec(dllimport)int CHYEncode(char*iin,float*out)//编码
iin!=NULL,初始化,返回信号的帧数,iin长度应小于1000
iin==NULL,编码,返回剩余的帧数,out为编码后的一帧信号

发射例子示意
	char msg[]="1234567890";
	float dat[NLEN];
	n=CHYEncode(msg,0);//初始化,返回信号的帧数
	while(CHYEncode(0,dat))
	{
		doDA(dat);
	}


__declspec(dllexport) DWORD CHYDecode(int cmd,float*iin)//解码
cmd	0:终止解码
	1:初始化
	2:初始化后继续解码
iin	A/D采集的一帧信号
返回值wd的最高4bit(wd>>28)代表16种信息,
		0:非有效报文内容,无需处理
		1:正式有效报文内容,最低10bit代表
		3:报文结束
		5:该信息是报文头
		6:该信息是报文尾
		8:error

接收例子示意
	char buf[1024];
	int n=0,GoOnFlag=1;
	DWORD inf;
	float dat[NLEN];
	CHYDecode(1,0);
	while(GoOnFlag)
	{
		GetAD(dat);
		inf=CHYDecode(2,dat);//用时约800ms
		switch(inf>>28)
		{
			case 8:errordo();break;
			case 3:CHYDecode(0,0);//关闭
				break;
			case 1:buf[n]=(inf&0xff);n++;break;
			default:break;
		}
	}
	

以上只是最简单的示意例子,如果真要做到实时处理则必须根据硬件特性用双缓冲区的方式进行。
(4)头文件
#define NLEN 8176 /*一帧信号含有的采样点数*/
__declspec(dllexport) DWORD CHYDecode(int cmd,float*iin);
__declspec(dllexport) int CHYEncode(char*iin,float*out);
(5)包含文件
qcode.dll,qcode.lib,readme.txt


详细请看vc_ex.zip中的例子
可以用cooledit软件将数据转化为音频文件进行发射接收的测试

⌨️ 快捷键说明

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