Make frequency response analyser using frequency generator and counter
Hello
Can we make a frequency response analyser using a Frequency generator and frequency counter?
How to add modulation with it? Modulation frequency is to be varied as per the input to given to the carrier!
The outputs are Frequency, magnitude, and the phase as like solartron FRA.
somebody have an Idea for this
awaiting for the solution
thank you
"Thanks with regards "
by
..........Gireesh..........
Hello Gireesh,
You can use a function generator to generate frequencies and use the modulation tollkit and other tools availabe with LabVIEW to do the modulation part . Or you can use the analog output ports on the daq card to generate different frequency signals for the same purpose .This should pretty much serve your purpose.
http://zone.ni.com/devzone/cda/epd/p/id/5646
http://digital.ni.com/manuals.nsf/websearch/AF3615F31CE9656C862576070020B8F7
Similar Messages
-
Frequency Response Analyser: Error -1802 occurred
Hi,
I'm fairly new to Labview but feel I know most of the fundamentals.
I've been trying to convert the following bit of code from Matlab to Labview (I am aware 8.20 has a math script function but I don't have access to it). Please could someone have a look at my VI and possibly tell me why I am getting the 1802 error. It suggests that "(Hex 0xFFFFF8F6) Waveforms have different dt values." but I'm not sure what this means or how to fix it.
Also, if anyone has any constructive critisism of my methods for implementing the code then I would love to hear them.
Many thanks for your time in assisting me,
Ian Haigh
% routine for calculating Transfer Function
% signal is the array containing the measured signal
% sigs is the array containing the input sine wave
% sigc is the array containing the input cosine wave
clear;
freq=11.45;
sfreq=360*freq;
cycs=10;
a=0;
b=0;
i=1;
for t=0:1/sfreq:cycs/freq;
n=cycs*360+1;
ph=60;
signal=0.37*sin(2*pi*freq*t+ph*pi/180);
time(i)=t;
sigs=sin(2*pi*freq*t);
sigc=cos(2*pi*freq*t);
real(i)=signal.*sigs;
r=real(i);
comp(i)=signal.*sigc;
c=comp(i);
a=a+r;
b=b+c;
i=i+1;
end
a=(2*a-real(1)-real(n))/(n-1);
b=(2*b-comp(1)-comp(n))/(n-1);
R=sqrt(a*a+b*b)
ang=atan(b/a)*180/pi
Attachments:
Frequency Response Analyser v7.vi 1045 KBHi Ian,
It seems that you are attempting to use different dt in the waveforms, but I founded in this link two ways to avoid having this problem. Hope you find it useful. Thanks for using the forums!
http://digital.ni.com/public.nsf/websearch/C41966093C3D030F86256FF8007F8BF5?OpenDocument
NorSa
AE LATAM
NorSa
NI Applications Engineer Latin America
Para Soporte entra aquí -
Frequency Response Analyser or Impedance Spectroscopy
Hi
I am looking for a Labview program to allow the freq. response of say a
tuned circuit.
I will be using a GPIB Function Gen. From 1Hz to 10MHz and measuring the
peak-peak value across a shunt resistor that is in series with the tuned
circuit.
Thus as the frequency increases then the tuned circuit will respond
accordingly. If we take samples every 100Hz then we can produce a spectra
of the tune circuit.
I actually going to use this for measuring the char. of an electrochemical
cell.
Any Suggestions
WayneThanks Carlos
The latter method I did not think of but will try it.
Cheers
Wayne
"JuanCarlos" wrote in message
news:[email protected]..
> Wayne,
>
> Looks like a sweep sine analysis should give you a good idea about the
> frequency response. Make sure that you measure the input and output
> signals of the circuit; this way you can just compeir RMS values and
> get the frequency response.
>
> Another method that you may want to look into is a broad band
> frequency response. Basically you send white noise to the circuit;
> then you acquire the input noise and the output noise; the you
> calculate the FFTs of this data and compair it; after some averaging
> you get the frequency response graph of your dev
ice. LabVIEW has a VI
> called Frequency Response Function that does a large part of the job;
> together with the "Frequency Analysis of a Filted Design.vi" example
> you can get a good idea on how to perform this test.
>
> I hope this helps.
>
> Regards,
>
> Juan Carlos
> N.I. -
Frequency response at low frequency
I'm working on a bandpass filter, and I'd like to get the frequency response showing that the frequencies outside the lower and higher cutoff frequencies are being cut off. However, the correct plot is shown only when my cutoff frequencies are high (roughly from 1000-8000 hertz). When I use low cutoff frequences(roughly 4-5 hertz), the plot is incorrect. So how can I get the frequency response to my low cutoff frequencies? Thanks.
P.S. In the code, some parts are irrelevent. In the front panel, the only relevent part is the frequency response plot at the lower right corner, and the specs above it; in the block diagram, only the upper half(with IIR and FRF) is relevent. Thanks.
Attachments:
BME_Pressure_Sensor_V1.00.vi 591 KBHi Manson
There is a bug in your diagram since you connected the number of samples where you should have connected the sampling frequency.
The sampling frequency is related to the pace at which you take the measurement.
Usually, Fs = 1 / dT
where Fs is the sampling frequency and dT is the time interval.
It should work better.
In any case, to have a better resolution in the low frequency range of your spectrum computations, you have to increase the number of points of your data because there exist the following relationship between dF (space between 2 points in you spectrum), dT, and N (number of data points) :
dF = 1 / (2 x dT x N)
Doc-Doc
Doc-Doc
http://www.machinevision.ch
http://visionindustrielle.ch
Please take time to rate this answer -
How to make jar files run using java.exe and not javaw.exe
Hi ,
I am developing a project in which there is an GUI which inturn will call a console . I have made it into an jar file now.
Here comes the problem. When i run the jar files , i don't get a console. While going through this forum, i came to know that jar runs using javaw.exe and this stops it from bring the console up.
Please suggest me a way of running the jar file through java.exe or any other method by which i can get an new console poping up.
PS : i cannot start the application itself in a system console , because the Console mode is an added feature and it is not to be displayed every time but only when the user intends to.Thanks for the reply pbrockway2. But i think, i was not able to convey my problem properly.
I am supposed to start my application in a GUI mode ( No console are should be present at this point of time). Within the GUI , i have a option for working in the console ( i.e if console is choosen, then i start giving my output and take inputs from the console. I am trying to do this by just calling the "System.out "and "System.in" methods. )
Here is the problem. As i have started it through " jar " it would not have a associated console with it.
PS: i cannot have launching .bat file because that would result in my application having a console displayed at the very start of the application. I want the console to be displayed only when the user wants to start in console mode.
Please suggest me some ways of doing this. Can i create a console from my java program and then exit it. -
Web Service encoding response improperly using the plugin and ssl
We are having a problem with the response from a document style web service. The response is xml but the elements come back as "< element >" instead of <element>. The return variable is of type String.
Our setup is Iplanet(6.1) frontend using the wl-proxy plugin
to Weblogic 8.1. The webservice is using https. If we use port 7001 (not https) instead of https 443 it works fine.
It appears to me that the plugin when used with ssl has a bug.
In help would be greatly appreciated. This situation did not occur using wls6.1. When we migrated to 8.1 that is when it started happening.
Other screnarios tested: When going right at weblogic 8.1 using ssl no problem.Hi
When you have generated the client proxy classes from NW DS you can then include the .jar file into your applets code. Then, to actually execute the web service you can use the following code (for example)
String logicalPort = "<logical port defined in WSDL>";
<generate service interface> service = new <generated service implementation>();
<generated proxy class> port = (<generated proxy class>)service.getLogicalPort(logicalPort, <generated proxy class>.class);
String param = "myval";
String result = port.<method>(param);
where everything in the <> represents the relevant client classes that have been generated by NW DS. Bear in mind that you can either create deployed proxies or standalone proxies. Deployed proxies get deplyed to the J2EE server and need to be looked up via JNDI. The implementation classes are not included as part of the proxy generation.
Standalone proxies are created with the implementation classes included and can therefore be included in ANY java application.
I hope this helps
Darrell -
Can NI 9263 and NI 9219 used to generate and acquirinfg ac signal
nripen kalita
Hi Nripen,
you still write very unspecific questions, so you will receive very unspecific answers...
Open the file functions palette. You will find a lot of functions to save data to files!
Best regards,
GerdW
CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
Kudos are welcome -
Hello,
I got a fundamental problem with the correlation of the timer settings of the DAQmx driver in DIAdem DAQ. I dont know where the problem is located exactly but maybe someone can help me if I explain what happens:
In my configuration I use some analog inputs from a USB 6259 with 20kHz samplerate and two counter inputs for frequency measuring via DAQmx in DIAdem DAQ.
There has to be an extra DAQin block for the analog inputs and the counter inputs with also an extra "Clock"-block for each of them. The clock of the analog inputs runs with 20kHz hardware clock and the other one with 10Hz software clock because the hardware clock mode is not allowed or supported.
My problem is the display refresh rate in VIEW. If the counter signal has no input (because the measured system is not active) the display seems to wait for any input and doesnt refresh the analog values on screen. If the system is active and a rectangle signal is seen by the counter in, the display refresh rate raises and the frequency value is displayed more or less accurate. Has that something to do with the counter timeout setting in the DAQin driver options block (marked in the attached image)? If i decrease the timeout, the display refresh rate gets better but not as good as without using the counter inputs in my DAQ diagram. I think the counter input is not as easy to handle as the usual analog inputs... I only want to see the measured frequency on the display during the measurement without getting any influence on the analog input channels and their displaying.
The other problem is the display and the measurement of the frequency itself. If i check the function of the counter input in the Meas. & Automation Explorer the frequency is display correct without any dropouts or something like that. The signal I measure in DIAdem on the other side looks quite bad because there are spikes of some MHz and even more although the measured range is between 20 and 80Hz!
Has anybody made similar experiences?
Regards
S. Zimmer
Attachments:
probs.png 112 KBHi there,
it seems that german is your mothertongue, so I'll reply on german.
Digitale Eingänge müssen Software getaktet werden, da nur analoge Eingänge Hardware-Takt Unterstützung haben!
Sie können den Hardware-Takt nur mit analogen Eingängen einsetzen, die, von einem Timer gesteuert, gepuffert Werte einlesen können. Digitale Größen verarbeitet der Hardware-Takt nicht.
Mit dem Hardware-Takt erreichen Sie sehr hohe Abtastraten. DIAdem überträgt die gewünschte Rate und die Kanalliste auf die Karte und startet die Messung. Die Hardware erfasst die Daten selbstständig und sammelt die Daten. Der PC ist nur für den Abtransport und die Weiterverarbeitung verantwortlich.[...]
Da digitale Signale nicht im Hardware-Takt erfasst werden können, müssen diese Signale parallel in Software-Takten ermittelt werden. Dies kann zu zeitlichen Verschiebungen führen, weil sowohl beim Start der Messung als auch während der Messung keine Synchronisierung der Timer im PC und im Messgerät erfolgen kann. Da zwei Timer nie ganz genau gleichzeitig gestartet werden und auch nie ganz genau gleich schnell laufen, stimmen die Zeiten in den Zeitkanälen nach der Messung nicht genau überein. Üblicherweise betragen die Abweichungen einige Millisekunden.[...]
Weiters hab ich mal n Versuchsaufbau für die Frequenzmessung gemacht. Ich konnte problemlos Frequenzen messen...
Am besten du schilderst kurz den Aufbau deiner Messung, was du messen möchtest und wie du den Max konfiguriert hast.
Mfg Markus -
Use of SUM and COUNT with GROUP BY
All,
I have a set like below:
State DOB StartDt EndDt Desc Category MemberID SubID Code
NC 2003-01-30 2014-01-01 2014-01-31 Child B 123456 2 38
NC 2003-01-30 2014-01-01 2014-01-31 Child B 123456 2 39
NC 2003-01-30 2014-02-01 2014-05-31 Child B 123456 2 38
NC 2003-01-30 2014-02-01 2014-05-31 Child B 123456 2 39
NC 2003-01-30 2014-06-01 2014-07-31 Child B 123456 2 38
NC 2003-01-30 2014-06-01 2014-07-31 Child B 123456 2 39
NC 2014-01-17 2014-01-01 2014-07-31 Infant S 456789 1 49
NC 2014-02-04 2014-02-01 2014-07-31 Infant S 246376 3 49
-- MemberID and SubID identify 1 member
-- Member 123456 has 2 distinct "Code" i.e. 38,39 but each code has different "StartDt" and "EndDt"
-- Expected Result
State Desc Category CountOfDistinctCode TotalMonthsEnrolled
NC Child B 2 (38 and 39 for same member) 7 months (1 + 4 + 2) (Difference between StartDt and EndDt:1 (1/31/2014 - 1/1/2014) + 4 (5/31/2014 - 2/1/2014).. )
NC Infant S 2 (Same code 49 but different member) 13 months (7+6) (7/31/2014 - 1/1/2014 = 7 months + 7/31/2014 - 2/1/2014 = 6 months)
I tried doing a count of distinct Code and the summing up the member months, grouped by State, Desc, Category, but I am not able to get 2 and 7 for child, it somehow calculates Months as 14 (7+7). Please let me know what you guys suggest.OK, so we need a different approach. We need a table of numbers, a concept that I discuss here:
http://www.sommarskog.se/arrays-in-sql-2005.html#numbersasconcept
(Only read down to the next header.)
We join the numbers to temp table with BETWEEN over the numbers. Then we count the distinct combination of member ID and number.
We also need to make an adjustment how to build the string for the DISTINCT. I initially assumed that your columns were integer, why I used str() which produces a right-adjusted fixed-length string of 10 characters. (The default, you can specify a different
width as the second parameter.) But str() expects a float value as input, and will fail if for instance member id would be non-numeric. We cannot just concatenate the strings, since in that case (MemberID, SubID) = ('12345', '61') would be
the same as ('123456', '1'). So we must convert to char to get fixed length. All that said, and some more test data added, here is a solution:
CREATE TABLE #Test
[State] CHAR(2),
DOB DATE,
StartDt DATE,
EndDt DATE,
[Desc] VARCHAR(8),
Category CHAR(1),
MemberID VARCHAR(10),
SubID VARCHAR(2),
Code VARCHAR(5)
INSERT INTO #Test
VALUES
('NC', '20130130', '20140101', '20140120', 'Child', 'B', '123456', '2', '38'),
('NC', '20130130', '20140121', '20140131', 'Child', 'B', '123456', '2', '39'),
('NC', '20130130', '20140201', '20140531', 'Child', 'B', '123456', '2', '38'),
('NC', '20130130', '20140401', '20140613', 'Child', 'B', '123456', '2', '39'),
('NC', '20130130', '20140601', '20140731', 'Child', 'B', '123456', '2', '38'),
('NC', '20130130', '20140614', '20140731', 'Child', 'B', '123456', '2', '39'),
('NC', '20130129', '20140601', '20140731', 'Child', 'B', '9123456', '1', '38'),
('NC', '20130129', '20140614', '20140831', 'Child', 'B', '9123456', '1', '39'),
('NC', '20140117', '20140101', '20140731', 'Infant', 'S', '456789', '1', '49'),
('NC', '20140204', '20140201', '20140731', 'Infant', 'S', '246376', '3', '49')
SELECT * FROM #Test ORDER BY MemberID, StartDt, EndDt
SELECT
[State]
, [Desc]
, Category
, COUNT(DISTINCT convert(char(10), MemberID) +
convert(char(2), SubID) +
convert(char(5), Code)) AS TotalCnt
, COUNT(DISTINCT convert(char(10), MemberID) +
convert(char(2), SubID) +
str(N.Number)) AS CalMonths
FROM #Test t
JOIN Numbers N ON N.Number BETWEEN
datediff(MONTH, '19000101', t.StartDt) AND
datediff(MONTH, '19000101', t.EndDt)
GROUP BY [State], [Desc], Category
go
DROP TABLE #Test
Erland Sommarskog, SQL Server MVP, [email protected] -
Using MODEL clause and COUNT for not numeric data columns....
Hi ,
Is it possible somehow to use the COUNT function to transform a non-numeric data column to a numeric data value (a counter) and be used in a MODEL clause....????
For example , i tried the following in the emp table of SCOTT dataschema with no desired result...
SQL> select deptno , empno , hiredate from emp;
DEPTNO EMPNO HIREDATE
20 7369 18/12/1980
30 7499 20/02/1981
30 7521 22/02/1981
20 7566 02/04/1981
30 7654 28/09/1981
30 7698 01/05/1981
10 7782 09/06/1981
20 7788 18/04/1987
10 7839 17/11/1981
30 7844 08/09/1981
20 7876 21/05/1987
30 7900 03/12/1981
20 7902 03/12/1981
10 7934 23/01/1982
14 rows selected Now , i want to use the MODEL clause in order to 'predict' the number of employees who were going to be hired in the 1990 per deptno...
So , i have constructed the following query which , as expected, does not return the desired results....
SQL> select deptno , month , year , count_
2 from
3 (
4 select deptno , to_number(to_char(hiredate,'mm')) month ,
5 to_number(to_char(hiredate , 'rrrr')) year , count(ename) count_
6 from emp
7 group by deptno , to_number(to_char(hiredate,'mm')) ,
8 to_number(to_char(hiredate , 'rrrr'))
9 )
10 model
11 partition by(deptno)
12 dimension by (month , year)
13 measures (count_ )
14 (
15 count_[1,1990]=count_[1,1982]+count_[11,1982]
16 )
17 /
DEPTNO MONTH YEAR COUNT_
30 5 1981 1
30 12 1981 1
30 2 1981 2
30 9 1981 2
30 1 1990
20 4 1987 1
20 5 1987 1
20 4 1981 1
20 12 1981 1
20 12 1980 1
20 1 1990
10 6 1981 1
10 11 1981 1
10 1 1982 1
10 1 1990 As you see , the measures for the 1990 year is null...because the measure(the count(deptno)) is computed via the group by and not by the MODEL clause...
How should i transform the above query... so as the "count_[1,1982]+count_[11,1982]" will return non-null results per deptno...????
Thanks , a lot
SimonConnected to Oracle Database 10g Express Edition Release 10.2.0.1.0
Connected as hr
SQL>
SQL> SELECT department_id, MONTH, YEAR, count_
2 FROM (SELECT e.department_id
3 ,to_number(to_char(e.hire_date, 'mm')) MONTH
4 ,to_number(to_char(e.hire_date, 'rrrr')) YEAR
5 ,COUNT(e.first_name) count_
6 FROM employees e
7 WHERE e.department_id = 20
8 GROUP BY e.department_id
9 ,to_number(to_char(e.hire_date, 'mm'))
10 ,to_number(to_char(e.hire_date, 'rrrr')));
DEPARTMENT_ID MONTH YEAR COUNT_
20 8 1997 1
20 2 1996 1
SQL> --
SQL> SELECT department_id, MONTH, YEAR, count_
2 FROM (SELECT e.department_id
3 ,to_number(to_char(e.hire_date, 'mm')) MONTH
4 ,to_number(to_char(e.hire_date, 'rrrr')) YEAR
5 ,COUNT(e.first_name) count_
6 FROM employees e
7 WHERE e.department_id = 20
8 GROUP BY e.department_id
9 ,to_number(to_char(e.hire_date, 'mm'))
10 ,to_number(to_char(e.hire_date, 'rrrr')))
11 model
12 PARTITION BY(department_id)
13 dimension BY(MONTH, YEAR)
14 measures(count_)(
15 count_ [1, 1990] = count_ [2, 1996] + count_ [8, 1997]
16 );
DEPARTMENT_ID MONTH YEAR COUNT_
20 8 1997 1
20 2 1996 1
20 1 1990 2
SQL> ---
SQL> SELECT department_id, MONTH, YEAR, count_
2 FROM (SELECT e.department_id
3 ,to_number(to_char(e.hire_date, 'mm')) MONTH
4 ,to_number(to_char(e.hire_date, 'rrrr')) YEAR
5 ,COUNT(e.first_name) count_
6 FROM employees e
7 GROUP BY e.department_id
8 ,to_number(to_char(e.hire_date, 'mm'))
9 ,to_number(to_char(e.hire_date, 'rrrr')))
10 model ignore nav
11 PARTITION BY(department_id)
12 dimension BY(MONTH, YEAR)
13 measures(count_)(
14 count_ [1, 1990] = count_ [2, 1996] + count_ [8, 1997]
15 );
DEPARTMENT_ID MONTH YEAR COUNT_
100 8 1994 2
30 12 1997 1
100 3 1998 1
30 7 1997 1
5 1999 1
30 12 1994 1
30 11 1998 1
30 5 1995 1
100 9 1997 2
100 12 1999 1
30 8 1999 1
1 1990 0
30 1 1990 0
100 1 1990 0
90 9 1989 1
20 8 1997 1
70 6 1994 1
93 rows selected
SQL> -
Looking to use BPEL Instance and counter inside of a transformation
I'm trying to find a way to include the BPEL instance and a counter within a BPEL transformation to create a unique key.
Example, picking up files with multiple lines and no unique keys, each file is processed as a unique BPEL instance (key 1), and would like to use the row number (of the file, but not specified in the file) as the second key.
My process takes a file from a file adapter and loads it into a database adapter if that helps.
Any ideas would be appreciated.We ended up finding a Node-set Function -> Position to return the position inside of the dataset.
-
The following SELECT statement will yield a report showing 3 days of the week and the number of "Msgs" that occurred for each day. How can I make it so that there's a 3rd column showing how many of those "Msgs" were "TxMsgs"
(where IsTxMsg=1)
DECLARE @Msgs TABLE (MsgId INT, DayOfWeek VARCHAR(5), IsTxMsg INT)
INSERT INTO @Msgs VALUES (1, 'Mon', 1)
INSERT INTO @Msgs VALUES (2, 'Mon', 0)
INSERT INTO @Msgs VALUES (3, 'Tue', 1)
INSERT INTO @Msgs VALUES (4, 'Tue', 0)
INSERT INTO @Msgs VALUES (5, 'Wed', 1)
INSERT INTO @Msgs VALUES (6, 'Wed', 0)
INSERT INTO @Msgs VALUES (7, 'Wed', 0)
SELECT DayOfWeek, COUNT(*) FROM @Msgs
GROUP BY DayOfWeek
ORDER BY DayOfWeek
Thanks!
-- CurtDECLARE @Msgs TABLE (MsgId INT, DayOfWeek VARCHAR(5), IsTxMsg INT)
INSERT INTO @Msgs VALUES (1, 'Mon', 1)
INSERT INTO @Msgs VALUES (2, 'Mon', 0)
INSERT INTO @Msgs VALUES (3, 'Tue', 1)
INSERT INTO @Msgs VALUES (4, 'Tue', 0)
INSERT INTO @Msgs VALUES (5, 'Wed', 1)
INSERT INTO @Msgs VALUES (6, 'Wed', 0)
INSERT INTO @Msgs VALUES (7, 'Wed', 0)
SELECT DayOfWeek, COUNT(*) cnt1, SUM(Case when IsTxMsg=1 Then 1 Else 0 End) cnt2 FROM @Msgs
GROUP BY DayOfWeek
ORDER BY DayOfWeek -
Frequency response function modal analysis
After reviewing the signal analysis functions in DIAdem I have realized them to be a bit limited for modal analysis. I have a couple hammer impact tests that I need to process a frequency response function for, and since this is brand new to me I'm not seeing anything in the embedded function list that is going to help me. I was wondering if anyone out there has a couple of pointers on generating a FRF plot for modal hammer impact tests. I did notice that the ChnFFT2 command allows me to generate a transfer function, coherance, and FFT Cross Spectrum channels for analysis. Though I might be confused and this may be everything I need. My FFT2 settings are below.
[code]
FFTIndexChn = 0
FFTIntervUser = "NumberStartOverl"
FFTIntervPara(1) = 1
FFTIntervPara(2) = 2500
FFTIntervPara(3) = 1
FFTIntervOverl = 0
FFTNoV = 0
FFTWndFct = "Rectangle"
FFTWndPara = 10
FFTWndChn = "[1]/Time axis"
FFTWndCorrectTyp = "No"
FFTAverageType = "No"
FFTAmplFirst = "Amplitude"
FFTAmpl = 1
FFTAmplType = "PSD"
FFTCrossSpectr = 1
FFTCoherence = 1
FFTTransFctType = "Spectrum H0"
FFTCrossPhase = 0
FFTTransPhase = 0
Call ChnFFT2("[1]/Time axis","'[1]/H_1' - '[1]/H_4'","'[1]/A_1' - '[1]/A_4'") '... XW,ChnNoStr1,ChnNoStr2
[/code]Standard modal analysis has something denoted as FRF. I have a labview application note "The Fundamentals of FFT-Based Signal Analysis..."
Frequency Response Function
The frequency response function (FRF) gives the gain and phase versus frequency of a network and is typically computed as
where A is the stimulus signal and B is the response signal.
The frequency response function is in two-sided complex form. To convert to the frequency response gain (magnitude) and the frequency response phase, use the Rectangular-To-Polar conversion function. To convert to single-sided form, simply discard the second half of the array.
You may want to take several frequency response function readings and then average them. To do so, average the cross power spectrum, SAB(f), by summing it in the complex form then dividing by the number of averages, before converting it to magnitude and phase, and so forth. The power spectrum, SAA(f), is already in real form and is averaged normally.
Refer to the Frequency Response and Network Analysis topic in the LabVIEW Help (linked below) for the most updated information about the frequency response function.
http://zone.ni.com/devzone/cda/tut/p/id/4278
So the options for FFT2 are
No
DIAdem does not calculate a transfer frequency response.
Spectrum H0
DIAdem calculates the transfer frequency response by dividing the FFT of the output signal (A) by the input signal (E): FFT(A)/FFT(E). DIAdem averages the amplitudes of the individual transfer functions.
Spectrum H1
DIAdem specifies the cross spectrum and the auto spectrum for each signal pair. DIAdem calculates the transfer frequency response by dividing the averaged spectra: Middle(cross(A,E))/middle(auto(E)). DIAdem does not average phases, because phases can delete each other.
Spectrum H2
DIAdem specifies the cross spectrum and the auto spectrum for each signal pair. DIAdem calculates the transfer frequency response by dividing the averaged spectra: Middle(auto(A))/middle(cross(E,A))
If you assign the values Spectrum H1 or Spectrum H2 to the variable FFTTransFctType, DIAdem averages and divides the cross spectra and the auto spectra and calculates the amplitudes last.
Which state auto spectrum when FRF is power spectrum. -
Frequency response - sound and vibration
Hi,
I need to find the frequency response of the DUT. I am using the NI example from sound and vibration toolkit to do
so (LabVIEW 8.5\examples\Sound and Vibration\Getting Started\SVXMPL_Getting Started with Swept Sine (DAQmx).vi) now my problem is
to tabulate the phase difference between the stimulus and response when i do it i get constant values. Even though i dont give any response
signal to the channel i get the wave same as stimulus, is it suppose to be like that !!!!!!!!!! I will attach my vi so that it gives the idea where
i am measuring the phase difference pls check it and help me with this.....thank you in advance.
Attachments:
DAQ Freq resp (req)_trial.vi 121 KBWhat is the DAQ card you are using for executing this Frequency Response?
This DAQ error is related to the output frequency of your signal higher than the possible output rate of the card. Basically, you are trying to update at a rate higher than the capability of the card.
For doing Frequency response, generally you need to have a NI DSA card (446x/447x/449x) with one Analog output and two analog inputs (minimum). Generate the swept sine signal from the Analog output channel, give this signal as input to your DUT and also to one of the Analog input channel. This input to your Analog input channel will act as your Reference signal. Then the response signal from your DUT, connect it to another Analog input channel. You would get a very good response results.
The reason why you need to have a DSA board is that, for doing Frequency response, we need to acquire both high frequency and low frequency components without much loss. This is possible only if your DAQ board has a higher dB value (in the range of >110dB) which is present only in DSA boards.
I have completed a Frequency Response Analysis just a week back with the same example programs. So there wont be any problem with that vi.
Regards,
Sundar Ganesh -
This is regarding clarificat​ion regarding frequency responce analysis
This is regarding clarification regarding frequency responce analysis
using
NI
PCI 4551 add-on card, especially in the singal generation part for
stimulating
the unit under test.
1. Is it possible to generate sine, step, ramp and arbitrary waveforms
using
this particular card?
2. Ifso what is the range of frequencies that can be possible to
generate
using
PCI 4551 card?( we may require from 1mHz to 2kHZ)
3. And what is the maximum amplitude of the generated signal for full
scale
value?
4. Whether real-time octave analysis for NI DSA software can serve the
purpose
of following tests: Frequency response test, Step response test,
Velocity
test,
Strain Measurement, Linearity Test, Cyclic test.
Or any other software tool is required?
Regards,
Sreedhar THi SreedharT,
In response to your questions, I've included my responses. I highly advise referencing the NI-4551 User Manual for more details.
1. Is it possible to generate sine, step, ramp and arbitrary waveforms
using this particular card?
NI-DSA includes functions to generate standard white noise, pink noise, band-limited noise, periodic white noise, single or dual-tone sine, and chirp signals. For step, ramp, and any other arbitrary waveforms you can use NI-DSA to define and generate an arbitrary analog output signal.
There is a good example which ships with NI-DSA that demonstrates how to generate arbitrary waveforms on the NI-4551. You can find this example in the NI-DSA function palette in LabVIEW under Application Examples>>Advanced>>Arbitrary Output Example.
By default, this example outputs a swept sine wave, but you can change the waveform to whatever you need.
2. If so, what is the range of frequencies that can be possible to
generate using PCI 4551 card?( we may require from 1mHz to 2kHZ)
The maximum output frequency you can generate with NI-DSA is 23 kHz. This limit is governed by the maximum output sampling rate of 51.2 kS/s. Because the digital-to-analog converters on the NI 455x DSA devices feature sharp roll-off, anti-imaging filters, you can generate a spectrally pure sine tone up to 23 kHz with minimal quantization noise, so when using the NI 455x devices, you do not need to worry about the output signal becoming choppy or noisy when approaching the Nyquist frequency.
The minimum frequency you can set is 0.1 Hz. This is limited by the finite size of the output buffer and the minimum update rate for the DAC. The output buffer is limited to 4,096 samples, and the DAC must maintain a minimum rate of 1.25kS/s for accurate results.
In Octave Analyzer Mode, when you're inputting a certain frequency, keep in mind the input range differs for each analysis type and the two configurable center frequencies. I've included the frequency ranges for a single channel below.
1/1-octave analysis
center frequency fs=25.6 kHz:
High: 8 kHz
Low: 16 Hz
fs=51.2 kHz
High: 16 kHz
Low: 31.5 Hz
1/3-octave analysis
fs=25.6 kHz
High: 10 kHz
Low 12.5 Hz
fs=51.2 kHz
High: 20 kHz
Low: 25 Hz
1/12-octave analysis
fs=25.6 kHz
High: 10.68 kHz
Low: 11.05 Hz
fs=51.2 kHz
High: 5.34 kHz
Low: 5.52 Hz
3. And what is the maximum amplitude of the generated signal for full
scale value?
The maximum amplitude is equal to the voltage range for the selected output channel.
4. Whether real-time octave analysis for NI DSA software can serve the
purpose of following tests: Frequency response test, Step response test,
Velocity test, Strain Measurement, Linearity Test, Cyclic test.
Or any other software tool is required?
The NI-DSA Real-Time Octave Analysis software add-on for NI-DSA supports fractional-octave analysis for 1/1, 1/3, and 1/12 octave analysis, level measurements, and A-, B-, and C-weighting. You can do octave, level, or both octave and level measurements, and have the additional option of specifying the weighting if required. This is all that can be done in real-time.
To perform a frequency response test, it is preferable to use the swept-sine analysis mode of the NI-4551 rather than a broadband FFT-based frequency response. Swept-sine analysis provides two main advantages over a broadband frequency response measurement in which all frequencies are excited and measured simultaneously. The first is a wider dynamic range. The second is flexible measurements of signal distortion and nonlinearity. For more information of swept-sine analysis, please refer to the NI-DSA Software Manual downloadable off our web site. http://www.ni.com/
For the Velocity test, Strain Measurement, Linearity Test, and Cyclic Test I should ask for more information about each test before attempting an answer. However, to answer your question, there are no methods I know of in NI-DSA that would directly perform these tests. In contrast with that answer, you may be surprised this functionality may be included with a LabVIEW development environment.
Let me know if you have further questions or this does not resolve your issue!
Chad AE
Applications Engineer
Maybe you are looking for
-
Hi, Pls tell me whats wrong with this stmt which is giving null values . SELECT Aaufnr Bgstri Bgstrs Aautyp Aloekz Akokrs A~abkrs into corresponding fields of table it_aufk FROM AUFK AS A INNER JOIN AFKO AS B
-
How to active my PR00as is comming in active
my PR00is inactive wen i m raising the sales order whta is the procedure to make it active
-
Use of scope resolution operator in PHP development example
I am relatively new to OOP in general so this question may sound dumb but In this documentation: Query Performance and Prefetching To quote that text, " The $db->setPrefetch() call is used to set the prefetch value. The microtime() calls are used to
-
To map batch number to serial number for inbound message type WMMBXY
Hi Gurus, Can anybody guid me how to map batch number to serial number for goods receipt inbound EDI 861 message type WMMBXY . And can tell me how to assign serial number in Purchase Order for serialized product for perticuler Batch number.
-
Servlet run in tomcat server 5.5
Hello I am new in developing the struts project.Any one help for my questtion My question is? I have develop the struts project in struts using eclipse and I have uploaded the files into the server.The Servlet file not working Thanks in advance