记忆一隅

Matlab生成任意频率正弦波

2021-12-24 · 2 min read
编程 matlab

Matlab generates arbitrary frequency sine wave

生成实正弦波形

A=1;                        %幅度
f=5;                        %频率 单位:Hz
w=2*pi*f;                   %角频率
phase=0;                    %相位
T=1;                        %观测时间 单位:s        
fs=200*f;                   %采样频率 单位:Hz       
d=1/fs;                     %采样间隔 单位:s
t=0:d:T;                    %离散时间t
sinwave=A*sin(w*t+phase);    %正弦信号
 
figure,plot(t,sinwave); %绘图

以下效果为生成频率为5Hz,初始相位为0的效果图:

生成复正弦波形

% 生成复正弦
A=1;                        %幅度
f=5;                       %频率 单位:Hz
w=2*pi*f;                   %角频率
phase=0;                    %相位
T=1;                        %观测时间 单位:s        
fs=200*f;                   %采样频率 单位:Hz       
d=1/fs;                     %采样间隔 单位:s
t=0:d:T;                    %离散时间t

%以下两种生成方式均可
sinwave_complex=A*cos(w*t+phase)+1i*sin(w*t+phase);     %欧拉公式形式
% sinwave_complex = exp(1i*w*t);                        %复指数形式
figure,plot(t,real(sinwave_complex)); hold on; plot(t,imag(sinwave_complex));

以下效果为生成频率为5Hz,初始相位为0的效果图: