Python 基于pyqt5的脉冲积累
一、GUI框架原码
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'pulseAccumulation.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(800, 550)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth())
Form.setSizePolicy(sizePolicy)
Form.setMinimumSize(QtCore.QSize(800, 550))
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/startImage/purple.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
Form.setWindowIcon(icon)
Form.setStyleSheet("QWidget#Form{\n"
" border-image: url(:/formulation_img/formulation_img.jpg);\n"
"}")
self.horizontalLayout = QtWidgets.QHBoxLayout(Form)
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout.setSpacing(0)
self.horizontalLayout.setObjectName("horizontalLayout")
self.widget = QtWidgets.QWidget(Form)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth())
self.widget.setSizePolicy(sizePolicy)
self.widget.setStyleSheet("")
self.widget.setObjectName("widget")
self.gridLayout = QtWidgets.QGridLayout(self.widget)
self.gridLayout.setObjectName("gridLayout")
self.label = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
self.label.setSizePolicy(sizePolicy)
self.label.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
self.pt_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.pt_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pt_dsb.sizePolicy().hasHeightForWidth())
self.pt_dsb.setSizePolicy(sizePolicy)
self.pt_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.pt_dsb.setDecimals(0)
self.pt_dsb.setProperty("value", 4.0)
self.pt_dsb.setObjectName("pt_dsb")
self.gridLayout.addWidget(self.pt_dsb, 0, 1, 1, 1)
self.label_2 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
self.label_2.setSizePolicy(sizePolicy)
self.label_2.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_2.setFont(font)
self.label_2.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
self.freq_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.freq_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.freq_dsb.sizePolicy().hasHeightForWidth())
self.freq_dsb.setSizePolicy(sizePolicy)
self.freq_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.freq_dsb.setPrefix("")
self.freq_dsb.setDecimals(1)
self.freq_dsb.setProperty("value", 94.0)
self.freq_dsb.setObjectName("freq_dsb")
self.gridLayout.addWidget(self.freq_dsb, 1, 1, 1, 1)
self.label_3 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth())
self.label_3.setSizePolicy(sizePolicy)
self.label_3.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_3.setFont(font)
self.label_3.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
self.label_3.setObjectName("label_3")
self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
self.g_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.g_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.g_dsb.sizePolicy().hasHeightForWidth())
self.g_dsb.setSizePolicy(sizePolicy)
self.g_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.g_dsb.setDecimals(0)
self.g_dsb.setMinimum(-50.0)
self.g_dsb.setMaximum(50.0)
self.g_dsb.setSingleStep(5.0)
self.g_dsb.setStepType(QtWidgets.QAbstractSpinBox.DefaultStepType)
self.g_dsb.setProperty("value", 47.0)
self.g_dsb.setObjectName("g_dsb")
self.gridLayout.addWidget(self.g_dsb, 2, 1, 1, 1)
self.label_4 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth())
self.label_4.setSizePolicy(sizePolicy)
self.label_4.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_4.setFont(font)
self.label_4.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_4.setAlignment(QtCore.Qt.AlignCenter)
self.label_4.setObjectName("label_4")
self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1)
self.sigma_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.sigma_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.sigma_dsb.sizePolicy().hasHeightForWidth())
self.sigma_dsb.setSizePolicy(sizePolicy)
self.sigma_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.sigma_dsb.setDecimals(0)
self.sigma_dsb.setMaximum(400.0)
self.sigma_dsb.setSingleStep(10.0)
self.sigma_dsb.setProperty("value", 20.0)
self.sigma_dsb.setObjectName("sigma_dsb")
self.gridLayout.addWidget(self.sigma_dsb, 3, 1, 1, 1)
self.label_5 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth())
self.label_5.setSizePolicy(sizePolicy)
self.label_5.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_5.setFont(font)
self.label_5.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_5.setAlignment(QtCore.Qt.AlignCenter)
self.label_5.setObjectName("label_5")
self.gridLayout.addWidget(self.label_5, 4, 0, 1, 1)
self.te_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.te_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.te_dsb.sizePolicy().hasHeightForWidth())
self.te_dsb.setSizePolicy(sizePolicy)
self.te_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.te_dsb.setDecimals(0)
self.te_dsb.setMaximum(1500.0)
self.te_dsb.setProperty("value", 290.0)
self.te_dsb.setObjectName("te_dsb")
self.gridLayout.addWidget(self.te_dsb, 4, 1, 1, 1)
self.label_6 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_6.sizePolicy().hasHeightForWidth())
self.label_6.setSizePolicy(sizePolicy)
self.label_6.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_6.setFont(font)
self.label_6.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_6.setAlignment(QtCore.Qt.AlignCenter)
self.label_6.setObjectName("label_6")
self.gridLayout.addWidget(self.label_6, 5, 0, 1, 1)
self.b_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.b_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.b_dsb.sizePolicy().hasHeightForWidth())
self.b_dsb.setSizePolicy(sizePolicy)
self.b_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.b_dsb.setDecimals(0)
self.b_dsb.setMaximum(50.0)
self.b_dsb.setProperty("value", 20.0)
self.b_dsb.setObjectName("b_dsb")
self.gridLayout.addWidget(self.b_dsb, 5, 1, 1, 1)
self.label_7 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_7.sizePolicy().hasHeightForWidth())
self.label_7.setSizePolicy(sizePolicy)
self.label_7.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_7.setFont(font)
self.label_7.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_7.setAlignment(QtCore.Qt.AlignCenter)
self.label_7.setObjectName("label_7")
self.gridLayout.addWidget(self.label_7, 6, 0, 1, 1)
self.nf_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.nf_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.nf_dsb.sizePolicy().hasHeightForWidth())
self.nf_dsb.setSizePolicy(sizePolicy)
self.nf_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.nf_dsb.setDecimals(0)
self.nf_dsb.setMaximum(50.0)
self.nf_dsb.setProperty("value", 7.0)
self.nf_dsb.setObjectName("nf_dsb")
self.gridLayout.addWidget(self.nf_dsb, 6, 1, 1, 1)
self.label_8 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_8.sizePolicy().hasHeightForWidth())
self.label_8.setSizePolicy(sizePolicy)
self.label_8.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_8.setFont(font)
self.label_8.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_8.setAlignment(QtCore.Qt.AlignCenter)
self.label_8.setObjectName("label_8")
self.gridLayout.addWidget(self.label_8, 7, 0, 1, 1)
self.loss_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.loss_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.loss_dsb.sizePolicy().hasHeightForWidth())
self.loss_dsb.setSizePolicy(sizePolicy)
self.loss_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.loss_dsb.setDecimals(0)
self.loss_dsb.setSingleStep(0.1)
self.loss_dsb.setProperty("value", 10.0)
self.loss_dsb.setObjectName("loss_dsb")
self.gridLayout.addWidget(self.loss_dsb, 7, 1, 1, 1)
self.label_9 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_9.sizePolicy().hasHeightForWidth())
self.label_9.setSizePolicy(sizePolicy)
self.label_9.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_9.setFont(font)
self.label_9.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_9.setAlignment(QtCore.Qt.AlignCenter)
self.label_9.setObjectName("label_9")
self.gridLayout.addWidget(self.label_9, 8, 0, 1, 1)
self.r_dsb = QtWidgets.QDoubleSpinBox(self.widget)
self.r_dsb.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.r_dsb.sizePolicy().hasHeightForWidth())
self.r_dsb.setSizePolicy(sizePolicy)
self.r_dsb.setMinimumSize(QtCore.QSize(100, 25))
self.r_dsb.setDecimals(1)
self.r_dsb.setSingleStep(0.1)
self.r_dsb.setProperty("value", 5.0)
self.r_dsb.setObjectName("r_dsb")
self.gridLayout.addWidget(self.r_dsb, 8, 1, 1, 1)
self.label_10 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_10.sizePolicy().hasHeightForWidth())
self.label_10.setSizePolicy(sizePolicy)
self.label_10.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_10.setFont(font)
self.label_10.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_10.setAlignment(QtCore.Qt.AlignCenter)
self.label_10.setObjectName("label_10")
self.gridLayout.addWidget(self.label_10, 9, 0, 1, 1)
self.el_dsb_2 = QtWidgets.QDoubleSpinBox(self.widget)
self.el_dsb_2.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.el_dsb_2.sizePolicy().hasHeightForWidth())
self.el_dsb_2.setSizePolicy(sizePolicy)
self.el_dsb_2.setMinimumSize(QtCore.QSize(100, 25))
self.el_dsb_2.setDecimals(0)
self.el_dsb_2.setSingleStep(0.1)
self.el_dsb_2.setProperty("value", 1.0)
self.el_dsb_2.setObjectName("el_dsb_2")
self.gridLayout.addWidget(self.el_dsb_2, 9, 1, 1, 1)
self.label_11 = QtWidgets.QLabel(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_11.sizePolicy().hasHeightForWidth())
self.label_11.setSizePolicy(sizePolicy)
self.label_11.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_11.setFont(font)
self.label_11.setStyleSheet("QLabel{\n"
"background-color: rgb(255, 255, 255);\n"
"border: 1px solid rgb(0, 0, 0);\n"
"}")
self.label_11.setAlignment(QtCore.Qt.AlignCenter)
self.label_11.setObjectName("label_11")
self.gridLayout.addWidget(self.label_11, 10, 0, 1, 1)
self.el_dsb_3 = QtWidgets.QDoubleSpinBox(self.widget)
self.el_dsb_3.setEnabled(False)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.el_dsb_3.sizePolicy().hasHeightForWidth())
self.el_dsb_3.setSizePolicy(sizePolicy)
self.el_dsb_3.setMinimumSize(QtCore.QSize(100, 25))
self.el_dsb_3.setDecimals(0)
self.el_dsb_3.setSingleStep(0.1)
self.el_dsb_3.setProperty("value", 1.0)
self.el_dsb_3.setObjectName("el_dsb_3")
self.gridLayout.addWidget(self.el_dsb_3, 10, 1, 1, 1)
self.horizontalLayout.addWidget(self.widget)
self.widget_2 = QtWidgets.QWidget(Form)
self.widget_2.setStyleSheet("")
self.widget_2.setObjectName("widget_2")
self.horizontalLayout.addWidget(self.widget_2)
self.horizontalLayout.setStretch(1, 7)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "脉冲积累"))
self.label.setText(_translate("Form", "pt"))
self.pt_dsb.setSuffix(_translate("Form", " W"))
self.label_2.setText(_translate("Form", "freq"))
self.freq_dsb.setSuffix(_translate("Form", " GHz"))
self.label_3.setText(_translate("Form", "g"))
self.g_dsb.setSuffix(_translate("Form", " dB"))
self.label_4.setText(_translate("Form", "sigma"))
self.sigma_dsb.setSuffix(_translate("Form", " m2"))
self.label_5.setText(_translate("Form", "te"))
self.te_dsb.setSuffix(_translate("Form", " K"))
self.label_6.setText(_translate("Form", "b"))
self.b_dsb.setSuffix(_translate("Form", " MHz"))
self.label_7.setText(_translate("Form", "nf"))
self.nf_dsb.setSuffix(_translate("Form", " dB"))
self.label_8.setText(_translate("Form", "loss"))
self.loss_dsb.setSuffix(_translate("Form", " dB"))
self.label_9.setText(_translate("Form", "range"))
self.r_dsb.setSuffix(_translate("Form", " Km"))
self.label_10.setText(_translate("Form", "np"))
self.el_dsb_2.setSuffix(_translate("Form", "-10000个"))
self.label_11.setText(_translate("Form", "ci_nci"))
self.el_dsb_3.setSuffix(_translate("Form", "-2"))
import resources.resource_rc
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
计算公式原码
from PyQt5.Qt import *
from submenu.pulseAccumulation import Ui_Form
from submenuPane.formulation_pane import RadarEqu
import numpy as np
import matplotlib
matplotlib.use("Qt5Agg")
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
import matplotlib as plt
class PulseIntegrate:
def __init__(self, pt, freq, g, sigma, te, b, nf, loss, r, n, ci_nci):
self.pt = pt
self.freq = freq
self.g = g
self.sigma = sigma
self.te = te
self.b = b
self.nf = nf
self.loss = loss
self.r = r
self.np = n
self.ci_nci = ci_nci
# self.pt = 10*np.log10(pt)
# self.freq = 10 * np.log10(freq*1e9)
# self.g = g
# self.sigma = 10 * np.log10(sigma)
# self.te = 10 * np.log10(te)
# self.b = 10 * np.log10(b*1e6)
# self.nf = nf
# self.loss = loss
# self.r = 10 * np.log10(r*1e3)
def pulse_integration(self):
radar_eq = RadarEqu(self.pt, self.freq, self.g, self.sigma, self.te, self.b, self.nf, self.loss, self.r)
snr1 = radar_eq.calculate_snr()
if self.ci_nci == 1: # 相干积累
snrout = snr1 + 10 * np.log10(self.np)
return snrout
if self.ci_nci == 2: # 非相干积累
snr1 = 10 ** (snr1 / 10)
# val1 = snr / 2 * self.np
# val2 = snr ** 2 / 4 * (self.np ** 2)
# val3 = snr / self.np
# snr1 = val1 + np.sqrt(val2 + val3)
LNCI = (1 + snr1) / snr1
snrout = 10 * np.log10(self.np) + 10 * np.log10(snr1) - 10 * np.log10(LNCI)
return snrout
class MyFigure(FigureCanvas):
def __init__(self, value_dict={}):
plt.rcParams['font.sans-serif'] = ["SimHei"]
plt.rcParams['axes.unicode_minus'] = False
self.fig = Figure()
super().__init__(self.fig)
self.calculate_dict = value_dict
self.pt = self.calculate_dict['pt']
self.freq = self.calculate_dict['freq']
self.g = self.calculate_dict['g']
self.sigma = self.calculate_dict['sigma']
self.te = self.calculate_dict['te']
self.b = self.calculate_dict['b']
self.nf = self.calculate_dict['nf']
self.loss = self.calculate_dict['loss']
self.r = self.calculate_dict['r']
self.np = self.calculate_dict['np']
axes1 = self.fig.add_subplot(111)
axes1.grid(b='True', linestyle='dotted')
axes1.set_title('使用积累时的SNR改善')
axes1.set_ylabel("SNR /dB")
axes1.set_xlabel("积累脉冲数")
self.axes1 = axes1
def plot_accu_np(self):
calculate_snr_ci = PulseIntegrate(self.pt, self.freq, self.g, self.sigma, self.te, self.b, self.nf, self.loss,
self.r, self.np, ci_nci=1)
snrout_ci = calculate_snr_ci.pulse_integration()
calculate_snr_nci = PulseIntegrate(self.pt, self.freq, self.g, self.sigma, self.te, self.b, self.nf, self.loss,
self.r, self.np, ci_nci=2)
snrout_nci = calculate_snr_nci.pulse_integration()
self.axes1.semilogx(self.np, snrout_ci, 'r-', label='ci')
self.axes1.legend(loc=2)
class PulseAccumulationPane(QWidget, Ui_Form):
def __init__(self):
super().__init__()
self.setAttribute(Qt.WA_StyledBackground, True)
self.setupUi(self)
pt = self.pt_dsb.value() / 1e6
freq = self.freq_dsb.value()
g = self.g_dsb.value()
sigma = self.sigma_dsb.value()
te = self.te_dsb.value()
b = self.b_dsb.value()
nf = self.nf_dsb.value()
loss = self.loss_dsb.value()
r = self.r_dsb.value()
n = np.linspace(1, 10000, 1000)
current_dict = {'pt': pt, 'freq': freq, "g": g, "sigma": sigma, "te": te, "b": b, "nf": nf, "loss": loss,
"np": n, "r": r}
self.current_dict = current_dict
self.F = MyFigure(value_dict=self.current_dict)
self.layout = QGridLayout(self.widget_2)
self.layout.addWidget(self.F)
self.F.plot_accu_np()
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = PulseAccumulationPane()
window.show()
sys.exit(app.exec_())
实现效果图

扫描下方二维码,关注“海海读书”公众号,回复“脉冲积累”,即可获得程序原代码
