Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

Continue to ouput from digital filter for bandstop in Active Noise canceller

Hi! I'm designing  the Active Noise Canceller under Real-time FPGA .
 
The input ports of error microphone and reference microphone from NI-9215 are normally read from FPGA target to Host computer.
 
After then, I want to  make the bandstop filter of the FIR work for a cotinuous time after program running.
 
The problem is that the fillter doesn't  continue to output  for a long time to use for error signal e(n) at point C. 
 
It means that the filter output the filtered signal only for a short time of one second , not a cotinuous time.
 
Even though I try to modify  it with several ways, I can't fix it.
 
Please, let me know how to make the filter  output for a cotinuous time at a running mode.
 
Thanks.
 
Jason Lee 
 
0 Kudos
Message 1 of 4
(3,915 Views)
Hi Jason,

Why do you have an infinite while loop around the filter vi? By doing so you trap the data in the loop. Once the loop starts, the loop will use the same data from the input loop tunnel (brown dot on the left side of the loop). The output signal (blue dot on the bottom side of the loop) would not get leave the loop until the loop gets terminated.

Regards,
Stanley Hu
National Instruments
Applications Engineering
http://www.ni.com/support


Message Edited by stanthetiger on 03-12-2008 04:33 PM
0 Kudos
Message 2 of 4
(3,878 Views)
Hi! Stanley
 
Thanks for your reply.
 
Actually, in the first time, I didn't use  an infinite while loop around the filter vi and make it run without any loop around the filter.
 
As shown the attached ppt.file of power point , I got  four  wavefrom of each  output  at point A,B,C and D.
 
I want to get a continuous output waveform of filter at points of both  B and C, not like the attached file.
 
After that , with output of this filter, I want get a filtered signal from point D as removing some noise at a specific frequecny(1000~1100Hz).
 
Please, let me fix it and get a frequency response of the  filter.
 
Thanks.
 
Jason Lee
 
0 Kudos
Message 3 of 4
(3,872 Views)
Hi Jason,

I'm a bit confuse as to how you're actually building the waveforms that is going into B and C. They don't seem to be correct. It seems like you're building a 2D array of doubles, indexing the 2D array to a 1D array of doubles, converting the 1D array of doubles to a dynamic signal, converting the dynamic signal to  2D array of waveform, then finally getting a 1D array of waveform using delete from array. That's alot of steps!!!

You should take a look at Waveform VIs in Functions and Build Waveform (Analog Waveform) in LabVIEW help for more information on how to build a waveform from an array of doubles.

Regards,
Stanley Hu
National Instruments
Applications Engineering
http://www.ni.com/support
0 Kudos
Message 4 of 4
(3,830 Views)