Matlab之整数运算
1、加载整数信号数据。
负载测量数据集,包括来自四个仪器的信号,使用8位和16位A-to-D,结果将数据保存为int8、int16和uint16。时间存储为uint16。
在命令行窗口,输入如下命令:
load integersignal
% Look at variables
whos Signal1 Signal2 Signal3 Signal4 Time1
按“Enter键”。
如图1所示。
2、绘图数据。
首先,我们将绘制两个信号,以查看信号范围。
在命令行窗口,输入如下命令:
plot(Time1, Signal1, Time1, Signal2);
grid;
legend('Signal1','Signal2');
按“Enter键”。
如图2所示。
这里我们看到int8的值。
很可能需要对这些值进行缩放,以计算信号表示的实际物理值,例如伏特。
3、过程数据。
我们可以对诸如+、-、*和/等整数执行标准运算。假设我们希望找到信号1和信号2的和。
在命令行窗口,输入如下命令:
SumSig = Signal1 + Signal2; % Here we sum the integer signals.
按“Enter键”。
现在让我们绘制和信号图,看看它在哪里饱和。
在命令行窗口,输入如下命令:
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
按“Enter键”。
如图3所示。
标记显示信号饱和的地方。
4、加载整数图像数据。
接下来我们将研究一些图像数据的算法。
在命令行窗口,输入如下命令:
street1 = imread('street1.jpg'); % Load image data
street2 = imread('street2.jpg');
whos street1 street2
按“Enter键”。
如图4所示。
这里我们看到的图像是24位颜色,存储为三个平面的uint8数据。
5、显示图像。
显示第一个图像。
在命令行窗口,输入如下命令:
cla;
image(street1); % Display image
axis equal
axis off
按“Enter键”。
如图5所示。
6、显示第二个图像。
在命令行窗口,输入如下命令:
image(street2); % Display image
axis equal
axis off
按“Enter键”。
如图6所示。
7、缩放图像。
我们可以用一个双精度常数来缩放图像,但要将图像保存为整数。例如,
在命令行窗口,输入如下命令:
duller = 0.5 * street2; % Scale image with a double constant but create an integer
whos duller
按“Enter键”。
如图7所示。
8、在命令行窗口,输入如下命令:
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
按“Enter键”。
如图8所示。