在家中启动DAB Multiplex

嗨,极客时间。

数字广播正在各个国家逐步引入。 在欧洲和澳大利亚,它是美国高清广播 ,中国CDR (中国数字广播)中的标准DAB / DAB + 。 由于数字流,其他服务(例如,接收器屏幕上的歌曲名称和艺术家的名称)以及数字服务(与DA相比),给用户带来的好处是声音更清晰。 数字无线电接收机现在相对便宜,起价约为40美元。

俄罗斯尚未正式加入任何标准,但如果发生这种情况,很可能将是民建联。 它的测试操作已经在莫斯科进行了,俄罗斯联邦的欧洲市场接收者在地理位置上比美国更容易获得。 欧洲的新车(其数量再次超过美国的汽车)通常已经配备了DAB接收器。 同时,出于测试目的,任何人都可以使用SDR收发器在家中启动DAB。


(图片来源/盖蒂)

削减的细节(小心,很多冗长而乏味的配置)。

如何运作


不幸的是,不同的标准彼此不兼容。

欧洲DAB是使用ODFM在174至239 MHz频率的信道中传输的MP2或AAC流。 尽可能多的30个频道 (每个频道约1.5 MHz宽)可以在一个频道中同时发送多个电台。 根据Wikipedia的说法,在使用192kbps比特率时,使用DAB的电台数量是传统FM的3倍。

SDR屏幕上一个DAB通道的频谱如下所示:



为了进行比较,因此在相同规模下,FM电台看起来像:



在美国高清广播电台中,他们走了一条不同的道路-数字频道“添加到了现有FM电台的侧面”。 这使我们不必分配新的频率,而与旧的接收机保持兼容。 不利的一面是,在大城市中,已经进行了FM广播。 另一方面,即使FM的最大50个电台数量也相当不错,听众很可能不需要它。

HD Radio的频谱如下所示(来自youtube的截图):



中文CDR决定照搬美国的做法 ,a,我对中文的零知识不足以找到关于它的更多详细信息。

至于接收器,其在亚马逊上的价格从最简单的型号的30美元到最高的带有触摸屏,Wifi或彩色屏幕的高级型号的100美元不等。



但是“楚科奇不是读者”,所以我们将自己发行DAB / DAB +格式的测试电台。 HD Radio无法正常运作,a,格式已关闭,并且没有适用的编码器。

运行DAB / DAB +


该过程实际上并不复杂,但是在创建必要的配置方面非常艰苦。 对于测试,我们需要具有传输能力的Linux和SDR,例如HackRF或USRP。

1.项目编制


需要Linux来编译编码器。 我使用了Ubunty,VirtualBox的最终映像是从http://www.osboxes.org/ubuntu/下载的。

编译ODR-AudioEnc
首先,您需要编译DAB / DAB +音频编码器,您可以在github.com/Opendigitalradio/ODR-AudioEnc页面上找到它。

git clone https://github.com/Opendigitalradio/ODR-AudioEnc.git cd ODR-AudioEnc/ ./bootstrap ./configure --enable-alsa --enable-vlc make sudo make install 

编译ODR-DabMux
ODR-DabMux将数字流组合成一个多路复用器。 在github.com/Opendigitalradio/ODR-DabMux了解更多信息

 git clone https://github.com/Opendigitalradio/ODR-DabMux.git cd ODR-DabMux/ ./bootstrap.sh ./configure make sudo make install 

编译ODR-DabMod
这是一个实际上将数据发送到发送器的调制器。 汇编原理是一样的,命令下载:

 git clone https://github.com/Opendigitalradio/ODR-DabMod.git 

如果在组装过程中没有足够的库,则必须使用apt-get安装它们。

现在,项目的所有部分都已组装好, 所有这些我们将尝试开始

2.配置


不幸的是,USRP不能在虚拟机上工作,并且将完整的Linux放在磁盘上太懒了。 因此,我没有考虑流式广播的模式-多路复用是从预先准备的mp3文件编译而成的,而生成的IQ文件是在Windows下启动的。 是的,一般来说,房屋不需要流媒体广播,也没有创建“海盗站”的任务。

此处更详细地描述了各种设置: http : //opendigitalradio.imtqy.com/mmbtools-doc/mmbtools.pdf

资料准备
我们的Multiplex中将有2个频道,为此,我从youtube下载了2个mp3文件,并将它们分别命名为(可能会猜到的)sound01.mp3和sound02.mp3。

以48000的比特率将文件转换为WAV:
ffmpeg -i sound01.mp3 -ar 48000 sound01.wav
ffmpeg -i sound02.mp3 -ar 48000 sound02.wav

将它们转换为DAB格式:
odr-audioenc --dab -b 128 -i sound01.wav -o prog1.mp2
odr-audioenc --dab -b 128 -i sound02.wav -o prog2.mp2

输出应为2个文件prog1.mp2和prog2.mp2。

多重创造

首先,您需要创建一个描述“无线电台”配置的文件。 让我提醒您,在一个DAB频道中可以有许多电台,每个电台都有自己的参数。

使用以下文本创建“ config.mux”文件:

 general { dabmode 1 nbframes 2000 ; Set to true to enable logging to syslog syslog false ; Enable timestamp definition necessary for SFN ; This also enables time encoding using the MNSC. tist false } remotecontrol { telnetport 0 } ensemble { id 0x4fff ecc 0xec ; Extended Country Code local-time-offset auto international-table 1 label "mmbtools" shortlabel "mmbtools" } services { srv-p1 { label "Station1" } srv-p2 { label "Station2" } } subchannels { sub-p1 { type audio inputfile "prog1.mp2" bitrate 128 id 10 protection 4 } sub-p2 { type audio inputfile "prog2.mp2" bitrate 128 id 11 protection 4 } } components { comp-p1 { service srv-p1 subchannel sub-p1 } comp-p2 { service srv-p2 subchannel sub-p2 } } outputs { output1 "file://output.eti?type=raw" } 

该配置描述了将在Multiplex中使用的通道及其数据源。 nbframes参数指定要创建多少帧; 2000帧对应于大约一分钟的回放。

保存文件后,创建一个Multiplex:

 odr-dabmux config.mux 

输出应为文件output.eti ,在我的情况下,其大小为12MB。

调动

有两种可能性。 在“真实” Linux中,odr-dabmod可以直接将数据传输到收发器,但在VM下无法正常工作。 因此,作为输出参数,我指定了一个原始文件,其中将包含与Gnu Radio兼容的数据。

创建config.ini文件:

 [input] transport = file source = output.eti loop=0 [modulator] digital_gain=0.9 rate=2048000 [output] output = file [fileoutput] format = complexf_normalised ;format = s8 filename = output.iq 

这里的关键是输出格式及其类型。 对于USRP,我使用complexf_normalized格式,对于HackRF,从理论上讲,8位s8是合适的。

保存配置,开始转换:

 odr-dabmod config1.ini 

仅此而已! 在我的情况下,输出应为config.iq,大约一分钟的记录大小为700MB(IQ浮动格式)。 我们将其复制到“主”计算机上,然后可以关闭Linux。

3.测试


如前所述,我没有DAB接收器,Chukchi不是阅读器,我根本听不到广播:)为了进行测试,我使用了RTL-SDR“哨声”和免费程序Welle.io

首先,连接接收器,运行Welle.io并找到一个免费频道。 就我而言,12B影响了他们:



我们记住频率,并创建最简单的图形以传输到Gnu Radio:



我们开始,等待几秒钟,然后...我们通过welle.io听到录制的音乐。



我们确保通道数量及其名称与配置中指定的数量相对应。

是的,整个“传输复合体”如下所示:



结论


烧锅的人不是神,而且不用离开桌面就可以在家中接触现代技术。

当然,天线没有调到所需的频率(我没有天线分析仪),USB3的最大功率可能不超过1W,即使这样,它也分配在1.5 MHz的频带上。 因此最大传输距离约为0.5m。

如果有人想以更大的功率重复实验,则在ebay上搜索“ RF Power Amplifier”一词会提供许多有用的链接(官方上,您需要广播许可,当然,您应确保不干扰其他服务)。

Source: https://habr.com/ru/post/zh-CN408971/


All Articles