在MATLAB畫出一個正弦波
阿新 • • 發佈:2018-12-13
模擬訊號:
正弦波三要素:
幅度A,角頻率,相位
角頻率與頻率的關係:
要注意已知訊號的角頻率還是頻率?
頻率是Hz , 一秒幾次的概念,角頻率是rad/s , 一秒多少度的概念, 是一圈的弧度,一圈也就是一次的概念。
週期: 圓形一圈,正弦一週,弧度 ,
MATLAB 離散訊號
MATLAB中的訊號為離散訊號,而正弦訊號為 連續訊號,所以需要 取樣 將其 離散化。
取樣體現在 時間 t 的間隔 dt 的數值
取樣定理(nyquist取樣定理):
根據以上要求在matlab中得到一個離散正弦訊號。
但是以上不足以畫出一個滿意的正弦波影象如下圖,因為離散訊號的畫法就是我們所熟知的描點法,僅僅當 時,我們可以計算一下每個週期有多少個點:
一個週期內只有兩點,顯然是畫不出來一個正弦波的,如果讓我們均勻的描點法來畫正弦波的話,我認為要20個點,10個畫出來是三角波。我們再來逆向計算一下,若n=20, 則
由上式可得
此時如下圖得到一個正弦波影象。
以上為如何在matlab中畫出正弦訊號的一些分析,個人見解,僅供參考,如有錯誤,勞煩指正。
附錄:matlab程式碼
%% 清記憶體 關閉視窗 準備工作 clear close all clc %% signal % 三要素 A=1; %amplify f=10; %Hz w=2*pi*f; %rad/s p=0; %rad %取樣 T=1; %s %觀測時間 fs=20*f; %Hz %取樣頻率 d=1/fs; %s %取樣間隔 t=-T/2:d:T/2; %離散時間t s1=A*sin(w*t+p); %正弦訊號 figure(1) plot(t,s1); xlabel('時間/s'); ylabel('幅度');