zoukankan      html  css  js  c++  java
  • 模拟信号的重建

    用MATLAB实现余弦信号的采样恢复仿真。

    clear all;clc;close all;
    N=5;  %采样频率是fs=N=5,采样周期T=0.2
    dianshu=N*N;
    A=4;
    f=2;
    fai=1;
    xcaichushi=0:N-1;
    xlianchushi=0:0.1:N-1;
    %先画一个前几个周期的
    xn=0:dianshu-1;
    xlian=0:0.1:dianshu-1;
    ycai=A*sin(2*pi*f*(xcaichushi/N)+fai);  %ycai为采样序列
    ylian=A*sin(2*pi*f*(xlianchushi/N)+fai);  %y为近似连续的函数
    figure(1);
    stem(xcaichushi,ycai);
    hold on;
    plot(xlianchushi,ylian); 
    title('图1 前两个周期的采样');
    axis([-1 5 -5 5]);
    %前几个周期绘制完毕
    for i=N+1:dianshu
        ycai(i)=ycai(i-5);
    end
    figure(2);
    stem(xn,ycai);
    for i=42:241
        ylian(i)=ylian(i-25);
    end
    hold on;
    plot(xlian,ylian);
    axis([-1,10,-5,5]);
    title('图2 扩充长度后的序列');
    %下面讨论加权抽样函数的相加
    for j=1:N*N
        for i=1:length(xlian)
            saa(j,i)=ycai(j)*(sin(pi*(xlian(i)-(j-1)))./(pi*(xlian(i)-(j-1))));
        end
        %下面一行对整10+1点出现的,由sinx/x引起的NAN进行修正,具体怎样消除sinx/x出现NAN留待后面学习
        saa(j,10*j-9)=ycai(j);
        %修正完毕
        figure(3);
        plot(xlian,saa(j,:));
        hold on;
        title('图3 各个加权抽样序列');
        if j==1
            xjia=saa(j,:);
        else
            xjia=xjia+saa(j,:);
        end
        if j<=9  %画出前1-9项加权抽样函数相加后的还原效果,对于周期函数而言,无穷多项方能完美还原,但考虑到抽样函数衰减很快,故有限多项可大致还原有限区间的函数样貌
            figure(4);
            subplot(3,3,j);
            plot(xlian,xjia);
            axis([-1 13 -A-0.25 A+0.25]);
            title([num2str(j)]);
        end
    end
    figure(3);
    stem(xn,ycai);  %在采样加权序列上悬挂采样点,以直观观察加权抽样函数
    axis([-1 10 -A-0.25 A+0.25]);
    

      

    4张结果图如下:

    18.4.11补充:

    傅里叶变换的对偶性:

    一个信号时域有限,频域就无限。时域有限等于某个信号(以它为一个周期进行周期延拓的信号)乘以一个时域矩形窗,频域等于该信号(频域是离散的)的频谱卷积上矩形窗的频谱,由于矩形窗的频谱是无限的,所以卷积后结果是无限的。

    采样定理说的是时域无限信号(因为它要求信号是带限的),但是由于内插函数$frac{{sin left[ {frac{pi }{T}(t - nT)} ight]}}{{frac{pi }{T}(t - nT)}}$有衰减效应,所以可用有限个采样点近似重建部分时域的信号。如图四第9张图片,通过9个采样点近似重建了前三个周期的信号。

  • 相关阅读:
    centos 7 快速安装 nload 流量工具
    centos 快速安装 fish
    OpenMetadata 开放标准的元数据服务
    xxljob 学习
    easy-rules facts 添加扩展数据
    easy-rules-centraldogma-spring-boot-starter 引入外部rule
    cube.js 基于queryRewrite 进行安全控制
    spring prototype bean 获取处理
    基于cloudevents+easy-rules+centraldogma 进行基于规则的业务开发
    mercurius 基于fastify 的graphql server 以及gateway 服务
  • 原文地址:https://www.cnblogs.com/zhangziyan/p/8762035.html
Copyright © 2011-2022 走看看