→ Feis: C or C++ ?. 不過其實應該好好想想真的有 45 cases 嗎06/02 16:21
用C,後來改成60為一單位,取0~540 這樣既是45個case
原本所說的應該是55個才對
※ 編輯: totemist (140.114.87.231), 06/02/2015 16:22:17
→ Feis: 先退一萬步來想, 你 fdacoefs.h 裡面是只有陣列嗎? 06/02 16:26
→ Feis: 如果是的話, 你怎麼將 45 個陣列合併? 06/02 16:26
只有陣列,fdacoefs.h 會有
頻率100~500
const int BL = 82;
const real64_T B[82] = { ... }
因為不同頻率的coef不一樣,只要將這矩陣的變數改一下即可
頻率200~600
const int CL = 82;
const real64_T C[82] = { ... }
當然我目前的做法就會讓 .h和主程式就會變得很冗長
→ Feis: 然後最後再想想你可以把這個選擇問題變成一個索引對照問題嗎 06/02 16:28
推 Frozenmouse: 所以輸入會轉變兩個頻率,A=100,200、D=500,600 06/02 18:36
→ Frozenmouse: 我有理解錯嗎?@@ 06/02 18:36
那個意思是
選擇A的話 bandpassfilter 只會留下100~500hz範圍內的頻率
選擇B的話 bandpassfilter 只會留下200~600hz範圍內的頻率
所以我目前的設計 就是讓使用者 按 A or B 這樣
※ 編輯: totemist (140.114.28.223), 06/02/2015 19:59:31
我算是有想法了
就是在另一個變數level讓Fpass1和Fpass2合併起來,這樣應該能避免重複問題
int Fpass1 = 0;
int Fpass2 = 0;
int level =0;
printf("enter Fpass1 = ");
scanf ("%d", &Fpass1);
printf("enter Fpass2 = ");
scanf ("%d", &Fpass2);
if (Fpass1==0)
level = Fpass2*10000;
else
level = Fpass2*1000+Fpass1;
switch(level)
看還有沒有甚麼可以討論囉~
※ 編輯: totemist (140.114.28.223), 06/02/2015 21:46:59
→ Feis: 我的意思是要你把它變成一個類似二維陣列, 用頻率去索引 06/02 21:54
→ Feis: 更實際的做法其實應該是自己算 coef, 不過我想就算了 06/02 21:55
※ 編輯: totemist (36.228.225.58), 06/03/2015 00:09:06
※ 編輯: totemist (36.228.225.58), 06/03/2015 00:12:03
推 jackylu63: 這個問,聽起來建一個表就可以了 06/03 01:03
推 Frozenmouse: 所以跟我之前想的應該差不多,只是我沒表達清楚 Orz 06/03 08:06
→ Frozenmouse: 你可以考慮把coefs弄成三維表格,概念上以兩個頻率為 06/03 08:07
→ Frozenmouse: 前兩個維度,第三維就是係數 06/03 08:07
→ Frozenmouse: 輸入也讓使用者直接給頻率就好,非60倍數再處理 06/03 08:07
→ Frozenmouse: 啊,其實就是tropical72大說的方法…XD 06/03 08:09
推 WYchuang: 現在我遇到這種的都會想搞個xml檔案 有人跟我一樣嗎 xD 06/03 09:50
→ MOONRAKER: 並不會 06/03 11:10