creatio ex nihilo

ศล
Location :
กรุงเทพ Thailand

[Profile ทั้งหมด]

ให้ทิปเจ้าของ Blog [?]
ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 85 คน [?]




Group Blog
 
All Blogs
 
Friends' blogs
[Add ศล's blog to your web]
Links
 

 

Least Squares

[สารบัญกลุ่มเรื่องที่กำลังศึกษา]

เป็นหลักการหนึ่งที่ใช้บ่อยใน DSP สมมติว่าเรามีฟังก์ชั่นต่อเนื่อง 2 ฟังก์ชั่น f(t) กับ f̂(c,t) เมื่อ c ไม่เป็นฟังก์ชั่นของ t ถ้าเราเลือก c ที่ทำให้ f̂(c,t) เป็นการประมาณแบบ least-squares ของ f(t) ในช่วง t1 ถึง t2 แล้ว total squared error (TSE) ซึ่งมีค่าตามสมการ

          

จะมีค่าต่ำสุด

ตัวอย่างรูปด้านล่าง f(t) เป็นคลื่นสามเหลี่ยมมีคาบ = 500 และพล็อตในช่วง t1 = 0 ถึง t2 = 1000 อีกฟังก์ชั่นหนึ่ง f̂(c,t) = c sin(2πt/500) ที่เลือกค่า c ให้ TSE ต่ำสุด เท่ากับเราพูดว่า f̂(c,t) เป็นการประมาณแบบ least-squares ของ f(t) ในช่วง [t1, t2] = [0, 1000]


กรณีสัญญาณไม่ต่อเนื่อง f(t) จะกลายเป็นเวกเตอร์ที่มี elements เป็นแซมเปิ้ล N ตัว f = [f1 f2 ··· fN] และสมการ TSE เปลี่ยนเป็น

          

เมื่อ fn คือ element ที่ n ของ f และ T คือ time step หรือช่วงระหว่างแซมเปิ้ล ตัวอย่างรูปด้านล่างคือกรณีไม่ต่อเนื่องของรูปบนที่ T = 35, N = 28


ถ้า f̂(c,t) เป็นฟังก์ชั่นเชิงเส้นของ c เช่น f̂(c,t) = c1 + c2t + c3t2 + ... + cMtM-1 เราจะเรียกว่าเป็นการประมาณแบบ least-squares ที่เป็นเชิงเส้น (linear least-squares approximation) ในกรณีดังกล่าว มีฟังก์ชั่นในรูป tm (ค่าของ m เริ่มจาก 0) อยู่ M ฟังก์ชั่น ถ้าให้ gm(t) เป็นฟังก์ชั่นของ t ฟังก์ชั่นที่ m เราจะเขียน gmn = gm(nT) แทนค่าของ gm(t) ที่ t = nT ฉะนั้น

          f̂(c,nT) = c1g1n + c2g2n + c3g3n + ... + cMgMn

และ

          

เงื่อนไขที่ทำให้ TSE ต่ำสุดคือ

          

ทั้งหมดจะมี M สมการที่ต้องแก้ออกมาเพื่อหาเวกเตอร์ least-squares coefficient หรือ c = [c1 c2 ··· cM]′, เอาแบบไม่สนใจการจัดรูปทางคณิตศาสตร์นะครับ เราจะได้ c = (G′*G)∖(f*G)′ เมื่อ G = [G′1 G′2 ··· G′M], Gm = [gm1 gm2 ··· gmN], f = [f1 f2 ··· fN], '*' แทน การคูณเวกเตอร์, '′' แทน transpose และ '∖' คือ ตัวดำเนินการที่แก้ชุดของสมการเชิงเส้น เช่น ถ้า B = A∖C แล้ว A*B = C

ลองมาดูตัวอย่างกัน จากรูปบน เลือกมา 12 แซมเปิ้ล เราสร้างเป็น f = [f1 f2 ··· fN] ที่ N = 12 ได้ f = [0.0 1.4 2.8 4.2 4.4 3.0 1.6 0.2 -1.2 -2.6 -4.0 -4.6] คราวนี้ f̂(c,t) เราจะไม่ใช้แค่ฟังก์ชั่น sine ตัวเดียวเหมือนในรูปแล้ว แต่จะใช้ผลรวมของ sine สามตัวแทน

          f̂(c,t) = c1sin(2πnT/500) + c2sin(6πnT/500) + c3sin(10πnT/500)

เมื่อ n = 0..11, gmn = sin(2π(2m-1)nT/500) ฉะนั้น เมตริกซ์ G มี 3 หลัก (M = 3) และ 12 แถว (N = 12) โค้ด MATLAB ต่อไปนี้ใช้สร้าง G


หลังจากได้ G12x3 เราก็คำนวณหา c ได้ตามสูตรครับ



ที่มา: หัวข้อ 2.2 Least Squares หนังสือ Digital Signal Processing with Examples in MATLAB ของ S. D. Stearns กับ D. R. Hush




 

Create Date : 28 กรกฎาคม 2556    
Last Update : 28 กรกฎาคม 2556 16:33:55 น.
Counter : 1095 Pageviews.  

Correlation

[สารบัญกลุ่มเรื่องที่กำลังศึกษา]

correlation เป็นการวัดที่ใช้บอกว่า waveform (หรือ image) สองอันใด ๆ มีความเหมือนกันแค่ไหน, autocorrelation จะบอกว่า waveform ที่เวลา t เหมือนกับตัวมันเองที่เวลา t+τ แค่ไหน (หรือภาพที่ตำแหน่ง (x,y) กับภาพเดียวกันที่ตำแหน่ง (x+σ, y+σ))

ถ้า x(t) และ y(t) เป็น waveform สองอันที่นิยามในช่วง t = [0,∞) (หมายความว่า สัญญาณถูกนิยามจาก lower limit ถึงก่อน upper limit) ฟังก์ชั่น correlation ของ x และ y คือ

          

เมื่อ τ ≥ 0 และ E[·] แทนค่าคาดหมายหรือค่าเฉลี่ย, สำหรับกรณี waveform ไม่ต่อเนื่อง หน้าตาสมการจะเปลี่ยนไปเป็น

          

เมื่อ m ≥ 0 เป็น time shift ในหน่วยแซมเปิ้ล

จากนิยาม เห็นว่า correlation เป็นผลคูณเฉลี่ยของสัญญาณสองสัญญาณ ซึ่งผลคูณถูกเฉลี่ยโดยไม่มีขอบเขตบน ฉะนั้น ตราบเท่าที่ time shift เป็นบวก เราก็ไม่ต้องกังวลกับ end effects แต่ถ้า waveform ถูกนิยามในช่วงจำกัด [0, NT] เราจะเพิ่มเงื่อนไขหรือสมมติฐาน 2 ข้อต่อไปนี้ครับ

          1. นอกช่วง [0, NT] ไม่มีสัญญาณ หรือพูดว่า ค่าของสัญญาณเท่ากับศูนย์
          2. สัญญาณมีลักษณะเป็นคาบ ที่คาบ = NT

ตัวอย่าง correlation ของ waveform x กับ y แสดงดังรูป, x(t) เป็นสัญญาณสี่เหลี่ยม และ y(t) เป็นสามเหลี่ยม โค้ด MATLAB ด้านล่างคำนวณ φxy(m) โดยขยายคาบของ y (yy = [y,y]) ไม่ให้ yn+m หลุดขอบเวกเตอร์นะครับ



กราฟแสดงสัญญาณ x, y กรณี m = 0, m = 10 และ m = 20 ที่ xn อยู่ที่เดิม ขณะ yn+m (ซึ่งขยายให้เป็น yy) เลื่อนไปทางซ้าย โดย o ในกราฟ φxy(m) แสดง correlation ของทั้ง 3 กรณีดังกล่าว

correlation detection เป็นตัวอย่างการใช้ correlation ในงานประมวลผลสัญญาณ รูปด้านล่างแสดง target signal และ target signal ที่ผสมใน noise ที่ 1000 กับ 3700 ซึ่งถ้ามองแค่รูปกลางรูปเดียว เราอาจบอกไม่ได้ใช่มั้ยครับว่ามี target signal อยู่ตรงตำแหน่ง 1000 กับ 3700 นะ แต่เราก็สามารถตรวจจับ target signal ได้ง่ายโดยหา correlation ระหว่าง target signal กับ target signal + noise


ที่มา: หัวข้อ 3.2 Correlation หนังสือ Digital Signal Processing with Examples in MATLAB ของ S. D. Stearns กับ D. R. Hush




 

Create Date : 27 กรกฎาคม 2556    
Last Update : 27 กรกฎาคม 2556 21:23:13 น.
Counter : 830 Pageviews.  

Data-hiding Scheme for Digital-Audio in Amplitude Modulation Domain

[สารบัญกลุ่มเรื่องที่กำลังศึกษา]

เนื้อหาตอนนี้ ผมสรุปจากบทความในชื่อเดียวกันของ Nhut Minh Ngo, Masashi Unoki, Ryota Miyauchi กับ Yoiti Suzuki จาก 8th International Conference on Intelligent Information Hiding and Multimedia Signal Processing ปี 2012 ที่ Piraeus-Athens, Greece

เทคนิคและโครงสร้างหลักเหมือนกับ (1) Method of Digital-Audio Watermarking Based on Cochlear Delay Characteristics, (2) Reversible Watermarking for Digital Audio Based on Cochlear Delay Characteristics, (3) Detection of Tampering in Speech Signals with Inaudible Watermarking Technique ข้อแตกต่างคือการประยุกต์ใช้งานครับ จุดประสงค์ของบทความนี้คือ นำเสนอวิธีการซ่อนข้อมูลบางอย่างลงในสัญญาณที่กระจายเสียงผ่านระบบวิทยุ AM เพื่อให้ผู้รับฟังเฉพาะบางกลุ่มเท่านั้นที่สามารถถอดข้อมูลที่ซ่อนไว้ออกมาได้


ในส่วนของการซ่อนข้อมูล (watermarking) ทำแบบเดิมเป๊ะ (ดูลิงค์ทั้ง 3 ในย่อหน้าแรก) หลังจากนั้นจึงเอา x(n) กับ y(n) ไปผ่าน double modulation ก่อนออกอากาศ ส่วนภาครับ ก็จะรับสัญญาณมาผ่าน double demodulation เพื่อให้ได้ x̂(n) กับ ŷ(n) แล้วก็เอาสัญญาณทั้งสองมาดึงลายน้ำหรือข้อมูลที่ซ่อนออกเหมือนเดิม (ระบบนี้จึงเป็นแบบ non-blind watermarking ครับ) ภาพรวมแสดงใน Figure 2. กับ 3.


ผมขอเล่าเฉพาะส่วนที่แตกต่างจากบทความก่อนหน้านะ นั่นคือ ขั้นตอน double modulation กับ demodulation ซึ่ง block diagrams ของพวกมันแสดงดัง Figure 4. กับ 5. ตามลำดับ


กล่อง standard modulation คือ AM technique ที่ใช้ในระบบวิทยุ AM แบบปกติทั่วไปนะครับ เริ่มจาก ภาค modulation เมื่อได้ x(n) และ y(n) มาแล้วก็เอาไป mod กับ carrier ธรรมดา ๆ ได้ u1(n) กับ u2(n) ตามลำดับ เมื่อเราดูสเปกตรัมของ u1(n) กับ u2(n) นะ เราจะเห็นว่าแต่ละอันมี sidebands 2 ฝั่ง ซ้าย-ขวาของความถี่ของคลื่น carrier เรียกฝั่งที่มีความถี่ต่ำกว่าว่า lower sideband และฝั่งที่ความถี่สูงกว่าว่า upper sideband (อันนี้เป็นผลที่เกิดขึ้นตามธรรมชาติของ AM) U1(ω) กับ U2(ω) เป็นสเปกตรัมของ u1(n) กับ u2(n) ซึ่งเราจะเลือกเอา lower sideband ของ U1(ω) กับ upper sideband ของ U2(ω) มารวมกันเป็น U(ω) แล้วแปลงอินเวิร์สฟูริเยร์ก่อนส่ง u(n) ออกอากาศ เป็นอันเสร็จสิ้นพิธี double modulation ในส่วน demodulation ก็แค่ทำย้อนกลับ (ดู Figure 5.) เริ่มจากสเปกตรัมของ u(n) คือ U(ω) เอามาแยก lower sideband เพื่อสร้าง U1(ω) และ upper sideband เพื่อสร้าง U2(ω) แต่ก่อนแปลงทั้งคู่ด้วย IFFT ไปเป็น u1(n) กับ u2(n) ตามลำดับ ก็อย่าลืม copy ส่วน lower sideband ของ U1(ω) ไปทางฝั่ง upper sideband ของมัน และ copy ส่วน upper sideband ของ U2(ω) ไปทางฝั่ง lower sideband ของมันเองก่อนด้วย ไม่อย่างนั้นพอผ่าน standard demodulation แล้วสัญญาณ output ที่ได้จะผิดเพี้ยน เท่านี้เราก็ได้ x̂(n) กับ ŷ(n) เพื่อนำไปป้อนต่อให้กับส่วนที่จะใช้ดึงลายน้ำหรือข้อมูลออกมาแล้วครับ

ผลการทดลอง ไม่มีอะไรแตกต่างจากการบทความก่อนหน้าชัดเจนนะครับ นอกจากจะสรุปเพิ่มเติมว่า CD-based method อันนี้สามารถนำไปใช้ใน AM ได้โดยปราศจากความผิดเพี้ยน บิตเรตในการซ่อนข้อมูลที่เหมาะสมอยู่ที่ 256 bps และถ้า noise ลดลงต่ำทำให้ SNR > 30 dB สมบัติ inaudibility จะดี และคุณภาพของเสียงลดลงถ้า b0 เพิ่มมากขึ้น (b1 = b0 + 0.07)




 

Create Date : 27 กรกฎาคม 2556    
Last Update : 27 กรกฎาคม 2556 23:01:03 น.
Counter : 1140 Pageviews.  

Detection of Tampering in Speech Signals with Inaudible Watermarking Technique

[สารบัญกลุ่มเรื่องที่กำลังศึกษา]

เนื้อหาตอนนี้ ผมสรุปจากบทความในชื่อเดียวกันของ Masashi Unoki กับ Ryota Miyauchi จาก 8th International Conference on Intelligent Information Hiding and Multimedia Signal Processing ปี 2012 ที่ Piraeus-Athens, Greece

บทความนี้ของ อ. Unoki เป็นการประยุกต์ watermarking ที่แกเสนอก่อนหน้า (ดู Method of Digital-Audio Watermarking Based on Cochlear Delay Characteristics, Reversible Watermarking for Digital Audio Based on Cochlear Delay Characteristics) กับการตรวจจับ tampering ในคลิปเสียง ถือว่าเป็นการใช้งานในลักษณะ fragile watermark หมายถึง ลายน้ำที่จะแตกได้ง่ายเมื่อถูกรบกวนในบางแบบ โดยเฉพาะแบบที่ทำไปเพื่อ tampering

block diagram ของระบบตรวจจับ tampering แสดงดังรูป Figure 1. - 3.


เห็นว่า โครงสร้างหลัก ๆ มีหน้าตาเหมือนเดิมนะครับ เพิ่มส่วน identification เข้ามาเท่านั้นเอง หน้าที่ของส่วนนี้คือเปรียบเทียบ ŝ(k) ที่ดึงออกมาจาก y(n) กับ s(k) ว่าเหมือนกันหรือไม่ หากมีอย่างน้อย 1 บิตหรือ 1 เฟรมที่ไม่เหมือนกัน เราก็จะบอกว่า มีโอกาสที่ y(n) ถูก tamper และการสังเกตรูปแบบที่ไม่ต้องกันของ ŝ(k) อาจบ่งชี้ถึงรูปแบบของ tampering ได้ด้วย

Figure 4. แสดงผลประเมิน inaudibility กับ bit-detection rate ของระบบที่นำเสนอ โดยเปรียบเทียบกับ LSB, Figure 5. ดู robustness เมื่อผ่านการประมวลผล 3 แบบ ข้อสังเกตคือ ทั้งหมดตก CELP (ตก หมายถึง กราฟอยู่ต่ำกว่าเส้นประที่ 75% ซึ่งผู้เขียนใช้เป็นเกณฑ์ขั้นต่ำของ bit-detection rate) ทั้งนี้เพราะ codec ดังกล่าวไม่ได้เข้ารหัสข้อมูลในแบบที่สัมพันธ์กับ waveform



ต่อมา เป็นการทดสอบ fragility โดยผู้เขียนถือว่า (1) การเพิ่ม noise (2) reverberation (3) การตัดต่อเสียง (4) การดัดแปลงสเปกตรัมด้วย STFT เป็นการโจมตีที่เข้าข่าย tampering ผลลัพธ์แสดงดัง Figure 6.


สังเกตรูป (f) - (h) ไฟล์เสียงถูกดัดแปลงในช่วงเวลาที่ 2.5 ถึง 5.0 วินาที (ดู Figure 7.) เห็นว่า รูปแบบของ bitmap ของลายน้ำที่แตก แสดงถึงตำแหน่งที่ถูก tamper ทั้งนี้เพราะ CZT ของ y(n) ในช่วงที่ไม่มีลายน้ำอยู่ ค่าของ Y0(0) กับ Y1(0) จะเท่ากัน ทำให้ ŝ(k) = 0




 

Create Date : 27 กรกฎาคม 2556    
Last Update : 27 กรกฎาคม 2556 11:37:53 น.
Counter : 697 Pageviews.  

Reversible Watermarking for Digital Audio Based on Cochlear Delay Characteristics

[สารบัญกลุ่มเรื่องที่กำลังศึกษา]

เนื้อหาตอนนี้ ผมสรุปจากบทความในชื่อเดียวกัน โดย Masashi Unoki กับ Ryota Miyauchi ใน 7th International Conference on Intelligent Information Hiding and Multimedia Signal Processing ปี 2011 ที่ Dalian, China

จากเทคนิค watermarking ที่อาศัยสมบัติ cochlear delay (CD) ของหูที่ผมเคยเล่าไปก่อนหน้า (ดู Method of Digital-Audio Watermarking Based on Cochlear Delay Characteristics) สำหรับบทความนี้ ผู้เขียนได้พัฒนาต่อยอดให้เป็น reversible watermarking หมายความว่า ภาครับหรือภาคถอดรหัส นอกจากจะต้องดึง watermark ŝ(k) ออกมาจาก watermarked signal y(n) แล้ว ยังต้องแปลง y(n) กลับเพื่อให้ได้สัญญาณต้นฉบับ x̂(n) ฉะนั้น ข้อแตกต่างสำคัญของสองเปเปอร์คือ ผู้เขียนจะต้องทำให้ระบบจากเดิมที่เป็นแบบ non-blind ให้เป็น blind method และนี่คือคีย์เวิร์ดของบทความนี้ครับ

block diagram ของ reversible audio watermarking แสดงดัง Figure 1.


จากรูป ในส่วน inaudible watermarking ทำแบบเดิมครับ คือ ใช้ CD filter สองตัวที่หน่วงเวลาขององค์ประกอบความถี่ต่ำคนละค่ากันเพื่อแทนการฝัง "1" และ "0"


ในส่วน blind detection ใช้ chirp z-transform (CZT) ที่ r = 1/b0 และ r = 1/b1 (r คือ magnitude ของ z = r·e, b0 กับ b1 เป็นพารามิเตอร์ของ CD filters) เพื่อหาสเปกตรัมความถี่ต่ำสุดของการแปลง Ym(0) แล้วเปรียบเทียบค่า Y0(0) กับ Y1(0) เพื่อหา ŝ(k) มีขั้นตอนดังรูป


ทำไมใช้ CZT? ตัวอย่างสเปกตรัมที่ได้จากการวิเคราะห์ CZT ของสัญญาณต้นฉบับ x(t) และสัญญาณหลังจากใส่ลายน้ำ y(n) แสดงใน Figure 3. โดยรูป (a) แสดง pole กับ zero ของ Hm(z) ด้วย 'x' กับ 'o' ตามลำดับ (เนื่องจาก transfer function Hm(z) ของ CD filter อยู่ในรูป (-bm + z-1)/(1 - bmz-1) เมื่อ 0 < bm < 1 ดังนั้น pole ของ Hm(z) คือที่ z = bm และ zero คือที่ z = 1/bm ทีนี้ ผู้เขียนใช้ b0 = 0.795, b1 = 0.865 ลองแทนค่าตัวเลขดังกล่าว เราจะได้ค่าตรงตามในรูปนะครับ) รูป (b), (c), (d) เป็นสเปกตรัมฟูริเยร์ของ x(n), y0(n) กับ y1(n) ตามลำดับ เห็นว่า หน้าตามันคล้าย ๆ กัน (การแปลง z กรณี r = 1 ก็คือการแปลงฟูริเยร์แบบไม่ต่อเนื่อง, ผมคิดว่ารูป (c) ค่า r น่าจะเป็น 1 มากกว่า r = 1/b0 นะครับ) เอามาใช้ประโยชน์อะไรไม่ได้ แต่สเปกตรัม CZT ที่ r = 1/bm ของพวกมันแตกต่างกัน ดังรูป (e) - (j) โดยเฉพาะที่ความถี่ต่ำ หมายความว่า เราอาจใช้การเปรียบเทียบสเปกตรัม CZT ที่ความถี่ต่ำสุดเพื่อใช้ในการระบุค่า ŝ(k)


ผลการประเมิน inaudibility (เปรียบเทียบระหว่าง x(n) กับ y(n)) กับ bit-detection rate แสดงใน Figure 5.


ตรงที่เขียน with/ without spline หมายถึง มีหรือไม่มีการทำ spline interpolation ระหว่างเฟรม (segment) ที่ฝังลายน้ำ

Figure 6. ผลการประเมินเปรียบเทียบระหว่าง x(n) กับ x̂(n) (ดูเส้น -o-)


noise ของ SNR ของสัญญาณ x̂(n) ในที่นี้คือความแตกต่างระหว่าง x(n) กับ x̂(n)




 

Create Date : 27 กรกฎาคม 2556    
Last Update : 27 กรกฎาคม 2556 10:45:37 น.
Counter : 806 Pageviews.  

1  2  3  4  5  6  7  8  9  
 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.