我正试着看看gsm如何影响电话号码。这就是我想要做的。一个人将通过电话交谈,我将在他说话的同时通过电话的麦克风录制他的声音,而在另一部电话上,我将获得来自gsm的数据并进行比较。我想编写一个Android应用程序来获取该数据。这可能在Android上,或者你能建议另一种方法来实现这一目标吗?
答案 0 :(得分:1)
一些背景(你可能已经知道了) ......
当您拨打GSM电话时,与您的语音对应的电话麦克风中的模拟信号将转换为一系列数字值,然后使用语音编解码器进行编码。这基本上是一种聪明的算法,可以尽可能少地捕获尽可能多的语音。
这个想法是保持非常好的语音质量,同时节省呼叫所需的带宽量。使用的技术包括不传输相当长的时间段(当你不说话时)和各种压缩和预测编码算法。在GSM中已经存在并且仍然存在许多编解码器,但是最新的和通用的优选编解码器被称为AMR-Narrowband。
几乎所有的GSM部署都会对手机和基站之间的语音进行加密 - 虽然各种加密算法都存在公开的弱点,但我假设(希望......)解密不是您正在寻找的。 p >
您的问题 - '我希望看到当语音达到gsm时会有数据丢失或损坏
首先,值得注意的是,演讲是相对而言的。至少与数据相比,容忍少量数据丢失和损坏。在VoIP网络中突发丢包是很常见的,并且可能导致语音质量暂时降低。其次,VoIP网络中的数据包丢失将包括可能令人困惑的延迟数据包 - 如果数据包到达太晚而无法包含在“声音”中。在接收器扬声器中播放然后从VoIP的角度来看它有效地丢失了,即使其他措施可能表明它只是迟到了。
要实际测量GSM手机和基站之间的损耗,您需要访问基站收到的数据,除非您是运营商,否则通常不会拥有这些数据。
如果您进行端到端测试,从一个GSM到另一个GSM,您的语音路径也将遍历其他网络节点,因此您不会知道是否通过GSM空中接口或一个或多个发生任何丢失或损坏其他节点。
您还需要了解从一个小区到另一个小区的切换以及从2G到3G(GSM到UMTS)的切换,这可能会影响您的测试(即使固定电话在某些情况下也可以切换)。
如果您的兴趣纯粹是学术性的,那么最简单的方法就是创建自己的GSM基站并对此进行测试 - 在一个盒子中存在多个开源GSM'网络'应该允许你这样做的项目。我自己没有使用它,但是这个看起来最受支持的是这个 - 请查看社区标签下的邮件列表,以便找到可能跟进调查的好地方: