iChunyu / signal-process-demo

数字信号处理学习记录
MIT License
28 stars 6 forks source link

《数字信号处理》学习规划 #5

Closed iChunyu closed 3 years ago

iChunyu commented 3 years ago

之前买了本《MATLAB数字信号处理85个实用案例精讲:入门到进阶》一直没有耐心看,寒假决定立一个Flag:二月期间每天更新本仓库,用MATLAB和Python两种语言实现书中关键案例。

I have a proposal for a good beginning of the coming new year: update this repository everyday in February to study digital signal processing. By the way, improve coding skill and English if possible.

iChunyu commented 3 years ago

第一天打卡:学习基2时间法快速傅里叶变换。

Day 1 report: learn Radix-2 Decimation in Time Fast Fourier Transformation.

iChunyu commented 3 years ago

第二天打卡:学习基于FFT的基本频谱分析。

Day 2 report: learn basic frequency spectrum with FFT. I didn't try all examples in the book, but only those I think useful. This could be an excuse for my laze. :)

iChunyu commented 3 years ago

第三天打卡:数据补充0后的FFT。

Day 3 report: compare the FFT results of extended data with zeros.

Next section will discuss about the filter design, on which I would pay lots of attentions. Filtering data could be a very useful skill.

iChunyu commented 3 years ago

第四天打卡:编写Python版lpsd程序,为数据处理提供方便。

Day 4 Report I spent the whole afternoon to watch a soap opera, which almost killed my plan to update this repository. Luckily, the next section is digital filter design and relies on frequency spectrum analysis. So I rewrote the lpsd power spectrum density estimation algorithm in Python, which makes up today's commit and saves my plan. :)

iChunyu commented 3 years ago

第五天打卡:以模拟低通滤波器为例,使用内置函数进行滤波器设计。

Day 5 Report I tried built-in functions to design analog low-pass filter with both MATLAB and Python code. It's very good that scipy provides such similar functions with MATLAB.

iChunyu commented 3 years ago

第六天:休息一天

iChunyu commented 3 years ago

第七天:学习了模拟滤波器转数字滤波器的基本方法:冲击响应不变法、双线性变换法。

Day 7 Report Two methods to convert analog filter to digital filter: 1) Impulse invariance method; 2) Bilinear transformation method. Why I more and more fell that Python figure is more beautiful than MATLAB? Is it due to vector graph?

iChunyu commented 3 years ago

第8天:零相位滤波器和FIR滤波器设计。

Day 8 Learnt how to do zero-phase filtering and learnt FIR filter design using built-in functions. It's fun to program!

iChunyu commented 3 years ago

第9天:测试了滤波器设计的GUI工具箱,Python版的LPSD出现问题

Day 9 Design filter with GUI toolbox.

iChunyu commented 3 years ago

第10天:修复LPSD的bug,属于粗心错误,循环少1。

Day 10 Fix bug in lpsd.

iChunyu commented 3 years ago

第11~13天:过年放假休息几天啦,新年快乐!

Day 11~13 I would like to have a three-days holiday. Happy new year everyone!

iChunyu commented 3 years ago

第14天:信号取去漂以及提取包络。

Day 14 I learnt how to remove trend of the given signal. The function detrend in MATLAB can remove any order polynomial trend, but scipy.signal.detrend can just cancel linear trend.

Hilbert transform is a very good method to extract envelope curve of a modulated signal, which can be used in digital demodulation. However, the processing is not causal, which can't be performed in real time. Further properties of Hilbert transform could be learnt later if necessary.

iChunyu commented 3 years ago

第15天:数据平滑处理以及MATLAB的AR数据预测。

Day 15 Smooth data with other methods instead of FIR/IIR filter. In fact, these methods do the same as a filter does, but not as linear as FIR/IIR filter. I tried to predict data using AR model in MATLAB. Unfortunately, I haven't found lpc and arburg functions in Python, so that I haven't finished Python code.

iChunyu commented 3 years ago

第16天:补充Python版本的AR数据预测。

Day 16 Create iarburg function in Python, which is modified from arburg function in MATLAB. Unfortunately, the two function don't work totally the same, iarburg should be checked carefully for future work. Because it's output looks good, so I don't check it right now. Maybe I will update iarburg when I have studied AR model systematically.

iChunyu commented 3 years ago

第17~19天:突然想起来数字信号处理的作业还没写,这几天暂停更新。

Day 17~19 I remember to do homework about digital signal processing, for which I will pause updating this repository for 3 days. The work is on another branch and pushed to a private repository temporarily, I will merge to this repository after I gain the credit.

iChunyu commented 3 years ago

第20~21天:打卡未遂。

Day 20~21: Mission Failed.

iChunyu commented 3 years ago

第22天:尝试短时傅里叶变换和Goertzel算法。

Day 22 Tryshort-time Fourier transform (STFT) for time-frequency analysis. Another algorithm proposed by Goertzel is tested, which is an iteration algorithm and easy to be embedded in digital devices. Sections 5 ~7 are out of my interest by now, so I plan to merge them in folder Sec05_*. Real the book for detail if necessary.

iChunyu commented 3 years ago

第23天:DFT处理非整数索引频率的校正。

Day 23 Ratio method to correct DFT for single frequency signal whose frequency has non-integral index. This correction takes window function into consideration to estimate true frequency.

iChunyu commented 3 years ago

第24天:补充功率谱相关的计算,完结撒花。

Day 24 Test some functions relevant to power spectrum density. Some parametric methods in Python are not found in scipy and I don't try to search other possible packages because they're not usually used in my subject.

The proposal has been finished by now and I'm closing this issue. Hope everyone can make some progress.