fir滤波器c++程序_电气信息类专业课程之matlab系统仿真 第三章 滤波器的种类(1)...
在講解濾波器的種類之前,必須先講解濾波器實現(xiàn)濾波的過程。怎么實現(xiàn)?matlab中是可以用filter函數(shù),那總不能在單片機或者FPGA中也調(diào)用filter函數(shù)吧。可能嗎?
不可能!
那怎么實現(xiàn)濾波過程呢?先來了解濾波過程的本質(zhì),就是乘加運算。FPGA里面實現(xiàn)乘加運算時非常容易的。
先來看看FIR濾波器在窗函數(shù)設(shè)計方式中采用不同窗的效果。怎么觀察效果?肯定是通過幅頻響應了。
數(shù)字信號處理中通常是取其有限的時間段進行分析,而不是對無限長的信號進行測量和運算。具體做法是從信號中截取一個時間段,然后對信號進行傅里葉變換、相關(guān)分析等處理。信號的截斷產(chǎn)生了能量泄漏,而用FFT計算頻譜又產(chǎn)生了柵欄效應,從原理上講這兩種誤差都是不能消除的。在FFT分析中為了減少或消除頻譜能量泄漏及柵欄效應,可采用不同的截取函數(shù)對信號進行截短,該函數(shù)稱為窗函數(shù),簡稱為窗。
泄漏與窗函數(shù)頻譜的兩側(cè)旁瓣有關(guān),對于窗函數(shù)的選用總的原則是,要從保持最大信息和消除旁瓣的綜合效果出發(fā)來考慮問題,盡可能使窗函數(shù)頻譜中的主瓣寬度應盡量窄,以獲得較陡的過渡帶。旁瓣衰減應盡量大,以提高阻帶的衰減,但通常都不能同時滿足這兩個要求。頻譜中的如果兩側(cè)瓣的高度趨于零,而使能量相對集中在主瓣,就可以較為接近于真實的頻譜。不同的窗函數(shù)對信號頻譜的影響是不一樣的,這主要是因為不同的窗函數(shù),產(chǎn)生泄漏的大小不一樣,頻率分辨能力也不一樣。信號的加窗處理,重要的問題是在于根據(jù)信號的性質(zhì)和研究目的來選用窗函數(shù)。
在設(shè)計FIR濾波器時,同樣要求窗函數(shù)不僅可以影響過渡帶寬度,還能影響肩峰和波動的大小。因此,,選擇窗函數(shù)應使其滿足以下兩個要求:?
(1)主瓣寬度盡量小,以使過渡帶盡量陡。?
(2)旁瓣相對于主瓣越小越好,這樣可使肩峰和波動減小,即盡可能集中于主瓣內(nèi)。?
fir1函數(shù)默認使用的是什么窗呢?
在matlab的help中查找該函數(shù)就能知曉!
還有哪些窗可以選擇呢?
再來看看程序如何?
理論和仿真結(jié)合在一起,
會使得大家牢固的掌握概念。
格式必須規(guī)范!
這里只舉高通濾波器和低通濾波器的例子。
程序很簡單。
只要同學們花時間就能搞清楚。
規(guī)范的寫程序是寫好程序的開始!
繼續(xù)講解濾波過程的乘加等效原理。
用程序說話是硬道理!
生成一個濾波器!
寫程序伴隨著注釋會讓程序很親民哦!
fir_order = 128;
%濾波器的階數(shù)
fir_low_filter = fir1(fir_order,0.2);
%fir1函數(shù)
使用filter函數(shù)進行濾波!
filter_sin_signal = filter(fir_low_filter,1,sin_signal);
怎么用乘加等效呢?
for?i=129:length(sin_signal)
????sum = 0;
????for?ii=1:length(fir_low_filter)? ??
? ? ? ? sum=sum+sin_signal(i-(ii-1))*filter_sin_signal(ii);
????end
????filter_sin_signal1(i)=sum;
end
?
看看結(jié)果會一致嗎?
肯定的啦!
是不是和卷積過程很像啊?好吧,尷尬的告訴大家,其實就是卷積。這就是為什么在課上強調(diào)卷積是《數(shù)字信號處理課程》基礎(chǔ)的原因!
未完,待續(xù)!
題外話!
太嚴肅了,放個小視頻給同學們放松一下。做老師真難,講課的時候時刻要考慮同學們的感受。但同學們就是不互動,氣死你又如何?保命要緊。
修訂記錄
20170117 完成初稿;
20170329 增加程序;
20170419 修訂內(nèi)容;
20170517 修訂文字;
20201007 修訂內(nèi)容;
點擊“
凡事小小說:出租屋的生活!
凡事小小說:衣服沒變,人變了!
凡事小小說:不要也不能活在別人的評價里!
電氣信息類專業(yè)課程之matlab系統(tǒng)仿真 第一章 信號和濾波器
電氣信息類專業(yè)課程之matlab系統(tǒng)仿真 第二章 深入理解濾波器?
總結(jié)
以上是生活随笔為你收集整理的fir滤波器c++程序_电气信息类专业课程之matlab系统仿真 第三章 滤波器的种类(1)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html编写个人博客_Django 开发
- 下一篇: python 测试用例中设置执行时间_P