05-10-2015 05:24 AM
Hi,
I have already asked a question about my problem quite some time ago, but I figured I had got everything wrong, so i created this new topic:
I have stored the data that I had acquired through DAQ and now I want to filter the data.
the data I need to filter is the one entering the BUILD WAVEFORM vi (NVB4 and NVB3 are data from DAQ). the sampling rate is 10000 and the freq of the signal, of which I stored the data, was 90Hz. yet the output doesn't seem to be right, ( I want to use different LP and BP filters on it). please tell me if you know what i have done wrong.
thanks in advance
PS:I used .txt format to upload the files
05-10-2015 08:54 AM
05-10-2015 12:01 PM - edited 05-10-2015 12:06 PM
@mikeporter wrote:
There is a built-in function on the array palette that will do that for you (reorder array, I think).
Of course since the loop iteration numbers are hardwired and completely unrelated to the size of the 2D array, we don't know what you actually want. You might have to take an array subset first based on the constants wired to N to get the same result.
05-10-2015 02:22 PM
05-10-2015 11:44 PM
thanks for the vi. I didn't know there was such a vi. but about the filter and waveform: the output for the waveform is nothing like a sinusoidal waveform. so regardless of what filter I use, it doesn't work. I'm new to labview, so please forgive me if my problem seems stupid.
05-11-2015 12:31 AM
The VI you have attached looks quite different to what you show in the picture. There is also a missing subVI (it is NOT a good idea to name subVI similar to built-in functions i.e. split 1D array). Please provide the subVI.
You seem to randomly use either graphs or charts, as if they serve the same function. Your loops for the ptbypt filters are overly complicated. Instead of two shift registers, all you need is autoindexing. Try it.
Still it does not seem reasonable to use ptbypt routines if the entire array is available at once.
Please explain what kind of filtering you are trying to do.
05-11-2015 01:06 AM - edited 05-11-2015 01:09 AM
altenbach
sorry for the wrong attachment. The vi I had attached at first was something on which I tried a few things and I forgot to undo the changes( I made a lot of mistakes in it) , here is the one I'm working on (edited version of the first picture). And the pt by pt filters are for the sake of online filtering (since I'll be doing this for data coming from DAQ as well). Also here's what the subvi does:
thank you for your time
05-11-2015 01:19 AM
05-11-2015 01:34 AM - edited 05-11-2015 01:37 AM
@erfan6511 wrote:
Also here's what the subvi does:
Here's equivalent code of your subVI using reshape array... arguably simpler. 😄
(there are a few other ways to do this. You can omit the "sign" and "add" if the number of points is guaranteed to be an integer multiple of the number of channels)
You still haven't explain what kind of "filtering" you are trying to do.
05-11-2015 01:46 AM
again thank you for the help on the subVI,it really simplified the vi. but my problem is in making the waveform. here i can't create the waveform i should be recieving which is a sinusoidal waveform, and when I'm getting real time data, when I use lowpass filter with frequencies smaller than the signal, it still shows the original signal without any change. Is it not enough to make a waveform out of the array that I've acquired?
if I still am not conveying my problem clearly,please tell me,I'll try my best to be more clear.
thanks