若要在 cin
后使用 getline()
,需要用 cin.ignore()
跳过接受的回车符,否则 getline()
会无法接收到目标字符串。
看以下这段代码:
1 |
|
若没有 cin.ignore()
, s
接收到的字符串始终为空行。
若要在 cin
后使用 getline()
,需要用 cin.ignore()
跳过接受的回车符,否则 getline()
会无法接收到目标字符串。
看以下这段代码:
1 | #include <iostream> |
若没有 cin.ignore()
, s
接收到的字符串始终为空行。
vector<bool>
在STL中被优化为每个bool之占用一个bit而不是一个字节的内存,这导致地址可能不能被正确的返回,所以要避免 vector<bool>
的使用,可以用 vector<int>
代替。
-> http://hyperphysics.phy-astr.gsu.edu/hbase/Acoustic/revtim.html
Approaches to 3D sound field reproduction
This paper reviews and extends the theory of 3D sound systems based on spherical harmonics.
用仿真生成的 transfer function,再高频部分精确度比较糟糕,所以希望只保留一定频率以下的部分,需要设计一个低通滤波器。这里介绍最为直接的办法,使用 matlab 里的 fir1
函数设计滤波器,并用 fftfilt
进行滤波。
1 | b = fir1(n,fcut/(Fs/2)); % 第一个参数n是fir阶数,对应滤波器在时域的长度。 |
https://www.mathworks.com/help/signal/ref/fir1.html
https://www.mathworks.com/help/signal/ref/fftfilt.html
在 linux 上打发时间,发现两个无用但有趣的小玩具,cmatrix
和 cowsay
。安装分别用 sudo apt-get install cmatrix
和 sudo apt-get install cowsay
。
cmatrix
的效果是很俗的下字母雨。
cowboy
则是画一头牛,让它说一句话。
1 | $ cowsay 咩 |
Have fun!
通过matlab的 wvtool
可以看到不同窗的时域和频域特性,使用起来也十分方便。
1 | wvtool(hamming(64),hann(64),gausswin(64)) |