0.07782552527068175, kenelにパッチをあてて384kHzまで再生できるようにすればsox使わなくてもいいんじゃないかと。, 4.9.56ならbcm2835_i2s.cを見ますと384000の修正が加えられてますが、include sound/pcm.hとなってます。だから、本記事で書かれているhttps://patchwork.kernel.org/patch/9160203/のパッチはあてないといけないのかなあと思います。(nanopi-neo2ではそうでした) 0.09950731974056658, You can also select a web site from the following list: Select the China site (in Chinese or English) for best site performance. SINを変換したときの高調波の発生の様子、NSTEPは積和計算する前後の個数, 任意レー 0.0008704322683580222, フィルタ長 321 カットオフ周波数(cutoff frequeny)は、フィルタ回路において、通過帯域と阻止帯域の境目となる周波数の事です。カットオフ周波数は、遮断周波数とも呼ばれます。, フィルタ回路は、特定の周波数帯域の信号のみを通過し、それ以外の周波数帯域の信号を減衰させて、元々の信号から、好ましくない信号成分(ノイズ)を除去するために使われる回路です。, フィルタ回路において、信号を通過する周波数帯域を通過帯域(passband)といい、信号を減衰させる周波数帯域を阻止帯域(stopband)といいます。通過帯域と阻止帯域の境目となる周波数がカットオフ周波数です。, 有用な信号成分をなるべく残し、ノイズをなるべく減衰できるフィルタ回路の設計をするためには、フィルタの回路の構成を適切に選択する事と共に、カットオフ周波数を適切に設定する事が重要となります。カットオフ周波数は、フィルタ回路の特性を考える際に、最も重要な指標の一つとなります。, ここで、低い周波数帯域を減衰し、高い周波数帯域を通過するハイパスフィルタを例に挙げて、もう少し詳しく説明します。, フィルタ回路を通過させたい信号と、フィルタ回路で減衰させたい信号の、周波数にあまり差がない場合、図1の青線で示した様な急峻な特性を持ったフィルタ回路を使う事が好ましいです。青線を見ると、カットオフ周波数を境目に、その周波数から少しでも高い周波数の成分は完全に通過させ(利得=1)、境目の周波数から少しでも低い周波数の成分は完全に減衰させる(利得=0)、理想的な特性になっている事が分かります。, しかしながら、現実のフィルタ回路では、この様な理想的な特性は得られません。現実のフィルタ回路は、図1の赤線で示した様な、カットオフ周波数の近辺でなだらかになった特性を持っています。, 参考:図1の青線で示した様な理想的な特性のフィルタ回路を実際に作る事はできませんが、青線の特性に限りなく近づける事は理論的には可能です。その場合、特性を理想に近づけるほど回路の規模が大きくなります。また、特性を理想に近づけるほど群遅延時間(簡単に言うと、信号が入力されてから出力されるまでの時間)が長くなり、出力信号の遅れが問題になります。無限大の群遅延時間が必要になるため、完全に特性を理想的にする事は不可能です。, この様に、現実のフィルタ回路では通過帯域と阻止帯域の境界があいまいになります。境界があいまいだと、カットオフ周波数も厳密に定義できなくなります。, この様なあいまいさを避けるため、通常は、利得が通過帯域の平坦部の12倍(約0.707倍)になる周波数(デシベル値で表わすと利得が通過帯域の平坦部から3dB低下する周波数)の事を、カットオフ周波数と呼びます。, 注1:カットオフ周波数においては、電圧利得は、通過帯域の平坦部の12倍になりますが、電力利得は、通過帯域の平坦部の12倍になります。, 注2:図1に示したフィルタ回路では、通過帯域の平坦部の利得が1倍になっていますが、後述する様に、利得が1倍より小さな値を取るフィルタ回路もあります。また、アクティブフィルタの場合は、通過帯域の利得が1倍を超える場合もあります。, 図2は、1次CRハイパスフィルタの回路図です。また図3は、1次CRローパスフィルタの回路図です。, ここで、fcは1次CRハイパスフィルタおよび1次CRローパスフィルタのカットオフ周波数です。, 電子回路の設計をしていると、この式を非常によく使いますので、憶えておくといいでしょう。, 例として、C=0.1[μF]、R=1[kΩ]としてカットオフ周波数を計算すると、fc=1.59[kHz]となります。CとRがこれらの値の場合に、1次CRハイパスフィルタおよび1次CRローパスフィルタの周波数特性を計算した結果を図4に示しますが、どちらの回路も、確かに1.59kHzの時に利得が-3dBになっている事が確認できます。, 図5に示すのは、通過帯域で減衰が生じるCR1次ハイパスフィルタの一例です。この回路では、通過帯域の平坦部の利得が-6dB(0.5倍)になります。, C=0.1[μF]、R=1[kΩ]の場合に、図5の回路の周波数特性を計算した結果を図6に示します。この場合のカットオフ周波数は、利得が-9dB(通過帯域の平坦部の利得-6dBからさらに3dB引いた値)になる796Hzです。, このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。, 本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。, 音楽を録音する時に入る雑音を除去するために、カットオフ周波数をどう設定するかなどについて解説している。. フィルター計算をFFTで高速, SIN波を作る テーブル参照のテクニック, The Quest For The Perfect Resampler(題:完全なリサンプラーのための探求), サウンド カラー デジタル フィルター, デジタルフィルタのインパルスレスポンスと音質の関係. -0.004535184322001496, -2.17407957554587e-05, 0.001353838005269448, 最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。, y = resample(x,p,q) は、元のサンプルレートの p/q 倍で入力シーケンス x をリサンプリングします。x が行列の場合、resample は x の各列を独立したチャネルとして扱います。resample は FIR アンチエイリアシング ローパス フィルター を x に適用し、フィルターによって生じる遅延を補正します。, y = resample(x,p,q,n) は、2 × n × max(p,q) 次のアンチエイリアシング フィルターを使用します。, y = resample(x,p,q,n,beta) では、ローパス フィルターの設計に使用するカイザー ウィンドウの形状パラメーターを指定します。, y = resample(x,p,q,b) は、b で指定したフィルター係数を使用して x をフィルター処理します。, [y,b] = resample(x,p,q,___) は、リサンプリングの際に x に適用されるフィルターの係数も返します。, y = resample(x,tx) は、ベクトル tx で指定した時点でサンプリングされた信号の値 x をリサンプリングします。この関数は、tx と同じ端点とサンプル数をもつ、間隔が均一な時点のベクトルに x を線形内挿します。NaN は欠損データとして扱われ、無視されます。, y = resample(x,tx,fs) は、ポリフェーズ アンチエイリアシング フィルターを使用し、fs で指定した一定のサンプルレートで信号をリサンプリングします。, y = resample(x,tx,fs,p,q) は、入力信号を (p/q)/fs のサンプル間隔で中間等間隔グリッドに内挿します。この関数は、次に p によってアップサンプリングするためおよび q によってダウンサンプリングするために結果をフィルター処理します。これにより fs の最終サンプルレートが得られます。最良の結果を得るには、fs × q/p が少なくとも x の最も高い周波数成分の 2 倍の大きさであるようにします。, y = resample(x,tx,___,method) は、内挿法を、このグループの前の構文の任意の引数とともに指定します。内挿法は 'linear'、'pchip' または 'spline' のいずれかです。, メモ:    x がゆるやかに変化しない場合は、'pchip' 内挿法で interp1 を使用することを検討してください。, [y,ty] =resample(x,tx,___) は、リサンプリングされた信号に対応する時点を ty に返します。, [y,ty,b]= resample(x,tx,___) は、アンチエイリアシング フィルターの係数を b に返します。, 単純な線形シーケンスを元のサンプルレート 10 Hz の 3/2 倍でリサンプリングします。同じ Figure 内で元の信号とリサンプリングされた信号をプロットします。, フィルター処理の際、resample は、この関数に与えられたサンプルの範囲外では、入力シーケンス x をゼロと見なします。x の両端でゼロから大きく逸脱すると、y の値が予期しないものになることがあります。, 非ゼロの端点をもつ三角形のシーケンスとそれを垂直シフトしたシーケンスをリサンプリングして、これらの逸脱を表示します。, 正弦波信号を作成します。16 サンプルといった、信号のちょうど 1 周期に対応するサンプルレートを指定します。信号のステム プロットを描画します。サンプル アンド ホールドを可視化するために階段状グラフを重ね合わせます。, resample を使用して信号を係数 4 でアップサンプリングします。既定の設定を使用します。結果を元の信号とともにプロットします。, 計算を繰り返します。アンチエイリアシング フィルターの次数が 2×1×4=8 となるように n = 1 を指定します。カイザー ウィンドウに形状パラメーター β=0 を指定します。リサンプリングした信号と同様にフィルターも出力します。, リサンプリングした信号は、ウィンドウの相対的に広いメインローブおよび低いサイドローブ減衰量から生じるエイリアシングの影響を示します。, n は 5 に増やし、β=0 はそのままにします。フィルターの次数が 40 であることを確認します。リサンプリングした信号をプロットします。, 長いウィンドウはより狭いメインローブをもち、エイリアシングの影響をより適切に減衰させます。さらに信号も減衰させます。, フィルターの次数は 2×5×4=40 のままにして、形状パラメーターを β=20 に増やします。, 正弦波のサンプルを 60 個生成し、元のレートの 3/2 のレートでリサンプリングします。元の信号とリサンプリングした信号を表示します。, 元のレートの 2/3 のレートで信号をリサンプリングします。元の信号とリサンプリングした信号を表示します。, ガリレオ・ガリレイが 1610 年に記録したデータを使用して、木星の最も大きい衛星 4 つのうち最外部にあるカリストの軌道周期を求めます。, ガリレオは、この衛星の動きを 1 月 15 日から 6 週間観測しました。曇りの夜には木星を見られなかったため、観測結果にはいくつかの欠落部分があります。観測時間の datetime 配列を生成します。, 1 日あたり 1 回の観測というサンプルレートを使用し、規則的なグリッドにデータをリサンプリングします。過剰適合を防ぐため、中程度のアップサンプリング係数 3 を使用します。, スプライン内挿を使用してこの手順を繰り返し、観測日を表示します。サンプルレートを 1 日の秒数の逆数で表します。, 等間隔の線形内挿データのピリオドグラム パワー スペクトル推定を計算します。1024 の DFT 長を選択します。信号は軌道周期の逆数で最大になります。, ベクトルまたは行列として指定される入力信号。x が行列の場合、その列は独立したチャネルとして扱われます。x には NaN が含まれることがあります。NaN は欠損データとして扱われ、リサンプリングから除外されます。, 例: cos(pi/4*(0:159))+randn(1,160) は単一チャネルの行ベクトル信号です。, 例: cos(pi./[4;2]*(0:159))'+randn(160,2) は 2 チャネル信号です。, 近傍項の数。正の整数として指定します。n = 0 の場合、resample は最近傍内挿を実行します。アンチエイリアシング FIR フィルターの長さは n に比例します。n の値を大きくすると計算時間が長くなりますが、精度は高くなります。, カイザー ウィンドウの形状パラメーター。正の実数スカラーとして指定します。beta を大きくすると、アンチエイリアシング フィルターの設計に使用するウィンドウのメインローブが広くなり、ウィンドウのサイドローブの振幅が小さくなります。, FIR フィルター係数。ベクトルとして指定します。既定では、resample は、カイザー ウィンドウを使用した firls でフィルターを設計します。遅延を補正する場合、resample は b の長さが奇数長で、線形位相をもっていると仮定します。詳細は、アンチエイリアシング ローパス フィルターを参照してください。, 非負の実数ベクトルまたは datetime 配列として指定される時点。tx は単調増加しなければなりませんが、その間隔は均一である必要はありません。tx には NaN または NaT を含めることができます。これらの値は欠損データとして取り扱われ、リサンプリングからは除外されます。, サンプルレート。正のスカラーで指定します。サンプルレートは単位時間あたりのサンプル数です。時間の単位が秒の場合、サンプルレートの単位は Hz です。, 内挿法。'linear'、'pchip' または 'spline' のいずれかで指定します。, リサンプリングされた信号。ベクトルまたは行列として返されます。x が長さ N の信号であり、p と q を指定している場合、y の長さは ⌈N × p/q⌉ になります。, 有理因数 p/q で信号をリサンプリングするには、resample で upfirdn を呼び出し、以下のステップを概念的に実行します。, アップサンプリングされた信号に FIR アンチエイリアシング フィルターを適用します。, 理想のアンチエイリアシング フィルターは、正規化されたカットオフ周波数 fc = π/max(p,q) ラジアン/サンプルとゲイン p をもちます。アンチエイリアシング フィルターを近似するには、resample でカイザー ウィンドウ法を使用します。, フィルター次数は 2 × n × max(p,q) です。n の既定値は 50 です。, カイザー ウィンドウは、遷移幅と阻止帯域の減衰量の間のトレードオフを制御する形状パラメーター beta をもちます。beta の既定値は 5 です。, 例として、信号を元のサンプル レートの 3/2 倍にリサンプリングするようにアンチエイリアシング フィルターを設計します。, resample は、firls を使用して FIR 設計を行い、ウィンドウの処理ゲインを考慮して結果を正規化した後に upfirdn を使用してレート変更を実行します。, decimate | downsample | firls | interp | interp1 | intfilt | kaiser | spline | upfirdn | upsample. pcm1795が受けられないんからなんでしょうか。 -0.002425035959059578, 添付いただいたデジフィルの特性を見てみました。 確かにカットオフ周波数が100kHzくらいと過剰に伸びていますね。 0.001742046839472948, 実際のレンズであるオブジェクトをフーリエ変換するとき、フーリエ面ではレンズのnaと光の波長で決まるカットオフ周波数より大きい周波数領域はカットされるという認識であっていますか?正解です。まさに19世紀にアッベが示した「レンズ 2016年8月15日 (月) 00時35分, とても重要、かつ、貴重なご意見ありがとうございます。 0.0133774746265897, -0.0006922187080790708, -0.01067241812471033, ません。, サンプリング周波数を変換ソフト 1.930520892991082e-06, hifiberryDACでもES9023でも384kHz/352kHz出てたと思います。 おっしゃっているカーネルソース修正とは別のパッチを当てていると考えられます。 Moodeを作っている人は、かなりマニアックで、私も、このパッチにSabreberry32を合わせるのに相当調べました。, Soxをvery highにすればノイズが減るというのは、なんでしょう。 Sox very highじゃないとき、何が動いているのか気になります(笑, rtパッチは、安定しているバージョンと不安定なバージョンがあるので、だれかが検証されたものを使うのがラクです。, 私が過去のソースを持ってくるときは、linux/Makefile の履歴からバージョンをみてそのcommit番号で落としてきます。 0.0133774746265897, pcm.hを見ますと、やはり192000Hzまでしかdefineされてませんので。, それで、パッチをあててビルドしなおすことを考えるわけです。 とすると、, 繰り返しになりますが、サンプリング周波数 fiからfoへ変換するということは、入力サンプルのfi/foおきに入力サンプルの補間値を求めることです。, ただ、ここでの補間は、見かけの滑らかさとは違うことに注意が必要です。直線補間やスプライン補間などは折り返し雑音(エイリアシング)が酷くて実際には使えません。サンプリング周波数変換では式(1.1)と式(1.2)のようにsinc関数というもので補間します。, sinc関数の周波数特性は矩形特性で、カットオフ周波数がナイキスト周波数(fs/2)で急峻に減衰する理想のLPF特性です。, ところで、sinc関数ってとても美しい式だと思いませんか。矩形の周波数特性の応答波形を、こんなシンプルな式で表現できます。しかも、いきなり原点が0で割るという、おちゃめな部分もあります。私がこれまでデジタル信号処理に携わってた中で一番お気に入りの関数です。, 閑話休題。