คำถามติดแท็ก fft

การแปลงฟูริเยร์ที่รวดเร็วเป็นอัลกอริธึมที่มีประสิทธิภาพในการคำนวณการแปลงฟูริเยร์แบบแยก (DFT) และอินเวอร์ส

1
การลบเสียงรบกวนจากสัญญาณ F2F
(คำถามนี้เกี่ยวข้องกับการดึงข้อมูลบัตรแถบแม่เหล็กแบบไบนารีจาก WAV ดิบ ) ฉันกำลังแยกลำดับเลขฐานสองออกจากแถบแม่เหล็กบนบัตรเครดิต อย่างที่คุณเห็นสัญญาณจะลดลงอย่างชัดเจนในที่เดียว นอกจากนี้ยังมีการย่อยสลายเล็กน้อยทางด้านซ้ายของภาพ เพียงแค่ใช้ IIR (เช่น ) ปรับให้เรียบ แต่สัญญาณที่ได้จะไม่ราบรื่นทางคณิตศาสตร์ ถ้าฉันแยกสัญญาณสองสามครั้งเสียงจะกลับมาพร้อมกับการแก้แค้น:Xo ยูที= 0.9 Xo ยูทีl a s t+ 0.1 XฉันnXโอยูเสื้อ=0.9Xโอยูเสื้อล.asเสื้อ+0.1XผมnX_{\rm out} = 0.9X_{\rm out_{last}} + 0.1X_{\rm in} คำถามของฉันคือ: ฉันสามารถลบเสียงรบกวนในลักษณะที่ตราสารอนุพันธ์ออกมาได้หรือไม่? ถ้าเป็นเช่นนั้นได้อย่างไร แก้ไข:นี่คือภาพโคลสอัพของคลื่นที่เสียหายบางส่วน: แก้ไข (2): สองวิธีที่ฉันกำลังพิจารณา: ประการแรกฉันสามารถทำการประมาณเทย์เลอร์ของสัญญาณทั้งสองด้านของเซกเตอร์ที่เสียหายและผสมผสานการประมาณเข้าด้วยกัน ประการที่สองฉันสามารถ FFT ลบส่วนประกอบความถี่สูงและย้อนกลับ FFT ฉันจะลองวิธีที่สองตอนนี้ ...
11 fft  noise 

2
อะไรคือสิ่งที่ได้มาจากพล็อตสหสัมพันธ์ข้าม?
สมมติว่าเรามีสัญญาณเสียงสองตัวคือ x (t) และ y (t) ที่ได้รับผลกระทบจากเสียงดังที่แสดงด้านล่าง และเราต้องการเชื่อมโยงสัญญาณทั้งสองนี้และพล็อตสหสัมพันธ์แสดงดังด้านล่าง ในพล็อตสหสัมพันธ์นี้มีค่าสูงสุดประมาณ -11 msec ฉันพยายามเข้าใจว่าเราตีความจุดสูงสุดนี้ในพล็อตนี้ได้อย่างไร มันหมายความว่าอะไร? โปรดอธิบายฉันด้วยว่าเราได้อะไรจากการแปลงฟูริเยร์ของฟังก์ชันสหสัมพันธ์ ขอบคุณล่วงหน้า!

4
Radix-4 FFT เมื่อเทียบกับ Radix-2
การใช้ Radix-4 เร็วกว่าการแปลงรหัส Radix-2 FFT ที่เท่ากันหรือไม่? และถ้าเป็นเช่นนั้นทำไมมันจะเร็วขึ้น?
10 fft 

2
มันถูกต้องหรือไม่ที่จะเพิ่มแอมพลิจูด (และคาดว่าจะมีคุณภาพ FFT) โดยเพียงแค่ปรับขนาดข้อมูลหรือไม่
ฉันใช้รุ่น "KISS FFT" โดย Mark Borgerding ยอมรับอาร์เรย์ของค่าอินพุตแบบคงที่ 16 บิตและสร้างอาร์เรย์ผลลัพธ์แบบ 32 บิต ฉันได้ค้นพบว่าถ้าแอมพลิจูดอินพุทมีค่าต่ำมากค่าผลลัพธ์แบบลอยออกมาเป็นศูนย์ แต่ถ้าฉันเพียงแค่ปรับอินพุต (โดยการพูดปัจจัยที่ 16) ดังนั้นค่าเอาท์พุตที่น้อยกว่าจึงเป็นศูนย์ รายละเอียดเพิ่มเติม. (ไม่ใช่ว่ามันมีความสำคัญมากสำหรับวัตถุประสงค์ของฉัน แต่เพื่อความมั่นคงฉันจะหารค่าลอยตัวที่เกิดขึ้นโดยใช้ตัวคูณสเกลเดียวกัน) อย่างไรก็ตามนี่ดูเหมือนว่าจะทำงานได้ในแง่ของการสร้างผลลัพธ์เมื่อก่อนหน้านี้ฉันเพิ่งได้รับบัฟเฟอร์ของศูนย์เกือบทั้งหมด แต่ฉันสงสัยว่ามีเหตุผลบางอย่างที่อาจเป็นวิธีที่ไม่ถูกต้อง (โปรดทราบว่าวิธีการนี้หมายความว่ามี "ความหยาบ" / ข้อมูลละเอียดมากขึ้นและโดยเฉพาะอย่างยิ่งเสียงรบกวนระดับต่ำที่ปกติจะไม่มีอยู่ในปัจจุบันฉันเกือบจะสงสัยว่ามันจะเป็นการฉลาดที่จะฉีด เสียงรบกวนในระดับต่ำเพื่อแทนที่ค่าศูนย์ในอินพุต)
10 fft 

3
Chroma-Subsampling: วิธีการคำนวณอัตราข้อมูลอย่างถูกต้อง
ฉันมีความยากลำบากในการทำความเข้าใจวิธีการคำนวณอัตราข้อมูลเมื่อยกระดับการสุ่มตัวอย่างด้วยสีในตัวอย่างของภาพ Y'UV: ฉันมีตัวอย่างต่อไปนี้สำหรับการคำนวณ: ความละเอียดของภาพ: 352*288 ความถี่: 25 fps สำหรับ(4: 4: 4)การคำนวณตัวอย่างจะเป็นดังนี้: (352px * 288px) * 3 color channels * 25 fps * 8 bit = 60 825 600 bit/s จนถึงตอนนี้ดีมาก แต่ตอนนี้มาถึง(4: 2: 0) : (352px*288px) * 1.5 color channels * 25 * 8 = 30 412 800 bit/s ตอนนี้พยายามที่จะถ่ายโอนตัวอย่างนี้ไปยังเช่น(4: 1: …

1
สร้าง spectrogram
ฉันได้พยายามหาเหตุผลสำหรับงานนี้และวางแผนที่จะใช้แพ็คเกจซอร์สของ KissFFT เพื่อทำการแปลงฟูริเยร์อย่างรวดเร็ว โปรดแจ้งให้เราทราบหากนี่เป็นสิ่งที่ถูกต้อง: จัดสรรโครงสร้าง FFT เช่น kiss_fft_alloc(N,0,NULL,NULL) ในกรณีที่Nเป็นขนาดของหน้าต่างฉันใช้ บัฟเฟอร์อินพุตจะอาร์เรย์ขององค์ประกอบของประเภทN kiss_fft_scalarบัฟเฟอร์ส่งออกจะอาร์เรย์ขององค์ประกอบของประเภทN/2 + 1kiss_fft_cpx หมายเลขถอดรหัสN(ขนาดหน้าต่าง) ของตัวอย่าง PCM สำหรับตัวอย่าง PCM แต่ละค่าเฉลี่ยแอมพลิจูดของแต่ละแชนเนล (ตัวอย่างที่ไม่ได้ลงชื่อ) และสเกลตั้งแต่ 0 ถึง 2 (หารด้วย 65536.0) เก็บผลลัพธ์ไว้ในบัฟเฟอร์อินพุต ดำเนินการกับหน้าต่าง (เช่น Hanning) บนบัฟเฟอร์อินพุต ทำการแปลงฟูริเยร์อย่างรวดเร็วบนอินพุตบัฟเฟอร์เก็บไว้ในบัฟเฟอร์เอาต์พุต ตั้งแต่ฉันใช้ค่าจริงเป็น input kiss_fftr()ฉันสามารถใช้ สำหรับN/2ค่าเอาต์พุตให้รับขนาดกำลังสองของข้อมูลที่แปลงแล้วแปลงค่าเป็นสเกล dB ด้วยสูตรต่อไปนี้: 10 * log10 (re * re + im * im) เขียนN/2ค่าจากขั้นตอนที่ 6 …

2
คุณจะจัดการกับความถี่เชิงลบในสเปกตรัมพลังงานของสัญญาณที่ซับซ้อนได้อย่างไร
เมื่อเราใช้การดำเนินการ DFT กับสัญญาณจริงเพื่อรับจากนั้นนำขนาดกำลังสองของ , , สเปกตรัมพลังงานมีความสมมาตร คุณสามารถใช้ความถี่เชิงบวกหรือเชิงลบความถี่ถึงข้อมูลความถี่ใน[k]X [ k ] X [ k ] | X [ k ] | 2 X [ k ]x [ n ]x[n]x[n]X[ k ]X[k]X[k]X[ k ]X[k]X[k]| X[ k ] |2|X[k]|2\lvert X[k]\rvert^2X[ k ]X[k]X[k] อย่างไรก็ตามสิ่งนี้ไม่เป็นความจริงสำหรับสัญญาณที่ซับซ้อนที่มีค่า; สเปกตรัมพลังงานไม่สมมาตร ในกรณีนี้คุณจะกำหนดองค์ประกอบความถี่ในสัญญาณดั้งเดิมอย่างไร เราสามารถดรอปส่วนความถี่ลบได้หรือไม่

2
สิ่งประดิษฐ์ใน FFT
ฉันเพิ่งตระหนักว่า FFT ไม่สมบูรณ์แบบ หมายความว่าถ้าฉันรับสัญญาณจากนั้นรับ FFT จากนั้นทำ FFT ผกผันเอาท์พุทผลลัพธ์ที่ได้นั้นไม่เหมือนกับอินพุท นี่คือภาพเพื่อแสดงสิ่งที่ฉันหมายถึง: ฉันคิดว่าภาพนั้นอธิบายได้ด้วยตนเอง สัญญาณ IFFT เป็นเพียงการแปลงผกผันของ "FFT spectrum" และพล็อต "ความแตกต่าง" คือความแตกต่างระหว่างสัญญาณ IFFT และสัญญาณดั้งเดิม ( )IFFT - OriginalIFFT - Original\text{IFFT - Original} เห็นได้ชัดว่ามีสิ่งของบางอย่างแม้ว่าจะเล็กจริง ๆ ฉันอยากรู้ว่าทำไมพวกเขาถึงเกิดขึ้นตั้งแต่แรก เป็นเพราะหน้าต่าง จำกัด ของการแปลงฟูริเยร์หรือไม่? หรือเพราะบางสิ่งในอัลกอริทึม FFT หมายเหตุ:พล็อตนี้มี 32 คะแนน แต่ฉันได้ตรวจสอบกับ 100, 1,000, 1024, 256 และ 64 คะแนนและมีสิ่งตกค้างนี้ในความแตกต่างของขนาดที่คล้ายกันเสมอ (ทั้งหรือ )10−1610−1610^{-16}10−1510−1510^{-15}

1
ฉันสามารถใช้ FFT เพื่อตีความท่าทางของ accelerometer ได้หรือไม่
ฉันต้องการตรวจจับท่าทางสองแบบที่เกิดขึ้นเมื่อดูข้อมูล accelerometer นี่คือการทำงาน (สั้น ๆ เท่าที่ฉันสามารถทำได้): ให้บอกว่า iPhone กำลังแกว่งไปมาในขณะที่หงายหน้าอยู่ ผู้ใช้สามารถทำการแกว่งหนึ่งครั้ง (ไปข้างหน้าหรือข้างหลังท่าทางหนึ่ง) หรือการแกว่งอย่างต่อเนื่องในระยะเวลาใดก็ได้ (ท่าทางที่สอง) ปัจจุบันรหัสของฉันเก็บรักษารายการข้อมูล accelerometer (แกน y) ของอุปกรณ์จาก 50 เฟรมล่าสุด แต่ละเฟรมข้อมูลนี้ใส่ผ่านอัลกอริทึม FFT (อันนี้http://goo.gl/yi3mn ) จากนั้นฉันพยายามตีความโดเมนความถี่ที่กำหนด ฉันสังเกตุเห็นถึงความสัมพันธ์ที่แน่นแฟ้นระหว่างความเร็วของออสซิลเลชันและพลังของช่วงความถี่กลางถึงต่ำ ปัญหาคือฉันต้องตรวจจับ (ในแบบเรียลไทม์เมื่อการเคลื่อนไหวทำให้บางสิ่งบางอย่างบนหน้าจอ) ไม่ว่าการสั่นที่เพิ่งเสร็จสิ้นนั้นจะเป็นแบบเอกพจน์หรืออย่างใดอย่างหนึ่งที่ยังคงสั่นอีกทิศทางหนึ่งในทิศทางตรงกันข้าม ที่นี่ฉันควรชี้ให้เห็นว่า accelerometers ทำงานกับแผ่นความดัน เมื่อความผันผวนหยุดข้อมูลอินพุตจะแสดงค่าตรงข้ามจากเมื่อมีการดำเนินการความผันผวน สิ่งนี้ทำให้เป็นการยากที่จะเห็นความแตกต่างที่ชัดเจนระหว่างการเคลื่อนที่ไปข้างหน้าเดี่ยวและการเคลื่อนที่ไปข้างหน้าสองครั้งจากนั้นเคลื่อนที่ไปข้างหลังถอยหลัง ใครสามารถแนะนำวิธีที่ฉันอาจใช้ FFT เพื่อถอดรหัสค่าขนาดที่ถูกต้อง (หรือสิ่งอื่นที่มีประโยชน์) ที่ฉันสามารถใช้เพื่อบอกความแตกต่างระหว่างท่าทางที่อธิบายข้างต้น ฉันบันทึกข้อมูลที่ฉันใช้กับไฟล์ข้อความ เป็นข้อมูลดิบ (ค่า g-force) ตามแนวแกน y ของอินพุตมาตรวัดความเร่ง http://pastebin.ca/2108123แสดงข้อมูลสำหรับออสซิลเลชัน 2 เอกพจน์ (ฉันถืออุปกรณ์ไว้ที่จุดเริ่มต้นจุดจบและระหว่างสองออสซิลเลชัน) …
10 fft 

3
มันเป็นธรรมเนียมที่จะต้องแก้ไขเพื่อให้ได้หน้าต่าง
พิจารณาวิธีการกำหนดหน้าต่าง Hanning: 0.5 - 0.5 * cos(n*2*Pi/(N-1)) โดยคำจำกัดความนี้จะได้รับ 0.5 ซึ่งเป็นเพียงค่าเฉลี่ยของค่าสัมประสิทธิ์ ในทางตรงกันข้าม Flattop windows ตามที่นิยามไว้มีความเป็นอันหนึ่งอันเดียวกันโดยการออกแบบ ดูเหมือนว่าจะเหมาะสมในการปรับขนาดหน้าต่าง Hanning ด้วย 2 เท่า แต่ฉันไม่เคยเห็นสิ่งนี้มาพูดถึงทุกที่ ดูเหมือนว่าทุกหน้าต่างควรได้รับการปรับสัดส่วนเพื่อความเป็นอันหนึ่งอันเดียวกัน ในทางปฏิบัติแล้ว windows จะได้รับการแก้ไขเพื่อประโยชน์ของพวกเขาหรือไม่? ถ้าไม่ทำไมล่ะ แก้ไข: เนื่องจากไม่มีใครให้คำตอบฉันจะอธิบายรายละเอียดเล็กน้อย มันค่อนข้างง่ายในการค้นหาเอกสารที่รายงานการเพิ่มขึ้นของหน้าต่างทั่วไป แต่ฉันไม่เคยเห็นใครอ้างถึงการแก้ไขกำไรก่อนที่จะใช้สำหรับการวิเคราะห์สเปกตรัม บางทีฉันอาจจะพลาดคำแถลงนั้นเสมอไปหรือทุกคนคิดว่าการแก้ไขนั้นเป็นข้อกำหนดที่ชัดเจน ดูเหมือนว่าเป็นเรื่องธรรมดาที่จะกำหนดให้หน้าต่างได้รับเอกภาพเพื่อรักษาระดับพลังงานของสัญญาณ นอกจากนี้เราสามารถเปรียบเทียบหน้าต่างต่าง ๆ สำหรับความแม่นยำของแอมพลิจูดได้อย่างไรถ้ามี 0 dB ที่ได้รับเช่นเดียวกับที่ flattop ทำและอื่น ๆ มีการสูญเสียเกือบ 10 dB ตามที่ Gauss ทำ Windows ยังใช้กันอย่างแพร่หลายสำหรับการออกแบบตัวกรอง FIR ในแอปพลิเคชั่นนี้ควรมีความชัดเจนว่าสัญญาณที่จะถูกปล่อยออกมาเป็นสัญญาณชีพจร …

3
งงงันโดยสเปกตรัมเฟส FFT!
การทดสอบ MATLAB ที่ง่ายมาก: f = 200; fs = 1000; t = 0: 1/fs : 1; x = cos(2*pi*f*t); plot(angle(fftshift(fft(x)))); และนี่คือผลลัพธ์: ตอนนี้ทำการเปลี่ยนแปลงเล็กน้อยกับตัวอย่างโค้ดข้างต้น ลดระยะเวลาเพียง 1 ตัวอย่างดังนี้ f = 200; fs = 1000; t = 0: 1/fs : 1 - 1/fs; x = cos(2*pi*f*t); plot(angle(fftshift(fft(x)))); และสเปกตรัมของเฟสก็บ้าไปหมด: คำถาม: ในพล็อตแรกฉันหวังว่าจะเห็นเฟสศูนย์ที่ bin 700 ซึ่งสอดคล้องกับความถี่บวก 200 ในตัวอย่างนี้ …
9 fft  matlab  phase 

3
ฉันจะตรวจจับเสียงนกหวีด, ป๊อปและเสียงอื่น ๆ ในอินพุตเสียงสดได้อย่างไร?
ฉันได้อ่านคำถามมากมายเกี่ยวกับ SO และตรงไปตรงมาพวกเขาแต่ละคนไม่ได้อธิบายวิธีการเฉพาะเกี่ยวกับเรื่องนี้ บางคนพูดว่า "ทำ FFT" และบางคนก็พูดว่า "การข้ามศูนย์" เป็นต้น แต่ฉันก็แค่เข้าใจว่าอินพุตเสียงดิจิตอลนั้นประกอบไปด้วยแอมพลิจูดสำหรับความถี่เฉพาะและดี .. ไม่ค่อยรู้เท่าไหร่ เกินมัน ตอนนี้ฉันรู้ทฤษฎี Nyquist, ความถี่, แอมพลิจูด, อนุกรมฟูริเยร์และอื่น ๆ และเมื่อ 2-3 ปีที่แล้วตอนที่ฉันทำในหลักสูตรมหาวิทยาลัยของฉันในบางภาคการศึกษา แต่ก่อนหน้านั้นเราไม่ได้สอนการใช้ฟูริเยร์ในโลกแห่งความเป็นจริงและฉันก็ไม่อยากที่จะขุดเรื่องมากไปกว่าการเรียนรู้มากพอที่จะผ่านเรื่องไป แต่ตอนนี้ฉันจะต้องใช้ทุกอย่าง นี่คือภาพรวมของเสียงที่ฉันพยายามตรวจจับ: เห็นได้ชัดว่าเสียงมีกราฟที่ไม่ซ้ำกัน ฉันแค่ต้องการที่จะเข้าใจวิธีการแยกลักษณะเฉพาะของพวกเขาสำหรับเส้นแหลมคมที่ไม่ซ้ำกันในกราฟ เช่นเดียวกับแอมพลิจูดความถี่และอื่น ๆ และสำหรับเวลาเท่าไหร่ - ถึงแม้ว่ามันจะไม่สำคัญก็ตาม ฉันต้องการขั้นตอนง่าย ๆ รายการคำสั่งไม่คลุมเครือ - ฉันสามารถ google ศัพท์ที่ฉันจะไม่เข้าใจ เช่นนี้อาจ? - รับข้อมูลเสียงอินพุต พลอตโตกราฟ รับกราฟกราฟสำหรับเสียงที่คุณต้องการตรวจจับในสภาพแวดล้อมที่ไม่มีเสียง ศึกษากราฟนั้น - วาดลักษณะเฉพาะของเสียงนั้น สร้างฟังก์ชั่นบางอย่างที่สามารถตรวจจับลักษณะเฉพาะเหล่านั้นในฟีดเสียงสดโดยใช้คุณสมบัติของเสียงที่พบใน (4) หากพบการแข่งขันดี …

4
การแปลงแบบ DFT ใช้คลื่นสามเหลี่ยมแทนคลื่นบาป
เรารู้ว่า DFT (การแปลงฟูริเยร์แบบแยก) แบ่งสัญญาณเป็นคลื่นความถี่ไซน์หลายความถี่ มีการแปลงที่ทำสิ่งเดียวกัน แต่สำหรับคลื่นสามเหลี่ยม สำหรับจุดประสงค์ของฉันฉันแค่พูดคุยเกี่ยวกับสัญญาณ 1-d (เช่นแรงดันไฟฟ้า ฯลฯ ) ฉันกำลังศึกษาข้อมูลการลงทุนในตลาดหุ้นในอดีตและฉันแค่ต้องการดูการกลับตัวของหุ้นบางตัว กล่าวอีกนัยหนึ่งฉันต้องการดำเนินการ "low-pass" ในราคาหุ้นโดยใช้การแปลงนี้ แก้ไข: ถ้าใช่ฉันจะทำอย่างไร
9 fft  dft  transform 

1
ฉันสามารถใช้การแปลงรูปแบบใดเพื่อ“ ซูม” ในส่วนเฉพาะของสเปกตรัมของสัญญาณ
หากฉันจำได้อย่างถูกต้องจะมีการเปลี่ยนแปลงของ DFT ที่สามารถใช้ในการวิเคราะห์ย่านความถี่เฉพาะของสัญญาณ มันเรียกว่าอย่างไร

2
การแปลงฟูริเยร์ลอการิทึม (LFT) บนสัญญาณเสียง
ฉันพยายามวิเคราะห์เพลงให้มากที่สุด แน่นอนฉันลอง FFT แต่มีปัญหาบางอย่าง ฉันพบว่าความถี่ต่ำมีความละเอียดต่ำกว่าการได้ยินของมนุษย์ ฉันลองใช้ FFT เป็นเวลานานเพื่อแก้ไขปัญหานี้ แต่ถึงแม้จะวิเคราะห์ด้วย 8192 ตัวอย่าง / s ในอัตราตัวอย่าง 44100Hz (หมายถึงไม่มีการแก้ปัญหาเวลา) ฉันได้รับความละเอียดไม่เพียงพอสำหรับความถี่ต่ำ ฉันพบว่ามีวิธีแก้ปัญหาน้อย ประการแรกการแก้ไขกำลังสองบนถังขยะ FFT แต่ดูเหมือนจะไม่ใช่วิธีที่สมบูรณ์แบบ ปัญหาของวิธีนี้คือ: 1. 'ถ้าฉันต้องการหา freqs ระหว่าง freq bins ฉันควรเลือกถังขยะสามอันเพื่อทำการแก้ไข?' 2. 'แม้ฉันจะทำสิ่งนี้ไม่มีข้อมูลเพิ่มเติมที่เกิดขึ้นจริง ฉันรู้ว่าการแก้ไขเป็นวิธีที่ยุ่งยากมาก ' ประการที่สองการดึง freq แต่ละช่องด้วยความถี่ที่ต้องการดังนั้นฉันสามารถแยกลอการิทึมแบบลอการิทึม แต่มีปัญหาต้นทุนการคำนวณที่สำคัญ: (อาจมากกว่า) N ^ 2 ประการที่สาม LFT (การแปลงลอการิทึมฟูริเยต์) ผู้ร้องขอนี้ใช้ตัวอย่างระยะห่างแบบลอการิทึมและให้ผลลัพธ์ที่ตรงกับความต้องการของฉันด้วยความเร็วที่รวดเร็วอย่างไม่น่าเชื่อ /programming/1120422/is-there-an-fft-that-uses-a-logarithmic-division-of-frequency แต่ฉันไม่รู้ด้วยอัลกอริธึมนั้น ฉันพยายามที่จะเข้าใจกระดาษและนำไปใช้ แต่มันเป็นไปไม่ได้เพราะขาดทักษะภาษาอังกฤษและคณิตศาสตร์ของฉัน ดังนั้นฉันต้องการความช่วยเหลือในการใช้ …
9 audio  fft 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.