Author
|
Matrix Ltd
|
Version
|
1.2
|
Category
|
DSP Inputs
|
Waveform Generator component
A waveform generator component designed to plug into the DSP system component and allow several discreet waveforms to be generated. Functions available include: Sine, Cosine, Square, Pulse, Triangle, Sawtooth, Noise, Custom
Component Source Code
Please click here to download the component source project: FC_Comp_Source_DSP_Wave_Gen.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_DSP_Wave_Gen.fcfx
Detailed description
No detailed description exists yet for this component
Examples
Basic Sine Wave Generator
FreqGen
The frequency is controlled by adjusting the potentiometer on the panel.
The frequency generator period is controlled using the Period Offset property and/or the SetOffset component macro. The Offset value is the LUT index multiplier so a offset of 3.0 will only read every 3 values of the waveform to provide 1/3 of the period and generate 3 x the frequency. As the waveform period is being reduced there is potential for the signal to start to become less defined and more stepped.
Multi Wave Signal Generator
Switch-able mode frequency generator example file generating different waveforms depending on the value on pins RB0 and RB1.
0 = Sine, 1 = Square, 2 = Triangle, 3 = SawTooth
FreqGenMulti
The frequency is controlled by adjusting the potentiometer on the panel, the waveform is controlled by adjusting the switches on the panel.
Macro reference
|
Generate
|
Assigns a single value to the specified buffer from the selected waveform data. Each call will read the next value from the waveform and will wrap correctly at the end of the data period.
|
- VOID
|
Return
|
|
ModifyPhaseOffset
|
Shifts the output phase by the specified absolute angle in degrees.
|
- FLOAT
|
PhaseOffset
|
Phase offset in degrees
|
- BOOL
|
Absolute
|
0=Relative offset to current o/p 1=Absolute offset to initial o/p
|
- VOID
|
Return
|
|
GenerateArray
|
Fills the output buffer with the selected waveform data. If the buffer is smaller or larger then the waveform data period then the data passed will follow on correctly for subsequent cycles.
|
- VOID
|
Return
|
|
ModifyFrequency
|
Sets the frequency output rate by altering the period offset to a new value.
|
- FLOAT
|
OffsetRate
|
0.2=F/5 0.5=F/2 1.0=F 1.5=F*1.5 2.0=F*2
|
- VOID
|
Return
|
|
SetOffset
|
|
- UINT
|
Offset
|
|
- VOID
|
Return
|
|
GetOffset
|
|
- UINT
|
Return
|
Property reference
|
Properties
|
|
Buffer Size
|
Number of individual elements the buffer can store, default 1.
|
|
Buffer Type
|
Sets the buffer data type.
|
|
Waveform
|
|
Type
|
Waveform type selection
|
|
Amplitude
|
Waveform amplitude or volume
|
|
Offset
|
Waveform DC offset
|
|
Calculate Data
|
Yes = Allows Sine and Cosine data to be generated using a mathmatical floating point calculation, provides much better resolution at the cost of processing performance. No = Allows Sine and Cosine data to be generated ahead of run time, provides fixed resolution output but is fast and efficient to generate.
|
|
Samples
|
Waveform sample count, the number of data points in the stored cyclic wave look up table.
|
|
Start Phase Angle
|
Waveform phase, the angle in degrees or sample in the wave to start streaming from
|
|
Data
|
The raw waveform data
|
|
Period Offset
|
The initial amount that the index increments through the LUT data when reading the stored waveform. 0.2 = Frequency / 5 0.5 = Frequency / 2 1.0 = Original Frequency 1.5 = Frequency * 1.5 2.0 = Frequency * 2
|
|
Sample Period
|
Degrees per default sample offset period
|
|
Frequency Calculation
|
|
Sample Rate (hz)
|
Allows the sample rate to be entered to allow some basic calculations
|
|
Period (s)
|
The length of time in seconds that the wave period will cover at the specified sample rate
|
|
Frequency (hz)
|
The repeat frequency of the wave at the specified sample rate
|
==Macro reference==
|
Generate
|
Assigns a single value to the specified buffer from the selected waveform data. Each call will read the next value from the waveform and will wrap correctly at the end of the data period.
|
- VOID
|
Return
|
|
ModifyPhaseOffset
|
Shifts the output phase by the specified absolute angle in degrees.
|
- FLOAT
|
PhaseOffset
|
Phase offset in degrees
|
- BOOL
|
Absolute
|
0=Relative offset to current o/p 1=Absolute offset to initial o/p
|
- VOID
|
Return
|
|
GenerateArray
|
Fills the output buffer with the selected waveform data. If the buffer is smaller or larger then the waveform data period then the data passed will follow on correctly for subsequent cycles.
|
- VOID
|
Return
|
|
ModifyFrequency
|
Sets the frequency output rate by altering the period offset to a new value.
|
- FLOAT
|
OffsetRate
|
0.2=F/5 0.5=F/2 1.0=F 1.5=F*1.5 2.0=F*2
|
- VOID
|
Return
|
|
SetOffset
|
|
- UINT
|
Offset
|
|
- VOID
|
Return
|
|
GetOffset
|
|
- UINT
|
Return
|
Property reference
|
Properties
|
|
Buffer Size
|
Number of individual elements the buffer can store, default 1.
|
|
Buffer Type
|
Sets the buffer data type.
|
|
Waveform
|
|
Type
|
Waveform type selection
|
|
Amplitude
|
Waveform amplitude or volume
|
|
Offset
|
Waveform DC offset
|
|
Calculate Data
|
Yes = Allows Sine and Cosine data to be generated using a mathmatical floating point calculation, provides much better resolution at the cost of processing performance. No = Allows Sine and Cosine data to be generated ahead of run time, provides fixed resolution output but is fast and efficient to generate.
|
|
Samples
|
Waveform sample count, the number of data points in the stored cyclic wave look up table.
|
|
Start Phase Angle
|
Waveform phase, the angle in degrees or sample in the wave to start streaming from
|
|
Data
|
The raw waveform data
|
|
Period Offset
|
The initial amount that the index increments through the LUT data when reading the stored waveform. 0.2 = Frequency / 5 0.5 = Frequency / 2 1.0 = Original Frequency 1.5 = Frequency * 1.5 2.0 = Frequency * 2
|
|
Sample Period
|
Degrees per default sample offset period
|
|
Frequency Calculation
|
|
Sample Rate (hz)
|
Allows the sample rate to be entered to allow some basic calculations
|
|
Period (s)
|
The length of time in seconds that the wave period will cover at the specified sample rate
|
|
Frequency (hz)
|
The repeat frequency of the wave at the specified sample rate
|
==Macro reference==
|
Generate
|
Assigns a single value to the specified buffer from the selected waveform data. Each call will read the next value from the waveform and will wrap correctly at the end of the data period.
|
- VOID
|
Return
|
|
ModifyPhaseOffset
|
Shifts the output phase by the specified absolute angle in degrees.
|
- FLOAT
|
PhaseOffset
|
Phase offset in degrees
|
- BOOL
|
Absolute
|
0=Relative offset to current o/p 1=Absolute offset to initial o/p
|
- VOID
|
Return
|
|
GenerateArray
|
Fills the output buffer with the selected waveform data. If the buffer is smaller or larger then the waveform data period then the data passed will follow on correctly for subsequent cycles.
|
- VOID
|
Return
|
|
ModifyFrequency
|
Sets the frequency output rate by altering the period offset to a new value.
|
- FLOAT
|
OffsetRate
|
0.2=F/5 0.5=F/2 1.0=F 1.5=F*1.5 2.0=F*2
|
- VOID
|
Return
|
|
SetOffset
|
|
- UINT
|
Offset
|
|
- VOID
|
Return
|
|
GetOffset
|
|
- UINT
|
Return
|
Property reference
|
Properties
|
|
Buffer Size
|
Number of individual elements the buffer can store, default 1.
|
|
Buffer Type
|
Sets the buffer data type.
|
|
Waveform
|
|
Type
|
Waveform type selection
|
|
Amplitude
|
Waveform amplitude or volume
|
|
Offset
|
Waveform DC offset
|
|
Calculate Data
|
Yes = Allows Sine and Cosine data to be generated using a mathmatical floating point calculation, provides much better resolution at the cost of processing performance. No = Allows Sine and Cosine data to be generated ahead of run time, provides fixed resolution output but is fast and efficient to generate.
|
|
Samples
|
Waveform sample count, the number of data points in the stored cyclic wave look up table.
|
|
Start Phase Angle
|
Waveform phase, the angle in degrees or sample in the wave to start streaming from
|
|
Data
|
The raw waveform data
|
|
Period Offset
|
The initial amount that the index increments through the LUT data when reading the stored waveform. 0.2 = Frequency / 5 0.5 = Frequency / 2 1.0 = Original Frequency 1.5 = Frequency * 1.5 2.0 = Frequency * 2
|
|
Sample Period
|
Degrees per default sample offset period
|
|
Frequency Calculation
|
|
Sample Rate (hz)
|
Allows the sample rate to be entered to allow some basic calculations
|
|
Period (s)
|
The length of time in seconds that the wave period will cover at the specified sample rate
|
|
Frequency (hz)
|
The repeat frequency of the wave at the specified sample rate
|