C語言實現matlab的butter函式

2021-08-09 12:41:52 字數 919 閱讀 9126

--------- 2019/04/18 更新 ---------

發現有網友反饋說不同的vs編譯器的complex.h有些許不同, 故而自己寫了乙個用到複數的版本.

增加乙個免complex.h的檔案,  

--------- 以下是原文 ---------

找了半天沒在網上找到關於matlab中butter的c函式,不太清楚是別的開源庫有還是怎麼樣,於是自己手翻了個,

只寫了低通和帶通部分,高通的帶阻因為沒用到,所以沒寫,有需要的也可以自己加下.不難.

由於對matlab不是特別了解,於是在翻的過程中,有部分matlab**是省略掉了,但應該不影響結果,隨機測試幾組資料,結果都很好.

低通:

帶通:

**是在vs2015下面調的,因為程式內設計到了複數運算,故需包含標頭檔案 #include "complex.h"

若沒有這個標頭檔案,那複數相關的部分,也可以自己寫.

**參考了 《徐士良常用演算法程式集(c語言描述)第三版及程式》,此乃神書.

寫的過程中卡在matlab的乙個內建函式 eig,求矩陣的全部特徵值,

矩陣的那部分早就還給老師了,但是手握神書而不知,最後得老師指點,直接用了神書內的**.

但在查詢相關資料的過程中,發現了c++的一些矩陣開源庫.強推eigen

有關eigen庫的一些基本使用方法:      

eigen:c++開源矩陣計算工具 -- eigen的簡單用法:

c++矩陣庫eigen快速入門:  

那就這樣吧.

blog.csdn.net/zone53

棧的實現 C語言實現

標頭檔案 include 棧 資料結構 利用陣列實現 define max 100 define ok 1 define error 0 typedef struct stack stack,stack 初始化棧 int initstack stack stack 銷毀 int destroysta...

strstr的c語言實現

include using namespace std 和標準實現比較了一下,的簡潔性和優雅型的確自愧不如 也沒有考慮到str1是空串時候的情況,修正之後測試通過 bool strpart const char str1,const char str2 if tmp1 0 return true e...

佇列的C語言實現

在學習佇列的時候我們需要理解到底佇列是什麼呢?佇列與堆疊不一樣的,佇列的先進先出,堆疊是先入後出。一 在我們看 之前我們需要了解兩個結構體。如下 1 1.這個是佇列元素的結構體 typedef struct nodenode 1 2.下面是佇列的結構體,包括了佇列的當前數目以及對頭指標和隊尾指標 t...