Wifi_Activity_Recognition icon indicating copy to clipboard operation
Wifi_Activity_Recognition copied to clipboard

Some question of the dataset

Open beyond96 opened this issue 4 years ago • 9 comments

As you mentioned,92nd - 181st column shows (30 subcarrier * 3 antenna) phase. But why is the phase value of all subcarriers almost all greater than 2pi? For example, in "input_161219_sankalp_bed_1.csv", the phase values of all subcarriers are almost between 10 and 15 from 8.5099s to 11.5s, but isn't the value range of phase from 0 to 2pi?

beyond96 avatar Oct 21 '20 15:10 beyond96

https://web.stanford.edu/~skatti/pubs/sigcomm15-spotfi.pdf Our phase are unwrapped like this article. If it over 2pi, I just added 2pi.

Hirokazu-Narui avatar Oct 21 '20 16:10 Hirokazu-Narui

Sorry, I still wonder what this sentence " If it become greater than 2pi, I just added 2pi" means? What should I do if I need to get the right phase?

beyond96 avatar Oct 21 '20 16:10 beyond96

If it become greater than 2pi,Shouldn't 2pi be subtracted?

beyond96 avatar Oct 21 '20 16:10 beyond96

You only need is subtract 2pi if it greater than 2pi. and subtract 4pi if it greater than 4pi.

Hirokazu-Narui avatar Oct 21 '20 17:10 Hirokazu-Narui

Thanks for your reply! But I also have a question: In a period, the phase value ranges from 9 to 13 such as in "input_161219_sankalp_walk_6", and the phase difference is about Pi. But shouldn't the complete phase period be 2Pi, which is about 6.28? This happens in all the data. Why? In other words, in your data, the phase only changes Pi in a cycle, but in theory the phase should change 2Pi.Could you answer for me. All help will be appreciated!

beyond96 avatar Oct 22 '20 01:10 beyond96

I I have been puzzled by the above question for several days. Could you give me some answers? All help will be appreciated!

beyond96 avatar Oct 22 '20 12:10 beyond96

Actually, we are not using phase difference. And I couldn't remember how we think about it at that time.

But here is the code for phase calibration. I hope it will help you.

function calibrated_phase2 = phase_calibration(phasedata)
    calibrated_phase(1) = phasedata(1);
    difference = 0;
    for i = 2:30
        temp = phasedata(i) - phasedata(i-1);
        if abs(temp) > pi
            difference = difference + 1*sign(temp);
        end
        calibrated_phase(i) = phasedata(i) - difference * 2 * pi;
    end
    
    k = (calibrated_phase(30) - calibrated_phase(1)) / (30 - 1);
    b = mean(calibrated_phase);
    
    for i = 1:30
        calibrated_phase2(i) = calibrated_phase(i) - k * i - b;
    end
end

Hirokazu-Narui avatar Oct 22 '20 19:10 Hirokazu-Narui

Thanks! I have read your code, but I still don't understand the purpose of phase calibration. Why should you calibrate the phase? Is there a problem with the original phase?

I am so sorry to disrurb you all the time.

beyond96 avatar Oct 23 '20 06:10 beyond96

I think wrapped data will not be continuous over time. That's why we unwrapped phase. But again, we are not using phase information.

Hirokazu-Narui avatar Oct 30 '20 04:10 Hirokazu-Narui