matlab重叠保留法

考试的时候急着交卷给人传答案,没好好做, 唉,现在发现这个题目很有价值



clear
clc
load mtlb
ws=2000/Fs;%截止频率为0.13*pi的低通FIR
b1=fir1(24,ws,boxcar(25));
h=b1;

x=mtlb';
N=128;
M=24;%保留前一段的24个点
L=103;%除去首末两段,中间38段每段103个点
P=103;%每段要保留的点,我的分法正好L==P;
H=fft(h,128);
%第一段52个点单独处理
x1=[zeros(1,24) x(1:52)];
X1=fft(x1,N);
Y1=X1.*H;%实时滤波
y1=real(ifft(Y1));
y=y1(25:76);


for i=1:38
x1=x(i*103-74:(i+1)*103-51);
X1=fft(x1,N);
Y1=X1.*H;%实时滤波
y1=real(ifft(Y1));
y=[y y1(25:127)];
end

%最后35个点单独处理
x1=x(39*103-74:end);
X1=fft(x1,N);
Y1=X1.*H;
y1=real(ifft(Y1));
y=[y y1(25:83)];%final results!!!!






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值