我正在尝试将CSI值中的噪声降至最低。我生成了一些虚假的CSI值,并添加了一些随机错误。
我正在提供代码
import numpy as np
#import tkinter as Tk
import scipy as sp
import matplotlib.pyplot as plt
from scipy import signal
from scipy.fftpack import fft
#Generate fake CSI values
csi_values =np.array([0 + 0j]*64)
print(csi_values)
csi_values[13] = .5 + .2j
csi_values[12] = .75 + .25j
csi_values[11] = 1 + .35j
csi_values[10] = 1.5 + .5j
print(csi_values[10:14:1])
print(csi_values)
fft_value = fft(csi_values)
print(fft_value)
print(len(fft_value))
#print(fft_value)
real_csi= abs(csi_values)
mean_csi= np.mean(real_csi)
print(real_csi)
print(mean_csi)
x_axis = np.linspace(0.0, 63,64)
print(x_axis.shape,fft_value.shape)
plt.plot(abs(fft_value))
plt.grid()
plt.show()
#CSI Subcarrier selection based on average amplitude of all subcarriers
csi_truncated = csi_values[abs(csi_values) > mean_csi]
print(csi_truncated)
#Removal of noise using median filter
csi_error= csi_values + np.random.rand(64)
print(csi_error)
trim_csi = sp.signal.medfilt(csi_error,5)
但是我遇到以下错误
File "python_check.py", line 54, in <module>
trim_csi = sp.signal.medfilt(csi_error,5)
File "/home/avishek/venv3/lib/python3.5/site-packages/scipy/signal/signaltools.py", line 893, in medfilt
return sigtools._order_filterND(volume, domain, order)
ValueError: order_filterND not available for this type
此错误的原因是什么?我猜我也在使用正确的软件包
答案 0 :(得分:0)
最新的scipy / python仍然遇到相同的问题。 对于来这里的其他人:您可以切换到此功能
scipy.ndimage.filters.median_filter
执行相同的操作,但不会出现此错误。