获得每个信噪比的准确度
信噪比为26种,调制方式为12种,一种调制方式为13000个样本,一个信噪比为500个样本,一个调制方式有26个信噪比
import pandas as pd
import numpy as np
d="EMD" ##i 可选项IQ、EMD、VMD
f=8 ##j 可选项4、6、8
k=0.5 ##k 可选项1、0.5、0.1
datapath="./data/{}_test/sample{}/resnet{}/".format(d,k,f)
datasave="./Snr_data/{}_test/sample{}/".format(d,k)
data=pd.read_csv(datapath+"label.csv")
true=data['原始标签']
pre=data['识别标签']
acc1=[]
snr1=[]
##信噪比为26种,调制方式为12种,一种调制方式为13000个样本,一个信噪比为500个样本
for i in range(26):
s1 = pd.Series(np.random.randn(1))
s2 = pd.Series(np.random.randn(1))
count=0
for j in range(12):
start=int(j*13000+i*500)
end =int(j*13000+(i+1)*500)
# print(start,123)
# print(end)
a=pre[start:end]
b=true[start:end]
s1=pd.concat([s1, a])
s2=pd.concat([s2,b])
print(s2.shape)
s1=s1.iloc[1:]
s2=s2.iloc[1:]
for z in range(s1.shape[0]):
if s1.iloc[z]==s2.iloc[z]:
count=count+1
print(count,123)
print(i,789)
acc=(count/s1.shape[0])*100
snr=-20+i*2
acc1.append(acc)
snr1.append(snr)
# print(acc1)
# print(snr1)
result =pd.DataFrame(columns=('信噪比','准确度'))
result['信噪比']=snr1
result['准确度']=acc1
result.to_csv(datasave+'resnet{}.csv'.format(f), header=True,encoding='utf_8_sig')