非整数倍のupsamplingについて
非整数倍のupsamplingの常套手段ってあるんですかね?n:m-nで0を補間してf/2のLPFっていう整数倍の時の延長の方法で考えると、f/2以下の量子化ノイズが出ちゃって除去できない。実際、自分でも許容できないレベル… | http://t.co/mRhKDU403F
2013-08-13 13:20:20@toyoshim http://t.co/DRmpXIea6N これの経験から言えば、2~3倍(16k→44k)線形補間は十分良かった。補間で発生する折り返しノイズは、無限に細かくオーバーサンプルすると考えれば予想できるよ。
2013-08-13 14:23:59@toyoshim 考えるってのは、近似波形に加わってしまったパルスとかステップとか三角波とかの周波数成分を考えて、折り返しがどのくらいになるか考える。近似がショボいほど遠くまでオーバーサンプルしないと折り返しが減衰しない。
2013-08-13 14:32:31@toyoshim sinc 関数(そのままだと無限長になってしまうので,カイザー窓とかの窓関数をかける)で補間して upsampling したあと,元の周波数の1/2 以下を LPF で落とすのだと昔のバイト先で働いてたところで習いました.
2013-08-13 15:04:26@toyoshim 無限長の sinc 関数を使った場合,数学的には,フーリエ変換で周波数空間へ変換したあと,空間を拡張した後に時間空間に戻していることと等価だったはずです.
2013-08-13 15:06:36@__aji @shioyadan @dancerj さんくすです、雰囲気分かってきました。音声処理だと見つからなかったけど、sinc関数あたりで調べ始めたら画像処理(拡大)で有名なの色々ありましたね。ちなみに29761.81640625Hzから44100Hzへの変換をしてます。
2013-08-13 21:34:37@toyoshim @shioyadan @dancerj 視覚は空間方向の周波数成分を感じるわけではないので、参考にしたらだめだよ。基本的な波形のFFT結果のグラフを見るくらいならいいけど、画像だとDCTばかりじゃない?音声はFFTで、窓関数もKaiserにするべき。
2013-08-14 05:26:00@toyoshim @shioyadan @dancerj その周波数なら、とりあえず線形補完で88200にしてLPFかけるのをオフラインで試してみれば?
2013-08-14 05:34:03@__aji @toyoshim @dancerj(個人的な経験ですが)線形補間でも大体はいいんですけど,いいヘッドホンとかで注意ぶかくピアノの音聞いたりするとノイズ乗ってるのがわかること多かったです.
2013-08-14 15:49:39@__aji @toyoshim @dancerj 当時の師匠が言うに,サイン波食わせて出力をスペクトラムアナライザで見て変な周波数ピーク出てないかとか,インパルス食わせて出力波形が想定通りになってるか(LPFかける前に左右対称になってるか)とかをチェックしつつ作るといいそうです
2013-08-14 15:55:53@__aji @toyoshim @dancerj この辺の理論的な裏付けは電気系の信号処理の講義でカバーされているので,まじめにやるなら(残っていれば)シケプリとか講義資料を読んでみるといいかもです.当時仕事でサンプリングレートコンバータ作っていたのですが,結構役に立ちました.
2013-08-14 16:10:14@toyoshim その変換、ちょうど可聴域のノイズになるので重要なあたりをフィルタリングするはめになるのか。特定の周波数をフィルタするグライコ系のアルゴリズム使うのかな。ローパスでざっくり削ると切り過ぎになりそう。
2013-08-14 18:08:23@dancerj 近い周波数に持ち上げてるので、元波形の持つ周波数帯域に被る形でノイズが載ってしまい、ノイズだけを選択的に除去する事ができない、ってのが問題の本質です。元周波数/2より高い帯域のノイズは簡単に消せるので、以下に少ない計算量でノイズを高周波に閉じ込めるかがポイント。
2013-08-14 23:31:43@shioyadan @__aji @dancerj ふむ、しきい値さえ決めれば自動化できそうだし、この手のテストを持つのは良さそうですね。耳よりあてになる(笑
2013-08-14 23:34:05@__aji @shioyadan @dancerj 画像処理でやってるLanczos関数を1次元で適用すればそれなりかなぁ、とか思ったんですが。でも、確かに視覚と聴覚ではセンサーの原理が違いそうだから、安易に適用する前に特徴を抑える必要はありますね。
2013-08-14 23:38:23@toyoshim @shioyadan @dancerj Lanczos 2でも3でも線形補間よりずっと周波数特性がいいので、それだけオーバーサンプリングも後段LPFも計算量を落とせる。同じ特性なら多分Lanczosの方が計算量が少なくて済むと思う。実装は面倒になるけど。
2013-08-15 05:40:08@toyoshim @__aji @dancerj Lanzos 関数は,意味的には sinc 関数に LPF 的特性を持つ適当な窓をかけたもので,「たまたま」人間の視覚特性と相性がよかったのでよく使われていると言う話だったと思います.
2013-08-15 16:39:25@toyoshim @__aji @dancerj で,音声の補間では Lanczos はむしろ使うと変なひずみがでるはずで(前にも書いたように,スペクトラムアナライザで sin 波の出力見ると変な成分がでるはずです),sinc 関数でやったほうがいいとです.
2013-08-15 16:41:57@toyoshim @__aji @dancerj 教えてくれたのは元々ヤマハで音源作ってた方だったんですけど,実際「自分の耳は信用しないし,しちゃいけないよ」て常々言ってましたw
2013-08-15 16:50:18@shioyadan @__aji @dancerj 塩谷先生は、せっかく有用な情報を提供しているのに、非公開アカウントになっているのがけしからん、ぷんぷん。
2013-08-15 23:26:20@toyoshim togetter の方で公開設定してみました.記憶をたよりに色々書いているので,なんか間違っていたらすいません.他に追加されていたりしたら適宜公開設定にしますです.
2013-08-16 16:01:47@toyoshim http://t.co/1BWIYgqWSh 計数の先生の講義資料なんですけど,ちょうどいいのがありました.p.88 あたりからが重要で,p.96 にはずばりリサンプリング話がのっています.
2013-08-16 17:22:00