簡體   English   中英

信號頻譜MATLAB語法

[英]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的尺寸不匹配。 您需要確保tfx的尺寸都匹配。 因此,嘗試將fx更改為此,以確保兩個數組的大小相同:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM