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

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

Действительные входные данные

Когда входные данные являются вещественными, контуры интервала вводятся в тип данных входа.

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

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. 

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

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

Чтобы устранить это предупреждение, увеличьте верхний предел второго блока Histogram до 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 и quared. Все комплексные, целочисленные входные значения помещаются в интервалы согласно их амплитудно-квадратному значению.

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

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.

Чтобы устранить это предупреждение, увеличьте верхний предел второго блока Histogram до 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');

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

sim(modelComplexData)

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

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

См. также

Блоки