吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FIR、IIR濾波器的FPGA實現和仿真研究分析

FPGA之家 ? 來源:記憶面包呀 ? 作者:記憶面包呀 ? 2022-12-09 09:41 ? 次閱讀

IIR濾波器設計

(一)沖激響應不變法

這種方法是通過將模擬濾波器頻率特性H(s)反拉氏變換為h(t),再將h(t)等間隔抽樣成h(n)后,對h(n)取Z變換求得H(z),即得到了數字濾波器的系統函數。

e0497174-7761-11ed-8abf-dac502259ad0.jpg

對比(1)式和(4)式可以發現S域中的極點s映射到Z域,則位于z=e^(sT)處。

e0617184-7761-11ed-8abf-dac502259ad0.png

由映射關系可知z平面與s平面呈多值映射的關系。

e070ce40-7761-11ed-8abf-dac502259ad0.png

s平面的虛軸對應的σ=0,則上式中第一項e^(σT)=1,第二項表示旋轉的角度,角度以2π/T為周期,所以s平面的虛軸每段2π/T都對應z平面上的單位圓。

s左平面對應σ<0,即第一項e^(σT)<1,所以s域的左半平面對應z平面上的單位圓內。

s右平面對應σ>0,即第一項e^(σT)>1,所以s域的右半平面對應z平面上的單位圓外。

e07e561e-7761-11ed-8abf-dac502259ad0.png

在第二步中,我們對h(t)進行了抽樣,對應到S域則會產生頻譜沿虛軸以2π/T為周期的搬移。

e08a5a9a-7761-11ed-8abf-dac502259ad0.png

所以實際上我們得到的是h(t)抽樣后的S平面與Z平面的映射,當Ω以2π/T整數倍改變時,會映射到Z平面上同一點。下圖所示為s平面虛軸映射到z平面的單位圓??梢钥闯霎a生了頻譜混疊現象。

e099fe6e-7761-11ed-8abf-dac502259ad0.png

綜上,沖激響應不變法可以將模擬濾波器轉換成數字濾波器,但由于混疊現象使得高頻部分嚴重失真,因而只適用于低通濾波器或限帶(0<Ω<π)的高通或帶通場合。

(二)雙線性變換法

上面的沖激響應不變法的缺點就是會產生頻譜混疊,究其原因是由于對信號進行了抽樣,實際得到的是周期延拓后的S平面與Z平面的映射,所以產生了多值映射。

在雙線性變換法中,我們首先將S平面通過反正切函數壓縮到S1平面的(-π/T,π/T)橫帶內,再使用上面沖激響應不變法中使用的平面映射關系Z=e^(s1T),將S1平面映射到Z平面。這樣一來S平面與Z平面就構成了單值映射的關系。

e0e0e7ca-7761-11ed-8abf-dac502259ad0.jpg

第二步由S1平面映射至Z平面時,使用了z=e^(s1T),和沖激響應不變法中S到Z平面使用的映射一樣,應該相當于用了沖激響應不變法,進行了一次頻譜延拓再映射到Z平面吧。延拓后S1平面到Z平面是多值映射,但S平面到Z平面是單值映射。S平面整個虛軸對應于Z平面的單位圓一周。

e104b970-7761-11ed-8abf-dac502259ad0.jpg

綜上,雙線性變換法克服了多值映射關系,可以消除頻率的混疊。但是由于Ω與w成非線性關系,頻率有畸變。

FIR濾波器設計

FIR濾波器的設計比較簡單,就是要設計一個數字濾波器去逼近一個理想的低通濾波器。通常這個理想的低通濾波器在頻域上是一個矩形窗。

e149275e-7761-11ed-8abf-dac502259ad0.jpg

但是在時域上它是一個Sa函數。但是這個采樣序列是無限的,計算機是無法對它進行計算。

e156cf12-7761-11ed-8abf-dac502259ad0.jpg

故我們需要對此采樣函數進行截斷處理。也就是把這個時域采樣序列去乘一個窗函數,也就是加一個窗函數。

e165cd3c-7761-11ed-8abf-dac502259ad0.jpg

就把這個無限的時域采樣序列截成了有限個序列值。

e1749e84-7761-11ed-8abf-dac502259ad0.jpg

但是加窗后對此采樣序列的頻域也產生了影響:此時的頻域便不在是一個理想的矩形窗,而是成了一個有過渡帶,阻帶有波動的低通濾波器。

e18be0bc-7761-11ed-8abf-dac502259ad0.jpg

通常根據所加的窗函數的不同,在頻域所得的低通濾波器的阻帶衰減也不同。常用的窗函數有矩形窗、三角窗、漢寧窗(升余弦窗)、BLACKMAN窗(二階升余弦窗)等。

所以窗函數法設計FIR濾波器的步驟如下:

e1b19906-7761-11ed-8abf-dac502259ad0.jpg

FIR濾波器的FPGA實現

由于在Quartus中提供了FIR濾波器的IP核,所以只需要利用MATLAB根據要求計算出濾波器的系數,再將系數導入IP核就可以實現FIR濾波器。

要求:濾波器采樣頻率8MHz,過渡帶[1MHz,2MHz],通帶衰減小于1dB,阻帶衰減大于40dB,濾波器系數量化位數為12比特。

1.利用MATLAB設計出滿足要求的FIR濾波器

這里需要用到kaiserord函數得到滿足要求的最小階數,及firpm函數設計最優濾波器。下面的代碼參考自《數字調制解調技術的MATLAB與FPGA實現》杜勇。

matlab代碼(可以滑動喲)

%E4_5_LpfDesign.m

%設計一個低通濾波器。采樣頻率fs=8MHz,過渡帶fc=[1MHz 2MHz];

%繪出濾波器第數量化前后的幅頻響應圖;將量化后的濾波器系數寫入指定的txt文本文件中

function h_pm=E4_5_LpfDesign;

fs=8*10^6; %采樣頻率

qm=12; %濾波器系數量化位數

fc=[1*10^6 2*10^6]; %過渡帶

mag=[1 0]; %窗函數的理想濾波器幅度

%設置通帶容限a1及阻帶容限a2

%通帶衰減ap=-20*log10(1-a1)=0.915dB,阻帶衰減為as=-20*log10(a2)=40dB

a1=0.1;a2=0.01;

dev=[a1 a2];

%采用凱塞窗函數獲取滿足要求的最小濾波器階數

[n,wn,beta,ftype]=kaiserord(fc,mag,dev,fs)

%采用firpm函數設計最優濾波器

fpm=[0 fc(1)*2/fs fc(2)*2/fs 1]; %firpm函數的頻段向量

magpm=[1 1 0 0]; %firpm函數的幅值向量

h_pm=firpm(n,fpm,magpm); %設計最優濾波器

%量化濾波系數

q_pm=round(h_pm/max(abs(h_pm))*(2^(qm-1)-1));

%將生成的濾波器系數數據寫入FPGA所需的txt文件中

fid=fopen('E:FPGA DOCFPGA數字信號處理數字調制解調技術的MATLAB與FPGA實現——AlteraVerilog版Chapter_4E4_5_FirIpCoreE4_5_lpf.txt','w');

fprintf(fid,'%12.12f ',h_pm);

fclose(fid);

2.調用FIR濾波器IP核

設置FIR參數時,設置濾波器系數位寬為12比特;流水線級數為1;實現結構設置為Multi-Cycle(多時鐘周期結構),FPGA系統時鐘頻率為32MHz,而數據速率為8MHz,所以每4個時鐘周期處理一個數據即可,因此設置“Clock to compute”的值為4。在設置濾波器系數的時候,將設計好的TXT文件裝載進去,生成完IP核后將其例化。

頂層模塊

module FirIPCore (

reset_n,clk,Xin,

Yout);

inputreset_n; //復位信號,低電平有效

inputclk; //FPGA系統時鐘/數據速率:32MHz

input signed [11:0]Xin; //數據輸入頻率為8MHZ

output signed [24:0]Yout; //濾波后的輸出數據

wire sink_valid,ast_source_ready,ast_source_valid,ast_sink_ready;

wire [1:0] ast_source_error;

wire [1:0] ast_sink_error;

assign ast_source_ready=1'b1;

assign ast_sink_error=2'd0;

//由于系統時鐘為數據速率的4倍,因此需要每4個時鐘周期設置一次ast_sink_valid有效信號

reg [1:0] count;

reg ast_sink_valid;

always @(posedge clk or negedge reset_n)

if (!reset_n) begin

count <= 2'd0;

ast_sink_valid <= 1'b0;

end

else begin

count <= count + 2'd1;

if (count==0)

ast_sink_valid <= 1'b1;

else

ast_sink_valid <= 1'b0;

end

assign sink_valid = ast_sink_valid;

//實例化fir濾波器核

firu0(

.clk(clk),

.reset_n(reset_n),

.ast_sink_data(Xin),

.ast_sink_valid(sink_valid),

.ast_source_ready(ast_source_ready),

.ast_sink_error(ast_sink_error),

.ast_source_data(Yout),

.ast_sink_ready(ast_sink_ready),

.ast_source_valid(ast_source_valid),

.ast_source_error(ast_source_error));

endmodule

3.MATLAB產生仿真測試數據

由于設計的時截止頻率為2MHz的低通濾波器,我們可以產生頻率為1MHz和2MHz的合成信號。

產生測試數據

%E4_6_TestData.M

f1=1*10^6; %信號1頻率為1MHz

f2=2.1*10^6; %信號2頻率為2.1MHz

Fs=8*10^6; %采樣頻率為8MHz

N=12; %量化位數為12比特

Len=2000; %數據長度為2000

%%產生兩個單載波合成后的信號

t=0:1/Fs:(Len-1)/Fs;

c1=2*pi*f1*t;

c2=2*pi*f2*t;

s1=sin(c1);%產生正弦波

s2=sin(c2);%產生正弦波

s=s1+s2; %對兩個單載波信號進行合成

%調用E4_6_LpfDesign函數設計的濾波器對信號進行濾波

hn=E4_5_LpfDesign;

Filter_s=filter(hn,1,s);

%求信號的幅頻響應

m_s=20*log(abs(fft(s,1024)))/log(10); m_s=m_s-max(m_s);

%濾波后的幅頻響應

Fm_s=20*log(abs(fft(Filter_s,1024)))/log(10); Fm_s=Fm_s-max(Fm_s);

%濾波器本身的幅頻響應

m_hn=20*log(abs(fft(hn,1024)))/log(10); m_hn=m_hn-max(m_hn);

%設置幅頻響應的橫坐標單位為Hz

x_f=[0:(Fs/length(m_s)):Fs/2];

%只顯示正頻率部分的幅頻響應

mf_s=m_s(1:length(x_f));

Fmf_s=Fm_s(1:length(x_f));

Fm_hn=m_hn(1:length(x_f));

%繪制幅頻響應曲線

subplot(211)

plot(x_f,mf_s,'-.',x_f,Fmf_s,'-',x_f,Fm_hn,'--');

xlabel('頻率(Hz)');ylabel('幅度(dB)');title('Matlab仿真合成單頻信號濾波前后的頻譜');

legend('輸入信號頻譜','輸出信號頻譜','濾波器響應');

grid;

%繪制濾波前后的時域波形

subplot(212)

%繪制時域波形

%設置顯示數據范圍,設置橫坐標單位ms

t=0:1/Fs:80/Fs;t=t*10^6;

t_s=s(1:length(t));

t_filter_s=Filter_s(1:length(t));

plot(t,t_s,'--',t,t_filter_s,'-');

xlabel('時間(ms)');ylabel('幅度');title('FPGA仿真合成單頻信號濾波前后的時域波形');

legend('輸入信號波形','輸出信號波形');

grid;

%對仿真產生的合成單頻信號進行量化處理

s=s/max(abs(s)); %歸一化處理

Q_s=round(s*(2^(N-1)-1));%12比特量化

%將生成的數據以二進制數據格式寫入txt文件中

fid=fopen('E:FPGA DOCFPGA數字信號處理數字調制解調技術的MATLAB與FPGA實現——AlteraVerilog版Chapter_4E4_5_FirIpCoreE4_5_TestData.txt','w');

for i=1:length(Q_s)

B_noise=dec2bin(Q_s(i)+(Q_s(i)<0)*2^N,N);

for j=1:N

if B_noise(j)=='1'

tb=1;

else

tb=0;

end

fprintf(fid,'%d',tb);

end

fprintf(fid,' ');

end

fprintf(fid,';');

fclose(fid);

4.編寫測試激勵文件

測試激勵文件

`timescale 1 ns/ 1 ns

module FirIPCore_vlg_tst();

reg [11:0] Xin;

reg clk,clk_data;

reg reset_n;

wire [24:0] Yout;

FirIPCore i1 (

.Xin(Xin),

.Yout(Yout),

.clk(clk),

.reset_n(reset_n)

);

parameter clk_period=20; //設置時鐘信號周期(頻率):50MHz

parameter data_clk_period=clk_period*4; //設置數據時鐘周期

parameter clk_half_period=clk_period/2;

parameter data_half_period=data_clk_period/2;

parameter data_num=2000; //仿真數據長度

parameter time_sim=data_num*data_clk_period; //仿真時間

initial

begin

//設置輸入信號初值

Xin=12'd10;

//設置時鐘信號初值

clk=1;

clk_data=1;

//設置復位信號

reset_n=0;

#110 reset_n=1;

//設置仿真時間

#time_sim $finish;

end

//產生時鐘信號

always

#clk_half_period clk=~clk;

always

#data_half_period clk_data=~clk_data;

//從外部TX文件(E4_5_TestData.txt)讀入數據作為測試激勵

integer Pattern;

reg [11:0] stimulus[1:data_num];

initial

begin

//文件必須放置在"工程目錄simulationmodelsim"路徑下

$readmemb("E4_5_TestData.txt",stimulus);

Pattern=0;

repeat(data_num)

begin

Pattern=Pattern+1;

Xin=stimulus[Pattern];

#data_clk_period;

end

end

//將仿真數據Yout寫入外部TXT文件中(E4_5_FpgaData.txt)

integer file_out;

initial

begin

//文件放置在"工程目錄simulationmodelsim"路徑下

file_out = $fopen("E4_5_FpgaData.txt");

if(!file_out)

begin

$display("could not open file!");

$finish;

end

end

wire rst_write;

wire signed [24:0] dout_s;

assign dout_s = Yout; //將Yout轉換成有符號數據

assign rst_write = clk_data & (reset_n); //產生寫入時鐘信號,復位狀態時不寫入數據

always @(posedge rst_write )

$fdisplay(file_out,"%d",dout_s);

endmodule

仿真結果

e20d170e-7761-11ed-8abf-dac502259ad0.png

IIR濾波器的FPGA實現

IIR濾波器結構包括直接Ⅰ型、直接Ⅱ型、級聯型和并聯型。其中級聯型結構便于準確實現數字濾波器零極點,且受參數量化影響小,因此使用廣泛。

e2582fb4-7761-11ed-8abf-dac502259ad0.jpg

e26f0b58-7761-11ed-8abf-dac502259ad0.jpg

e2835f18-7761-11ed-8abf-dac502259ad0.jpg

它實際上相當于將級數較多的濾波器分解成多個級數小于等于3的IIR濾波器,前一級的輸出作為后一級的輸入,其中每個濾波器均可看成獨立的結構。

e29a124e-7761-11ed-8abf-dac502259ad0.jpg

同樣濾波器的參數需要使用matlab計算出,還需要將計算出的濾波器參數轉換成級聯的形式。

由于沒有現成的IIR濾波器IP核,所以需要用verilog來實現,結構如下??梢钥闯鲇肍PGA實現并不復雜,只是移位乘上系數相加的過程。

e2aff56e-7761-11ed-8abf-dac502259ad0.jpg

部分代碼如下

IIR第一級

module FirstTap (

rst,clk,Xin,

Yout);

inputrst; //復位信號,高電平有效

inputclk; //FPGA系統時鐘,頻率為2kHz

input signed [11:0]Xin; //數據輸入頻率為2kHZ

output signed [11:0]Yout; //濾波后的輸出數據

//零點系數的實現代碼/////////////////////////

//將輸入數據存入移位寄存器

reg signed[11:0] Xin1,Xin2;

always @(posedge clk or posedge rst)

if (rst)

//初始化寄存器值為0

begin

Xin1 <= 12'd0;

Xin2 <= 12'd0;

end

else

begin

Xin1 <= Xin;

Xin2 <= Xin1;

end

//采用移位運算及加法運算實現乘法運算

wire signed [23:0] XMult0,XMult1,XMult2;

assign XMult0 = {{6{Xin[11]}},Xin,6'd0}+{{7{Xin[11]}},Xin,5'd0}-{{11{Xin[11]}},Xin,1'd0}; //*94

assign XMult1 = {{5{Xin1[11]}},Xin1,7'd0}+{{9{Xin1[11]}},Xin1,3'd0}+{{10{Xin1[11]}},Xin1,2'd0}; //*140

assign XMult2 = {{6{Xin2[11]}},Xin2,6'd0}+{{7{Xin2[11]}},Xin2,5'd0}-{{11{Xin2[11]}},Xin2,1'd0}; //*94

//對濾波器系數與輸入數據乘法結果進行累加

wire signed [23:0] Xout;

assign Xout = XMult0 + XMult1 + XMult2;

//極點系數的實現代碼///////////////////////

wire signed[11:0] Yin;

reg signed[11:0] Yin1,Yin2;

always @(posedge clk or posedge rst)

if (rst)

//初始化寄存器值為0

begin

Yin1 <= 12'd0;

Yin2 <= 12'd0;

end

else

begin

Yin1 <= Yin;

Yin2 <= Yin1;

end

//采用移位運算及加法運算實現乘法運算

wire signed [23:0] YMult1,YMult2;

wire signed [23:0] Ysum,Ydiv;

assign YMult1 = {{2{Yin1[11]}},Yin1,10'd0}+{{5{Yin1[11]}},Yin1,7'd0}+{{6{Yin1[11]}},Yin1,6'd0}-

{{11{Yin1[11]}},Yin1,1'd0}-{{12{Yin1[11]}},Yin1}; //*1213=1024+128+64-2-1

assign YMult2 = {{4{Yin2[11]}},Yin2,8'd0}+{{9{Yin2[11]}},Yin2,3'd0}+{{10{Yin2[11]}},Yin2,2'd0}; //*268=256+8+4

//第一級IIR濾波器實現代碼///////////////////////////

assign Ysum = Xout+YMult1-YMult2;

assign Ydiv = {{11{Ysum[23]}},Ysum[23:11]};//2048

//根據仿真結果可知,第一級濾波器的輸出范圍可用9位表示

assign Yin = (rst ? 12'd0 : Ydiv[11:0]);

//增加一級寄存器,提高運行速度

reg signed [11:0] Yout_reg ;

always @(posedge clk)

Yout_reg <= Yin;

assign Yout = Yout_reg;

endmodule

仿真結果

e2e50812-7761-11ed-8abf-dac502259ad0.png

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21798

    瀏覽量

    606024
  • 濾波器
    +關注

    關注

    161

    文章

    7860

    瀏覽量

    178935

原文標題:FIR及IIR濾波器的FPGA實現

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于FPGAFIR濾波器設計與實現

    本帖最后由 eehome 于 2013-1-5 09:50 編輯 基于FPGAFIR濾波器設計與實現   文章研究基于
    發表于 08-11 15:32

    FIR濾波器IIR濾波器的區別與特點

    本帖最后由 xie0517 于 2016-8-8 08:52 編輯 FIR是有限沖擊響應;IIR是無限沖擊響應。 FIRIIR濾波器
    發表于 08-08 08:49

    FIR濾波器IIR濾波器的區別與特點

    FIRIIR濾波器的一個主要區別:FIR是線性相位,IIR為非線性相位(雙線性變換法),對于非線性相位會造成的影響,可以這樣考慮:對于輸入
    發表于 03-12 13:21

    IIR濾波器FIR濾波器的對比分析介紹

    1.兩種濾波器都是數字濾波器。根據沖激響應的不同,將數字濾波器分為有限沖激響應(FIR濾波器和無限沖激響應(
    發表于 06-26 06:15

    FIR濾波器IIR濾波器有什么區別

    ,穩定性強,故不存在不穩定的問題;FIR具有嚴格的線性相位,幅度特性隨意設置的同時,保證精確的線性相位;FIR設計方式是線性的,硬件容易實現;FIR相對
    發表于 06-27 04:20

    fir濾波器的設計和實現

    使用iir濾波器相對fir濾波器可以在使用更小的階數的情況下實現更好的效果。實驗證明,可能20階的iir
    發表于 12-22 08:29

    簡談FIR濾波器IIR濾波器的區別

    最近總是遇到很多大俠在問濾波器相關的問題,之前對這一方面接觸不是很多,最近也是在學習一些這方面的知識,今天先和大俠簡單聊一聊FIR濾波器IIR濾波
    發表于 05-29 16:47

    高效FIR濾波器的設計與仿真-基于FPGA

    高效FIR濾波器的設計與仿真-基于FPGA 摘要:該文在介紹有限沖激響應(FIR)數字濾波器
    發表于 01-16 09:56 ?1695次閱讀
    高效<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的設計與<b class='flag-5'>仿真</b>-基于<b class='flag-5'>FPGA</b>

    詳解FIR濾波器IIR濾波器的區別

    數字濾波器廣泛應用于硬件電路設計,一般分為FIR濾波器IIR濾波器。那么FIR
    發表于 05-03 11:36 ?20次下載

    IIRFIR濾波器的比較和區別

    兩種濾波器都是數字濾波器。根據沖激響應的不同,將數字濾波器分為有限沖激響應(FIR濾波器和無限沖激響應(
    發表于 11-12 10:02 ?4.8w次閱讀

    FIR濾波器IIR濾波器到底有什么區別

    你知道FIR濾波器IIR濾波器的不同點嗎?它有有什么特點?濾波器是工程師工作中必不可少的器件,濾波器
    發表于 08-09 14:15 ?3.3w次閱讀
    <b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>與<b class='flag-5'>IIR</b><b class='flag-5'>濾波器</b>到底有什么區別

    FIR濾波器的MATLAB與FPGA設計

    數字濾波器實現結構上劃分,有FIRIIR兩種。FIR的特點是:線性相位、消耗資源多;IIR
    的頭像 發表于 04-24 14:40 ?3493次閱讀

    FIR濾波器IIR濾波器的區別與聯系

    1.根據沖激響應的不同,將數字濾波器分為有限沖激響應(FIR濾波器和無限沖激響應(IIR濾波器。對于
    的頭像 發表于 12-30 23:45 ?4012次閱讀

    IIR濾波器FIR濾波器的區別

    數字濾波器是數字信號處理中最常用的一種技術,可以對數字信號進行濾波、降噪、增強等處理,其中最常見的兩種數字濾波器IIR濾波器
    的頭像 發表于 06-03 10:21 ?1.9w次閱讀

    iir濾波器fir濾波器的優勢和特點

    IIR濾波器FIR濾波器是數字信號處理領域中兩種非常重要的濾波器類型。它們各自具有獨特的優勢和特點,適用于不同的應用場景。本文將介紹
    的頭像 發表于 07-19 09:28 ?1830次閱讀
    伯爵百家乐官网的玩法技巧和规则 | 百家乐平注常赢打法| 百家乐官网投注方法投资法| 威尼斯人娱乐城老品牌值得您信赖lm0| 尊龙百家乐官网娱乐| 赌博的危害| 百家乐看大路| 荷规则百家乐官网的玩法技巧和规则 | 新濠百家乐官网的玩法技巧和规则| 同花顺国际娱乐城| 菲彩百家乐的玩法技巧和规则 | 百家乐用品| 百家乐能赢到钱吗| 立即博百家乐官网娱乐城| 永利博国际网| 缅甸百家乐赌| 百家乐有看牌器吗| 百家乐官网百家乐官网视频游戏世界| 棋牌游戏网| 百家乐路单怎样| 娱乐百家乐官网可以代理吗| 玩百家乐官网会犯法吗| 德州扑克怎么算牌| 百家乐怎么玩最保险| 财神百家乐官网的玩法技巧和规则 | 澳门百家乐官网国际| 丽都棋牌下载| 金殿百家乐的玩法技巧和规则 | 百家乐庄6点| 属猪的人做生意摆放什么聚财| 下载百家乐官网棋牌大厅| 隆德县| 大发888网站打不开| 真人百家乐的玩法技巧和规则| 百家乐玩法说明| 百家乐官网赌大小| 大发百家乐官网游戏| 明升国际网| 水果机遥控| 百家乐现金网信誉排名| 尊龙百家乐官网娱乐平台|