wind_sensor:wind_sensor_documentation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wind_sensor:wind_sensor_documentation [2015/12/01 10:51]
daisygreen [Implementing Code]
wind_sensor:wind_sensor_documentation [2021/09/19 21:59] (current)
Line 15: Line 15:
    - squaring a function in time {x(t) -> x(t)<​sup>​2</​sup>​} is convolution in frequency domain {X(f) -> X(f)∗X(f)}. Also, sound is a real base band signal, so there for it is a low passed signal which is symmetrical around 0. (Squaring is similar to taking the absolute value. Either method could work)    - squaring a function in time {x(t) -> x(t)<​sup>​2</​sup>​} is convolution in frequency domain {X(f) -> X(f)∗X(f)}. Also, sound is a real base band signal, so there for it is a low passed signal which is symmetrical around 0. (Squaring is similar to taking the absolute value. Either method could work)
    - A convolution between the same signal will be symmetrical and have it's peak in the middle. In this case it is at 0, and X(0) is the DC part which is the total energy in the signal.    - A convolution between the same signal will be symmetrical and have it's peak in the middle. In this case it is at 0, and X(0) is the DC part which is the total energy in the signal.
-   - You can find the frequency scaling depending on your sampling frequency. If sampling frequency is ω<​sub>​s</​sub>,​ the frequency vector for the fft would go from -ω<​sub>​s</​sub>/​2 to ω<​sub>​s</​sub>​.+   - You can find the frequency scaling depending on your sampling frequency. If sampling frequency is ω<​sub>​s</​sub>,​ the frequency vector for the fft would go from -ω<​sub>​s</​sub>/​2 to ω<​sub>​s</​sub>​/2.
  
 {{:​wind_sensor:​untitled2.png?​nolink&​400|}} {{:​wind_sensor:​untitled2.png?​nolink&​400|}}
Line 130: Line 130:
 Notice if you don't chose a value N large enough, the output of the mean of the last N samples will very large, an example is shown below. Notice if you don't chose a value N large enough, the output of the mean of the last N samples will very large, an example is shown below.
  
-</code>% Test on how the N parameter makes a difference in find the moving average+<​code>​ 
 +% Test on how the N parameter makes a difference in find the moving average
 clc;​clear;​close all;                    % clears all clc;​clear;​close all;                    % clears all
  
Line 147: Line 148:
 figure() figure()
 RT = RTprocess(x',​500);​ RT = RTprocess(x',​500);​
-title('​real time process N = 500'​)<​code>​+title('​real time process N = 500') 
 +end</code>
  
 {{:​wind_sensor:​input.jpg|}} {{:​wind_sensor:​input.jpg|}}
Line 159: Line 161:
 Note: We did a piece wise regression at output<​13 and output>​13 because if you look above, that is when it changes a lot faster, and we rather avoid an extra power as a feature to decrease residual error and just use 2 models for 2 parts of the fitting. Note: We did a piece wise regression at output<​13 and output>​13 because if you look above, that is when it changes a lot faster, and we rather avoid an extra power as a feature to decrease residual error and just use 2 models for 2 parts of the fitting.
  
 +The code for collecting data on Arduino is below. This is for collecting analog data before it is processed. This code collects data from all four microphones with a 1 microsecond delay in between readings. Note that each microphone is only being sampled one-fourth of the time. After releasing the reset button on the Arduino, microphone 1 will always be the first data point.
  
 +<​code>​
 +void setup() {
 +  Serial.begin(14400);​
 +  analogReference(EXTERNAL);​
 +}
 +
 +void loop() {
 +  ​
 +  delayMicroseconds(1);​
 +  int sensorValue1 = analogRead(A0);​
 +  delayMicroseconds(1);​
 +  int sensorValue2 = analogRead(A1);​
 +  delayMicroseconds(1);​
 +  int sensorValue3 = analogRead(A2);​
 +  delayMicroseconds(1);​
 +  int sensorValue4 = analogRead(A3);​
 + 
 +  Serial.println(sensorValue1);​
 +  Serial.println(sensorValue2);​
 +  Serial.println(sensorValue3);​
 +  Serial.println(sensorValue4);​
 +  ​
 +}
 +end</​code>​
  • wind_sensor/wind_sensor_documentation.1448967115.txt.gz
  • Last modified: 2021/09/19 21:59
  • (external edit)