В этом примере показано, как выполнять арифметику целочисленных данных, представляющих сигналы и изображения.
Наборы данных для измерения нагрузки, включающие сигналы от четырех приборов с использованием 8 и 16-разрядных A-D, в результате чего данные сохраняются как int8, int16 и uint16. Время сохраняется как uint16.
load integersignal % Look at variables whos Signal1 Signal2 Signal3 Signal4 Time1
Name Size Bytes Class Attributes Signal1 7550x1 7550 int8 Signal2 7550x1 7550 int8 Signal3 7550x1 15100 int16 Signal4 7550x1 15100 uint16 Time1 7550x1 15100 uint16
Сначала мы построим график двух сигналов, чтобы увидеть диапазоны сигналов.
plot(Time1, Signal1, Time1, Signal2); grid; legend('Signal1','Signal2');

Вероятно, что эти значения необходимо масштабировать для вычисления фактического физического значения, которое сигнал представляет, например, вольт.
Мы можем выполнить стандартную арифметику для целых чисел, таких как +, -, *, и /. Допустим, мы хотели найти сумму Signal1 и Signal2.
SumSig = Signal1 + Signal2; % Here we sum the integer signals.Теперь давайте построим график суммарного сигнала и посмотрим, где он насыщается.
cla; plot(Time1, SumSig); hold on Saturated = (SumSig == intmin('int8')) | (SumSig == intmax('int8')); % Find where it has saturated plot(Time1(Saturated),SumSig(Saturated),'rd') grid hold off

Маркеры показывают, где сигнал насыщен.
Далее рассмотрим арифметику некоторых данных изображения.
street1 = imread('street1.jpg'); % Load image data street2 = imread('street2.jpg'); whos street1 street2
Name Size Bytes Class Attributes street1 480x640x3 921600 uint8 street2 480x640x3 921600 uint8
Здесь мы видим изображения 24-битного цвета, хранящиеся как три плоскости uint8 данные.
Отобразить первое изображение.
cla; image(street1); % Display image axis equal axis off

Отобразить второе изображение
image(street2); % Display image axis equal axis off

Мы можем масштабировать изображение на константу двойной точности, но сохранить изображение в виде целых чисел. Например,
duller = 0.5 * street2; % Scale image with a double constant but create an integer whos duller
Name Size Bytes Class Attributes duller 480x640x3 921600 uint8
subplot(1,2,1); image(street2); axis off equal tight title('Original'); % Display image subplot(1,2,2); image(duller); axis off equal tight title('Duller'); % Display image

Мы можем сложить два изображения улиц вместе и построить призрачный результат.
combined = street1 + duller; % Add |uint8| images subplot(1,1,1) cla; image(combined); % Display image title('Combined'); axis equal axis off
