基于fdatool的滤波器设计(低通、带通、高通)
體程序參考原文:
基于fdatool的濾波器設計(低通、帶通、高通) - 子木的文章 - 知乎 https://zhuanlan.zhihu.com/p/47392900
?
一、關于
結合上一篇8PSK調制,記一下濾波器的設計方法,可以直接根據原理,使用函數實現,也可以借助Matlab中的fdatool工具。
二、基于MATLAB中fdatool的帶通濾波器的設計
1.?fdatool的使用
命令行窗口運行fdatool
位寬選擇
設計參數
接下來就是文件的生成:
第一種導出方式是到Workspace,也就是在matlab主界面的工作區中:
當選擇這個選項之后,下面還需要選擇Export As,如果選擇Coefficient,那么在工作區中將出現一個叫bpf70M(名字自定義)的矩陣,命令行中可以調用的形式為:filter(bpf70M, 1, dataRaw);(這是對于FIR濾波器來說的,如果是IIR濾波器的話,工作區中將出現SOS和G兩個矩陣,然后調用形式為:[b a]=SOS2tf(SOS,G); filter(b, a, dataRaw);)如果選擇Export As中的Object,那么工作區中將出現一個叫bpf70M的對象,調用形式為:filter(bpf70M, dataRaw)
第二種導出方式是到Coefficient File(ASCII):FPGA使用時就是導出為coe文件
當然,Format隨便選,只是數據存儲方式,這里選擇Decimal十進制。然后出現文件另存為的窗口,保存為后綴為.fcf的ASCII文件。對于FIR濾波器,利用記事本打開是這樣的:將選中的部分手動刪除。然后代碼調用形式:BPF=load('bpf70M.fcf');dataFiltered=filter(bpf70M,1,dataRaw);
?
第三種導出方式是到MAT-File:
如果選擇Coefficient,那么保存為后綴.mat的文件之后,對于FIR濾波器的代碼調用形式為:BPF=load('BPF.mat'); dataFiltered=filter(BPF.Num,1,dataRaw);
對于IIR濾波器的代碼調用形式為:BPF=load('IIR.mat'); [b a]=SOS2tf(BPF.SOS,BPF.G); dataFiltered=filter(b, a, breath_signal);
如果選擇Object,那么保存為.mat文件之后,調用形式為:BPF=load('bpf70M.mat'); dataFiltered=filter(BPF.bpf70M,1,dataRaw);
?
2.上一篇中所用的文件調用方法
bpf70M_Coe=load('bpf70M.mat');%兩種濾波器調用方式之二 BPF_Data=filter(bpf70M_Coe.bpf70M,1,psk8_channel);總結
以上是生活随笔為你收集整理的基于fdatool的滤波器设计(低通、带通、高通)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: mybatisplus批量插入原理_【学
- 下一篇: 随机信号知识点总结
