[英]Signal Spectrum MATLAB Syntax
關於MATLAB及其語法,我有一個小問題。 我正在嘗試繪制有關AM調制信號的頻譜。
在我的情況下,AM調制定義為:
y(t)=[1+m*x(t)]*cos(2*pi*fc*t)
,其中fc = 100 kHz和m = 0.5
分解y(t)部分:
y(t)=cos(2*pi*fc*t)+m*x(t)*cos(2*pi*fc*t)
現在x(t)是余弦波,振幅為1,頻率范圍為fx = [0-5000Hz]。 因此y(t)可以寫成:
y(t)=cos(2*pi*fc*t)+m*cos(2*pi*fx*t)*cos(2*pi*fc*t)
使用三角恆等式,我們可以將y(t)表示為:
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 = [0,5000Hz]時,y(t)可以寫為這些諧波的總和:
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行中有錯誤,它抱怨有關矩陣尺寸的問題。 我真的不知道該如何解決這個舞會,因此我們非常感謝您的幫助或建議。
原因是因為t
的尺寸和fx
的尺寸不匹配。 您需要確保t
和fx
的尺寸都匹配。 因此,嘗試將fx
更改為此,以確保兩個數組的大小相同:
fx = 0:(numel(t)-1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.