声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2276|回复: 6

[滤波] 请大家指教检测超声波信号滤波

[复制链接]
发表于 2009-10-29 23:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
请大家指教检测超声波信号滤波
有这样的检测超声波回波信号,其频率是5Mhz,以80Mhz的采样率抽取数据


得到附件中的数据,时间窗口长度是40微秒。该信号如果用时域平均法可以得到很好的效果,


但由于实际应用中有些情况不能实现,所以想实现滤波器滤波。


我采用的是IIR型滤波器,

具体实现如下:

[n,Wn]=buttord(39000000/40000000,400000/40000000,6,30);

[b,a]=butter(n,Wn);

y=filter(b,a,x)

滤波后,没有多大改变,噪声的幅值压低不太明显。

刚刚入门,就要对该信号滤波,希望论坛上的各位老师能给予指导,作谱分析和建议更合适的滤波器

[ 本帖最后由 james551304 于 2009-10-30 07:56 编辑 ]
untitled.png

data.txt

50 KB, 下载次数: 21

回复
分享到:

使用道具 举报

 楼主| 发表于 2009-10-30 21:46 | 显示全部楼层
如图

上面的图是原始信号,箭头指向回波信号,幅值低的信号是想要进行滤波处理的,

下面的图示我作的频谱分析,

还不知道准不准确,还需大家指点,

[ 本帖最后由 james551304 于 2009-10-30 21:48 编辑 ]
signal.png
spectrum.png
发表于 2009-10-31 19:28 | 显示全部楼层
从数据来看,用自适应陷波器以获取5Mhz的信号;用低通滤波器不一定合适。因为是非稳态信号,用FFT分析也是不合适,可用STFT来观察。
 楼主| 发表于 2009-10-31 22:23 | 显示全部楼层
谢谢宋老师的及时回答,给我指明了方面, 看到了曙光,呵呵,:lol 我按这个思路走下去

参考网络上的程序, 使用了自适应陷波器来获取5Mhz的信号
clear all

load data.txt
Fs = 80000000;
N = 3200;
i = [0 : N-1]';
%原始信号
x = data;

%陷波器参考信号,主要考虑超声波信号可以用余弦函数表示,故采用如下形式

u = cos(2*pi*5000000* i/Fs);
%陷波器结构

L = 20; step_size = 0.005; w = zeros(1,L);

%执行

e(L) = x(L);
for k = L : N regressor = flipud(u(k-L+ 1:k));

           w = w + step_size * regressor' * e(k);
         e(k+1) = x(k) - w * regressor;

end %计算初始信号和经滤波的信号

f = [0 : Fs/N : Fs - Fs/N]';


F = abs(fft(x));

E = abs(fft(e));

%plot figure;

subplot(411) ;plot(x); title('initial signal'); subplot(412) ;

plot(e); title('initial signal after filtering');


subplot(413) ;plot(f,F( 1:length( f)));title( 'spectrum of initial signal');

subplot(414) ;plot(f,E( 1:length( f)));title( 'spectrum of initial signal after filtering');

得到如下图,但觉得既然是陷5Mhz的信号,剩下的应该是噪声,而图中的结果却是信号,

该信号与原信号相比, 噪声部分幅度很接近,但回波信号部分

幅值降低了,是滤波器只对回波信号起作用了?


想听听老师们的意见,另外stft处理的话会不会时间代价很高,不能满足实时要求,
notch.png
发表于 2009-11-10 20:01 | 显示全部楼层
顶一下,同问。
楼主做超声波检测的吗?我也是,一起学习啊
发表于 2009-11-11 12:30 | 显示全部楼层
原帖由 james551304 于 2009-10-31 22:23 发表
谢谢宋老师的及时回答,给我指明了方面, 看到了曙光,呵呵,:lol 我按这个思路走下去

参考网络上的程序, 使用了自适应陷波器来获取5Mhz的信号
clear all

load data.txt
Fs = 80000000;
N = 3200;
  ...

从数据来看,回波信号不是一个5MHz的单频信号,因此用自适应陷波器的结果也不甚理想。回波信号有一定的带宽,可以用带通滤波器来获得回波。这里设计了一个FIR波波器,通带是4-6MHz,程序为
ws1 = 0.05*pi; wp1 = 0.1*pi;
wp2 = 0.15*pi; ws2 = 0.2*pi;
As = 50;
deltaw= min((wp1-ws1),(ws2-wp2));
N0 = ceil(6.2*pi/deltaw);            
N=N0+mod(N0+1,2);  
wdbla = (hamming(N))';     
wc1 = (ws1+wp1)/2; wc2 = (wp2+ws2)/2;   
hd = ideal_lp(wc2,N) - ideal_lp(wc1,N);
h = hd .* wdbla;                  
freqz(h,1);
figure
x=load('data.txt');
fs=80000000;
N=length(x);
n=1:N;
t=(n-1)/fs;
subplot 211; plot(t,x); grid;
title('initial signal');
% 滤波
y=filtfilt(h,[1],x);
subplot 212; plot(t,y); grid;
title('initial signal after filtering');
figure
plot(t,x,'r',t,y,'b'); grid;
xlim([1.6e-5 2.1e-5]);
legend('回波滤波前波形','回波滤波后波形')

回波滤波前后的波形比较为下图。
jm42c.jpg
发表于 2016-1-15 13:48 | 显示全部楼层
小波去噪好像效果不错
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-26 14:42 , Processed in 0.064095 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表