在MATLAB画出一个正弦波

模拟信号:

  正弦波三要素:

           幅度A,角频率\omega,相位\varphi

            y=A sin\left ( \omega t+\varphi \right )

  角频率\omega与频率f的关系:

           要注意已知信号的角频率还是频率?

             \omega =2\pi f

           频率是Hz , 一秒几次的概念,角频率是rad/s , 一秒多少度的概念,2\pi 是一圈的弧度,一圈也就是一次的概念。

           周期: 圆形一圈,正弦一周,弧度 2\pi ,T=\frac{1}{f}=\frac{2\pi }{\omega } 

在MATLAB画出一个正弦波_第1张图片

 MATLAB 离散信号

      MATLAB中的信号为离散信号,而正弦信号为 连续信号,所以需要 采样 将其 离散化

      采样体现在   y=A sin\left ( \omega t+\varphi \right )    时间 t 的间隔  dt 的数值 

      采样定理(nyquist采样定理):  f_{s}\geqslant 2f 

       dt=1/ f_{s}

       根据以上要求在matlab中得到一个离散正弦信号。

       但是以上不足以画出一个满意的正弦波图像如下图,因为离散信号的画法就是我们所熟知的描点法,仅仅当f_{s}=2f 时,我们可以计算一下每个周期有多少个点:

                                   n=T/dt=T f_{s}=f_{s}/f=2

在MATLAB画出一个正弦波_第2张图片

        一个周期内只有两点,显然是画不出来一个正弦波的,如果让我们均匀的描点法来画正弦波的话,我认为要20个点,10个画出来是三角波。我们再来逆向计算一下,若n=20, 则  f_{s}=?

         由上式可得                          f_{s}=nf=20f

         此时如下图得到一个正弦波图像。

         

在MATLAB画出一个正弦波_第3张图片

          

      以上为如何在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('幅度');

       

你可能感兴趣的:(信号处理)