青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 12,  comments - 54,  trackbacks - 0
一般來說,對均勻間隔采樣的數據的功率譜估計,可以采用DFT/AR/MA/ARMA/MUSIC等方法估計;
如果由于實驗條件限制,或者偶爾的數據丟失,采樣的數據間隔時間/空間不是均勻間隔的,此時,大致可以有兩種處理方式:
1)用插值的方法將數據轉換為等間隔的,然后按等間隔采樣方法處理;這種方法最大的缺陷是,在低頻成分處會出現假的凸起。
2)采用Lomb方法處理;
本文將給出Lomb方法公式推導的結果,和C++代碼實現;至于具體推導過程,請參閱

Jerry D. Scargle, Studies in Astronomical Time Series Analysis. II. Statistical Aspect of Spectral Analysis of Unevenly Spaced Data, the Astrophysical Journal, vol. 263, pp. 835--853

這里不再多說。

Lomb方法

假設數據點集為[;(h_i, t_i);](所有數學公式采用latex語法書寫),

定義其數學期望和方差分別為

[;h=\frac{1}{N} \sum_{i} h_i \\ \delta^2=

定義歸一化周期圖為

[;P_N(\omega) = \frac{1}{2 \delta ^2}  \{ \frac{[\sum_i (h_i - h) \cos \omega(t_i - \tau)]^2 {\sum_i \cos^2 \omega (t_i - \tau)}  + \frac{[\sum_i (h_i - h) \sin \omega(t_i - \tau)]^2 {\sum_i \sin^2 \omega (t_i - \tau)}  \} ;]

其中[;\tau;]由下式定義

[; \tan 2 \omega \tau =

Lomb方法的C++實現:

?1?//lomb.hpp
?2?
?3?#ifndef?LOMB_HPP_INCLUDED__
?4?#define?LOMB_HPP_INCLUDED__
?5?
?6?#include?<vector>
?7?using?std::vector;
?8?
?9?//Warning:
10?//??If?you?would?rather?a?self-defined?type?than
11?//??a?builtin?type,?these?methods?MUST?be?offered:
12?//
13?//??operator=(?const?Type&?other?)
14?//??operator=(?const?long?double&?val?)
15?//??operator+(?const?Type&?lhs,?const?Type&?rhs)
16?//??operator-(?const?Type&?lhs,?const?Type&?rhs)
17?//??operator*(?const?Type&?lhs,?const?Type&?rhs)
18?//??operator/(?const?Type&?lhs,?const?Type&?rhs)
19?//??sin(?const?Type&?val?)
20?//??cos(?const?Type&?val?)
21?//
22?template
23?<
24?????typename?Type?=?long?double
25?>
26?class?Lomb
27?{
28?????public:
29?????????vector<Type>?spectrum()?const;
30?
31?????public:
32?????????Lomb(???const?vector<Type>&?_h,
33?????????????????const?vector<Type>&?_t?);
34?????????~Lomb();
35?
36?????private:
37?????????struct?Lomb_Data;
38?????????Lomb_Data*?lomb_data;
39?};
40?
41?#include?"lomb.tcc"
42?
43?#endif?//?LOMB_HPP_INCLUDED__
44

?


//lomb.tcc

#include?
"iterator.hpp"

#include?
<cassert>
#include?
<cmath>

#include?
<numeric>
#include?
<iterator>
#include?
<algorithm>
using?namespace?std;

template
<
????typename?Type
>
struct?Lomb<Type>::Lomb_Data
{
????vector
<Type>?h;
????vector
<Type>?t;

????Type?f()?
const;
????Type?tau(?
const?unsigned?int?)?const;
????Type?e()?
const;
????Type?d()?
const;

};

template
<
????typename?Type
>
Type?Lomb
<Type>::Lomb_Data::f()const
{
????
const?Type?max?=?*(?max_element(
????????????t.begin(),?t.end()?)?);
????
const?Type?min?=?*(?min_element(
????????????t.begin(),?t.end()?)?);
????
const?unsigned?int?N?=?h.size();
????
const?Type?ans?=?N?/?(?max?-?min?)?;

????
return?ans;
}

template
<
????typename?Type
>
Type?Lomb
<Type>::Lomb_Data::tau(?const?unsigned?int?n?)const
{

????
const?Type?omega?=
????????
2.0L?*?3.14159265358979L?*?(?this?->?f()?)?*?n?;
????
const?Type?sin_?=
????????sin2_accumulate(?t.begin(),
?????????????????????????t.end(),
?????????????????????????omega
????????????????);
????
const?Type?cos_?=
????????cos2_accumulate(?t.begin(),
?????????????????????????t.end(),
?????????????????????????omega
????????????????);
????
const?Type?ans?=?atan(?sin_?/?cos_?)?/?(?2.0L?*?omega?);

????
return?ans;
}

template
<
????typename?Type
>
Type?Lomb
<Type>::Lomb_Data::e()const
{
????
const?Type?ans?=
????????mean(
????????????h.begin(),
????????????h.end(),
????????????Type_Keep
<Type>()
????????????);

????
return?ans;
}

template
<
????typename?Type
>
Type?Lomb
<Type>::Lomb_Data::d()const
{
????
const?Type?ans?=
????????variance(
????????????h.begin(),
????????????h.end(),
????????????Type_Keep
<Type>()
????????????);

????
return?ans;
}

template
<
????typename?Type
>
Lomb
<Type>::Lomb(?const?vector<Type>&?_h,
????????????
const?vector<Type>&?_t
??????????)
{
????assert(?_t.size()?
==?_h.size()?);
????lomb_data?
=?new?Lomb_Data;
????lomb_data?
->?h?=?_h;
????lomb_data?
->?t?=?_t;
}

template
<
????typename?Type
>
Lomb
<Type>::~Lomb()
{
????delete?lomb_data;
}

template
<
????typename?Type
>
vector
<Type>?Lomb<Type>::spectrum()?const
{
????
const?unsigned?int?N?=?(*lomb_data).h.size();

????
const?Type?f?=?lomb_data?->?f();
????
const?Type?e?=?lomb_data?->?e();

????
const?Type?d?=?lomb_data?->?d();

????vector
<Type>?ans;

????
for?(?unsigned?int?i?=?0;?i?<?N;?++i?)
????{
????????
const?Type?tau?=?lomb_data?->?tau(?i?);
????????
const?Type?omega?=?6.283185307179586476L?*
????????????????????????????????i?
*?f;

????????
const?Type?h_cos_square?=
????????????h_cos_square_accumulate(
????????????????????????????????????????(
*lomb_data).h.begin(),?(*lomb_data).h.end(),
????????????????????????????????????????(
*lomb_data).t.begin(),?(*lomb_data).t.end(),
????????????????????????????????????????e,
????????????????????????????????????????tau,
????????????????????????????????????????omega
????????????????????????????????????);

????????
const?Type?cos_square?=
????????????cos_square_accumulate(
????????????????????????????????????(
*lomb_data).t.begin(),
????????????????????????????????????(
*lomb_data).t.end(),
????????????????????????????????????tau,
????????????????????????????????????omega
?????????????????????????????????);

????????
const?Type?h_sin_square?=
????????????h_sin_square_accumulate(
????????????????????????????????????????(
*lomb_data).h.begin(),?(*lomb_data).h.end(),
????????????????????????????????????????(
*lomb_data).t.begin(),?(*lomb_data).t.end(),
????????????????????????????????????????e,
????????????????????????????????????????tau,
????????????????????????????????????????omega
????????????????????????????????????);

????????
const?Type?sin_square?=
????????????sin_square_accumulate(
????????????????????????????????????(
*lomb_data).t.begin(),
????????????????????????????????????(
*lomb_data).t.end(),
????????????????????????????????????tau,
????????????????????????????????????omega
?????????????????????????????????);

????????ans.push_back(?sqrt(
????????????????????????????????(
????????????????????????????????????h_cos_square
/cos_square?+
????????????????????????????????????h_sin_square
/sin_square
????????????????????????????????)?
/?(2.0L*d)
????????????????????????????)?
/?N
?????????????????????);
????}

????
return?ans;
}

?

??1?//iterator.hpp
??2?
??3?#ifndef?ITERATOR_HPP_INCLUDED__
??4?#define?ITERATOR_HPP_INCLUDED__
??5?
??6?//this?struct?is?just?employed
??7?//to?keep?the?Type?information
??8?template
??9?<
?10?????typename?Type
?11?>
?12?struct?Type_Keep;
?13?
?14?
?15?//calculate
?16?//??????\sum_{i}?\sin?2?\omega?t_i
?17?template
?18?<
?19?????typename?InputItor,
?20?????typename?Type
?21?>
?22?Type?sin2_accumulate(
?23?????????????????????????InputItor?begin,
?24?????????????????????????InputItor?end,
?25?????????????????????????Type?omega
?26?????????????????????);
?27?
?28?//calculate
?29?//??????\sum_{i}?\cos?2?\omega?t_i
?30?template
?31?<
?32?????typename?InputItor,
?33?????typename?Type
?34?>
?35?Type?cos2_accumulate(
?36?????????????????????????InputItor?begin,
?37?????????????????????????InputItor?end,
?38?????????????????????????Type?omega
?39?????????????????????);
?40?
?41?//calculate
?42?//??????\frac{1}{N}?\sum_{i}?h_i
?43?template
?44?<
?45?????typename?InputItor,
?46?????typename?Type
?47?>
?48?Type?mean(
?49?????????????InputItor?begin,
?50?????????????InputItor?end,
?51?????????????Type_Keep<Type>
?52??????????);
?53?
?54?//calculate
?55?//??????\frac{1}{N-1}?\sum_{i}(h_i?-?h)^{2}
?56?template
?57?<
?58?????typename?InputItor,
?59?????typename?Type
?60?>
?61?Type?variance(
?62?????????????????InputItor?begin,
?63?????????????????InputItor?end,
?64?????????????????Type_Keep<Type>
?65??????????????);
?66?
?67?//calcuate
?68?//???????[\sum_i?(h_i?-?h)?\sin?\omega?(t_i?-?\tau)]^{2}
?69?template
?70?<
?71?????typename?Type,
?72?????typename?InputItor
?73?>
?74?Type?h_sin_square_accumulate(?????InputItor?h_start,?InputItor?h_end,
?75?????????????????????????????????InputItor?t_start,?InputItor?t_end,
?76?????????????????????????????????Type?h,
?77?????????????????????????????????Type?tau,
?78?????????????????????????????????Type?omega
?79?????????????????????????????);
?80?
?81?//calcuate
?82?//???????[\sum_i?(h_i?-?h)?\cos?\omega?(t_i?-?\tau)]^{2}
?83?template
?84?<
?85?????typename?Type,
?86?????typename?InputItor
?87?>
?88?Type?h_cos_square_accumulate(?????InputItor?h_start,?InputItor?h_end,
?89?????????????????????????????????InputItor?t_start,?InputItor?t_end,
?90?????????????????????????????????Type?h,
?91?????????????????????????????????Type?tau,
?92?????????????????????????????????Type?omega
?93?????????????????????????????);
?94?
?95?//calculate
?96?//??????\sum_{i}?\cos?^{2}?\omega?(t_i?-?\tau)
?97?template
?98?<
?99?????typename?Type,
100?????typename?InputItor
101?>
102?Type?cos_square_accumulate(?????InputItor?t_start,
103?????????????????????????????????InputItor?t_end,
104?????????????????????????????????Type?tau,
105?????????????????????????????????Type?omega
106?????????????????????????????);
107?
108?//calculate
109?//??????\sum_{i}?\cos?^{2}?\omega?(t_i?-?\tau)
110?template
111?<
112?????typename?Type,
113?????typename?InputItor
114?>
115?Type?sin_square_accumulate(?????InputItor?t_start,
116?????????????????????????????????InputItor?t_end,
117?????????????????????????????????Type?tau,
118?????????????????????????????????Type?omega
119?????????????????????????????);
120?
121?#include?"iterator.tcc"
122?
123?#endif?//?ITERATOR_HPP_INCLUDED__
124?

?

//iterator.tcc

#include?
<cmath>

template
<
????typename?Type
>
struct?Type_Keep
{
????typedef?Type?T;
};

template
<
????typename?Type
>
struct?Sin
{
????Type?
operator()(?const?Type?val?)const
????{
????????
return?sin(?val?);
????}
};

template
<
????typename?Type
>
struct?Cos
{
????Type?
operator()(?const?Type?val?)const
????{
????????
return?cos(?val?);
????}
};

template
<
????typename?InputItor,
????typename?Type,
????typename?Function
>
static?Type?f2_accumulate(
????????????????????????????InputItor?begin,
????????????????????????????InputItor?end,
????????????????????????????Type?omega,
????????????????????????????Function?f
????????????????????????)
{
????Type?ans?
=?Type();
????
while(?begin?!=?end?)
????{
????????ans?
+=?f(?2.0L?*?omega?*?(*begin++)?);
????}
????
return?ans;
}

template
<
????typename?InputItor,
????typename?Type
>
Type?sin2_accumulate(
????????InputItor?begin,
????????InputItor?end,
????????Type?omega
????????)
{
????
return?f2_accumulate(
????????????????????????????begin,
????????????????????????????end,
????????????????????????????omega,
????????????????????????????Sin
<Type>()
?????????????????????????);
}

template
<
????typename?InputItor,
????typename?Type
>
Type?cos2_accumulate(
????????InputItor?begin,
????????InputItor?end,
????????Type?omega
????????)
{
????
return?f2_accumulate(
????????????????????????????begin,
????????????????????????????end,
????????????????????????????omega,
????????????????????????????Sin
<Type>()
????????????????????????);
}

template
<
????typename?InputItor,
????typename?Type
>
Type?mean(
????????InputItor?begin,
????????InputItor?end,
????????Type_Keep
<Type>
????????)
{
????Type?sum?
=?Type();
????unsigned?
int?cnt?=?0;
????
while?(?begin?!=?end?)
????{
????????sum?
+=?*begin++;
????????
++cnt;
????}

????
return?sum?/?cnt;
}

template
<
????typename?InputItor,
????typename?Type
>
static?Type?diff_square_accumulate(
????????????????????InputItor?begin,
????????????????????InputItor?end,
????????????????????Type?mean
????????????????????)
{
????Type?ans?
=?Type();
????
while(?begin?!=?end?)
????{
????????ans?
+=?(?mean?-?*begin?)?*?(?mean?-?*begin?)?;
????????
++begin;
????}
????
return?ans;
}

template
<
????typename?InputItor
>
static?unsigned?int?difference(
????????????????InputItor?begin,
????????????????InputItor?end
????????????????)
{
????unsigned?
int?cnt?=?0;
????
while(?begin++?!=?end?)
????????
++cnt;

????
return?cnt;
}

template
<
????typename?InputItor,
????typename?Type
>
Type?variance(
????????????InputItor?begin,
????????????InputItor?end,
????????????Type_Keep
<Type>
????????????)
{
????
const?Type?average?=
????????mean(?begin,?end,?Type_Keep
<long?double>()?);
????
const?Type?power?=
????????diff_square_accumulate(?begin,?end,?average?);
????
const?unsigned?int?size?=
????????difference(?begin,?end?);
????
const?Type?ans?=?power?/?(size-1);

????
return?ans;
}

template
<
????typename?Type,
????typename?InputItor,
????typename?Function
>
static?Type?h_f_square_accumulate(?????InputItor?h_start,?InputItor?h_end,
????????????????????????????????????InputItor?t_start,?InputItor?t_end,
????????????????????????????????????Type?h,
????????????????????????????????????Type?tau,
????????????????????????????????????Type?omega,
????????????????????????????????????Function?f
????????????????????????????)
{
????Type?ans?
=?Type();
????
while(?(?h_start?!=?h_end?)?&&?(?t_start?!=?t_end?)?)
????{
????????ans?
+=?(?*h_start++?-?h?)?*?f(?omega?*?(?*t_start++?-?tau)?);
????}
????
return?ans*ans;
}


template
<
????typename?Type,
????typename?InputItor
>
Type?h_sin_square_accumulate(?????InputItor?h_start,?InputItor?h_end,
????????????????????????????????InputItor?t_start,?InputItor?t_end,
????????????????????????????????Type?h,
????????????????????????????????Type?tau,
????????????????????????????????Type?omega
????????????????????????????)
{
????
return?h_f_square_accumulate(
????????????????????????????????????h_start,?h_end,
????????????????????????????????????t_start,?t_end,
????????????????????????????????????h,
????????????????????????????????????tau,
????????????????????????????????????omega,
????????????????????????????????????Sin
<Type>()
????????????????????????????????);
}

template
<
????typename?Type,
????typename?InputItor
>
Type?h_cos_square_accumulate(?????InputItor?h_start,?InputItor?h_end,
????????????????????????????????InputItor?t_start,?InputItor?t_end,
????????????????????????????????Type?h,
????????????????????????????????Type?tau,
????????????????????????????????Type?omega
????????????????????????????)
{
????
return?h_f_square_accumulate(
????????????????????????????????????h_start,?h_end,
????????????????????????????????????t_start,?t_end,
????????????????????????????????????h,
????????????????????????????????????tau,
????????????????????????????????????omega,
????????????????????????????????????Cos
<Type>()
????????????????????????????????);
}

template
<
????typename?Type,
????typename?InputItor,
????typename?Function
>
static?Type?f_square_accumulate(?????InputItor?t_start,
????????????????????????????????????InputItor?t_end,
????????????????????????????????????Type?tau,
????????????????????????????????????Type?omega,
????????????????????????????????????Function?f
????????????????????????????)
{
????Type?ans?
=?Type();
????
while(?t_start?!=?t_end?)
????{
????????
const?Type?tmp?=?f(?omega?*?(?*t_start++?-?tau?)?);
????????ans?
+=?tmp?*?tmp;
????}
????
return?ans;
}

template
<
????typename?Type,
????typename?InputItor
>
Type?cos_square_accumulate(?????InputItor?t_start,
????????????????????????????????InputItor?t_end,
????????????????????????????????Type?tau,
????????????????????????????????Type?omega
????????????????????????????)
{
????
return?f_square_accumulate(
????????????????????????????????????t_start,
????????????????????????????????????t_end,
????????????????????????????????????tau,
????????????????????????????????????omega,
????????????????????????????????????Cos
<Type>()
????????????????????????????????);
}

template
<
????typename?Type,
????typename?InputItor
>
Type?sin_square_accumulate(?????InputItor?t_start,
????????????????????????????????InputItor?t_end,
????????????????????????????????Type?tau,
????????????????????????????????Type?omega
????????????????????????????)
{
????
return?f_square_accumulate(
????????????????????????????????????t_start,
????????????????????????????????????t_end,
????????????????????????????????????tau,
????????????????????????????????????omega,
????????????????????????????????????Sin
<Type>()
????????????????????????????????);
}

?

實例

下面這個例子中,將從文件phi.dat中輸入采樣數據,從文件rem.dat中輸入采樣空間間隔,使用Lomb算法處理后,得到的空間頻譜將輸出到文件spectrum.dat中去

?1?#include?"lomb.hpp"
?2?
?3?#include?<iostream>
?4?#include?<fstream>
?5?#include?<vector>
?6?#include?<iterator>
?7?#include?<algorithm>
?8?
?9?using?namespace?std;
10?
11?int?main()
12?{
13?????ifstream?phi_src(?"phi.dat"?);
14?????ifstream?rem_src(?"rem.dat"?);
15?????ofstream?spectrum_dst(?"spectrum.dat"?);
16?
17?????vector<long?double>?h;
18?????vector<long?double>?t;
19?
20?????copy(?istream_iterator<long?double>(phi_src),?istream_iterator<long?double>(),?back_inserter(t)?);
21?????copy(?istream_iterator<long?double>(rem_src),?istream_iterator<long?double>(),?back_inserter(h)?);
22?
23?????Lomb<long?double>*?lomb?=?new?Lomb<long?double>(?h,?t?);
24?
25?????vector<long?double>?v_spectrum?=?lomb?->?spectrum();
26?????copy(?v_spectrum.begin(),?v_spectrum.end(),?ostream_iterator<long?double>(spectrum_dst,?"\n")?);
27?
28?????delete?lomb;
29?????phi_src.close();
30?????rem_src.close();
31?????spectrum_dst.close();
32?
33?????return?0;
34?}
35?

?

備注

Lomb算法的復雜度是O(n^2),若采樣數據比較長,可以采用fft方法簡化復雜度到O(nlogn),與大數乘法中的fft用法一致,此處不再多說。




posted on 2009-01-02 21:20 Wang Feng 閱讀(2619) 評論(3)  編輯 收藏 引用 所屬分類: Numerical C++

FeedBack:
# re: 非均勻取樣數據的功率譜估計方法
2010-07-09 14:53 | JannieBallard
One knows that men's life seems to be expensive, however some people require money for different things and not every man earns big sums cash. Hence to get fast <a href="http://bestfinance-blog.com/topics/business-loans">business loans</a> and just consolidation loans would be a correct solution.   回復  更多評論
  
# re: 非均勻取樣數據的功率譜估計方法
2010-07-18 01:00 | term paper help
There is nothing unnatural If you buy custom essays from the custom research paper service, however this thing would aid you to complete academic results.   回復  更多評論
  
# re: 非均勻取樣數據的功率譜估計方法
2010-07-21 11:49 | dissertation writing service
Direct on what you are going to do at the time being and tomorrow, and have loyalty that the extent will advance when it is damn well on tap. Or maybe buy thesis is what you need . Thanks.   回復  更多評論
  

<2025年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用鏈接

留言簿(4)

隨筆分類

隨筆檔案

Link List

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲免费成人av| 欧美精品久久99久久在免费线| 亚洲激情偷拍| 欧美一区二区三区在线免费观看| 99精品热6080yy久久| 久久久久久久久久久久久久一区| 亚洲在线成人| 欧美精品粉嫩高潮一区二区| 欧美成人激情在线| 国内精品亚洲| 欧美一区二区三区在线观看| 午夜亚洲伦理| 国产精品久久久久久妇女6080 | 一本色道久久88综合亚洲精品ⅰ| 亚洲电影在线| 久久久久久久综合色一本| 欧美一区二区在线观看| 国产精品成人一区二区网站软件| 欧美激情视频免费观看| 在线观看亚洲视频啊啊啊啊| 欧美一级专区| 久久久亚洲国产美女国产盗摄| 国产精品综合网站| 亚洲一区三区视频在线观看| 亚洲永久免费| 国产精品啊v在线| 亚洲午夜激情| 欧美一站二站| 国产一区免费视频| 久久精品国产99精品国产亚洲性色 | 午夜在线成人av| 欧美一区观看| 狠狠噜噜久久| 久久综合一区| 亚洲日本成人女熟在线观看| 日韩网站免费观看| 国产精品福利在线| 午夜视频精品| 欧美高清成人| 在线一区亚洲| 国产欧美日韩综合一区在线观看| 亚洲欧美日韩国产一区二区| 久久免费精品视频| 最新成人av网站| 欧美视频在线不卡| 久久国产88| 亚洲国产精品va在线看黑人 | 亚洲国产精品传媒在线观看| 一区二区精品国产| 国产精品亚洲一区二区三区在线| 午夜日韩视频| 亚洲国产中文字幕在线观看| 亚洲一本大道在线| 极品中文字幕一区| 欧美欧美天天天天操| 亚洲欧美日韩直播| 欧美激情亚洲| 久久xxxx| 亚洲免费观看视频| 国产视频一区在线观看| 欧美成人午夜免费视在线看片 | 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲精品视频在线观看网站| 亚洲欧美综合精品久久成人| 伊人狠狠色j香婷婷综合| 欧美色图一区二区三区| 久久久久久久999精品视频| 日韩香蕉视频| 欧美成人资源| 欧美一区二区三区视频免费| 亚洲人精品午夜| 国产一区在线播放| 欧美三级欧美一级| 免费观看久久久4p| 欧美中文字幕精品| 国产精品99久久久久久久久| 亚洲国产精品成人综合| 久久精品国产欧美激情| 中国成人亚色综合网站| 亚洲第一主播视频| 国产精品亚洲аv天堂网 | 欧美mv日韩mv亚洲| 欧美在线在线| 亚洲免费视频在线观看| 亚洲精品在线视频| 亚洲福利电影| 欧美成人小视频| 久久亚洲一区二区三区四区| 亚洲小视频在线观看| 亚洲精品美女久久7777777| 伊人久久婷婷| 狠狠色丁香久久综合频道| 国产精品欧美久久| 欧美亚洲第一区| 欧美精品一区二区三区一线天视频| 久久精品视频一| 欧美在线亚洲一区| 欧美一区二区三区四区夜夜大片| 亚洲视频网在线直播| 一区二区免费看| 日韩一区二区免费高清| 亚洲九九精品| 一区二区高清在线观看| 夜夜嗨av一区二区三区| 日韩一区二区精品在线观看| 99re6热只有精品免费观看 | 亚洲先锋成人| 亚洲视频狠狠| 亚洲专区免费| 欧美影院午夜播放| 久久精品国产v日韩v亚洲 | 日韩一区二区精品葵司在线| 亚洲人成在线观看一区二区| 亚洲精品视频在线观看免费| 亚洲精品国精品久久99热一| 亚洲精品日产精品乱码不卡| 亚洲精品无人区| 99re热这里只有精品免费视频| 野花国产精品入口| 亚洲制服丝袜在线| 久久福利资源站| 久久夜色精品国产噜噜av| 女同一区二区| 亚洲精品一区在线| 亚洲图色在线| 久久精品国产99| 欧美1级日本1级| 欧美视频在线观看免费网址| 国产精品久久久久9999| 国内成+人亚洲| 亚洲国产婷婷| 亚洲男人的天堂在线| 久久精品99国产精品酒店日本| 裸体素人女欧美日韩| 亚洲激情视频在线播放| 亚洲少妇自拍| 久久免费视频观看| 欧美日韩国产天堂| 国产一区二区精品久久| 亚洲欧洲精品一区二区三区 | 一本久道久久综合中文字幕| 亚洲男人的天堂在线| 久久免费偷拍视频| 亚洲精品激情| 久久精品国产久精国产爱| 欧美片在线观看| 国内精品久久久| 亚洲一区二区三区精品在线| 久久久亚洲欧洲日产国码αv | 国产精品免费一区二区三区观看| 国产一区二区三区四区三区四| 亚洲伦伦在线| 久久亚洲私人国产精品va| 亚洲乱码国产乱码精品精天堂| 午夜欧美视频| 欧美日韩在线不卡一区| 在线电影欧美日韩一区二区私密| 一区二区精品| 欧美激情一区二区三区不卡| 欧美一区二区成人| 欧美日韩国产专区| 亚洲国产免费看| 久久久国产一区二区三区| 99精品国产99久久久久久福利| 久久久99免费视频| 国产精品综合网站| 亚洲一级影院| 亚洲精品在线观看视频| 久久视频免费观看| 国产婷婷成人久久av免费高清| 中文在线不卡视频| 亚洲黄色免费网站| 久久伊人免费视频| 狠狠色丁香久久婷婷综合丁香| 亚洲欧美综合精品久久成人| 日韩视频第一页| 欧美精品成人| 亚洲精品免费网站| 欧美电影在线观看完整版| 久久精品国产亚洲aⅴ| 国产精品亚洲美女av网站| 亚洲天堂成人| 日韩亚洲一区在线播放| 欧美美女视频| 夜夜狂射影院欧美极品| 最近中文字幕日韩精品 | 久久久综合视频| 欧美一区二区在线播放| 国产精品资源| 久久激情五月激情| 欧美影院成人| 精品福利免费观看| 欧美xx69| 欧美激情成人在线视频| 亚洲精品中文字幕在线| 亚洲激情第一页| 欧美视频一区二区三区…| 亚洲一区二区精品| 亚洲永久精品大片| 国产一区二区久久|