此示例显示了如何模拟用于GSM(全球移动)基带转换的固定点数字下变频器的稳态行为。该示例使用信号处理系统对象模拟TI Graychip 4016四分之一数字下变频器的操作,并需要固定点设计器™许可证。
数字下变频器(DDC)是数字收音机的重要组成部分。它执行频率转换以将高输入采样率转换为较低的采样率以进行高效处理。在该示例中,DDC接受带有样本率的带通信率,其左右每秒约70兆画(MSP),并执行以下操作:
使用数控振荡器(NCO)和混合器的数字混合或向下转换输入信号。
使用级联集成电路(CIC)和FIR滤波器的滤波链窄带低通滤波和抽取。
增益调整和最终重新采样数据流。
DDC产生基带信号,采样率为270千叠层每秒(KSP),准备用于解调。典型DDC的框图如下所示。
如果〜iSfixptInstalled错误(消息('DSP:DSPDigitalDownConverter:nofixpttbx'));结尾
创建和配置正弦波源系统对象以模拟GSM源。您将对象的频率设置为69.1E6 * 5/24 MSP,因为在数字混合后,对象将具有大约48kSP的基带频率。因为您要建模的系统将输入重新列出为4 /(3 * 256),所以需要将对象的帧大小设置为这些因素的最低常见乘法器。
fs = 69.333e6;框架= 768;sine = dsp.sinewave(......'频率',69.1e6 * 5/24,......'采样率',fs,......'方法'那'三角函数'那......'samplesperframe',框架);
创建和配置NCO系统对象以混合和向下转换GSM信号。TI Graychip需要调谐频率(PhaseIncrement属性)是具有32位分数长度的32位数据类型。相位偏移需要是具有16位分数长度的16位数据类型。为了降低幅度量化噪声并在可用带宽上扩展杂散频率,将抖动信号添加到累加器相位值。通常,抖动位数(14)的数量是累加器字长度(32)和表地址字长(18)之间的差异。
nco = dsp.nco(......'phaseIncressource'那'财产'那......'阶段互补',Int32((5/24)* 2 ^ 32),......'阶段OFFSET',int16(0),......'numditherbits',14,......'numquantizerAccumulatorbits',18,......'波形'那'复杂的指数'那......'samplesperframe',框架化,......'aplexulatordataType'那'风俗'那......'customAccumulatordatype',numerictype([],32),......'outputdatatype'那'风俗'那......'customoupdattatype',numerictype([],20,18));
创建和配置CIC DECIMATOR系统对象,将混频器输出的倍数为64. CIC滤波器可以在不使用任何乘法器的情况下实现高度抽取或插值率。此功能使它们非常有用于以高速运行的数字系统。
m1 = 64;cicdec = dsp.cicdecimator(......'decimationfactor',m1,......'numsections',5,......'fidstpointdatype'那'最小部分字长度'那......'outputwordlength'20);
创建和配置FIR DECIMATOR系统对象,以补偿由CIC滤波器引起的通带下垂。该过滤器也将由2倍抽取2。
gsmcoeffs;%阅读CFIR和PFIR COEFFSm2 = 2;cfir = dsp.firdecimator(m2,cfir,......'cofficientsdatatype'那'风俗'那......'customcoefficientsdatatype',numerictype([],16),......'fulleprecisoverride', 错误的,......'outputdatatype'那'风俗'那......'customoupdattatype',numerictype([],20,-12));
创建和配置FIR DECIMATOR系统对象,以将采样率降低2个因素2。
m3 = 2;pfir = dsp.firdecimator(m3,pfir,......'cofficientsdatatype'那'风俗'那......'customcoefficientsdatatype',numerictype([],16),......'fulleprecisoverride',错误的,......'outputdatatype'那'风俗'那......'customoupdattatype',numerictype([],20,-12));
创建和配置FIR速率转换器系统对象,以将最终输出重新采样为4/3。
firrc = dsp.firrateConverter(4,3,Fir1(31,0.25),......'cofficientsdatatype'那'风俗'那......'customcoefficientsdatatype',numerictype([],12),......'fulleprecisoverride',错误的,......'outputdatatype'那'风俗'那......'customoupdattatype',numerictype([],24,-12));
创建指定NumEricType的FI对象以充当SINE输出的数据类型转换。
GSMSIG = FI(零(768,1),TRUE,14,13);
创建指定NumEricType的FI对象以存储固定点混频器输出。
mixsig = fi(零(768,1),真实,20,18);
创建和配置两个时间范围系统对象,绘制FIR速率转换器滤波器输出的真实和虚部。
timescope1 = timescope(......'名称'那'速率转换器输出:真实信号'那......'采样率',fs / 256 * 4/3,......'timespansource'那'财产'那......'时间跨度',1.2e-3,......'ylimits',[-2e8 2e8]);pos = timescope1.Position;Timescope1.Position(1:2)= [POS(1)-0.8 * POS(3)POS(2)+ 0.7 * POS(4)];timescope2 = timescope(......'名称'那'速率转换器输出:虚构信号'那......'位置',[POS(1)-0.8 * POS(3)POS(2)-0.7 * POS(4)POS(3:4)],......'采样率',fs / 256 * 4/3,......'timespansource'那'财产'那......'时间跨度',1.2e-3,......'ylimits',[-2e8 2e8]);
创建和配置两个频谱分析仪系统对象,以绘制NCO输出的功率谱和补偿的CIC DECIMIDATOR输出。
specscope1 = dsp.spectrumanalyzer(......'名称'那'dspddc:nco输出'那......'采样率',fs,......'rusiancyspan'那'开始和停止频率'那......'Startfice',0,'停止',fs / 2,......'rbwsource'那'财产'那'rbw',4.2e3,......'spectralaverages',1,......'标题'那'NCO输出的功率谱'那......'位置',[POS(1)+。8 * POS(3)POS(2)+ 0.7 * POS(4)POS(3:4)]);fsccomp = fs /(m1 * m2);specscope2 = dsp.spectrumanalyzer(......'名称'那'DSPDC:补偿CIC Deetimator输出'那......'采样率',fsciccomp,......'rusiancyspan'那'开始和停止频率'那......'Startfice',0,'停止',fsccomp / 2,......'rbwsource'那'财产'那'rbw',4.2e3,......'spectralaverages',1,......'标题'那'补偿CIC Deetimator输出的功率谱'那......'位置',[POS(1)+。8 * POS(3)POS(2)-0.7 * POS(4)POS(3:4)]);
在处理回路中,混频器前端数字向下将GSM信号转换为基带。CIC抽取和补偿滤波器将信号缩小为128倍,可编程FIR滤波器在另一个因子2中抽取,以实现256的整体抽取。重采样后端执行其他特定于应用程序特定的过滤。运行100个迭代的处理循环相当于处理大约1.1 ms的重采样输出。
%为四个范围创建一个容器Scopescontainer = HelpercreateScopescontainer(......{Timescope1,specscope1,timescope2,specscope2},......'名称'那'数字下变频器'那......'布局',[2 2],......'expandtoolstrip',错误的);为了II = 1:100 GSMSIG(:) = SINE();%GSM信号ncosig = nco();%NCO信号mixsig(:) = gsmsig。* ncosig;%数字搅拌机%CIC过滤和补偿YCIC = CFIR(CICDEC(MIXSIG));%可编程冷杉和采样率转换Yrcout = firrc(pfir(ycic));%频率和时域图时间尺1(真实(Yrcout));timescope2(imag(Yrcout));specscope1(ncosig);specscope2(ycic);结尾释放(时间尺度1);释放(Timescope2);释放(specscope1);释放(SpecScope2);
在此示例中,您使用DSP系统工具箱™系统对象来模拟固定点GSM数字下变频器的稳态行为。时间范围和频谱分析仪系统对象使您可以分析DDC的各个阶段。