主要内容

comm.RBDSWaveformGenerator

生成RDS / rbd波形

描述

comm.RBDSWaveformGenerator系统对象™在MATLAB中生成可配置的标准兼容的基带RDS/RBDS波形®.RDS/RBDS波形为调频广播电台提供额外的文本信息,如歌曲标题、艺术家姓名和电台描述。RDS/RBDS信号位于57-kHz波段的基带调频无线电信号。

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

生成基带RDS/RBDS波形:

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

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

请注意

或者,不要使用一步方法执行System对象定义的操作时,可以使用参数调用对象,就像调用函数一样。例如,y =步骤(obj, x)y = obj (x)执行相同操作。

建设

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

rbdsgen = comm.RBDSWaveformGenerator(名称、值)使用以下命令指定其他属性名称,值对。未指定的属性具有默认值。

例子

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

属性

全部展开

如果属性被列为可调,那么即使在对象被锁定时,也可以更改其值。

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

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

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

可调:是的

程序服务的标签,指定为长度不超过8个字符的字符向量。该信息以类型为0A的短文本形式传递,每次两个字符。

可调:是的

程序标识(PI)代码,指定为16位行向量。在北美,PI代码传达的是电台的呼叫字母。呼叫信的例子包括“讯记者”“KXYZ”

要为一个电台的呼叫字母生成北美的PI代码,使用callLettersToPICode方法。

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

可调:是的

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

可调:是的

选项以公告日期和时间,指定为其中之一真正的.当您将此属性设置为真正的,每685组生成一个4A组(每分钟生成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注册自定义编码实现
一步 生成RDS / rbd波形
所有系统对象都是通用的
释放

允许系统对象属性值改变

重置

重置System对象的内部状态

例子

全部折叠

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

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

groupLen = 104;sps = 10;groupsPerFrame = 19;rbdsFrameLen = groupLen * sps * groupsPerFrame;afrRate = 40 * 1187.5;rbdsRate = 1187.5 * sps;outRate = 4 * 57000;误判率= dsp。AudioFileReader (“rbds_capture_47500.wav”“SamplesPerFrame”, rbdsFrameLen * afrRate / rbdsRate);rbd = comm.RBDSWaveformGenerator (“GroupsPerFrame”groupsPerFrame,“SamplesPerSymbol”, sps);fmMod = comm.FMBroadcastModulator (“AudioSampleRate”,误判率。SampleRate,“SampleRate”outRate,...“立体”,真的,“rbd”,真的,“RBDSSamplesPerSymbol”, sps);fmDemod = comm.FMBroadcastDemodulator (“SampleRate”outRate,...“立体”,真的,“rbd”,真的,“PlaySound”,真正的);范围= timescope (“SampleRate”outRate,“YLimits”, 10 ^ 2 * [1]);

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

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

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

rbd = comm.RBDSWaveformGenerator (“GroupsPerFrame”, 20岁,“SamplesPerSymbol”10...“SendRadioTextPlus”,真正的);rbd。RadioText =“MyArtist MySongTitle”;rbd。RadioTextType1 =”项。艺术家的;rbd。RadioTextType2 =”项。标题的;rbd。[18;]12 22];Idx = 1:10 rbd .step();结束

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

rbd = comm.RBDSWaveformGenerator ();odaID =“CD46”;allocatedGroupType =“8”

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

mainProcessingFcn = @CustomODAEncodingMain;fcn3A = @CustomODAEncoding3A;registerODA (rbd、odaID allocatedGroupType、mainProcessingFcn fcn3A);s = info (rbd);s.ODAMap
ans =2×1带有字段的结构数组:ID GroupType FunctionMain功能

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

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

算法

全部展开

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

参考文献

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

[2] Westdeutscher Rundfunk WDR,诺基亚和Institut für Rundfunktechnik IRT。无线电文本加(RT+)规范,版本2.1。2006.

扩展功能

介绍了R2017a