文档

rbdswavformgenerator系统对象

生成RDS/RBDS波形

描述

comm.RBDSWaveformGeneratorSystem object™在MATLAB中生成可配置的符合标准的基带RDS/RBDS波形®。RDS/RBDS波形为调频广播电台补充了额外的文本信息,如歌曲标题、艺人姓名和电台描述。RDS/RBDS信号位于基带调频无线电信号的57khz频段。

使用该对象生成包含RadioText Plus (RT+)信息的波形,并为开放数据应用程序(ODA)注册自定义编码实现。您还可以指定时间、数据和程序类型。该对象支持短的、滚动的万博1manbetx8个字符文本,以及较长的32个字符或64个字符文本。

生成基带RDS/RBDS波形:

  1. 创建一个comm.RBDSWaveformGenerator对象,并设置该对象的属性。

  2. 调用一步来产生波形。

请注意

或者,不使用一步方法来执行System object™定义的操作,则可以带参数调用该对象,就好像它是一个函数一样。例如,Y = step(obj,x)Y = obj(x)执行等价操作。

建设

rbdsgen = com . rbdswaveformgenerator创建一个RDS/RBDS波形发生器对象,rbdsgen,使用默认属性。

rbdsgen = com . rbdswavformgenerator (Name,Value)使用名称,值对。未指定的属性具有默认值。

例子

rbdsgen = com . rbdswaveformgenerator (“GroupsPerFrame”, 20岁,“SamplesPerSymbol”10“SendRadioTextPlus”,真正的);

属性

全部展开

如果一个属性被列为可调,那么即使对象被锁定,您也可以更改它的值。

每个符号(位)的采样数,指定为正偶数。一半的样本代表曼彻斯特编码的一个振幅水平。另一半样本代表相反的水平。

每个输出帧的组数,指定为标量整数。每组有104个符号(位)长。

用类型2A组传送的无线电文本,指定为最长64个字符的字符向量。对象使用类型2A组,每次传输指定的文本四个字符。

可调:是的

程序服务的标签,指定为最多八个字符长的字符向量。该信息以带有类型0A组的短文本形式传递,每次两个字符。

可调:是的

程序标识(PI)代码,指定为16位行向量。在北美,PI代码传递电台的呼号。呼吁书的例子包括“讯记者”“KXYZ”

要为电台呼号生成北美PI代码,请使用callLettersToPICode方法。

程序类型,指定为包含RDS/RBDS标准允许的31个值之一的字符向量。有关RDS/RBDS标准在北美允许的程序类型列表,请参见[1]

可调:是的

程序类型名称,指定为最长八个字符的字符向量。本文进一步描述了程序类型,如“足球”对于程序类型“体育”。对象使用类型10A组传递程序类型名称。如果此属性为空,则不生成10A组。

可调:是的

选项发布日期和时间,指定为真正的。当您将此属性设置为真正的,每685组周期生成1个4A组(1分钟1次)。

以MHz为单位的数字行向量指定的可选频率。这一信息是用0A型组传递的。它表示在相同或相邻的接收区播放同一节目的其他发射机。有了这些信息,接收器就可以切换到另一个接收效果更好的频率。

选项传输RadioText Plus (RT+)信息,指定为标量逻辑。当您将此属性设置为真正的, RT+ ODA信息以3A类分组发布。中指定的RT+内容类型RadioTextType1RadioTextType2的两个RT+子字符串RadioTextIndices以开放格式11A型组传送。

第一个RT+子字符串的内容类型,指定为字符向量。允许的值是在RT+标准中指定的类名。有关详细信息,请参见[2]

可调:是的

第二个RT+子字符串的内容类型,指定为字符向量。允许的值是在RT+标准中指定的类名。有关详细信息,请参见[2]

可调:是的

RT+子串的起始和结束索引,指定为2 × 2的正整数矩阵。第一列索引每个RT+子字符串的开头。第二列索引每个子字符串的末尾。

可调:是的

方法

callLettersToPICode 将北美呼叫字母转换为二进制PI代码
registerODA 为ODA注册自定义编码实现
重置 RBDS波形发生器对象的复位状态
一步 生成RDS/RBDS波形

例子

全部展开

生成一个基本的RBDS波形,用音频信号调频调制波形,然后解调波形。

RBDS波形的每一帧包含19组,每组长度为104位(符号)。将每个RBDS符号的样本数量设置为10。因此,RBDS波形每帧的采样数为104 × 10 × 19 = 19760。根据RBDS标准,比特率为1187.5 Hz。因此,RBDS采样率=每个RBDS符号1187.5 x个样本。设置音频帧率为40 × 1187.5 = 47500。

groupLen = 104;SPS = 10;groupsPerFrame = 19;rbdsframen = groupLen*sps*groupsPerFrame;afrRate = 40*1187.5;rbdsRate = 1187.5*sps;outRate = 4*57000;Afr = dsp。AudioFileReader (“rbds_capture_47500.wav”“SamplesPerFrame”, rbdsFrameLen * afrRate / rbdsRate);rbds = com . rbdswaveformgenerator (“GroupsPerFrame”groupsPerFrame,“SamplesPerSymbol”, sps);fmMod = com . fmbroadcastmodulator (“AudioSampleRate”,误判率。SampleRate,“SampleRate”outRate,“立体”,真的,“rbd”,真的,“RBDSSamplesPerSymbol”, sps);fmDemod = com . fmbroadcastdemomodulator“SampleRate”outRate,“立体”,真的,“rbd”,真的,“PlaySound”,真正的);范围= dsp。TimeScope (“SampleRate”outRate,“YLimits”, 10 ^ 2 * [1]);

获取音频输入并生成RBDS波形。调频用RBDS波形调制立体声音频,加入噪声,调频解调音频和RBDS波形。查看时间范围内的RBDS解调波形。

输入= afr();%获取当前音频输入rbwaves = rbds();%以相同的配置速率生成RBDS信息yFM = fmMod([input input], rbwave);调频调制立体声音频与RBDS信息rcv = awgn(yFM, 40);添加噪音%[audioRcv, rbdsRcv] = fmDemod(rcv);调频解调音频和RBDS波形范围(rbdsRcv);结束

创建一个comm.RBDSWaveformGenerator系统对象™,每帧20组,每个符号10个样本。向波形中添加Radio Text plus (RT+)信息,如艺术家姓名和歌曲、标题。指定RT+子字符串的开始和结束RadioTextIndices财产。

rbds = com . rbdswaveformgenerator (“GroupsPerFrame”, 20岁,“SamplesPerSymbol”10“SendRadioTextPlus”,真正的);rbd。RadioText =“MyArtist - MySongTitle”;rbd。RadioTextType1 =”项。艺术家的;rbd。RadioTextType2 =”项。标题的;rbd。RadioTextIndices = [18;12 22];rbds.step();结束

为开放数据应用程序(Open Data Application, ODA)注册自定义编码实现registerODA方法comm.RBDSWaveformGenerator系统对象™。设置ODA ID为“CD46”,这是流量消息通道的ID。分配的组类型为8A。

rbds = com . rbdswaveformgenerator ();odaID =“CD46”;allocatedGroupType =“8”;

本例使用以下模板作为自定义编码实现的起点。

mainProcessingFcn = @CustomODAEncodingMain;fcn3A = @CustomODAEncoding3A;registerODA (rbd、odaID allocatedGroupType、mainProcessingFcn fcn3A);S = info(rbds);s.ODAMap
ans =2x1结构数组与字段:ID组类型FunctionMain功能3a

生成带有日期和时间信息、程序类型和可选频率的RBDS波形。的comm.RBDSWaveformGenerator对象使用4A类型组作为日期和时间信息,10A类型组作为节目类型信息,0A类型组用于替代频率。在频谱分析仪中查看波形。

rbds = com . rbdswaveformgenerator (“GroupsPerFrame”, 1000);范围= dsp。简介(“SampleRate”1187.5 * rbds.SamplesPerSymbol“YLimits”20 [-140]);rbd。SendDateTime = true;%发送类型4A组rbd。ProgramType =“体育”;rbd。ProgramTypeName =“足球”;%发送类型10A组rbd。AlternativeFrequencies = [99.1 102.5];在类型0A组中发送的% infoWave = rbds.step();范围(波)

算法

全部展开

comm.RBDSWaveformGenerator根据RDS/RBDS标准生成波形[1]。RDS/RBDS标准由物理层、数据链路层、会话和应用层三层组成。

参考文献

b[1]国家无线电系统委员会。美国RBDS标准:无线电广播数据系统(RBDS)规范。电子工业协会和全国广播协会。1998年4月9日。

[2] Westdeutscher Rundfunk WDR, Nokia和Institut Rundfunktechnik IRT。RadioText Plus (RT+)规范,版本2.1。2006.

扩展功能

在R2017a中引入

这个话题有帮助吗?