移动通信中的信号功率排序及滑动相关检测
问题背景
移动通信(Mobilecommunication)是移动体之间的通信,或移动体与固定体之间的通信。
信号功率排序
- 首先注意,数字信号处理的往往是复数信号。
a + bi
存储时,不存储i
只存储a、b,也称为IQ
终端在每个地点收到的是多个基站信号的叠加,需要依据强度,判断选择接入那个基站。
- 信号强度计算实例
序号为n的点,a[n]+b[n]i,其信号强度:
信号强度(N为序列个数):
而正常通信中,不可能把所有信号接收完成之后再计算信号强度,也不可能随便取一段数据计算,而是在一定时间范围内的平均强度。此外这还涉及到对平均强度进行排序的问题。
- 假设:
待测数据共10组,分别存储在data0.txt-data9.txt中,每个数据中有10000行(实部a与虚部b交替排列,总计各5000行),平均功率排序通过常用的冒泡排序(Bubble Sort)进行。
- 示例代码(C)如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>char str1[5000] = {0};
char str2[5000] = {0};
double value1;
double value2;
double ap[5000] = {0};
double av[10] = {0};
double sum;
double temp;int main()
{char filename[256] = {0};for(int i=0; i<10; i++){sprintf(filename, "%s%d.txt", "data", i); //连续开文件FILE *fp = fopen(filename, "rt");for(int j=0; j<5000; j++) //每两行读取文件数据(一实一虚){fgets(str1,5000,fp);fgets(str2,5000,fp);value1 = atof(str1);value2 = atof(str2);ap[j] = sqrt(pow(value1,2) + pow(value2,2)); //功率计算sum = sum + ap[j]; //累加}av[i] = sum/5000; //取均值sum = 0;fclose(fp);}for(int i=0;i<10-1;i++) //冒泡排序{for(int j=0;j<10-1-i;j++){if(av[j]>av[j+1]){temp=av[j];av[j]=av[j+1];av[j+1]=temp;}}}for(int m=0;m<10;m++) //输出结果{printf("%lf\n",av[m]);}return 0;
}
滑动相关检测
相关检测技术是信号检测领域里一种重要工具,常用于从噪声背景中检测出有用的确定性信号。它利用确定性信号在不同时刻的取值一般都具有较强相关性,而干扰噪声因为随机性较强,不同时刻取值相关性较差的特性,把确定性信号和干扰噪声区分开来。
假设确定信号序列为x[m],具有噪声背景的实际信号序列为y[n],m<n,通过滑动相关计算,找出滑动相关计算序列z[k]的最大的值,则可以求出具有噪声背景的实际信号序列y中所包含的确定信号序列x的位置。
滑动相关计算公式为:
- 假设:
确定信号序列存储于sequence0.txt,共1000行(实部a与虚部b交替排列,总计各500行)。
待测信号序列存储于sequence1.txt,共10000行(实部a与虚部b交替排列,总计各5000行)。
寻求最大相关时采用循环对比的方法。
- 示例代码(C)如下:
#include <stdio.h>
#include <stdlib.h>char x1[1000]={0};
char x2[1000]={0};
char y1[5000]={0};
char y2[5000]={0};double xx1;
double xx2;
double yy1;
double yy2;
double value1;
double value2;double x11[1000]={0};
double x22[1000]={0};
double y11[5000]={0};
double y22[5000]={0};
double z[4000]={0}; //5000-1000=4000int main()
{FILE *fp1 = fopen("sequence0.txt", "rt"); //第一个文件指针(确定信号序列)for(int a=0; a<1000; a++){fgets(x1,1000,fp1);fgets(x2,1000,fp1);xx1 = atof(x1);xx2 = atof(x2);x11[a] = xx1;x22[a] = xx2;}fclose(fp1);FILE *fp2 = fopen("sequence1.txt", "rt"); //第二个文件指针(待测信号序列)for(int y=0; y<5000; y++){fgets(y1,5000,fp2);fgets(y2,5000,fp2);yy1 = atof(y1);yy2 = atof(y2);y11[y] = yy1;y22[y] = yy2;}fclose(fp2);for(int k=0;k<=5000-1000;k++) //滑动相关计算{value1 =0;value2 =0;for(int i=0;i<1000;i++){value1 += x11[i]*y11[i+k]-x22[i]*y22[i+k];value2 += x11[i]*y22[i+k]+x22[i]*y11[i+k];}z[k] = sqrt(pow(value1,2) + pow(value2,2));}double max=z[0];int index=0;for(int k=0;k<=5000-1000;k++) //寻求最大值及其下标{if(max<z[k]){max=z[k];index=k;}}printf("%lf\n",max); //输出结果printf("%d\n",index);return 0;
}
注:
以上对内存的分配方式采用的是对数组的固定定义,可以考虑采用malloc分配空间,算法的灵活度将会更高。
移动通信中的信号功率排序及滑动相关检测相关推荐
- 走进“开源SDR实验室” 一起玩转GNU Radio:信号功率测量
本文内容.开发板及配件仅限用于学校或科研院所开展科研实验! 温馨提示:"开源SDR实验室"是北京的. 本文介绍GNU Radio中的信号功率测量相关模块. 在开始介绍之前,首先推荐 ...
- FPGA:计算滑动求和----信号检测计算信号功率
FPGA:计算滑动求和----信号检测计算信号功率 在进行简单信号检测过程中,需要计算信号的能量,这时候需要用到滑动求和的计算过程. 这里记录如何利用Verilog编写滑动求和过程. 思路:滑动求和的 ...
- GPRS GPRS(General Packet Radio Service)是通用分组无线服务技术的简称,它是GSM移动电话用户可用的一种移动数据业务,属于第二代移动通信中的数据传输技术...
GPRS 锁定 本词条由"科普中国"百科科学词条编写与应用工作项目 审核 . GPRS(General Packet Radio Service)是通用分组无线服务技术的简称,它是 ...
- CDMA在卫星移动通信中的应用(转)
摘 要:分析了CDMA技术优势,介绍了卫星移动通信系统发展, 简单描述了我国卫星移动通信系统模型和信道模型,重点探讨了CDMA在卫星移动通信系统多址方式.功率控制和分集接收中的应用. 关键词:CDMA ...
- 【数字信号处理】相关函数应用 ( 相关函数应用场景 | 噪声中检测信号原理 )
文章目录 一.相关函数应用场景 一.相关函数应用场景 求下面信号的 " 自相关函数 " : x(n)=sin(2πfn)+N(n)x(n) = \sin(2\pi fn) + N ...
- 【数字信号处理】相关函数 ( 功率信号 | 功率信号的互相关函数 | 功率信号的自相关函数 )
文章目录 一.功率信号的互相关函数 二.功率信号的自相关函数 信号根据 " 能量 " 可以分为 " 能量信号 " 和 " 功率信号 " ; ...
- matlab 信号去直流,基于FIR滤波的ADC采样信号中直流信号的消除方法与流程
本发明属于卫星导航领域,介绍了ADC采样信号中的直流偏置消除方法. 背景技术: 卫星导航系统在军事和民用领域应用越来越广泛.以GPS卫星导航系统为例,其到地面的信号功率仅为-130dBm,这么微弱的信 ...
- RecyclerView拖拽排序和滑动删除实现
效果图 如何实现 那么是如何实现的呢?主要就要使用到ItemTouchHelper ,ItemTouchHelper 一个帮助开发人员处理拖拽和滑动删除的实现类,它能够让你非常容易实现侧滑删除.拖拽的 ...
- MATLAB多径衰落信道仿真程序,基于Matlab的移动通信中多径衰落信道的仿真
移动通信中多径衰落信道的仿真 文章编号:1007-3558(2004)05-0078-04 基于Matlab的移动通信中多径衰落信道的仿真 陈岚,,万国春,,冯志彪2 (1.江西科技师范学院,江西南昌 ...
最新文章
- FD.io/VPP — IPSec
- 配置kali linux
- mongodb内存映射原理
- java连接access2013数据库_滴水穿石–Java连接Access数据库及其操作
- 通用版!完整代码,单链表SingleLinkedList增删改查,反转,逆序,有效数据等Java实现
- 最大流算法(Edmons-Karp + Dinic 比较) + Ford-Fulkson 简要证明
- 蓝桥杯 ADV-207 算法提高 最长字符序列
- 高级JAVA程序员必备:必看书籍清单
- 图像处理(一)图像灰度化的三种方式
- 华为笔记本重装系统步骤
- 只有程序员才能读懂的三国演义(一)
- 金融证券基础(三)----回撤
- 程序员常用的16款火爆软件,你get到了哪些软件?
- js实现鼠标跟随效果
- SQL DML操作之增删改查
- Maven的下载和安装【详细】
- 优秀IT项目经理的六大特质_转帖IT专家网
- cocos入门7:cocos creator 中的ui系统
- 网页右下角弹出广告窗口 超简洁
- 为什么数据中台如此重要?明略科技吴信东:智能时代企业核心竞争力之源 | MEET2020...
热门文章
- html5输入框自动放大镜,HTML5实现放大镜效果
- 老鱼Python数据分析——篇三:操作MySQL数据库
- jsp中插入图片无法显示
- 有容乃大 ——Java集合(List/Set/Map)
- 九月十月 阿里 百度 华为 校招笔试题
- 奔跑的蜗牛 · 没头的苍蝇
- 读书笔记2013第1本:餐巾纸的背面
- 普源DP832可编程线性直流电源产品特点
- 汇编语言学习:使用masm32寻找1-100中的质数
- 【JAVA】-- Java五大常用布局管理器(BorderLayout、FlowLayout、GridLayout、GridBagLayout、CardLayout)