50 #include <QtCore/QtPlugin>
70 , m_bProcessData(false)
95 QSharedPointer<NoiseEstimate> pNoiseEstimateClone(
new NoiseEstimate);
96 return pNoiseEstimateClone;
111 m_iFFTlength = settings.value(QString(
"Plugin/%1/FFTLength").arg(this->
getName()), 16384).toInt();
112 m_DataLen = settings.value(QString(
"Plugin/%1/DataLen").arg(this->
getName()), 6).toInt();
113 m_x_scale_type = settings.value(QString(
"Plugin/%1/ScaleType").arg(this->
getName()), 0).toInt();
117 connect(m_pRTMSAInput.data(), &PluginInputConnector::notify,
this, &NoiseEstimate::update, Qt::DirectConnection);
122 m_pFSOutput->data()->setName(this->
getName());
129 if(!m_pBuffer.isNull())
143 settings.setValue(QString(
"Plugin/%1/FFTLength").arg(this->
getName()), m_iFFTlength);
144 settings.setValue(QString(
"Plugin/%1/DataLen").arg(this->
getName()), m_DataLen);
145 settings.setValue(QString(
"Plugin/%1/ScaleType").arg(this->
getName()), m_x_scale_type);
151 void NoiseEstimate::initConnector()
154 qDebug() <<
"void NoiseEstimate::initConnector()";
157 m_pFSOutput->data()->initFromFiffInfo(m_pFiffInfo);
168 if(this->isRunning())
189 m_bIsRunning =
false;
203 m_bProcessData =
false;
205 qDebug()<<
"NoiseEstimate Thread is stopped.";
226 return "Noise Estimation";
262 m_pFiffInfo = pRTMSA->info();
271 for(qint32 i = 0; i < pRTMSA->getMultiArraySize(); ++i)
273 t_mat = pRTMSA->getMultiSampleArray()[i];
274 m_pBuffer->
push(&t_mat);
284 qDebug()<<
"Spectrum"<<t_send(0,1)<<t_send(0,2)<<t_send(0,3);
286 m_qVecSpecData.push_back(t_send);
288 qDebug()<<
"---------------------------------appendNoiseSpectrum--------------------------------";
299 bool waitForFiffInfo =
true;
300 while(waitForFiffInfo)
304 waitForFiffInfo =
false;
310 m_pFSOutput->data()->initScaleType(m_x_scale_type);
311 qDebug()<<
"Scale Type [0-normal; 1-log]:" << m_x_scale_type;
318 m_Fs = m_pFiffInfo->sfreq;
319 int segments = (qint32) ((m_DataLen * m_pFiffInfo->sfreq)/m_pBuffer->
cols());
321 qDebug()<<
"+++++++++++segments :"<<segments<<
"m_DataLen"<<m_DataLen<<
"m_Fs"<<m_Fs<<
"++++++++++++++++++++++++";
331 m_bProcessData =
true;
340 MatrixXd t_mat = m_pBuffer->
pop();
343 m_pRtNoise->append(t_mat);
345 if(m_qVecSpecData.size() > 0)
348 qDebug()<<
"%%%%%%%%%%%%%%%% send spectrum for display %%%%%%%%%%%%%%%%%%%";
350 m_pFSOutput->data()->setValue(m_qVecSpecData[0]);
351 m_qVecSpecData.pop_front();
357 qDebug()<<
"noise estimation [Run] is done!";
QSharedPointer< IAlgorithm > SPtr
OutputConnectorList m_outputConnectors
virtual IPlugin::PluginType getType() const
The NoiseEstimate class provides a NoiseEstimate algorithm structure.
void appendNoiseSpectrum(Eigen::MatrixXd)
Contains the declaration of the NoiseEstimate class.
QSharedPointer< CircularMatrixBuffer > SPtr
The circular matrix buffer.
Real-time Noise estimation.
void push(const Matrix< _Tp, Dynamic, Dynamic > *pMatrix)
Matrix< _Tp, Dynamic, Dynamic > pop()
void SpecCalculated(Eigen::MatrixXd)
virtual QSharedPointer< IPlugin > clone() const
QSharedPointer< NewMeasurement > SPtr
virtual QString getName() const
QSharedPointer< RtNoise > SPtr
static QSharedPointer< PluginOutputData< T > > create(IPlugin *parent, const QString &name, const QString &descr)
void SetNoisePara(qint32 nFFT, int fs)
InputConnectorList m_inputConnectors
virtual QWidget * setupWidget()
The RealTimeMultiSampleArrayNew class is the base class of every RealTimeMultiSampleArrayNew Measurem...