我尝试使用opencv的dft函数过滤信号 . 我试图这样做的方式是在时域中获取信号:
x = [0.0201920000000000 -0.0514940000000000 0.0222140000000000 0.0142460000000000 -0.00313500000000000 0.00270600000000000 0.0111770000000000 0.0233470000000000 -0.00162700000000000 -0.0306280000000000 0.0239410000000000 -0.0225840000000000 0.0281410000000000 0.0265510000000000 -0.0272180000000000 0.0223850000000000 -0.0366850000000000 0.000515000000000000 0.0213440000000000 -0.0107180000000000 -0.0222150000000000 -0.0888300000000000 -0.178814000000000 -0.0279280000000000 -0.144982000000000 -0.199606000000000 -0.225617000000000 -0.188347000000000 0.00196200000000000 0.0830530000000000 0.0716730000000000 0.0723950000000000]
使用以下方法将其转换为FOURIER域:
cv::dft(x, x_fft, cv::DFT_COMPLEX_OUTPUT, 0);
消除不需要的频率:
for(int k=0; k<32;k++){
if(k==0 || k>6 )
{
x_fft.ptr(0)[2*k+0]=0;<