【文献笔记】【精读】Near-Ultrasound Communication for TV’s 2nd Screen Services

2023-05-16

文章地址:Near-Ultrasound Communication for TV’s 2nd Screen Services

不开源

文章目录

  • Insight
  • 1 INTRODUCTION
  • 2 TARGET APPLICATION
  • 3 REAL WORLD CHALLENGES AND OUR SOLUTION
    • 3.1 Low Volume Transmission
      • 3.1.1 Strict low Tx power requirement
      • 3.1.2 Guard interval overhead
      • 3.1.3 Chirp QOK modulation
    • 3.2 Resilience to Ambient Noises
      • 3.2.1 Frame synchronization errors
      • 3.2.2 Carrier sensing failures
      • 3.2.3 J-shape detection
  • 4 QOK SYMBOL AND FRAME DESIGN
    • 4.1 Chirp Signals
    • 4.2 Frame Structure
    • 4.3 QOK Symbol Design
      • 4.3.1 Chirp signals for QOK
      • 4.3.2 Optimization of QOK symbols
  • 5 J-SHAPE DETECTION
    • 5.1 J-Shape Definition
    • 5.2 J-Sync Algorithm
    • 5.3 J-CS Algorithm
  • 6 RECEIVER PROCESS
    • 6.1 Rake Receiver
    • 6.2 Receiver Operation
  • 7 PERFORMANCE EV ALUATION
    • 7.1 Evaluation Setup and Methodology
    • 7.2 Chirp QOK Symbol
    • 7.3 J-Shape Detection
  • 8 RELATED WORK
  • 9 CONCLUDING REMARKS

Insight

为了 提升第二屏幕应用服务的体验,提出了一种基于近超声(频率低于20KHZ)的 chirp signal 的通信系统


auto-correlation: 自相关
cross-correlation: 互相关


1 INTRODUCTION

基于智能设备的 speaker-microphone 通信有一个称呼叫 near-ultrasound communication

2nd screen app services:用于获取电视节目的补充信息的程序,会从音频中识别电视节目。

near-ultrasound communication 想要被应用于 2nd screen app services必须满足两个条件:
(1)Tx信号应以至少15 bps的数据速率以极低的音量传输,以避免人类感知、对人类和动物的任何类型的有害影响以及违反音频响度的广播规定。


bps: 比特率,即每秒传送的比特数


(2)即使存在环境噪声,例如拍手声、嘎嘎声、喷嚏声等,如此低音量的Tx信号也可以通过室内非视距优势信道成功被几米外接收到

为了满足第一个条件,作者采用了 chirp quaternary orthogonal shift keying (QOK) 并且移除了保护间隔

为了满足第二个条件,通过区分 chirp signals 和环境噪声,开发了新的同步和载波侦听算法来满足第二个条件。

2 TARGET APPLICATION

作者的目标应用场景如下所示:
在这里插入图片描述
(1)嵌入了节目标识符(ID)的听不见的发射信号被混合在广播站的电视节目的音频轨道中

(2)data rate 为15bps的不可听见的音频通过电视网络在 TV 的 speaker 上播放,并且被 智能设备的 麦克风接收到

(3)智能设备上,后台运行的应用程序解调了 节目ID,开始了解节目,从而开始补充第一个屏幕


所谓第一个屏幕就是用户正在看的电视

第二个屏幕就是用来补充节目信息的智能手机


相对于传统2nd screen services因为信号处理时间慢,需要用户持续运行程序; near-ultrasound technology 可以让程序在后台运行。

3 REAL WORLD CHALLENGES AND OUR SOLUTION

本部分介绍了目前近超声通信

3.1 Low Volume Transmission

3.1.1 Strict low Tx power requirement

对于 near-ultrasound 频段的信号,成年人人耳能感知到的音量阈值在 80dB,对青少年来说阈值是65dB

大音量超声波听久了会对人耳造成损伤,安全界限是 20KHZ,70dB的声音不能听超过8小时,如果暴露时间延长至16小时,阈值需要降低至65dB


声学知识补充

声音的响度 strength 与声波的振幅、频率以及其他各种环境因素相关
振幅与频率对响度起到了主导作用
振幅相同时,频率越高声压越大;频率相同时,振幅越大声压越大

参考:响度与振幅与分贝的关系是什么?


3.1.2 Guard interval overhead

对于声音通信来说有一些挑战:
因为声音传播速度慢,所以多径效应影响很大;
通常声音信道都不是可视路径,比如电视为了所见边框厚度会将扬声器朝下

为了避免多径效应引起的码间串扰,很多学者会在 symbols 之间插入了 guard interval,显然,代价是降低数据速率。
(注意,作者没有用 guard interval)
而是用的下一小节提到的 chirp QOK modulation

3.1.3 Chirp QOK modulation

为了降低 TX power 所以采用 chirp QOK(四进制正交键控) 而不是 chirp BOK(二进制正交键控)

作者分析了给定 chirp symbols 的正交程度,并且导出了一组近似正交的chirp symbols的共有条件。基于这些共有条件,作者在一个搜索空间内进行穷举搜索以找到一组最正交(最无关)的chirps
因为作者获得了在所有非零时延和零偏移下具有最小 cross-correlation 值得 chirps,所以可以完全不用 guard interval
(???????一句都没看懂)

3.2 Resilience to Ambient Noises

环境噪音(如塑料袋声或敲门声)会导致帧同步(如找到一帧的开头)和载波侦听(发现有效chirp signals)失效

3.2.1 和 3.2.2 在讲遇到的困难,3.2.3讲解决方法

3.2.1 Frame synchronization errors

在 RF 通信中,帧同步是通过检测由一段很长的伪随机序列组成的 preamble 来实现的

在近超声通信中,因为受到带宽限制和音量限制,为preamble 分配几十个比特是不可行的。

3.2.2 Carrier sensing failures

通常会通过检测 preamble 的能量来实现载波 carrier sensing,但是这在环境噪声下不起作用

错误的载波监听对于近超声通信的伤害相比RF通信来说要更大。因为近超声通信的冗余位更少

3.2.3 J-shape detection

为了抵抗环境噪声,作者提出了两个算法, J-sync 和 J-CS,它们都是基于相关器输出的可区分模式

chirp signal 的相关器输出快速上升,然后会因为 narrow auto-correlation peak 和 多径效应而缓慢衰减,与之相对比,环境噪声的相关性在 shape 上是缓慢变化的。

作者把自己的信号中相关器输出部分命名为 J-shape,因为形状(应该是在时域中)看起来像是字母J

利用形状的特点, J-sync 算法在 preamble 的相关器输出中搜索形状最像”J“形的那一个峰值,这样的话即使存在环境噪声也能找到真正的 preamble

因为不只 preamble, data symbols 的相关器输出也是 J 形状,作者提出了一种新的 carrier sensing 算法,叫 J-CS,用来处理环境噪声

J-CS会通过预测 symbol 的位置处有多少信号的形状是 J形来显示一段音频的真实质量,J-CS通过将检测到的J形图案的数量和阈值相比较,来决定信号是否存在

4 QOK SYMBOL AND FRAME DESIGN

这一部分阐述了发送帧是如何被设计以及被调制的

4.1 Chirp Signals

chirp signal 是载波随时间变化的信号
如下所示就是一个 up chirp signal 的时频特性曲线
在这里插入图片描述
作者为什么选用 chirp signals?
(1)相比 FSK信号,chirp signal 在做相关运算后拥有更窄的峰值,如下所示:
在这里插入图片描述
这在 peak detection 中可以提供更高的分辨率
这种优势在 Rake receiver 中被用于解决多径信道
(什么是Rake receiver???)
(2)chirp signal能够抵御很多智能设备的频率选择性,因为 chirp signal的频率覆盖范围很广,所以遇到特定频率下的增益下降时,信号不会严重衰减

4.2 Frame Structure

作者系统设计的帧结构如下所示:
在这里插入图片描述
preamble 的 duration 为 0.368s
symbols之间没有 guard interval,但是 preamble 和 symbols之间有 0.039s 的 guard interval

一帧含有11 个 data symbols, 每个 symbol 的 duration 为 0.096s

综上,一帧的 duration 总共为 1.463s

为了避免任何的可听见噪声, preamble 和 所有 symbol 都被升余弦滤波器加窗了(?????)

因为每个 QOK symbol 发送两个比特,所以在这一帧 1.463s 的 duration 中,总共有22个比特被发送,因此 data rate 可以达到 15 bps


可见,data rate 只算有效发送数据,preamble是不算的


为什么 QOK发送两个比特?
四种可能,所以两位,同理,BOK的话只发送一个bit


TX signal 的频率范围为 18.5KHZ - 19.5KHZ,这个参数是凭经验设定的,能够在 data rate 和 frame error rate 之间达到 tradeoff

4.3 QOK Symbol Design

4.3.1 Chirp signals for QOK

为了设计一个 QOK系统,我们需要找到四个至少彼此间相关性最小的 chirp signal

怎么找呢?

一种方案是对于不同的 chirp signal 采用不同的频率扫描速率
但是这种方案会导致在每个symbol采用相同的 duration时,会使信号占据不同范围的频率,这种不对称性并不是正交调制所期望的。

但是上述问题可以通过采用拥有分段线性频率的 chirp signal来解决(???)

为了简化设计,作者规定 chirp signal 的扫频率在时域内只变化一次,改变时的点称之为 break point,比如在 up chirp 中,频率先从最低点上升,到达 break point 会改变斜率然后再到达最高点。

为了减小搜索复杂度,作者将一个 chirp signal 的整个频段和时段划分为 F 频段和 T 频段,这样划分的候选太多了,穷举不现实

于是想办法压缩搜索空间。怎么做呢?
假设 break point 的频率都相同,如下图所示,
在这里插入图片描述
就可以将 candidates 的数量由 16F4T4 转变为 T4

一个 chirp 信号可以表示为
在这里插入图片描述

相关计算公示为:
在这里插入图片描述

4.3.2 Optimization of QOK symbols

在压缩搜索空间后,还有一个本质问题,搜索什么?

作者制定了一个优化问题,目标是找到互相关值最小的一组四个 chirp symbol

为了导出 optimization 的 cost metric,作者将发送的 chirp signal 表示为:
在这里插入图片描述
当发送信号经过多径信道后,收到的信号变为
在这里插入图片描述
(似乎就是经历了一个线性变化?ax+b)

where N is the total number of multi-paths, τiand hiare
the propagation delay and the gain of the ith multi-path,
respectively, and n(t) is the noise signal.

接收机使用四个相关器来计算接收信号和每个啁啾信号之间的相关性,并检测具有最大绝对相关值的符号。在 receiver端,第 m 个相关器的第 j 个 output 为
在这里插入图片描述
结合之前的公式
在这里插入图片描述
上式右边的第二项是信号在第 j 个symbol peirod 传输后的延迟造成的自干扰,第三项表示在 其他 symbol period 传输后造成的码间串扰

接下来实在看不懂了

5 J-SHAPE DETECTION

5.1 J-Shape Definition

如下所示,从左到右分别为 chirp signal和敲击声的相关波形
在这里插入图片描述
左边这样的就是 J shape

定义了两个公式:
在这里插入图片描述
上面的用于 time synchronization,下面的用于 carrier sensing

5.2 J-Sync Algorithm

算法可描述如下:
(1)从相关输出中找到 L 个最大的峰值
(2)计算每个峰值的 JMAR

如下所示,就算噪声能量远比有效数据大,但是算法仍然能找到正确的 preamble,因为峰值上升的剧烈程度更大
在这里插入图片描述

5.3 J-CS Algorithm

J-sync 用来找 preamble,J-CS用来判断这个被找到的信号是否真的存在,双保险

J-CS算法可描述如下:
(1)为每个预测的 symbol 位置计算 JPAR
(2)计算 JPAR 的值大于1 的位置数量
(3)如果数量大于 threshold Mthres,就宣称 carrier sensed

如果存在 chirp signal,其波形如下所示,一堆 J 形
在这里插入图片描述

6 RECEIVER PROCESS

6.1 Rake Receiver

6.2 Receiver Operation

7 PERFORMANCE EV ALUATION

7.1 Evaluation Setup and Methodology

7.2 Chirp QOK Symbol

7.3 J-Shape Detection

8 RELATED WORK

9 CONCLUDING REMARKS

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【文献笔记】【精读】Near-Ultrasound Communication for TV’s 2nd Screen Services 的相关文章

  • gitpush出现remote: Support for password authentication was removed on August 13, 2021.

    git push 报错 xff1a Username span class token keyword for span span class token string 39 https github com 39 span span cl
  • twemproxy for redis使用说明及简单分析

    redis的数据量在内存高过50G时系统出现了明显的瓶颈 为了解决这个问题 xff0c 笔者找了些相关的资料 xff0c 发现了这个开源软件 功能很强大 xff0c 包含了last fm的ketama的一致性hash算法 xff0c 对于笔
  • VS Code For Web 深入浅出 -- 进程间通信篇

    在上一篇中 xff0c 我们一起分析了 VS Code 整体的代码架构 xff0c 了解了 VS Code 是由前后端分离的方式开发的 且无论前端是基于 electron 还是 web xff0c 后端是本地还是云端 xff0c 其调用方式
  • Trajectory generation for quadrotor while tracking a moving target in cluttered environment

    四旋翼在杂波环境下跟踪运动目标的轨迹生成 摘要1 文章主要贡献2 前言2 1 轨迹公式2 2 实现结构 3 跟踪轨迹生成3 1 标称路径点生成3 2 可行路径点生成3 3 安全飞行走廊生成3 4 代价函数3 5 强制约束3 6 求解跟踪轨迹
  • Go语言学习15-基本流程控制

    基本流程控制 流程控制对比 Go 和 C 基本流程控制 1 代码块和作用域 2 if 语句 3 switch语句 3 1 表达式switch语句 3 2 类型switch语句 4 for 语句 4 1 for 子句 4 2 range 子句
  • matlab for循环坑

    matlab 用 for 嵌套循环遍历数组时 可能有 bug matlab octave 环境 linux Matlab R2018a 1 windows GNU Octave version 5 2 0 以 for x vector 的形
  • android 两个应用程序之间的通信

    我需要一些帮助来开始开发两个相互通信的 Android 应用程序 在一部手机上 应用程序 A 向应用程序 B 发送字符串 应用程序 B 接收字符串 例如 startClassOne 应用程序 B 使用方法启动 classOne 并获取结果
  • ACR122u直接通讯无反应

    我正在尝试通过发送直接命令来使用 java 访问我的 ACR122u 奇怪的是我没有得到任何响应 也没有错误 这是我的代码 final static int IOCTL SMARTCARD ACR122 ESCAPE COMMAND 0x0
  • 如何确定 UsbRequest.queue(..) 方法接收的字节长度?

    我在 Android 3 1 中遇到 UsbRequest 类的问题 这是我的代码 ByteBuffer buffer ByteBuffer allocate 4096 buffer order ByteOrder LITTLE ENDIA
  • 什么是spark.driver.maxResultSize?

    The ref http spark apache org docs latest configuration html says 每个分区的所有分区的序列化结果总大小的限制 激发行动 例如收集 应至少为 1M 或 0 无限 如果总大小超过
  • 2 个 Firefox 附加组件之间的通信(跨扩展通信)

    如何在 2 个 Firefox 附加组件之间传递数据和消息 Google Chrome 的方式是这样的 here http code google com chrome extensions messaging html external
  • http.sys 实现

    我们都知道有一个名为 http sys 的二进制文件内核模式驱动程序在我们的 Windows 中 它为我们进行 HTTP 处理 这基本上就是我们所知道的一切 但今天我想 嘿 我们所有的网络东西 比如 TCP IP 之类的东西都在这里 在用户
  • 使用 vbscript 进行进程间通信

    我需要将数据从一个进程发送到另一个进程 限制条件 发送方进程是非常昂贵的调用 需要使用 vbscipt 来完成 对于Sender进程来说 这个数据传输是一项额外的工作 它应该不会受到这个特性的太大影响 4 5 分钟内 发送方进程中大约有 1
  • 使两个脚本进行通信

    我必须使两个程序 例如 脚本 A py 和 脚本 B exe 进行通信 两个程序都处于无限循环中 脚本 A 需要写入脚本 B 的 stdin 然后读取脚本 B 的 stdout 然后再次写入 等等 脚本 B 我无法更改 这两个文件都在我的硬
  • 如何在这个系统内进行通信?

    我们打算设计一个具有三个 层 的系统 总部 只有一台服务器 区域上有很多 节点 使用 iPad 的用户 HQ 与节点进行 2 路通信 节点与用户进行 2 路通信 用户从不与总部沟通 反之亦然 权力机构规定总部的 Windows 应用程序 使
  • java:与批处理服务器通信的最佳技术是什么?

    我有一个 WEB 应用程序 带有纯 Java servlet 它具有一些繁重的计算工作 具有数据库访问功能 可以在异步模式下完成 我计划使用专用服务器来执行此类批处理作业 并且我想知道使用哪些工具 技术 协议用于 WEB 服务器中的 ser
  • 两个 Android 应用程序如何相互通信?

    两个 Android 应用程序的一般通信架构是什么 Case 1 我有两个Android应用程序 a 一个是服务器 等待客户端请求 处理请求 从某些 sqlite 数据库读取数据 并将结果返回给客户端 该服务器应用程序在其自己独立的 And
  • 两个 WPF 应用程序之间的通信

    我有两个 WPF 应用程序 我需要这两个应用程序能够相互通信 我只需要这些应用程序相互发送一些通知 仅此而已 我已经找到了两种技术 一种是使用WCF 另一种是使用DDE 但对我来说 这些对于我的要求来说似乎太复杂了 请建议最简单的方法是什么
  • 沟通差距:用户与分析师-设计师

    通常的做法是使用案例研究 构建工作流和数据流等 但这并不一定会在用户 发起者和分析师 设计者之间创建共享词汇表 通常 其中一方都必须获得其他专业领域 内部 的术语和观点 这通常会导致误解和澄清会议 进入 RAD 技术 如进化原型 等 用户
  • Tkinter:在主循环中调用事件

    如何调用 tkinterevent来自一个单独的对象 我正在寻找类似 wxWidgets 的东西wx CallAfter 例如 如果我创建一个对象 并将我的对象传递给它Tkroot 实例 然后尝试从我的对象调用该根窗口的方法 我的应用程序锁

随机推荐