我想實現一個IIR濾波器,我已經在Matlab中設計成了一個C++程序,用於從波形文件中濾除不需要的信號。在Matlab中的FDATool生成此C頭使用(它是一個帶阻濾波器):計算iir濾波器的w係數
#include "tmwtypes.h"
/*
* Expected path to tmwtypes.h
* C:\Program Files (x86)\MATLAB\R2013a Student\extern\include\tmwtypes.h
*/
const int al = 7;
const real64_T a[7] = {
0.9915141178644, -5.910578456199, 14.71918523779, -19.60023964796,
14.71918523779, -5.910578456199, 0.9915141178644
};
const int bl = 7;
const real64_T b[7] = {
1, -5.944230431733, 14.76096188047, -19.60009655976,
14.67733658492, -5.877069568864, 0.9831002459245
};
後排出的研究小時,我仍然無法找出使用這些值來確定的W值的正確方法然後如何使用這些W值來正確計算我的Y輸出。如果任何人對排序有所瞭解,應該使用這些值來完成所有這些轉換,這將是一個重大幫助。
我已經開發並嘗試過的所有方法都不會生成有效的波形文件,但標題值都可以正確翻譯,但超出的所有內容都無法通過媒體播放器進行評估。
謝謝。
也許這會有所幫助。或者你是否希望在C++中實現這個功能,因此不能使用MATLAB的內置函數?在這種情況下,您將需要找到一個類似於filter()的C++ IIR庫() – Falimond
我必須在C++中爲此項目實現它 – user3027875
http:// stackoverflow。COM /問題/ 6664686/A-C庫換IIR濾波器的 – Falimond