规格幅度滤波 - MATLAB R2008a

时间:2012-01-26 19:51:49

标签: matlab signal-processing amplitude

所以我在Matlab写了一个快速脚本为我做了一些可视化 -

function spectro(filename,maxFreq)

wavchunksizefix(filename);

[y,fs] = wavread(filename);

subplot(2,1,1);
plot(y);
ylim([0 1]);
title('Signal Amplitude');

subplot(2,1,2);
specgram(y,1024,fs);
ylim([0 maxFreq]);
cb = colorbar;
set(get(cb,'title'),'string','dB');
title('Original Signal Spectrogram');

我想知道的是 - 如何修改specgram()输出以仅显示特定的dB范围?现在它在0到40 dB范围内显示了一大堆不必要的噪音,我只想看到0到-50 dB(不幸的是,我不能发布示例图片,因为我是新的)。

1 个答案:

答案 0 :(得分:1)

非常酷,谢谢你们。我写这个用于过滤40 dB以上的信号,它似乎有效 -

[y,fs] = wavread('matrecord.wav'); 
centerval = mean(y); 
gdb = 20*log10(y/centerval);
ogv = (gdb > 40); 
x = y;
x(ogv) = 0; 

当我对此运行specgram()时,它似乎有效。