• Matlab reconstruct signal form sample points, convulsion


    Usually we describe reconstruction as interpolation, and there are many approaches to reach it. In this article, I introduce a new method- convulsion

    Main

    • signal function
      f ( x ) = s i n ( 15 π x + π / 10 ) f(x)=sin(15\pi x+\pi/10) f(x)=sin(15πx+π/10)

    • Convulsion Method
      在这里插入图片描述

    • Description of code
      In this practice, I tested 3 different sample frequencies: 100, 20 and 10 Hz respectively. And the reconstruct frequency is 1000 Hz. As the signal function shows above, the signal frequency is 7.5 Hz.

    • Matlab code

    clc;
    clear;
    sP=0.01;
    sX=[0:sP:1];
    sY=sin(15*pi*sX+pi/10);
    sR=0.001;
    xR=[0:sR:1];
    N = length(sX);         % number of samples
    yR = zeros(size(xR));
    for t = 1:length(xR)
        for n = 0:N-1
            yR(t) = yR(t) + sY(n+1)*sin(pi*(xR(t)-n*sP)/sP)/(pi*(xR(t)-n*sP)/sP);
        end
    end
    subplot(3,1,1)
    plot(sX,sY, ".");
    hold on;
    plot(xR,yR, "-");
    title('0.01s intervals')
    
    sP=0.05;
    sX=[0:sP:1];
    sY=sin(15*pi*sX+pi/10);
    sR=0.001;
    xR=[0:sR:1];
    N = length(sX);         % number of samples
    yR = zeros(size(xR));
    for t = 1:length(xR)
        for n = 0:N-1
            yR(t) = yR(t) + sY(n+1)*sin(pi*(xR(t)-n*sP)/sP)/(pi*(xR(t)-n*sP)/sP);
        end
    end
    subplot(3,1,2)
    plot(sX,sY, ".");
    hold on;
    plot(xR,yR, "-");
    title('0.05s intervals')
    
    sP=0.1;
    sX=[0:sP:1];
    sY=sin(15*pi*sX+pi/10);
    sR=0.001;
    xR=[0:sR:1];
    N = length(sX);         % number of samples
    yR = zeros(size(xR));
    for t = 1:length(xR)
        for n = 0:N-1
            yR(t) = yR(t) + sY(n+1)*sin(pi*(xR(t)-n*sP)/sP)/(pi*(xR(t)-n*sP)/sP);
        end
    end
    subplot(3,1,3)
    plot(sX,sY, ".");
    hold on;
    plot(xR,yR, "-");
    title('0.1s intervals')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • Result

    在这里插入图片描述

    • analysis
    1. As result shown above, the first and second graph revice the original signal perfectly with correct frequency and amplitude. But the frequency of the third one is not right due to the sample frequency (10Hz) is lower than 2 times of signal its original frequency (15Hz). Hence, the reconstruct signal has lower frequency.
  • 相关阅读:
    PyCharm中 python 类型文件被识别为Text文本类型
    聊聊UI自动化的PageObject设计模式
    解决报错 java.lang.IllegalArgumentException: Cannot format given Object as a Date
    easy_login通关思路
    正则表达式学习(超详细)
    word实用小技能(肝论文必备)
    【重学C++】04 | 说透C++右值引用、移动语义、完美转发(上)
    驱动开发:内核无痕隐藏自身分析
    pat_basic_1013 数素数
    Docker的入门基础和使用
  • 原文地址:https://blog.csdn.net/libizhide/article/details/128164197