主要内容

comm.RBDSWaveformGenerator

生成RDS / rbd波形

描述

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

使用此对象可生成包含RadioText Plus (RT+)信息的波形,并为开放数据应用程序(ODA)注册自定义编码实现。还可以指定时间、数据和程序类型。该对象支持简短的、滚动的8字符文本,以及更长的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组,一次传输指定的文本四个字符。

可调:是的

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

可调:是的

程序识别(PI)代码,指定为16位行向量。在北美,PI代码传递车站的呼叫字母。示例呼叫信包括“讯记者”而且“KXYZ”

若要为车站的呼叫号生成北美PI码,请使用callLettersToPICode方法。

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

可调:是的

程序类型名称,指定为字符向量,最长可达8个字符。本文进一步描述了程序类型,例如“足球”对于程序类型“体育”.该对象使用类型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注册一个自定义编码实现
一步 生成RDS / rbd波形
通用于所有系统对象
释放

允许系统对象属性值更改

重置

重置系统对象的内部状态

例子

全部折叠

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

RBDS波形的每帧包含19组,每组长度为104位(符号)。将每个RBDS符号的样本数量设置为10。因此,RBDS波形每帧的样本数为104 x 10 x 19 = 19760。根据RBDS标准,比特率为1187.5 Hz。因此,RBDS抽样率=每个RBDS符号1187.5个样本。设置音频帧率为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,...立体声= true,...rbd = true,...RBDSSamplesPerSymbol = sps);fmDemod = comm.FMBroadcastDemodulator (...SampleRate = outRate,...立体声= true,...rbd = true,...PlaySound = true);scope = timescope(SampleRate= outate,YLimits=10^-2*[-1 1]);

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

idx = 1:7%获取当前音频输入输入=误判率();%以相同的配置速率生成RBDS信息rbdsWave = rbd ();调频调制立体声音频与RBDS信息yFM = fmMod (...(输入输入),...rbdsWave);%添加噪声rcv = awgn(yFM, 40);调频解调音频和RBDS波形[audioRcv, rbdsRcv] = fmDemod(rcv);范围(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。RadioTextIndices = [1 8;12 22];Idx = 1:10 rbds.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带字段的struct数组:3a . ID GroupType FunctionMain功能描述

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

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

算法

全部展开

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

参考文献

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

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

扩展功能

版本历史

介绍了R2017a

Baidu
map