大家好!我得到瞬态峰值信号从0到6000 hz的声压级。谁能建议我怎么删除它吗?

20视图(30天)
我得到瞬态峰值信号从0到6000 hz的声压级。谁能建议我怎么删除它吗?

答案(1)

明星黾
明星黾 2023年5月29日午
如果你指的是一系列的“峰值”,最简单的方法是使用 findpeaks 定义峰值和峰值频率的中心,然后使用 冷杉 过滤器移除它们。第一个要求您共享数据(如果你想要帮助设计过滤器),其次,信号是足够长的时间来处理 冷杉 过滤器,因为 冷杉 过滤器是自己通常长。
使用 filtfilt 做实际的过滤。
2的评论
明星黾
明星黾 2023年5月31日16:03
没有采样频率或时间向量,所以我会即兴发挥
T1 = readtable (“timeseriesprdata.xlsx”);
s = T1 {: 1};%的信号
L =大小(T1, 1)
L = 150000
Fs = 7.5 e + 4 * 2;%采样频率(猜)
Fn = f / 2;%奈奎斯特频率
t = linspace (0 L - 1升)/ Fs;
情节(t, s)
网格
包含(“时间(单位)”)
ylabel (Amp (litude(单位))
NFFT = 2 ^ nextpow2 (L);
FT_s = fft ((s (s))。*损害(L), NFFT);
阵线= linspace (0, 1, NFFT / 2 + 1) * Fn;%频率向量
4 = 1:元素个数(艘);%指数向量
情节(阵线、abs (FT_s (Iv)) * 2)
网格
包含(的频率(单位))
ylabel (的大小(单位))
[pks1, locs1] = findpeaks (abs (FT_s (Iv)) * 2,“MinPeakProminence”5);
% Q1 =[阵线(locs1 (1:7));diff([0阵线(locs1 (1:7)))))。
% Q12stats =[意思是((Q1(:, 2)))性病((Q1(:, 2)))模式((Q1 (:, 2))))
持有
情节(阵线(locs1 (1:7)), pks1 (1:7)“^ r”)
持有
xlim ([0 1 e + 4])
fcomblen = 1:10;%阻带矢量
fcomb =重塑([[9 4 4 9]+ 690 * (fcomblen)。]。“1 []);%定义梳状滤波器阻带
fcomb = 1×40
681 686 694 699 1371 1376 1384 1389 2061 2066 2074 2079 2751 2756 2764 2769 3441 3446 3454 3459 4131 4136 4144 4149 4821 4826 4834 4839 5511 5516
杂志= [[1 0 1]repmat([0, 1], 1元素个数(fcomblen) 2), [0 1]];
dev = [[0.5 0.1 0.5] repmat([0.1 - 0.5], 1,元素个数(fcomblen) 2), [0.1 - 0.5]];
[n, n,β,ftype] = kaiserord (dev fcomb,杂志,Fs);
hh = fir1 (n, n, ftype kaiser (n + 1,β),“noscale”);
freqz (hh, 1、2 ^ 20 Fs)
s_filt = filtfilt (hh, 1, s);
FT_s_filt = fft ((s_filt-mean (s_filt)。*损害(L), NFFT);
情节(阵线、abs (FT_s_filt (Iv)) * 2)
网格
包含(的频率(单位))
ylabel (的大小(单位))
xlim ([0 1 e + 4])
不幸的是,我不能这个过滤器扩展到任意采样频率,所以你需要尝试用正确的采样频率。的 “680” 常数是基于价值的 “Q12stats (3)” 所以用它来指导过滤器使用正确的采样频率。
我很满意这个结果!

登录置评。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!