任意采样率变化的简单处理
2015-08-28 09:30
204 查看
由于没有什么时间编写解释部分,详细查看源代码:
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
相关文章推荐
- solr 本地搭建
- [转]java中JSONObject与JSONArray的使用详细说明及有关JSON的工具类
- Linux文件解压
- Linux文件解压
- VC创建无窗口的控制台程序
- MySQL添加用户、删除用户与授权
- Java 静态初始化块
- 心情
- HDU 2421 Deciphering Password 公式推导
- 在微信中添加自己的微信公众号名片以及发纯文字链接教程
- XML与JSON的比较
- [转]JSONObject与JSONArray的使用
- Andrew Ng机器学习课程7
- Linux下的进程间通信-详解
- Jrebel 6.2.1破解
- 【水】【卡内存】【bzoj 2456】mode
- LCA倍增法
- Jrebel 6.2.1破解
- Jrebel 6.2.1破解
- Jrebel 6.2.1破解