mirror of
https://github.com/jankae/LibreVNA.git
synced 2026-04-06 15:04:11 +00:00
Noise + phase noise markers
This commit is contained in:
parent
5ed3547d3d
commit
7921c8db2f
8 changed files with 102 additions and 19 deletions
|
|
@ -29,11 +29,12 @@ void Trace::clear() {
|
|||
return;
|
||||
}
|
||||
_data.clear();
|
||||
settings.valid = false;
|
||||
emit cleared(this);
|
||||
emit dataChanged();
|
||||
}
|
||||
|
||||
void Trace::addData(Trace::Data d) {
|
||||
void Trace::addData(const Trace::Data& d) {
|
||||
// add or replace data in vector while keeping it sorted with increasing frequency
|
||||
auto lower = lower_bound(_data.begin(), _data.end(), d, [](const Data &lhs, const Data &rhs) -> bool {
|
||||
return lhs.frequency < rhs.frequency;
|
||||
|
|
@ -75,6 +76,20 @@ void Trace::addData(Trace::Data d) {
|
|||
}
|
||||
}
|
||||
|
||||
void Trace::addData(const Trace::Data &d, const Protocol::SweepSettings &s)
|
||||
{
|
||||
settings.VNA = s;
|
||||
settings.valid = true;
|
||||
addData(d);
|
||||
}
|
||||
|
||||
void Trace::addData(const Trace::Data &d, const Protocol::SpectrumAnalyzerSettings &s)
|
||||
{
|
||||
settings.SA = s;
|
||||
settings.valid = true;
|
||||
addData(d);
|
||||
}
|
||||
|
||||
void Trace::setName(QString name) {
|
||||
_name = name;
|
||||
emit nameChanged();
|
||||
|
|
@ -388,6 +403,19 @@ std::complex<double> Trace::getData(double frequency)
|
|||
}
|
||||
}
|
||||
|
||||
double Trace::getNoise(double frequency)
|
||||
{
|
||||
if(!isLive() || !settings.valid || (_liveParam != LiveParameter::Port1 && _liveParam != LiveParameter::Port2)) {
|
||||
// data not suitable for noise calculation
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
// convert to dbm
|
||||
auto dbm = 20*log10(abs(getData(frequency)));
|
||||
// convert to 1Hz bandwidth
|
||||
dbm -= 10*log10(settings.SA.RBW);
|
||||
return dbm;
|
||||
}
|
||||
|
||||
int Trace::index(double frequency)
|
||||
{
|
||||
auto lower = lower_bound(_data.begin(), _data.end(), frequency, [](const Data &lhs, const double freq) -> bool {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue