Block error rate

From Wikipedia, the free encyclopedia

From Wikipedia, the free encyclopedia

Block Error Rate (BLER) is a ratio of the number of erroneous blocks to the total number of blocks transmitted on a digital circuit.

It is used in measuring the error rate when extracting data frames from a Compact Disc (CD). The BLER measurement is often used as a quality control measure with regards to how well audio is retained on a compact disc over time.

BLER is also used for W-CDMA performance requirements tests (demodulation tests in multipath conditions, etc.). BLER is measured after channel de-interleaving and decoding by evaluating the Cyclic Redundancy Check (CRC) on each transport block.

Block Error Rate (BLER) is used in LTE/4G technology to determine the in-sync or out-of-sync indication during radio link monitoring (RLM). Normal BLER is 2% for an in-sync condition and 10% for an out-of-sync condition.

References[edit]

«Block Error Ratio (BLER) Measurement Description». February 28, 2014. Retrieved 23 December 2015.

Содержание

  1. Block Error Rate (BLER)
  2. What Does Block Error Rate (BLER) Mean?
  3. Techopedia Explains Block Error Rate (BLER)
  4. Возникновение битовых ошибок и их влияние на параметры цифровой передачи
  5. RF Wireless World
  6. Home of RF and Wireless Vendors and Resources
  7. BER vs BLER vs DBLER
  8. Block Error Rate in LTE

Block Error Rate (BLER)

Table of Contents

What Does Block Error Rate (BLER) Mean?

Block error rate (BLER) is a quantitative measure of how well audio is retained in a compact disc (CD) over a period of time. It is used to measure the error rate at the time of extracting data frames from a CD. The BLER is the ratio of total erroneous blocks to that of total number of blocks received in a digital circuit.

Block error rate is also known as block error ratio.

Techopedia Explains Block Error Rate (BLER)

According to the European Telecommunications Standards Institute (ETSI), “A Block Error Ratio is defined as the ratio of the number of erroneous blocks received to the total number of blocks sent. An erroneous block is defined as a Transport Block, the cyclic redundancy check (CRC) of which is wrong.”

Therefore, the BLER can be determined with the following formula:

BLER = EB ÷ TB

Where:

BLER = Block Error Rate
EB = Erroneous Blocks
TB = Total Blocks

The most prominent application of BLER is in the industries that use LTE/4G technology such as the telecommunications industry. The main purpose of using the BLER in the telecommunications industry is to determine the in-sync or out-of-sync indication at the time the radio link monitoring (RLM) is done. As an industry standard, 2 percent is considered a normal in-sync condition, while 10 percent is considered normal for an out-of-sync condition. Typically, BLER is measured after channel decoding and de-interleaving has been done after performing the cyclic redundancy check (CRC) for all transport blocks.

Источник

Возникновение битовых ошибок и их влияние на параметры цифровой передачи

^ Цель:изучить причины возникновения битовых ошибок при цифровой передаче сигнала

Характер битовых ошибок в цифровом канале

В цифровых системах передачи различные воздействия на цифровой канал приводят к снижению основного качественного параметра — параметра ошибки в цифровом канале. Причины возникновения ошибок имеют аналоговую природу, так как связаны с интерференцией, затуханием в линии и различными аддитивными шумами

^ Основные источники ошибок в цифровом канале:искажения в канале, наличие импульсных помех, аддитивный шум в канале,затухание в линии. Как видно из рисунка 11, наличие искажений в канале может быть связано как с затуханием, так и с отражением сиг­нала.

Рисунок 11 – Основные источники ошибок в цифровом канале

^ Первый источник шумов — физически разрушенный кабель (например, разбитая пара), слишком малое поперечное сечение, большая распределенная емкость в кабеле

^ Второй источник шумов —интерферирующие импульсы или импульсные помехи в канале.

Источниками ошибок могут явиться силовые кабели, проложенные в непосредственной близости от линии связи, нарушение обвязки кабелей, наличие сигнализации по постоянному току.

^ Третий источник шумов— наличие аддитивных шумов различной природы

Источниками ошибки здесь могут быть нарушения балансировки кабеля, параметра скручивания витой пары, интерференция с различными радиочастотными и СВЧ-сигналами, сигналы вызова, нарушения полярности кабеля (перепутанные жилы, короткое замыкание между жилами и т.д.) Высокий уровень шумов может привести к значительному увеличению параметра ошибки.

^ Четвертый источник шумов — затухание в кабелях и линиях передачи, причем не только высокий уровень затухания, но и его неравномерная характеристика, которая приводит к появлению субгармоник, вносящих дополнительный аддитивный шум.

^ Внутренние источники ошибок в ЦСП:

  • различные нестабильности во внутренних цепях синхронизации цифровых устройств, дрейф в системе внутренней синхронизации устройства;
  • нестабильности, связанные с измерением характеристик компонентов со временем;
  • перекрестные помехи в цепях устройств;
  • нарушения в работе эквалайзеров и в процессах, связанных с неравномерностью АЧХ;
  • повышение порога по шуму, связанное с изменением параметров модулей устройств со временем.

Внешние источники ошибок в ЦСП

  • перекрестные помехи в каналах передачи;
  • джиттер в системе передачи;
  • электромагнитная интерференция (от машин, флуоресцентных ламп и т.д.);
  • вариации питания устройств;
  • импульсные шумы в канале;
  • механические повреждения, воздействие вибрации, плохие контакты;
  • деградация качественных параметров среды передачи (электрического или оптического кабеля, радиочастотного канала и т.д.);
  • глобальные нарушения, связанные с разрушением канала цифровой передачи

^ Основные параметры, измеряемые в бинарном цифровом канале

1. AS — availability seconds время готовности канала (с) — вторичный параметр, равный разности между общей длительностью теста и временем неготовности канала.

^ 2. AS (%) — availability seconds относительное время готовности канала — параметр, характеризующий готовность канала, выраженный в процентах. В отличие от AS, AS (%) является первичным параметром и входит в число основных параметров рекомендации G.821.

^ 3. ВВЕ — background block error блок с фоновой ошибкой — блок с ошибками, не являющийся частью SES, применяется при анализе ошибок по блокам. Является важным параметром, вошедшим в рекомендацию ITU-T G.826.

^ 5. ЕВ — error block число ошибочных блоков — параметр, используемый при анализе канала на наличие блоковых ошибок. Подсчитывается только во время пребывания канала в состоянии готовности.

^ 6. BBER — background block error rate , коэффициент ошибок по блокам с фоновыми ошибками — отношение числа блоков с фоновыми ошибками ко всему количеству блоков в течение времени готовности канала за исключением всех блоков в течении SES. Является важным параметром, вошедшим в рекомендацию ITU-T G.826.

4. BIT или BIT ERR- bit errors число ошибочных битов — параметр, используемый при анализе канала на наличие битовых ошибок. Подсчитывается только во время пребывания канала в состоянии готовности.

7. BER или RATE — bit error rate частота битовых ошибок, коэффициент ошибок по битам -основной параметр в системах цифровой передачи, равный отношению числа битовых ошибок к общему числу бит, переданных за время проведения теста по каналу, находящемуся в состоянии готовности. При обнаружении десяти последовательных секундных интервалов, сильно пораженных ошибками (SES), анализатор переключается на подсчет времени неготовности канала. Измерения параметра BER универсальны в том смысле, что не требуют наличия цикловой и сверхцикловой структуры в измеряемом потоке, однако требуют передачи специальной тестовой последовательности и могут быть проведены только в случае полного или частичного отключения цифрового канала от полезной нагрузки.

^ 8. BLER — block error rate частота блоковых ошибок, коэффициент ошибок по блокам — редко применяемый на практике параметр, равный отношению числа ошибочных блоков данных к общему числу переданных блоков. Под блоком понимается заданное количество битов. Ошибочным блоком считается блок, содержащий хотя бы один ошибочный бит. Его целесообразно измерять только в тех сетях передачи данных, где информация передается блоками фиксированного размера, а параметр BLER является важной характеристикой канала с учетом кадровой (цикловой) структуры передачи.

^ 9. CLKSLIP или SLIP — clock slips число тактовых проскальзываний — параметр, характеризующийся числом синхронных управляемых проскальзываний, появившихся с момента начала теста. Проскальзыванием называется повторение или исключение группы символов в синхронной или плезиохронной последовательности двоичных символов в результате различия между скоростями считывания и записи в буферной памяти. Поскольку проскальзывание ведет к потери части информации, что в свою очередь ведет к потери цикловой синхронизации, на практике используются эластичные управляемые буферы с возможностью управления проскальзываниями. В этом случае проскальзывания называются управляемыми

10. CRC ERRCRC errors число ошибок CRC — параметр ошибки, измеренный с использованием циклового избыточного кода (CRC), распространенный параметр определения ошибок реально работающего канала без его отключения и без передачи тестовой последовательности. Необходимым условием измерения параметра CRC является наличие механизма формирования кода в аппаратуре передачи

^ 11.CRC RATE — CRC errors rate частота ошибок CRC — показывает среднюю частоту ошибок CRC.

12.DGRM — degraded minutes число минут деградации качества — несколько временных интервалов продолжительностью 60 с каждый, когда канал находится в состоянии готовности, но BER=10

6. Ошибки во время неготовности канала не считаются, а интервалы по 60 с в состоянии готовности канала, пораженные ошибками несколько раз, суммируются.

^ 13. DGRM (%) — degraded minutes процент минут деградации качества — число минут деграда­ции качества, выраженное в процентах по отношению ко времени, прошедшему с момента начала тестирования.

14. EFSerror free seconds время, свободное от ошибок (с) — один из первичных параметров, входящих в рекомендации G.821 и М.2100/М.550. Отражает время, в течение которого сигнал был правильно синхронизирован, а ошибки отсутствовали, т.е. общее время пребывания канала в со­стоянии безошибочной работы.

15.EFS (%) — error free seconds процент времени, свободного от ошибок (с) — то же, что и предыдущий параметр, только выраженный в процентах по отношению к общему времени с мо­мента начала тестирования.

^ 16. ES — errors seconds длительность поражения сигнала ошибками, количество секунд с ошибками (с)

параметр показывает интервал времени поражения всеми видами ошибок в канале, находящемся в состоянии готовности.

^ Организация измерений с отключением канала

Для организации измерений с отключением канала используется генератор и анализатор тестовой последовательности, подключенные к разным концам цифрового канала (рис.12). Между генератором и анализатором тестовой последовательности существует синхронизация по тестовой последовательности, т.е. процедура, в результате которой анализатор имеет возможность предсказания следующего значения каждого принимаемого бита.

В практике используются два типа тестовых последовательностей — фиксированные и псевдослучайные последовательности (ПСП, PRBS — Pseudorandom Binary Sequence).

Фиксированными последовательностями являются последовательности чередующихся повторяемых комбинаций битов.

Рисунок 12 — Генератор псевдослучайной последовательности

Источник

RF Wireless World

Home of RF and Wireless Vendors and Resources

One Stop For Your RF and Wireless Need

BER vs BLER vs DBLER

This page on BER vs BLER vs DBLER provides difference between BER,BLER and DBLER measurements used to test GSM/GPRS/EGPRS compliant mobile.

BER stands for Bit Error Rate measurement. It is the ratio of number of bits received in error at the receiver to the total number of bits transmitted from transmitter.

BER =(Received bits in error/Total number of send bits)

BER test provides very accurate measure of performance any system compare to BLER and DBLER tests as it checks each of the bits transmitted and compare with received bits.

BLER stands for Block Error Rate measurement. It is the receiver measurement used in conformance testing of GPRS/EGPRS mobiles. Retransmission is done for the blocks which are received in error. BLER is the ratio of received erroneous blocks to the total number of data blocks transmitted. For example, in CS4 coding scheme 400 information bits are carried in a block. BLER just provides result either OK or NOT OK for each of the blocks. It does not provide any information on number of errored bits in a data block.

DBLER stands for Data Block Error Rate measurement.

DBLER = (Received data blocks in error/Total number of transmitted blocks)

With DBLER test, only the data bits are analyzed, while in BLER test block header and USF flags are analyzed too. Both are almost the same test. DBLER does not take into account all the bits resulted into block error. These tests are performed in test mode B. Refer page on Test Mode A vs Test Mode B used in GPRS/EGPRS mobile testing.

Источник

Block Error Rate in LTE

“Block Error Rate” or BLER is a measurement type of quality in telecommunication. Simple calculation of the measurement:

BLER (in LTE) = Number of erroneous blocks / total number of received blocks

The calculation is based on CRC (Cyclic Redundancy Check) evaluation which is used for inspection the transport blocks at receiver side. CRC is attached to each transport block and sending by the transmitter, at the destination the transport block is cross checked by the receiver. The transport block is successfully decoded if the attached CRC is matching the CRC calculated by the receiver.

The CRC is a technique used to detect errors in transport blocks.

If the calculation gives undesired result then the receiver will feedback with HARQ NACK message for asking re-transmission. In radio side, typical BLER target is 10% which means the receiver should receive at least 90% successful transmission. If the target is less than 10% then more re-transmission might be required and cause radio resource consuming.

“Error” is unavoidable in wireless communication due to several reasons.

In many radio measurement tools, we can see two kinds of BLER: iBLER and rBLER

iBLER : Initial Block Error Rate
The ratio of data blocks with initial transmission errors to all initial transmission data blocks.

rBLER : Residual Block Error Rate
The ratio of data blocks with transmission errors after initial transmissions and retransmissions to all initial transmission data blocks.

Источник

“Block Error Rate” or BLER is a measurement type of quality in telecommunication. Simple calculation of the measurement:

BLER (in LTE) = Number of erroneous blocks / total number of received blocks

The calculation is based on CRC (Cyclic Redundancy Check) evaluation which is used for inspection the transport blocks at receiver side. CRC is attached to each transport block and sending by the transmitter, at the destination the transport block is cross checked by the receiver. The transport block is successfully decoded if the attached CRC is matching the CRC calculated by the receiver.

The CRC is a technique used to detect errors in transport blocks.

If the calculation gives undesired result then the receiver will feedback with HARQ NACK message for asking re-transmission. In radio side, typical BLER target is 10% which means the receiver should receive at least 90% successful transmission. If the target is less than 10% then more re-transmission might be required and cause radio resource consuming.

“Error” is unavoidable in wireless communication due to several reasons.

In many radio measurement tools, we can see two kinds of BLER: iBLER and rBLER

iBLER: Initial Block Error Rate
The ratio of data blocks with initial transmission errors to all initial transmission data blocks.

rBLER: Residual Block Error Rate
The ratio of data blocks with transmission errors after initial transmissions and retransmissions to all initial transmission data blocks.

This example shows how LTE Toolbox™ can be used to create a NB-IoT Narrowband Physical Downlink Shared Channel (NPDSCH) Block Error Rate (BLER) simulation under frequency-selective fading and Additive White Gaussian Noise (AWGN) channel.

Introduction

3GPP Release 13 of LTE started to add support for Narrowband IoT applications. Release 13 defines a single NB-IoT UE Category, namely Cat-NB1, and Release 14 adds Cat-NB2 which allows for larger transport block sizes. This example focuses on Release 13 NB-IoT.

The example generates a NB-IoT NPDSCH BLER curve for a number of SNR points and transmission parameters. NPSS and NSSS are transmitted in appropriate subframes and the NPSS is used for practical timing synchronization. NPSS and NSSS subframes are not used for NPDSCH transmission. The NRS is transmitted in NPDSCH subframes and is used for practical channel estimation. NPBCH transmission gaps are not considered in this example.

Simulation Configuration

The simulation length is 4 DL-SCH transport blocks for a number of SNR points. A larger number of numTrBlks should be used to produce meaningful throughput results. SNR can be an array of values or a scalar. The simulation is performed over different repetition values to compare the performance improvement with repetitions.

numTrBlks = 4;        % Number of simulated transport blocks
SNRdB = -32:4:0;      % SNR range in dB
ireps = [0 5 9];      % Range of reps simulated

Setup Higher Layer Parameters

Setup the following higher layer parameters which are used to configure the NPDSCH in the next section:

  • The variable NPDSCHDataType indicates whether the NPDSCH is carrying the SystemInformationBlockType1-NB (SIB1-NB) or not, and whether the NPDSCH is carrying the broadcast control channel (BCCH) or not. The allowed values of NPDSCHDataType are 'SIB1NB', 'BCCHNotSIB1NB' and 'NotBCCH'. Note that SIB1-NB belongs to the BCCH.

  • The number of NPDSCH repetitions and the transport block size (TBS) are affected by whether NPDSCH is carrying SIB1-NB or not (see 3GPP TS 36.213 16.4.1.3 and 16.4.1.5 [ 2 ]). NPDSCHDataType set to 'SIB1NB' indicates that the NPDSCH is carrying SIB1-NB; NPDSCHDataType set to either 'BCCHNotSIB1NB' or 'NotBCCH' indicates that the NPDSCH is not carrying SIB1-NB.

  • The NPDSCH repetition pattern and the scrambling sequence generation is affected by whether NPDSCH is carrying BCCH or not (see 3GPP TS 36.211 10.2.3 [ 1 ]). NPDSCHDataType set to either 'SIB1NB' or 'BCCHNotSIB1NB' indicates that the NPDSCH is carrying BCCH; NPDSCHDataType set to 'NotBCCH' indicates that the NPDSCH is not carrying BCCH.

NPDSCHDataType = 'NotBCCH';  % The allowed values are 'SIB1NB', 'BCCHNotSIB1NB' or 'NotBCCH'
  • The variable ISF configures the number of subframes for a NPDSCH according to 3GPP TS 36.213 Table 16.4.1.3-1 [ 2 ]. Valid values for ISF are 0…7.

When the NPDSCH carries the SIB1-NB:

  • The variable SchedulingInfoSIB1 configures the number of NPDSCH repetitions according to 3GPP TS 36.213 Table 16.4.1.3-3 and the TBS according to Table 16.4.1.5.2-1 [ 2 ]. Valid values for SchedulingInfoSIB1 are 0…11.

When the NPDSCH does not carry the SIB1-NB:

  • The variable IRep configures the number of NPDSCH repetitions according to 3GPP TS 36.213 Table 16.4.1.3-2 [ 2 ]. Valid values for IRep are 0…15.

  • The variable IMCS together with IRep configure the TBS according to 3GPP TS 36.213 Table 16.4.1.5.1-1 [ 2 ]. Valid values for IMCS are 0…13.

ISF = 0;                % Resource assignment field in DCI (DCI format N1 or N2)
SchedulingInfoSIB1 = 0; % Scheduling information field in MasterInformationBlock-NB (MIB-NB)
IMCS = 4;               % Modulation and coding scheme field in DCI (DCI format N1 or N2)

eNB Configuration

Configure the starting frame and subframe numbers (enb.NFrame and enb.NSubframe) in the simulation for each SNR point, the narrowband physical cell ID enb.NNCellID, the number of NRS antenna ports (enb.NBRefP, one antenna port indicates port 2000 is used, two antenna ports indicates port 2000 and port 2001 are used), the NB-IoT operation mode enb.OperationMode which can be any value as follows:

  • 'Standalone': NB-IoT carrier deployed outside the LTE spectrum, e.g. the spectrum used for GSM or satellite communications

  • 'Guardband': NB-IoT carrier deployed in the guardband between two LTE carriers

  • 'Inband-SamePCI': NB-IoT carrier deployed in resource blocks of a LTE carrier, with enb.NBRefP the same as the number of CRS ports enb.CellRefP

  • 'Inband-DifferentPCI': NB-IoT carrier deployed in resource blocks of a LTE carrier, with enb.NBRefP different as enb.CellRefP

enb.CellRefP is configured when the operation mode is 'Inband-DifferentPCI'. The starting OFDM symbol index in a subframe for NPDSCH is configured using enb.ControlRegionSize, when the values of NPDSCHDataType and enb.OperationMode satisfy the following conditions:

  • NPDSCHDataType is either 'BCCHNotSIB1NB' or 'NotBCCH'

  • enb.OperationMode is either 'Inband-SamePCI' or 'Inband-DifferentPCI'

enb.NFrame = 0;     % Simulation starting frame number
enb.NSubframe = 0;  % Simulation starting subframe number
enb.NNCellID = 0;   % NB-IoT physical cell ID
enb.NBRefP = 2;     % Number of NRS antenna ports, should be either 1 or 2
enb.OperationMode = 'Inband-DifferentPCI';  % The allowed values are 'Inband-SamePCI', 'Inband-DifferentPCI', 'Guardband' or 'Standalone'
if strcmpi(enb.OperationMode,'Inband-SamePCI')
    enb.CellRefP = enb.NBRefP;     % The allowed values are NBRefP or 4
    enb.NCellID = enb.NNCellID;
elseif strcmpi(enb.OperationMode,'Inband-DifferentPCI')
    enb.CellRefP = 4; % Number of Cell RS antenna ports (Must be equal to NBRefP or 4)
    enb.NCellID = 1;
end
if (strcmpi(NPDSCHDataType,'BCCHNotSIB1NB') || strcmpi(NPDSCHDataType,'NotBCCH')) && ...
        (strcmpi(enb.OperationMode,'Inband-SamePCI') || strcmpi(enb.OperationMode,'Inband-DifferentPCI'))
    enb.ControlRegionSize = 3;     % The allowed values are 0...13
end

Propagation Channel Model Configuration

The structure channel contains the channel model configuration parameters.

channel = struct;                    % Initialize channel config structure
channel.Seed = 6;                    % Channel seed
channel.NRxAnts = 1;                 % 1 receive antenna
channel.DelayProfile ='EPA';         % Delay profile
channel.DopplerFreq = 5;             % Doppler frequency in Hz
channel.MIMOCorrelation = 'Low';     % Multi-antenna correlation
channel.NTerms = 16;                 % Oscillators used in fading model
channel.ModelType = 'GMEDS';         % Rayleigh fading model type
channel.InitPhase = 'Random';        % Random initial phases
channel.NormalizePathGains = 'On';   % Normalize delay profile power
channel.NormalizeTxAnts = 'On';      % Normalize for transmit antennas

Channel Estimator Configuration

In this example the parameter perfectChannelEstimator controls channel estimator behavior. Valid values are true or false. When set to true, a perfect channel estimator is used otherwise a practical estimator is used, based on the values of the received NRS.

% Channel estimator behavior
perfectChannelEstimator = true;

The practical channel estimator is configured with a structure cec. An EPA delay profile with 5Hz Doppler causes the channel to change slowly over time. Therefore only frequency averaging is performed over pilot estimates by setting the time window to 1 Resource Element (RE) and frequency window to 25 to ensure averaging over all subcarriers for the resource block.

% Configure channel estimator
cec.PilotAverage = 'UserDefined';   % Type of pilot symbol averaging
cec.TimeWindow = 1;                 % Time window size in REs
cec.FreqWindow = 25;                % Frequency window size in REs
cec.InterpType = 'Cubic';           % 2D interpolation type
cec.InterpWindow = 'Centered';      % Interpolation window type
cec.InterpWinSize = 3;              % Interpolation window size
cec.Reference = 'NRS';              % Channel estimator reference signal

NPDSCH Configuration

Obtain the following NPDSCH parameters from the higher layer configurations defined above:

  • The number of repetitions (NRep)

  • The number of subframes used for a NPDSCH when there is no repetition (NSF)

  • The transport block size (TBS)

These parameters can be obtained by using the class hNPDSCHInfo. hNPDSCHInfo also provides method displaySubframePattern to display the NPDSCH repetition pattern, which is shown in the next section.

Note that when NPDSCH does not carry the SIB1-NB, an error is triggered if the configured IRep and IMCS values lead to an empty TBS. This is the case when the TBS is not defined for a particular IRep and IMCS pair in 3GPP TS 36.213 table 16.4.1.5.1-1 [ 2 ].

for repIdx = 1:numel(ireps)
    npdschInfo = hNPDSCHInfo;
    npdschInfo.NPDSCHDataType = NPDSCHDataType;
    npdschInfo.ISF = ISF;
    if strcmpi(NPDSCHDataType,'SIB1NB')  % NPDSCH carrying SIB1-NB
        npdschInfo.SchedulingInfoSIB1 = SchedulingInfoSIB1;
    else % NPDSCH not carrying SIB1-NB
        npdschInfo.IRep = ireps(repIdx); % Repetition number field in DCI (DCI format N1 or N2)
        npdschInfo.IMCS = IMCS;          % Modulation and coding scheme field in DCI (DCI format N1 or N2)
        % Verify the inputs of IRep and IMCS
        if isempty(npdschInfo.TBS)
            npdschInfo.TBSTable
            error(['Invalid [ITBS,ISF] (where ITBS=IMCS=' num2str(IMCS)...
                ', ISF=' num2str(ISF)  ') pair, empty TBS is returned, check valid pairs in the above table or 3GPP TS 36.213 table 16.4.1.5.1-1']);
        end
    end

Create the structure npdsch using the obtained number of repetitions (npdschInfo.NRep), the number of subframes of a NPDSCH (npdschInfo.NSF) from the class instance npdschInfo, input parameter NPDSCHDataType and the Radio Network Temporary Identifier RNTI. Note that NSF = 8 is used when NPDSCHDataType is 'SIB1NB'.

    npdsch.NSF = npdschInfo.NSF;
    npdsch.NRep = npdschInfo.NRep;
    npdsch.NPDSCHDataType = NPDSCHDataType;
    npdsch.RNTI = 1;

Verify the configured higher layer parameters using the DL-SCH code rate. The code rate is the ratio between the number of bits after CRC coding and the number of bits after rate matching. For the case when SIB1NB is set to true, the code rate R can be larger than or equal to 1, which is not a valid scenario. For example, such case happens when ISF is set to 0 and SchedulingInfoSIB1 is set to 3.

    [~,info] = lteNPDSCHIndices(enb,npdsch);
    rmoutlen = info.G;           % Bit length after rate matching, i.e. codeword length
    trblklen = npdschInfo.TBS;   % Transport block size
    R = (trblklen+24)/rmoutlen;  % DL-SCH channel coding rate, 24 denotes the number of CRC bits
    if R >= 1
        error(['DL-SCH coding rate (' num2str(R) ') larger than or equal to 1 for the configured parameters.']);
    end

Display Subframe Repetition Pattern

The variable displayPattern controls the display of the NPDSCH subframe repetition pattern. An example is shown in the following figure for the case when the NPDSCH carries the BCCH, the NPDSCH consists of npdschInfo.NSF = 3 different subframes, each color represents a subframe which represents 1 ms. Each subframe is repeated npdschInfo.NRep = 4 times, thus a total of 12 subframes are required to transmit the NPDSCH.

    %  The NPDSCH repetition pattern for the current configuration is
    %  displayed below
    displayPattern = false;
    % Display NPDSCH repetition pattern
    if displayPattern == true
        npdschInfo.displaySubframePattern;
    end

Block Error Rate Simulation Loop

This part of the example shows how to perform NB-IoT NPDSCH link level simulation and plot BLER results. The transmit and receive chain is depicted in the following figure.

A random stream of bits with the size of the desired transport block undergoes CRC encoding, convolutional encoding and rate matching to obtain the NPDSCH bits, which are repeated according to a specific subframe repetition pattern. Scrambling, modulation, layer mapping and precoding are then applied to form the complex NPDSCH symbols. These symbols along with the NRS signals are mapped to the grid and OFDM modulated to create the time domain waveform. This is then passed through a fading channel and AWGN is added. The noisy waveform is then synchronized and demodulated. Channel estimation and equalization is performed on the recovered NPDSCH symbols after which channel decoding and demodulation are performed to recover the transport block. After de-scrambling, the repetitive subframes are soft-combined before rate recover. The transport block error rate is calculated for each SNR point. The evaluation of the block error rate is based on the assumption that all the subframes in a bundle is used to decode the transport block at the UE. A bundle is defined in the MAC layer (see 3GPP TS 36.321 5.3.2.1 [ 3 ]) as the npdsch.NSF $times$ npdsch.NRep subframes used to carry a transport block.

    % Absolute subframe number at the starting point of the simulation
    NSubframe = enb.NFrame*10+enb.NSubframe;

    % Initialize BLER and throughput result
    maxThroughput = zeros(length(SNRdB),1);
    simThroughput = zeros(length(SNRdB),1);
    bler = zeros(1,numel(SNRdB));

    % The temporary variables 'enb_init' and 'channel_init' are used to create
    % the temporary variable 'enb' and 'channel' within the SNR loop to create
    % independent simulation loops for the 'parfor' loop
    enb_init = enb;
    channel_init = channel;

    for snrIdx = 1:numel(SNRdB)
    % parfor snrIdx = 1:numel(SNRdB)
    % To enable the use of parallel computing for increased speed comment out
    % the 'for' statement above and uncomment the 'parfor' statement below.
    % This needs the Parallel Computing Toolbox. If this is not installed
    % 'parfor' will default to the normal 'for' statement.

        % Set the random number generator seed depending to the loop variable
        % to ensure independent random streams
        rng(snrIdx,'combRecursive');

        fprintf('nSimulating %d transport blocks at %gdB SNRn',numTrBlks,SNRdB(snrIdx));

        enb = enb_init;         % Initialize eNodeB configuration
        channel = channel_init; % Initialize fading channel configuration
        txcw = [];              % Initialize the transmitted codeword
        numBlkErrors = 0;       % Number of transport blocks with errors
        estate = [];            % Initialize NPDSCH encoder state
        dstate = [];            % Initialize NPDSCH decoder state
        lastOffset = 0;         % Initialize overall frame timing offset
        offset = 0;             % Initialize frame timing offset
        subframeGrid = lteNBResourceGrid(enb); % Initialize the subframe grid

        subframeIdx = NSubframe;
        numRxTrBlks = 0;
        while (numRxTrBlks < numTrBlks)

            % Set current subframe and frame numbers
            enb.NSubframe = mod(subframeIdx,10);
            enb.NFrame = floor((subframeIdx)/10);

            % Generate the NPSS symbols and indices
            npssSymbols = lteNPSS(enb);
            npssIndices = lteNPSSIndices(enb);
            % Map the symbols to the subframe grid
            subframeGrid(npssIndices) = npssSymbols;

            % Generate the NSSS symbols and indices
            nsssSymbols = lteNSSS(enb);
            nsssIndices = lteNSSSIndices(enb);
            % Map the symbols to the subframe grid
            subframeGrid(nsssIndices) = nsssSymbols;

            % Establish if either NPSS or NSSS is transmitted and if so,
            % do not transmit NPDSCH in this subframe
            isDataSubframe = isempty(npssSymbols) && isempty(nsssSymbols);

            % Create a new transport block and encode it when the
            % transmitted codeword is empty. The receiver sets the codeword
            % to empty to signal that all subframes in a bundle have been
            % received (it is also empty before the first transmission)
            if isempty(txcw)
                txTrBlk = randi([0 1],trblklen,1);
                txcw = lteNDLSCH(rmoutlen,txTrBlk);
            end

            if (isDataSubframe)
                % Generate NPDSCH symbols and indices for a subframe
                [txNpdschSymbols,estate] = lteNPDSCH(enb,npdsch,txcw,estate);
                npdschIndices = lteNPDSCHIndices(enb,npdsch);
                % Map the symbols to the subframe grid
                subframeGrid(npdschIndices) = txNpdschSymbols;
                % Generate the NRS symbols and indices
                nrsSymbols = lteNRS(enb);
                nrsIndices = lteNRSIndices(enb);
                % Map the symbols to the subframe grid
                subframeGrid(nrsIndices) = nrsSymbols;
            end

            % Perform OFDM modulation to generate the time domain waveform
            [txWaveform,ofdmInfo] = nbOFDMModulate(enb,subframeGrid);

            % Add 25 sample padding. This is to cover the range of delays
            % expected from channel modeling (a combination of
            % implementation delay and channel delay spread)
            txWaveform =  [txWaveform; zeros(25, enb.NBRefP)]; %#ok<AGROW>

            % Initialize channel time for each subframe
            channel.InitTime = subframeIdx/1000;

            % Pass data through channel model
            channel.SamplingRate = ofdmInfo.SamplingRate;
            [rxWaveform,fadingInfo] = lteFadingChannel(channel, txWaveform);

            % Calculate noise gain including compensation for downlink power
            % allocation
            SNR = 10^(SNRdB(snrIdx)/10);

            % Normalize noise power to take account of sampling rate, which
            % is a function of the IFFT size used in OFDM modulation, and
            % the number of antennas
            N0 = 1/sqrt(2.0*enb.NBRefP*double(ofdmInfo.Nfft)*SNR);

            % Create additive white Gaussian noise
            noise = N0*complex(randn(size(rxWaveform)), ...
                                randn(size(rxWaveform)));

            % Add AWGN to the received time domain waveform
            rxWaveform = rxWaveform + noise;

            %------------------------------------------------------------------
            %            Receiver
            %------------------------------------------------------------------

            % Perform timing synchronization, extract the appropriate
            % subframe of the received waveform, and perform OFDM
            % demodulation
            if(perfectChannelEstimator)
                offset = hPerfectTimingEstimate(fadingInfo);
            else
                % In this example, the subframe offset calculation relies
                % on NPSS present in subframe 5, so we need to pad the
                % subframes before it so that the frame offset returned by
                % lteNBDLFrameOffset is the offset for subframe 5
                sfTsamples = ofdmInfo.SamplingRate*1e-3;
                if (enb.NSubframe==5)
                    padding = zeros([sfTsamples*5,size(rxWaveform,2)]);
                    offset = lteNBDLFrameOffset(enb, [padding; rxWaveform]);
                    if (offset > 25) || (offset < 0)
                        offset = lastOffset;
                    end
                    lastOffset = offset;
                end
            end

            % Synchronize the received waveform
            rxWaveform = rxWaveform(1+offset:end, :);

            % Perform OFDM demodulation on the received data to recreate the
            % resource grid
            rxSubframe = nbOFDMDemodulate(enb,rxWaveform);

            % Channel estimation
            if(perfectChannelEstimator)
                % Perfect channel estimation
                estChannelGrid = nbDLPerfectChannelEstimate(enb, channel, offset);
                noiseGrid = nbOFDMDemodulate(enb, noise(1+offset:end ,:));
                noiseEst = var(noiseGrid(:));
            else

                [estChannelGrid, noiseEst] = lteDLChannelEstimate( ...
                enb, cec, rxSubframe);
            end

            if (isDataSubframe)
                % Get NPDSCH indices
                npdschIndices = lteNPDSCHIndices(enb, npdsch);

                % Get PDSCH resource elements from the received subframe. Scale the
                % received subframe by the PDSCH power factor Rho. The PDSCH is
                % scaled by this amount, while the cell reference symbols used for
                % channel estimation (used in the PDSCH decoding stage) are not.
                [rxNpdschSymbols, npdschHest] = lteExtractResources(npdschIndices, ...
                    rxSubframe, estChannelGrid);

                % Decode NPDSCH
                [rxcw,dstate,symbols] = lteNPDSCHDecode(...
                                     enb, npdsch, rxNpdschSymbols, npdschHest, noiseEst,dstate);

                % Decode the transport block when all the subframes in a bundle
                % have been received
                if dstate.EndOfTx
                   [trblkout,blkerr] = lteNDLSCHDecode(trblklen,rxcw);
                   numBlkErrors = numBlkErrors + blkerr;
                   numRxTrBlks = numRxTrBlks + 1;
                   % Re-initialize to enable the transmission of a new transport block
                   txcw = [];
                end
            end

            subframeIdx = subframeIdx + 1;

        end

        % Calculate the block error rate
        bler(snrIdx) = numBlkErrors/numTrBlks;
        fprintf('NPDSCH BLER = %.4f n',bler(snrIdx));
        % Calculate the maximum and simulated throughput
        maxThroughput(snrIdx) = trblklen*numTrBlks; % Max possible throughput
        simThroughput(snrIdx) = trblklen*(numTrBlks-numBlkErrors);  % Simulated throughput
        fprintf('NPDSCH Throughput(%%) = %.4f %%n',simThroughput(snrIdx)*100/maxThroughput(snrIdx));

    end
Simulating 4 transport blocks at -32dB SNR
Simulating 4 transport blocks at -32dB SNR
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at -28dB SNR
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at -24dB SNR
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at -20dB SNR
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at -16dB SNR
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at -12dB SNR
NPDSCH BLER = 0.2500 
NPDSCH Throughput(%) = 75.0000 %

Simulating 4 transport blocks at -8dB SNR
NPDSCH BLER = 0.0000 
NPDSCH Throughput(%) = 100.0000 %

Simulating 4 transport blocks at -4dB SNR
NPDSCH BLER = 0.0000 
NPDSCH Throughput(%) = 100.0000 %

Simulating 4 transport blocks at 0dB SNR
NPDSCH BLER = 0.0000 
NPDSCH Throughput(%) = 100.0000 %
Simulating 4 transport blocks at -32dB SNR
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at -28dB SNR
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at -24dB SNR
NPDSCH BLER = 0.2500 
NPDSCH Throughput(%) = 75.0000 %

Simulating 4 transport blocks at -20dB SNR
NPDSCH BLER = 0.0000 
NPDSCH Throughput(%) = 100.0000 %

Simulating 4 transport blocks at -16dB SNR
NPDSCH BLER = 0.0000 
NPDSCH Throughput(%) = 100.0000 %

Simulating 4 transport blocks at -12dB SNR
NPDSCH BLER = 0.0000 
NPDSCH Throughput(%) = 100.0000 %

Simulating 4 transport blocks at -8dB SNR
NPDSCH BLER = 0.0000 
NPDSCH Throughput(%) = 100.0000 %

Simulating 4 transport blocks at -4dB SNR
NPDSCH BLER = 0.0000 
NPDSCH Throughput(%) = 100.0000 %

Simulating 4 transport blocks at 0dB SNR
NPDSCH BLER = 0.0000 
NPDSCH Throughput(%) = 100.0000 %

Plot Block Error Rate vs SNR results

    if repIdx == 1
        fh = figure;
        grid on;
        hold on;
        xlabel('SNR (dB)');
        ylabel('BLER');
        legendstr = {['NRep = ' num2str(npdsch.NRep)]};
    else
        legendstr = [legendstr ['NRep = ' num2str(npdsch.NRep)]]; %#ok<AGROW>
    end
    figure(fh);
    plot(SNRdB, bler, '-o');

end
% Set figure title
if strcmpi(NPDSCHDataType,'SIB1NB')
    npdsch.NSF = 8;
end
title([' ' char(npdsch.NPDSCHDataType) ': TBS=' num2str(trblklen)...
    '; NSF=' num2str(npdsch.NSF) '; ' num2str(enb_init.NBRefP) ' NRS port(s)' ]);
legend(legendstr);

The following plot shows the simulation run with numTrBlks set to 1000 while using the perfect channel estimator.

Appendix

This example uses the helper functions:

  • hPerfectTimingEstimate.m

  • hNPDSCHInfo.m

Selected Bibliography

  1. 3GPP TS 36.211 «Physical channels and modulation»

  2. 3GPP TS 36.213 «Physical layer procedures»

  3. 3GPP TS 36.321 «Medium Access Control (MAC) protocol specification»

  4. 3GPP TS 36.101 «User Equipment (UE) radio transmission and reception»

Local functions

% NB-IoT DL OFDM Modulator
function [waveform,info] = nbOFDMModulate(enb,grid)
    % Apply default window size according to TS 36.104 Table E.5.1-1a
    if(~isfield(enb,'Windowing'))
        enb.Windowing = 6;
    end
    % Use NB-IoT SC-FDMA to get the 1/2 subcarrier shift on the OFDM modulation
    enb.NBULSubcarrierSpacing = '15kHz';
    [waveform,info] = lteSCFDMAModulate(enb,grid);
end

% NB-IoT DL OFDM Demodulator
function grid = nbOFDMDemodulate(enb,rxWaveform)
    % Use NB-IoT SC-FDMA to get the 1/2 subcarrier shift on the OFDM modulation
    enb.NBULSubcarrierSpacing = '15kHz';
    grid = lteSCFDMADemodulate(enb,rxWaveform,0.55); % CP fraction of 0.55
end

% NB-IoT DL Perfect Channel Estimator
function H = nbDLPerfectChannelEstimate(enb,channel,timefreqoffset)
    % Reconfigure NB-IoT UL perfect channel estimator to perform DL perfect
    % channel estimation
    enb.NBULSubcarrierSpacing = '15kHz';
    enb.NTxAnts = enb.NBRefP;
    enb.TotSlots = 2;
    H = lteULPerfectChannelEstimate(enb, channel,timefreqoffset);
end
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at -28dB SNR
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at -24dB SNR
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at -20dB SNR
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at -16dB SNR
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at -12dB SNR
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at -8dB SNR
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at -4dB SNR
NPDSCH BLER = 1.0000 
NPDSCH Throughput(%) = 0.0000 %

Simulating 4 transport blocks at 0dB SNR
NPDSCH BLER = 0.0000 
NPDSCH Throughput(%) = 100.0000 %

What Does Block Error Rate (BLER) Mean?

Block error rate (BLER) is a quantitative measure of how well audio is retained in a compact disc (CD) over a period of time. It is used to measure the error rate at the time of extracting data frames from a CD. The BLER is the ratio of total erroneous blocks to that of total number of blocks received in a digital circuit.

Block error rate is also known as block error ratio.

Techopedia Explains Block Error Rate (BLER)

According to the European Telecommunications Standards Institute (ETSI), “A Block Error Ratio is defined as the ratio of the number of erroneous blocks received to the total number of blocks sent. An erroneous block is defined as a Transport Block, the cyclic redundancy check (CRC) of which is wrong.”

Therefore, the BLER can be determined with the following formula:

BLER = EB ÷ TB

Where:

BLER = Block Error Rate
EB = Erroneous Blocks
TB = Total Blocks

The most prominent application of BLER is in the industries that use LTE/4G technology such as the telecommunications industry. The main purpose of using the BLER in the telecommunications industry is to determine the in-sync or out-of-sync indication at the time the radio link monitoring (RLM) is done. As an industry standard, 2 percent is considered a normal in-sync condition, while 10 percent is considered normal for an out-of-sync condition. Typically, BLER is measured after channel decoding and de-interleaving has been done after performing the cyclic redundancy check (CRC) for all transport blocks.

Error Rate Calculation

Вычисляет вероятность битовых ошибок или вероятность символьных ошибок во входных данных

Библиотека

Связные получатели

  • Error Rate Calculation block

Описание

Блок Error Rate Calculation сравнивает входные данные от передатчика с входными данными от приемника. Он вычисляет коэффициент ошибок как текущую статистику, деля общее количества неравных пар элементов данных на общее количество элементов входных данных от одного источника.

Используйте этот блок, чтобы вычислить вероятность символьных или битовых ошибок, поскольку он не учитывает величину разницы между элементами входных данных. Если входные параметры являются битами, то блок вычисляет вероятность битовой ошибки. Если входные параметры являются символами, то он вычисляет вероятность символьной ошибки.

Примечание

Когда вы устанавливаете параметр Output data на Workspace, блок не генерирует кода. Точно так же никакие данные не сохранены в рабочую область, если Simulation mode установлен в Accelerator или Rapid Accelerator. Если вы нуждаетесь в информации о коэффициенте ошибок в этих случаях, устанавливаете Output data на Port.

Входные данные

Этот блок имеет между двумя и четырьмя входными портами, в зависимости от того, как вы устанавливаете диалоговые параметры. Входные порты отметили Tx и Rx примите переданные и полученные сигналы, соответственно. Tx и Rx сигналы должны совместно использовать ту же частоту дискретизации.

Tx и Rx входные порты принимают сигналы вектор-столбца или скаляр. Для получения информации о типах данных, которые поддерживает каждый порт блока см. таблицу Supported Data Types на этой странице.

Если Tx скаляр и Rx вектор, или наоборот, затем блок сравнивает скаляр с каждым элементом вектора. В этом случае блок ведет себя, как будто вы предварительно обработали скалярный сигнал при помощи блока Repeat с набором параметров Rate options к Enforce single rate.

Если вы выбираете Reset port, то дополнительный входной порт появляется, пометил Rst. Rst введите принимает только скалярный сигнал (типа double или boolean) и должен иметь тот же шаг расчета порта как Tx и Rx порты. Когда Rst вход является ненулевым, блок очищает и затем повторно вычисляет статистику ошибок.

Если вы устанавливаете параметр Computation mode на Select samples from port, затем дополнительный входной порт появляется, пометил Sel. Sel введите указывает, какие элементы кадра важны для расчета. Sel введите может быть вектор-столбец типа double.

Инструкции ниже указывают, как необходимо сконфигурировать входные параметры и диалоговые параметры в зависимости от того, как вы хотите, чтобы этот блок интерпретировал ваш Tx и Rx данные.

  • Если оба сигнала данных являются скаляром, то этот блок сравнивает Tx скалярный сигнал с Rx скалярный сигнал. Для этой настройки используйте значение по умолчанию параметра Computation mode, Entire frame.

  • Если оба сигнала данных являются векторами, то этот блок сравнивает некоторых или весь Tx и Rx данные:

    • Если вы устанавливаете параметр Computation mode на Entire frame, затем блок сравнивает весь Tx структурируйте со всем Rx система координат.

    • Если вы устанавливаете параметр Computation mode на Select samples from mask, затем поле Selected samples from frame появляется в диалоговом окне. Это поле параметра принимает вектор, который перечисляет индексы тех элементов Rx структурируйте это, вы хотите, чтобы блок рассмотрел. Например, чтобы считать только первые и последние элементы длины шестью системами координат приемника, установите параметр Selected samples from frame на [1 6]. Если вектор Selected samples from frame включает нули, то блок игнорирует их.

    • Если вы устанавливаете параметр Computation mode на Select samples from port, затем дополнительный входной порт, пометил Sel, появляется на значке блока. Данные в этом входном порту должны иметь тот же формат как тот из параметра Selected samples from frame, описанного выше.

  • Если один сигнал данных является скаляром, и другой вектор, то скаляр с каждой записью вектора. В этом случае, если Rx скаляр, затем фраза “Rx структурируйте” выше, относится к векторному расширению Rx.

    Примечание

    Этот блок не поддерживает сигналы переменного размера. Если вы выбираете Select samples from port опция и хочет, чтобы число элементов в подкадре варьировалось во время симуляции, затем необходимо заполнить Sel сигнал с нулями. Блок Error Rate Calculation игнорирует нули в Sel сигнал.

Выходные данные

Этот блок производит вектор длины три, чьи записи соответствуют:

  • Коэффициент ошибок

  • Общее количество ошибок, то есть, количества экземпляров, что элемент Rx не совпадает с соответствующим элементом Tx

  • Общему количеству сравнений, которые сделал блок

Блок отправляет этому выходные данные в основной MATLAB® рабочая область или к выходному порту, в зависимости от того, как вы устанавливаете параметр Output data:

  • Если вы устанавливаете параметр Output data на Workspace и заполните параметр Variable name, затем та переменная в основном рабочем пространстве MATLAB содержит текущее значение, когда симуляция заканчивается. Приостановка симуляции не заставляет блок писать временные данные в переменную.

    Если вы планируете использовать этот блок наряду с Simulink® Программное обеспечение Coder™, затем вы не должны использовать Workspace опция. Вместо этого используйте Port опция и подключение выходной порт с блоком Simulink To Workspace (Simulink).

  • Если вы устанавливаете параметр Output data на Port, затем выходной порт появляется. Этот выходной порт содержит рабочую статистику ошибок.

Задержки

Receive delay и параметры Computation delay реализуют два различных типов задержек этого блока. Одна задержка полезна, если вы хотите, чтобы этот блок компенсировал задержку полученного сигнала. Другой полезно, если вы хотите проигнорировать начальное переходное поведение обоих входных сигналов.

  • Параметр Receive delay представляет количество отсчетов, которым принятые данные отстают от передаваемых данных. Передаваемый сигнал неявно задерживается той же самой суммой, прежде чем блок сравнит его с принятыми данными. Это значение полезно, когда вы задерживаете передаваемый сигнал так, чтобы это выровнялось с полученным сигналом. Задержка приема сохраняется в течение симуляции.

  • Параметр Computation delay представляет количество отсчетов, которое блок игнорирует в начале сравнения.

Используйте блок Find Delay, чтобы определить задержку, и затем установить Receive delay на задержку, о которой сообщает блок Find Delay.

Если вы используете Select samples from mask или Select samples from port опция, затем каждый параметр задержки относится к количеству отсчетов, которое получает блок, игнорирует ли блок в конечном счете некоторых из них или нет.

При использовании порта Sel, чтобы вычислить ошибки на задержанный сигнал, задержка должна быть добавлена к индексам Sel. Для получения дополнительной информации смотрите, Вычисляют, Ошибки для Задержанного Выбрали Samples.

Остановка симуляции на основе статистики ошибок

Можно сконфигурировать этот блок так, чтобы его управление статистикой ошибок длительность симуляции. Это полезно для вычисления надежной установившейся статистики ошибок, не зная заранее, сколько времени переходные эффекты могут продлиться. Чтобы использовать этот режим, проверяйте Stop simulation. Блок пытается запустить симуляцию, пока это не обнаруживает количество ошибок, которые задает параметр Target number of errors. Однако остановки симуляции прежде, чем обнаружить достаточно ошибок, если время достигает установки Stop time модели (в диалоговом окне Configuration Parameters), если блок Error Rate Calculation делает сравнения Maximum number of symbols, или если другой блок в модели направляет симуляцию, чтобы остановиться.

Чтобы проигнорировать или этих двух критериев остановки в этом блоке, установите соответствующий параметр (Target number of errors или Maximum number of symbols) к Inf. Например, чтобы достигнуть целевого количества ошибок, не останавливая симуляцию рано, установите Maximum number of symbols на Inf и набор Stop time модели к Inf.

Настройка параметров в исполняемом файле RSim (программное обеспечение Simulink Coder)

Если вы используете Simulink Coder быстрая симуляция (RSim) цель, чтобы создать исполняемый файл RSim, то можно настроить Target number of errors и параметры Maximum number of symbols , не перекомпилировав модель. Это полезно для симуляций Монте-Карло, в которых вы запускаете симуляцию многократно (возможно, на нескольких компьютерах) с различными количествами шума.

Примеры

Вычисление ошибок целого кадра

Рисунок ниже показывает, как блок сравнивает пары элементов и считает количество ошибочных событий. Tx и Rx входные параметры являются вектор-столбцами.

Этот пример предполагает, что шаг расчета каждого входного сигнала составляет 1 секунду и что параметры блока следующие:

  • Receive delay = 2

  • Computation delay = 0

  • Computation mode = Entire frame

Оба входных сигнала являются вектор-столбцами длины три. Однако схематические расположения, каждый вектор-столбец горизонтально и выравнивает пары векторов, чтобы отразить задержку приема двух выборок. На каждом временном шаге блок сравнивает элементы Rx сигнал с теми из Tx сигнал, которые появляются непосредственно выше их в схематическом. Например, во время 1, блок выдерживает сравнение 2, 4, и 1 от Rx сигнал с 2, 3, и 1 от Tx сигнал.

Значения первых двух элементов Rx появитесь как звездочки, потому что они не влияют на выход. Точно так же 6 и 5 в Tx сигнал не влияет на выход до времени 3, хотя они влияли бы на выход во время 4.

В коэффициентах ошибок правой стороны рисунка каждый числитель во время t отражает количество ошибок при рассмотрении элементов Rx в течение времени t.

Подсчет ошибок целого кадра со сбросом

Если бы флажок Reset port блока был установлен, и сброс произошел во время = 3 секунды, то последний коэффициент ошибок будет 2/3 вместо 4/10. Это значение 2/3 отразило бы сравнение 3, 2, и 1 от Rx сигнал с 7, 7, и 1 от Tx сигнал. Рисунок ниже иллюстрирует этот сценарий. Tx и Rx входные параметры являются вектор-столбцами.

Подсчет ошибок на выборочных отсчетах в кадре

При использовании порта Sel, чтобы вычислить ошибки на задержанный сигнал, задержка должна быть добавлена к индексам Sel. Для получения дополнительной информации смотрите, Вычисляют, Ошибки для Задержанного Выбрали Samples.

Параметры

Receive delay

Количество отсчетов, которым принятые данные отстают от передаваемых данных. (Если Tx или Rx вектор, затем каждая запись представляет выборку.)

Computation delay

Количество отсчетов, которые блок должен проигнорировать в начале сравнения.

Computation mode

Любой Entire frame, Select samples from mask, или Select samples from portВ зависимости от того, должен ли блок рассмотреть весь или только часть входных кадров.

Selected samples from frame

Вектор, который перечисляет индексы элементов Rx структурируйте вектор, который блок должен рассмотреть при создании сравнений. Это поле появляется, только если Computation mode установлен в Select samples from mask.

Output data

Любой Workspace или PortВ зависимости от того, где вы хотите отправить выходные данные.

Variable name

Имя переменной для вектора выходных данных в основном рабочем пространстве MATLAB. Это поле появляется, только если Output data установлен в Workspace.

Reset port

Если вы устанавливаете этот флажок, то дополнительный входной порт появляется, пометил Rst.

Stop simulation

Если вы устанавливаете этот флажок, то симуляция запускается только, пока этот блок не обнаруживает конкретное количество ошибок или выполняет конкретное количество сравнений, какой бы ни на первом месте.

Target number of errors

Остановки симуляции после обнаружения этого количества ошибок. Это поле активно, только если Stop simulation проверяется.

Maximum number of symbols

Остановки симуляции после создания этого количества сравнений. Это поле активно, только если Stop simulation проверяется.

Поддерживаемые типы данных

Порт Поддерживаемые типы данных

Tx

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Boolean

  • 8-, 16-, и 32-битные целые числа со знаком

  • 8-, 16-, и 32-битное беззнаковое целое

Rx

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Boolean

  • 8-, 16-, и 32-битные целые числа со знаком

  • 8-, 16-, и 32-битное беззнаковое целое

Sel

  • Плавающая точка двойной точности

Сброс

  • Плавающая точка двойной точности

  • Boolean

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Генерация HDL-кода
Сгенерируйте Verilog и код VHDL для FPGA и проекты ASIC с помощью HDL Coder™.

Этот блок может использоваться для видимости симуляции в подсистемах, которые генерируют HDL-код, но не включен в аппаратную реализацию.

Представлено до R2006a

Понравилась статья? Поделить с друзьями:
  • Block 0 error uncr что это
  • Blob has been modified как исправить
  • Blk0 blockdevice alias null как исправить
  • Blk update request io error dev sr0
  • Blk update request i o error dev sda sector