Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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_Spectrum - Fatal编程技术网

信号频谱MATLAB语法

信号频谱MATLAB语法,matlab,signals,spectrum,Matlab,Signals,Spectrum,关于MATLAB及其语法,我有一个小问题。我试图画出一个调幅调制信号的频谱 在我的情况下,AM调制定义为: yt=[1+m*xt]*cos2*pi*fc*t,其中fc=100kHz,m=0.5 将yt分为几部分: y(t)=cos(2*pi*fc*t)+m*x(t)*cos(2*pi*fc*t) 现在xt是余弦波,振幅为1,频率范围为fx=[0-5000Hz]。因此,yt可以写成: y(t)=cos(2*pi*fc*t)+m*cos(2*pi*fx*t)*cos(2*pi*fc*t) 利用三

关于MATLAB及其语法,我有一个小问题。我试图画出一个调幅调制信号的频谱

在我的情况下,AM调制定义为:

yt=[1+m*xt]*cos2*pi*fc*t,其中fc=100kHz,m=0.5

将yt分为几部分:

y(t)=cos(2*pi*fc*t)+m*x(t)*cos(2*pi*fc*t)
现在xt是余弦波,振幅为1,频率范围为fx=[0-5000Hz]。因此,yt可以写成:

y(t)=cos(2*pi*fc*t)+m*cos(2*pi*fx*t)*cos(2*pi*fc*t)
利用三角恒等式,我们可以将yt写成:

cos(x)cos(y)=1/2(cos(x-y)+cos(x+y))

y(t)=cos(2*pi*fc*t)+m/2*cos(2*pi*t(fc-fx))+m/2*cos(2*pi*t(fc+fx))
现在,当fx=[05000Hz]时,yt可以写成这些谐波的总和:

y(t)=cos(2*pi*fc*t)+m/2*cos(2*pi*t(fc-0))+m/2*cos(2*pi*t(fc+0))+m/2*cos(2*pi*t(fc-1))+m/2*cos(2*pi*t(fc+1))... + m/2*cos(2*pi*t(fc-5000))+m/2*cos(2*pi*t(fc+5000))
现在在MATLAB中写下这一切:

clear all;
fc=100000; //base frequency
Fs=250000; //sampling rate should be Fs>2fc according to Nyquist criterion
Ts=1/Fs;
m=0.5;
t = 0:Ts:1-Ts;
fx= 0:1:5000;
yt=cos(2*pi*fc*t)+m*0.5*cos(2*pi*t(fc-fx))+m*0.5*cos(2*pi*t(fc+fx)) // this is where all goes wrong
plot(abs(fft(yt))); // I don't know if this is the correct way to plot it.

程序总是声明yt的行中有错误,它抱怨关于矩阵维度的某些内容应该一致。我真的不知道如何修复这个prom,因此非常感谢任何帮助或建议。

原因是t和fx的维度不匹配。您需要确保t和fx的两个维度都匹配。因此,请尝试将fx更改为此,以确保两个阵列的大小相同:

fx = 0:(numel(t)-1);

你不使用这个函数有什么特别的原因吗?在你提到它之前,我不知道有一个函数ammond,我必须对它做一些研究。