matlab时域转换成频域_从时域到频域,你只需要旋转一下!
作為一個工科生,這里我不去說很多的嚴密的定理和知識,我只是從我的角度,形象的去理解時域和頻域。
首先我們來觀察一個畫在空間直角坐標系中的正弦函數:
現在我們從兩個視角去觀察它
分別是垂直于xoz面和垂直于yoz面
看到的圖像如下:
這是一個正弦函數和一條線段,線段的長度等于正弦波的幅度。
一個正弦波有三個要素,頻率幅度和相位,相位我們在這里先放一放。
在上圖中可以發現,利用yoz平面,我們已經可以刻畫出正弦函數的幅度了,那么怎么去刻畫頻率呢?這就需要利用y軸,將y軸的單位變成角頻率w,便可以區分不同頻率的正弦函數。
這樣一個視角的轉換,其實就是時域和頻域的轉換,在頻域中我們不看時間,所以視線與x軸平行,在時域中我們不看頻率,所以視線與y軸平行。
而接下來最重要的任務就是如何從一個任意信號中提取出其中的頻率分量,這就用到了傅里葉級數。
傅里葉級數完美的運用了三角函數集的正交完備性,這里就不敘述了。
下面我們利用MATLAB來形象的看一下一個連續時間周期信號是如何從時域變到頻域的
我們先生成一個周期方波信號,可以用到MATLAB中的square()函數
代碼為:
clear
clc
t=-4:0.01:4;
y=square((t+1)*pi/1.5,66.666);
plot(t,y)
axis([-4 4 -2 2])
得出的圖像為:
下面我們利用傅里葉級數,將其展開,具體計算過程不再敘述,這里展示展開后的結果。
使用到的MATLAB代碼為:
k=-10:10;
t=-4:0.01:4;
for i=1:length(k)
???zk=(sin(2*pi*k(i)/3)/(k(i)*pi))*exp(j*k(i)*(2*pi/3)*t);
??? y=k(i)*(2*pi/3)*ones(1,length(t));
??? plot3(t,y,zk)
??? hold on
end
xlabel('時間軸');
ylabel('頻率軸');
hold off;
我們將不同頻率成分在頻率軸上鋪開,得到一個很漂亮的圖像!
參考剛才的時域到頻域的轉換,我們換一個視角觀察
將圖像稍加整理(底部對齊),這正是該周期信號的頻譜圖!
所以,時域到頻域,就是轉換一下視角!
總結
以上是生活随笔為你收集整理的matlab时域转换成频域_从时域到频域,你只需要旋转一下!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vscode emmet默认模板_从零开
- 下一篇: python3.8爬虫_python爬虫