从另一个函数处理.m文件

时间:2016-05-11 15:36:51

标签: matlab function signal-processing modulation

所以我创建了一个.m文件,它有一个我试图调制的锯齿波信号波。我没有问题产生波形但是当我尝试获取.m文件并乘以" c" MATLAB返回原始波形。该特定程序使用双边带调制技术。第一部分是我的波形。

function y = Signal
% Signal Summary of this function goes here
n = 23; % Number of Harmonics
t = 0:.0002:n; % incremental value
y = sawtooth(t,.2); % Wave creation
plot(t,y);
ylabel ('Amplitude');
xlabel ('Time');
title('Sawtooth Wave');

end

下一篇文章是我试图调用.m文件的地方,将其乘以' c'并绘制结果函数。

function [ DSBModulation ] = DSB( DSBModulation )
% Program for DSB-AM

n = 23; 
fc = 100;
t = 0:.0002:n;
sig = Signal; % this is how im trying to call the .m file so i can manipulate it

c = cos((2*pi*fc*t)); % using this as the modulating function
u(sig) = (sawtooth(t,.2)).*c; % Multiplying the signal
plot(t,u(sig)); %Displaying the Signal

end 

1 个答案:

答案 0 :(得分:0)

信号生成的结果存储在sig函数的以下行的变量DSB中:

sig = Signal;

调制生成的信号的进一步操作应该使用sig变量,而不是尝试使用sawtooth范围内定义的本地Signal变量。然后你还应该注意到Matlab中的符号u(sig)表示一个向量u,它由sig中的值索引,而不是函数u的数学概念。变量sig

因此,要计算调制信号向量,您需要使用:

u = sig.*c; % Multiplying the signal 

最后,要在同一个图上绘制结果,您可以使用hold command,或者使用单独的figure(否则您的第二个plot命令将删除第一个enter image description here的图表{1}}):

plot

哪个应该给你以下结果:

https://msdn.microsoft.com/en-us/library/hh696634.aspx