zoukankan      html  css  js  c++  java
  • 一维信号频谱图仿真——matlab

    程序1:

    %在MATLAB中是用连续信号在等时间间隔点的样值来近似地表示连续信号的,当采样时间间隔足够小时,这些离散的采样值就能较好地近似出连续信号,matlab中连续信号的显示实际上还是离散信号的显示,只是取样点特别
    %多的时候,用线连接起来,显示出来的图形就比较圆滑,接近连续信号;如果取样点特别少,连接起来就会变成折线;
     clear all;   %这个其实可以没有,只不过以前出过问题,现在就加上!
     N=1024;      %这个是你举得信号的点数,随便你了
     fs=16000;       %这个是抽样频率,记得要高于信号中最高频率的2倍
     t=(0:N-1)/fs;%信号时域横轴向量,以等间隔抽样时间1/fs为一系列时间点做横向坐标轴,因为信号的周期为1/20,即0.05s,而1024点的抽样时间为20.48s,所以画出来的图形大概为400多个周期,周期太多,太集中
     t1=(0:3)/fs; %显示出来后,看起来就像正方形。而且抽样时间为0.02,一个周期为0.05,所以一个周期内就取了3个点,一个周期的图形显示出来后明显是个折线图;如图subplot(1,3,3);如果一个周期内多取一些点,图形就会越
     t2=0:0.000001:0.05;%接近原图形,如图subplot(1,4,4);
     f=(0:N-1)*fs/N;    %信号频域横轴向量,不过待会要减半处理一下
     x=sin(2*pi*125.*t);   %想分析什么函数,自己写
     x1=sin(2*pi*20.*t1);
     x2=sin(2*pi*20.*t2);
     y=abs(fft(x));     %频域分析,不过记得要求模
     f=f(1:N/2);      %减半了,根据那奎斯特抽样定理,抽样频率要高于信号中最高频率的两倍,才不会失真,因此频谱中(fs/2,fs)为无用谱,故频域信号的定义域向量与值域向量都应该做减半处理。
     y=y(1:N/2);      %减半了
     %subplot(2,2,1)   %画图
     %plot(t,x);
     %subplot(2,2,2)   %画图
     plot(f,y);
    %subplot(2,2,3)
    %plot(t1,x1);
    %subplot(2,2,4)
    %plot(t2,x2);

    程序2:

    %  在MATLAB中是用连续信号在等时间间隔点的样值来近似地表示连续信号的,当采样时间间隔足够小时,这些离散的采样值就能较好地近似出连续信号,matlab中连续信号的显示实际上还是离散信号的显示,只是取样点特别
    %多的时候,用线连接起来,显示出来的图形就比较圆滑,接近连续信号;如果取样点特别少,连接起来就会变成折线;
    clear all;   %这个其实可以没有,只不过以前出过问题,现在就加上!
     N=1024;      %这个是你举得信号的点数,随便你了
     fs=50;       %这个是抽样频率,记得要高于信号中最高频率的2倍
     t=(0:N-1)/fs;%信号时域横轴向量,以等间隔抽样时间1/fs为一系列时间点做横向坐标轴,因为信号的周期为1/20,即0.05s,而1024点的抽样时间为20.48s,所以画出来的图形大概为400多个周期,周期太多,太集中
     t1=(0:3)/fs; %显示出来后,看起来就像正方形。而且抽样时间为0.02,一个周期为0.05,所以一个周期内就取了3个点,一个周期的图形显示出来后明显是个折线图;如图subplot(2,2,3);如果一个周期内多取一些点,图形就会越
     t2=0:0.000001:0.05;%接近原图形,如图subplot(2,2,4);
     f=(0:N-1)*fs/N;    %信号频域横轴向量,不过待会要减半处理一下
     x=sin(2*pi*20.*t);   %想分析什么函数,自己写
     x1=sin(2*pi*20.*t1);
      x2=sin(2*pi*20.*t2);
     y=abs(fft(x));     %频域分析,不过记得要求模
     f=f(1:N/2);      %减半了,根据那奎斯特抽样定理,抽样频率要高于信号中最高频率的两倍,才不会失真,因此频谱中(fs/2,fs)为无用谱,故频域信号的定义域向量与值域向量都应该做减半处理。
     y=y(1:N/2);      %减半了
     subplot(2,2,1)   %画图
     plot(t,x);
     subplot(2,2,2)   %画图
     plot(f,y);
    subplot(2,2,3)
    plot(t1,x1);
    subplot(2,2,4)
    plot(t2,x2);
  • 相关阅读:
    Ellipse4SL 的安装包和环境配置要求
    什么是SOHO人
    D2上的Silverlight
    银光团队项目正式启动,欢迎您的参与!
    Silverlight开发团队招募SOHO团员若干
    SOHO新的生活方式
    [银客北京开发团队]承接各种Silverlight和WPF外包项目和合作项目
    微软Silverlight 3.0 概观
    grers
    翻译电文
  • 原文地址:https://www.cnblogs.com/warmbeast/p/7811192.html
Copyright © 2011-2022 走看看