24小时热门版块排行榜    

查看: 5410  |  回复: 9

eastsunsong

金虫 (著名写手)

[求助] 低通滤波为什么发生了时间的延迟?已有4人参与

低通滤波为什么发生了时间的延迟?

网上找了一段程序就开始滤波,结果发现滤完后时间上发生了很大的延迟,而且频率越低,延迟越严重!对于一个土木的学生,完全理解不了

matlab代码如下,求评论,是代码错了?还是所有的滤波都存在延迟?

ws=(500/10000)*2*pi;
wp=0.04*2*pi;           %ws=(截止频率/采样频率)*2*pi;wp低于ws
tr_width=ws-wp;
M=ceil(6.6*pi/tr_width)+1;
n=[0:1:M-1];
wc=(ws+wp)/2;
hd=ideal_lp(wc,M);
w_ham=(hamming(M))';
h=hd.*w_ham;
[A]=textread('at2.txt','%f');
y=filter(h,1,A);

t=(0:0.00010:0.2197)';



subplot(2,1,1);title('original')
plot(t,A);xlim([0 0.20])
xlabel('Time/s');ylabel('Acceleration/(m/s^2)');
%grid on
hold on

subplot(2,1,2);title('processed')
plot(t,y);xlim([0 0.20])
xlabel('Time/s');ylabel('Acceleration/(m/s^2)');
%grid on
回复此楼
大校
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

断肠人HIT

铁虫 (小有名气)

【答案】应助回帖

我也发生了这样的情况,不知道原因
2楼2014-07-25 17:28:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

eastsunsong

金虫 (著名写手)

引用回帖:
2楼: Originally posted by 断肠人HIT at 2014-07-25 17:28:11
我也发生了这样的情况,不知道原因

哈哈
大校
3楼2014-07-25 23:11:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
eastsunsong: 金币+20 2014-07-26 09:46:45
都会有延迟,属于系统处理延迟。
因为采样频率不固定,故你的程序的结果是频率越低、延迟越大。
4楼2014-07-26 07:29:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

eastsunsong

金虫 (著名写手)

引用回帖:
4楼: Originally posted by feixiaolin at 2014-07-26 07:29:07
都会有延迟,属于系统处理延迟。
因为采样频率不固定,故你的程序的结果是频率越低、延迟越大。

采样频率不固定为什么会导致延迟,可否详细说说
大校
5楼2014-07-26 09:46:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

引用回帖:
5楼: Originally posted by eastsunsong at 2014-07-26 09:46:38
采样频率不固定为什么会导致延迟,可否详细说说...

采样频率不固定=采样间隔不固定
6楼2014-07-26 14:02:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzkkelley

铜虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
eastsunsong: 金币+20, ★★★很有帮助 2014-08-11 10:11:29
把filter函数替换成conv看看
7楼2014-08-10 23:08:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zwclyq

铜虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
eastsunsong: 金币+10, ★★★很有帮助, 恩 大致听明白了 2014-08-11 16:54:25
是filter的问题,filter是将两个序列进行卷积之后取前面那一段。比如序列x1长度为L1,序列x2长度为L2,那么将两个序列卷积之后的长度为L1+L2-1,如果x1为信号,x2为滤波器,那么系统输出是需要L1即信号长度的输出序列,filter自动截取的是前L1个序列,你将filter函数改成两个函数卷积conv之后取中间L1长度输出,应该就不会有延迟了。
脚踏实地步步为营
8楼2014-08-11 16:29:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

linzhiqi1

木虫 (正式写手)

这是正常的,所谓的低通滤波器是指的幅频特性,还有相频特性那,本质上低通都是有延时的。
9楼2014-11-15 19:55:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

eastsunsong

金虫 (著名写手)

引用回帖:
9楼: Originally posted by linzhiqi1 at 2014-11-15 19:55:17
这是正常的,所谓的低通滤波器是指的幅频特性,还有相频特性那,本质上低通都是有延时的。

虽然听不懂,但是既然都有延迟,那就放心啦
大校
10楼2014-11-15 22:55:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 eastsunsong 的主题更新
信息提示
请填处理意见