zoukankan      html  css  js  c++  java
  • 任意采样率变化的简单处理

    由于没有什么时间编写解释部分,详细查看源代码:

    function [Out] = SampChang(In,OldSamp,NewSamp)
        len = length(In);
        oldInterval = 1/OldSamp;
        newInterval = 1/NewSamp;
        data = zeros(1,len*NewSamp/OldSamp);
        if(OldSamp > NewSamp)
            Fp=NewSamp/2; % 通带
            Fs=OldSamp; % 采样频率
            Rs=60; % 阻带衰减为60dB  
            Wn=Fp*2/Fs;
            % 切比雪夫II型滤波器  
            [C2b C2a]=cheby2(10,Rs,Wn,'low'); % 调用MATLAB cheby2函数快速设计低通滤波器   
            tmp=filter(C2b,C2a,In); % 进行低通滤波
    
            temp = 0;
            for(i=0:1:length(data)-1)
                for(k=temp:1:len-2)
                    if(k*oldInterval <= i*newInterval && (k+1)*oldInterval >= i*newInterval)
                        k2 = (tmp(k+2) - tmp(k+1))/oldInterval;
                        d2 = tmp(k+2) - k2*(k+1)*oldInterval;
                        data(i+1) =  k2*i*newInterval + d2;
                        temp = k;
                    end
                end
            end
        elseif(OldSamp < NewSamp)
            temp = 0;
            for(i=0:1:length(data)-1)
                for(k=temp:1:len-2)
                    if(k*oldInterval <= i*newInterval && (k+1)*oldInterval >= i*newInterval)
                        k2 = (In(k+2) - In(k+1))/oldInterval;
                        d2 = In(k+2) - k2*(k+1)*oldInterval;
                        data(i+1) =  k2*i*newInterval + d2;
                        temp = k;
                    end
                end
            end
            Fp=OldSamp/2; % 通带
            Fs=NewSamp; % 采样频率
            Rs=60; % 阻带衰减为60dB  
            Wn=Fp*2/Fs;
            % 切比雪夫II型滤波器  
            [C2b C2a]=cheby2(10,Rs,Wn,'low'); % 调用MATLAB cheby2函数快速设计低通滤波器   
            data=filter(C2b,C2a,data); % 进行低通滤波
        end
        Out = data;
    end
    

      

  • 相关阅读:
    poj 2754 Similarity of necklaces 2 转换成多重背包,单调队列优化/ 二进制优化
    new和delete2
    new和delete1
    new和delete4
    new和delete3
    new(placement new)
    用例图中的Actor(参与者)一定是人吗?
    二维数组的函数参数传递
    二维指针动态创建二维数组(C/C++)
    OOD的五项基本原则——SOLID
  • 原文地址:https://www.cnblogs.com/karl-wu/p/4765534.html
Copyright © 2011-2022 走看看