我有三张图可供绘图。它们都可以单独绘制,但是当我想要在单独的窗口中绘制图形时,不会绘制第二个图形。
第一张图很好:
function wave = carrier( t )
%The carrier signal is a sine wave
wave=sin(10*pi*t);
%Plots the carrier wave
figure(1);
plot(wave);
title('Figure 1: ASK Carrier signal')
xlabel('Time')
ylabel('Amplitude')
end
这是第二张没有绘制的图表:
% Generates the data signal then plots it. The data signal is: 10110100
function [ D ] = data( t )
%Genereates the data signal
D=[ones(1,100) zeros(1,100) ones(1,100) ones(1,100) zeros(1,100) ones(1,100) zeros(1,100) zeros(1,100)];
%Plots the data signal
figure(2);
plot(t,D);
title('Figure 2: Data signal')
xlabel('Time')
ylabel('Amplitude')
end
最后,这是第三张图:
function [ modulated ] = ASK( t )
%Using '.*'to multiply the arrays element by element
modulated=data(t).*carrier(t);
figure(3);
%plots both the ASK and the data signal on the same graph
plot(t,modulated,t,data(t), 'LineWidth',2);
title('Figure 3: ASK modulated wave')
xlabel('Time')
ylabel('Amplitude')
legend('ASK (t)','data(t)')
% for i=1:1:10;
% %adding noise to simulate real life transmission of data
% modulated(round(rand(1)*800))=rand(1);
% end
end
如何在不同的窗口中将所有三个图形绘制得很好? 这就是它的样子:http://prntscr.com/2i75xg BTW,已经尝试过子画,同样的事情。
答案 0 :(得分:1)
函数data
使图2成为活动数字。您可以在函数data
中的plot命令中调用ASK
,这会使图2处于活动状态。这就是图3中没有显示任何内容的原因。
您可能需要ASK
中的类似内容:
d = data(t);
figure(3)
plot(t, modulated, t, d, 'LineWidth'2);
答案 1 :(得分:1)
我能够使图表适用于所有3个函数,但前提是输入向量t的长度恰好为800.这是因为在函数数据中,硬编码D的长度为800:
D=[ones(1,100) zeros(1,100) ones(1,100) ones(1,100) zeros(1,100) ones(1,100) zeros(1,100) zeros(1,100)];
如果您传递任何其他内容,您将收到“矢量长度必须匹配。”的错误。