Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调制MatLab信号_Matlab_Signals_Modulation - Fatal编程技术网

调制MatLab信号

调制MatLab信号,matlab,signals,modulation,Matlab,Signals,Modulation,我试图在MatLab中通过将一些信号与载波信号相乘来调制信号。载波信号是cos(2*pi*fc*t),这是到目前为止我的代码 for t = 1:length(input); m(t) = (Ac + input(t)).*cos(2*pi.*fc.*t); end xam = m; 输入、Ac和fc是使用该功能时需要输入的参数。当我使用任何输入信号运行此代码时(我一直使用cos(t)和t=0:0.001:10),输出总是相同的信号。但是,如果在fc前面使用./而不是.*,则会

我试图在MatLab中通过将一些信号与载波信号相乘来调制信号。载波信号是cos(2*pi*fc*t),这是到目前为止我的代码

for t = 1:length(input);  
      m(t) = (Ac + input(t)).*cos(2*pi.*fc.*t);
end
xam = m;

输入、Ac和fc是使用该功能时需要输入的参数。当我使用任何输入信号运行此代码时(我一直使用
cos(t)
t=0:0.001:10
),输出总是相同的信号。但是,如果在fc前面使用./而不是.*,则会对输出进行调制。为什么使用.*fc而不是./fc不起作用?

对于初学者,您可以像这样对方程进行矢量化:

t = 0:0.001:10;
input = cos(t);
xam = (Ac + input).*cos(2*pi*fc*(1:length(t)));
我怀疑您每次看到完全相同的输出曲线的原因是您的
fc
值是一个整数。如果
fc
是整数,
cos(2*pi*fc*t)
t
的所有整数值计算为1,调制后保持输入信号不变。当您使用
1/fc
时,会得到一个非整数值,并对输出进行调制

我相信你想做的是:

t = 0:0.001:10; % Time in seconds
f = 1; % Frequency of input signal in rad/s
fc = 3; % Frequency of carrier wave in rad/s
input = cos(2*pi*f*t); % Input signal
xam = (Ac + input).*cos(2*pi*fc*t); % Amplitude modulated signal
注释显示了每个参数的含义。如果只想将采样率
fs
传递到函数中,则解决方案如下所示:

N = 1001;
fs = 1000;
t = (0:1:N)*(1/fs);
f = 1;
fc = 3;
input = cos(2*pi*f*t);
您的函数如下所示:

function xam = modulate(input, fs, fc, Ac) 
    t = (0:1:length(input))*(1/fs);
    xam = (Ac + input).*cos(2*pi*fc*t);

给您带来麻烦的
fc
值是什么?在循环之前如何声明m
m=zero(1,长度(输入))
?因为我试图保持函数的通用性,如何使用size函数使t等于正确的数组?比如说输入sin(x),x=0:0.01:20。如何使t=0:0.01:20?您所说的“写入数组”是什么意思?我的编辑提供了一种解决问题的方法。请确保您理解
fc
t
参数的含义。抱歉,响应过快,我编辑了上述注释。有关每个值的解释,请参阅我的最新编辑。该函数应同时包含输入信号和描述信号时域的
t
矢量。我知道每一行的作用,但我想知道如何根据输入数组设置t。如果我想调节sin(x),但我不知道x的尺寸,那么使用t=0:0.001:10将不起作用,因为尺寸可能不同。那么如何根据输入设置t呢?输入并不总是cos(2*pi*t)。如果不要求t作为函数的输入,就无法得到t吗?