04-05-2022 07:47 AM
Hello everybody, I have this problem with my VI in Labview. During the simulation, my ErrorMic becomes unstable, like to image:
Can anyone help me please? In my opinion the problem is to create a shift register in Error signal, but it doesn'work.
BR
Ma
04-05-2022 08:37 AM
Hi Maxim,
@Maxim898 wrote:
During the simulation, my ErrorMic becomes unstable,
What is an "ErrorMic"? Where does it "become unstable"?
@Maxim898 wrote:
Can anyone help me please? In my opinion the problem is to create a shift register in Error signal, but it doesn'work.
As we have no code we cannot debug that code.
Keep in mind: we cannot edit/debug/run images with LabVIEW!
Please explain what exactly "doesn't work"…
04-05-2022 08:42 AM
Thank you for your cooperation. In attached my VI. The reference microphone and error microphone are used to
pick up the unwanted noise and to sense the residual noise, respectively. Then, anti-noise is generated
by the noise control filter and radiated from the secondary source.
04-05-2022 08:48 AM
Hi Maxim,
@Maxim898 wrote:
In attached my VI.
I'm missing subVIs, from an addon and from your project…
What means "the ErrorMic becomes unstable"?
Why don't you cleanup the block diagram?
04-05-2022 11:09 AM
Hi Knight,
thank you for your request. The subVIs belong to the AFT adaptive filter tollkit and DAQmx write and read channels.
What means "the ErrorMic becomes unstable"?: it means that the system active noise control doesn't work. The output of the filter FxLMS is unstable.
More questions?
BR
Max
04-05-2022 12:12 PM - edited 04-05-2022 12:16 PM
You've got a feedback loop running to try to implement active noise cancellation. A problem (possibly the *biggest* problem) is the inescapable latency involved with buffered input and buffered output. A lot of feedback systems can become unstable in the presence of time delays.
The default behavior for buffered analog output in particular can add a *lot* of delay. Data you write to the task has to work its way through the PC-side task buffer until DAQmx delivers it down to the device. And *then* it has to work its way through the onboard buffer before finally becoming a real-world output signal.
Unfortunately, you'll face a whole *other* problem if you run unbuffered tasks. You'll lose the precision of hardware-clocked timing, and you probably won't be able to sample and loop fast enough to capture and recreate everyday soundwave frequencies.
Unless the "noise" source is very regular and predictable, I'm not sure you can get there from here under Windows. At least not for real-time noise cancellation. There would be other ways to test out your filters and algorithms in a non-real-time way though.
-Kevin P
04-05-2022 12:40 PM
Kevin thank you very much. You are very kind.
I created all system under pci-express without using interface with host pc. I implemented in pcie target only.
Can you help me?
Max
04-05-2022 12:49 PM
Hi Maxim,
@Maxim898 wrote:
I created all system under pci-express without using interface with host pc. I implemented in pcie target only.
"PCIexpress"/"PCIe" is a communication bus inside a computer. How do you "create a system" using just a communication bus without any "interface with host pc"???
Are you using a Windows computer or do you use a NI RT target supporting DAQmx?
04-05-2022 12:58 PM
Yes, I created interface with host. But my problem is not acquisition of the signals from microphne or loudspeaker, but my problem is the instability when I turn on ANC system, I don't see any noise cancellation (from error microphone).
I hope, i have made my meaning clear 🙂 🙂
04-05-2022 01:11 PM
Hi Maxim,
@Maxim898 wrote:
my problem is the instability when I turn on ANC system, I don't see any noise cancellation (from error microphone).
Kevin already pointed out the problem…
How is you rcomputer connected to that PXI system? If there's a LAN cable involved you add even more delays and buffers in the DAQmx AI/AO system!