exponenta event banner

Вычисление гистограммы реальных и сложных данных

Границы ячейки, созданные блоком гистограммы, определяются типом данных ввода. Следующие две модели показывают различия в выходных данных блока гистограммы в зависимости от типа данных входа.

Реальные входные данные

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

Откройте модель.

modelRealData = 'ex_realData_hist';
open_system(modelRealData)

Запустите модель.

sim(modelRealData)
Warning: Reported in '<a href="matlab:open_and_hilite_hyperlink
('ex_realData_hist/Histogram1','error')">ex_realData_hist/Histogram1</a>': The
bin width resulting from the specified parameters is less than the precision of
the input data type. This might cause unexpected results. Since bin width is
calculated by ((upper limit - lower limit)/number of bins), you could increase
upper limit or decrease lower limit or number of bins. 

Блок выдает два выхода гистограммы.

Выходные данные блока гистограммы различаются в зависимости от типа входных данных. Предупреждение появляется во втором блоке гистограммы, где границы ячейки равны uint8 ([1 1.4 1.8 2.2 2.6 3.0]) = [1 1 2 2 3 3]. Ширина первого и третьего ячеек равна 0, а точность данных равна 1. Блок ожидает, что ширина каждого бункера будет, по меньшей мере, равна 1.

Чтобы устранить это предупреждение, увеличьте верхний предел второго блока гистограммы до 7 и уменьшите число ячеек до 2. Ширина ячейки становится ((7-1 )/2) = 3. При вводе целого числа новые границы ячейки равны uint8 [1 4 7] = [1 4 7]. Бункеры распределены более равномерно.

set_param('ex_realData_hist/Histogram1','umax','7','nbins','2');

Моделирование модели. Предупреждение больше не появляется, и ячейки распределяются более равномерно.

sim(modelRealData)

Комплексные входные данные

Когда входные данные сложны:

  • Границы ячеек для входных данных с двойной точностью преобразуются в тип данных double. Все комплексные входные значения двойной точности помещаются в ячейки в соответствии с их величиной, которая является квадратным корнем суммы квадратов вещественной и мнимой частей.

  • Границы ячеек для целочисленных входных данных преобразуются в двойные и квадратные значения типа данных. Все комплексные, целочисленные входные значения помещаются в ячейки в соответствии с их величиной в квадрате.

Откройте модель.

modelComplexData = 'ex_complexData_hist';
open_system(modelComplexData)

Запустите модель.

sim(modelComplexData)
Warning: Reported in '<a href="matlab:open_and_hilite_hyperlink
('ex_complexData_hist/Histogram1','error')">ex_complexData_hist/Histogram1</a>':
The bin width resulting from the specified parameters is less than the precision
of the input data type. This might cause unexpected results. Since bin width is
calculated by ((upper limit - lower limit)/number of bins), you could increase
upper limit or decrease lower limit or number of bins. 

Модель выдает два вывода гистограммы.

На верхнем рисунке показана гистограмма для ввода с двойной точностью, а на нижнем рисунке - гистограмма для целочисленного ввода. Входы с двойной точностью нормализуются для сравнения, тогда как целочисленные входы размещаются с использованием их величины в квадрате. Предупреждение появляется во втором блоке гистограммы, где границы бункера составляют [1 (1,4) ² (1,8) ² (2,2) ² (2,6) ² (3,0) ²]. Точность данных составляет по меньшей мере 6, а ширина ячеек меньше 2.

Чтобы устранить это предупреждение, увеличьте верхний предел второго блока гистограммы до 10. При новом верхнем пределе границы бункера составляют [1 (2,8) ² (4,6) ² (6,4) ² (8,2) ² 10] = [1 7,84 21,16 40,96 67,24 100].

set_param('ex_complexData_hist/Histogram1','umax','10');

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

sim(modelComplexData)

Сохраните и закройте модели.

save_system(modelRealData);
save_system(modelComplexData)
close_system(modelRealData);
close_system(modelComplexData);

См. также

Блоки