iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 7
0
自我挑戰組

C# 碰 ECG,生醫能迸出什麼花火?系列 第 7

畫ECG 為什麼要畫正弦波 !?

開始接觸ECG之後,DSP(Digital Signal Processing)的知識也開始要建立起來了...

傅立葉(Fourier)告訴我們,生活周遭的任何訊號(週期函數),都可以拆分成不同振福,不同相位的正弦波組合。

先上參考網站:

  1. 如果看了此文你還不懂傅里葉轉換(Fouier Transform),那就過來掐死我吧! (...我先作筆記)
  2. Wave (ℝ)

不管怎樣,先試試看照 micah mills 的 Intro to DSP concepts with C# - Sine Waves 來畫畫看正弦波吧?!

  1. 到 NuGet 安裝 Win2D
    https://ithelp.ithome.com.tw/upload/images/20181007/20092103O4GCsNtvv9.png
Error Message : 
無法安裝封裝 'Win2D.uwp 1.23.0'。您正嘗試將此封裝安裝到以 '.NETFramework,Version=v4.6.1' 為目標的專案,但該封裝不包含任何與架構相容的組件參考或內容檔。				
尚未排除...

無法排除,我們這邊就依照影片中的演算法去畫正弦!!!

  1. 新增一個畫Sine的方法DrawSine(...)
public static void DrawSine(this Canvas g,Brush brush, double width ,double x0 = 0.0,double y0 = 180.0,double amplitude = 75.0,double frequency = 6.0,double phase = 0.0,double samples = 800.0)
        {
            var line = new Line();
            double x1, y1;
            double baseline = y0;

            for (int i = 1; i <= samples; i++)
            {
                double wt = amplitude * Math.Sin(2.0 * Math.PI * frequency * i / samples);
                x1 = i;
                y1 = baseline - wt;
                g.DrawLine(brush, width, x0, y0, x1, y1);
                x0 = x1;
                y0 = y1;
            }
        }
  1. 結果圖 :
    https://ithelp.ithome.com.tw/upload/images/20181008/20092103zgcie5wCYP.png

今日 github : daySeven ...

其他參考 :

  1. win10 uwp win2d 入门 看这一篇就够了

上一篇
畫 ECG 囉
下一篇
讓正弦活起來?! ECG,蹦蹦蹦!
系列文
C# 碰 ECG,生醫能迸出什麼花火?9

尚未有邦友留言

立即登入留言