ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

sinad

構文

r = sinad(x)
r = sinad(x,fs)
r = sinad(pxx,f,'psd')
r = sinad(sxx,f,rbw,'power')
[r,totdistpow] = sinad(___)
sinad(___)

説明

r = sinad(x) は、実数値正弦波信号 x の SINAD (信号対ノイズおよび歪み) 比を dBc 単位で返します。SINAD は入力信号と同じ長さの修正ピリオドグラムを使用して決定されます。この修正ピリオドグラムでは、β = 38 のカイザー ウィンドウを使用します。

r = sinad(x,fs) では、入力信号 x のサンプルレート fs を指定します。fs を指定しない場合、サンプルレートは既定値の 1 に設定されます。

r = sinad(pxx,f,'psd') では、入力 pxx を片側 PSD (パワー スペクトル密度) 推定として指定します。fpxx の PSD 推定に対応する周波数のベクトルです。

r = sinad(sxx,f,rbw,'power') では、入力を片側パワー スペクトルとして指定します。rbw はそれについて各パワー推定が積分される分解能帯域幅です。

[r,totdistpow] = sinad(___) は信号の全ノイズおよび全高調波歪みのパワー (dB) を返します。

出力引数を設定せずに sinad(___) を使用すると、現在の Figure ウィンドウに信号のスペクトルがプロットされ、基本成分にラベルが付けられます。スペクトルの基本成分、DC 値およびノイズが、さまざまな色で描画されます。プロットの上に SINAD と表示されます。

すべて折りたたむ

2 つの信号を作成します。どちらの信号も基本周波数は ラジアン/サンプルで振幅が 1、1 次高調波の周波数が ラジアン/サンプルで振幅が 0.025 とします。一方の信号にはさらに、分散が の加法性ホワイト ガウス ノイズを設定します。

これらの 2 つの信号を作成します。再現性のある結果を得るために、乱数発生器を既定の状態に設定します。加法性ノイズがない信号の SINAD を決定し、その結果を理論上の SINAD と比較します。

n = 0:159;
x = cos(pi/4*n)+0.025*sin(pi/2*n);
rng default

y = cos(pi/4*n)+0.025*sin(pi/2*n)+0.05*randn(size(n));
r = sinad(x)
r = 32.0412
powfund = 1;
powharm = 0.025^2;
thSINAD = 10*log10(powfund/powharm)
thSINAD = 32.0412

加法性ノイズを伴う正弦波信号の SINAD を決定します。加法性ノイズの理論上の分散が組み込まれることで SINAD が近似される様子を示します。

r = sinad(y)
r = 22.8085
varnoise = 0.05^2;
thSINAD = 10*log10(powfund/(powharm+varnoise))
thSINAD = 25.0515

基本周波数が 1 kHz、単位振幅が 1 の、480 kHz でサンプリングされた信号を作成します。また、この信号は、振幅が 0.02 の 1 次高調波と、分散が の加法性ホワイト ガウス ノイズで構成されます。

SINAD を決定し、その結果を理論上の SINAD と比較します。

fs = 48e4;
t = 0:1/fs:1-1/fs;
rng default

x = cos(2*pi*1000*t)+0.02*sin(2*pi*2000*t)+0.01*randn(size(t));
r = sinad(x,fs)
r = 32.2058
powfund = 1;
powharm = 0.02^2;
varnoise = 0.01^2;
thSINAD = 10*log10(powfund/(powharm+varnoise*(1/fs)))
thSINAD = 33.9794

基本周波数が 1 kHz、単位振幅が 1 の、480 kHz でサンプリングされた信号を作成します。また、この信号は、振幅が 0.02 の 1 次高調波と、標準偏差が 0.01 の加法性ホワイト ガウス ノイズで構成されます。再現性のある結果を得るために、乱数発生器を既定の状態に設定します。

信号のピリオドグラムを取得し、このピリオドグラムを sinad の入力として使用します。

fs = 48e4;
t = 0:1/fs:1-1/fs;
rng default
x = cos(2*pi*1000*t)+0.02*sin(2*pi*2000*t)+0.01*randn(size(t));

[pxx,f] = periodogram(x,rectwin(length(x)),length(x),fs);
r = sinad(pxx,f,'psd')
r = 32.2109

50 kHz でサンプリングされる、周波数 2.5 kHz の正弦波を生成します。標準偏差 0.00005 のホワイト ガウス ノイズを信号に付加します。結果を弱非線形増幅器に通します。SINAD をプロットします。

fs = 5e4;
f0 = 2.5e3;
N = 1024;
t = (0:N-1)/fs;

ct = cos(2*pi*f0*t);
cd = ct + 0.00005*randn(size(ct));

amp = [1e-5 5e-6 -1e-3 6e-5 1 25e-3];
sgn = polyval(amp,cd);

sinad(sgn,fs);

プロットには、比率の計算に使用されるスペクトルと、ノイズとして処理される領域が示されます。DC レベルと基本波は、ノイズの計算では考慮されません。基本波にはラベルが設定されます。

入力引数

すべて折りたたむ

実数値正弦波入力信号。行ベクトルまたは列ベクトルで指定されます。

例: cos(pi/4*(0:159))+cos(pi/2*(0:159))

データ型: single | double

サンプルレート。正のスカラーで指定します。サンプルレートは単位時間あたりのサンプル数です。時間の単位が秒の場合、サンプルレートの単位は Hz です。

片側 PSD 推定。非負の実数値列ベクトルで指定されます。

パワー スペクトル密度は、デシベル単位ではなく、線形単位で表さなければなりません。デシベル値をパワー値に変換するには、db2pow を使用します。

例: [pxx,f] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2)) は、2π Hz でサンプリングされたノイズの多い 2 チャネル正弦波のピリオドグラム PSD 推定値とそれについて計算される周波数を指定します。

データ型: single | double

片側 PSD 推定 pxx に対応する巡回周波数。行ベクトルまたは列ベクトルで指定されます。f の最初の要素は 0 でなければなりません。

データ型: double | single

パワー スペクトル。非負の実数値行ベクトルまたは列ベクトルで指定されます。

パワー スペクトルは、デシベル単位ではなく線形単位で表さなければなりません。デシベル値をパワー値に変換するには、db2pow を使用します。

例: [sxx,w] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2),'power') では、ホワイト ガウス ノイズに組み込まれる 2 チャネルの正弦波のピリオドグラム パワー スペクトル推定と、計算に使う正規化周波数を指定します。

分解能帯域幅。正のスカラーで指定されます。この分解能帯域幅は、離散フーリエ変換の周波数分解能と、ウィンドウの等価ノイズ帯域幅の積です。

出力引数

すべて折りたたむ

信号のノイズおよび歪みに対する比率 (dBc)。実数値スカラーで返されます。

信号の全ノイズおよび全高調波歪みのパワー。実数値のスカラー (dB) で返されます。

詳細

すべて折りたたむ

歪み測定関数

関数 thdsfdrsinad および snr は、正弦波による入力刺激を受けた弱非線形システムの応答を測定します。

時間領域の入力が与えられると、sinad は、サイドローブ減衰量の大きいカイザー ウィンドウを使い、ピリオドグラムを実行します。基本周波数を求めるため、アルゴリズムは、最大の非ゼロスペクトル成分のピリオドグラムを探索します。続いて、最大値から単調に減少するすべての隣接するビンの中心モーメントを計算します。基本波は、検出可能であるためには、少なくとも 2 番目の周波数ビンに属している必要があります。高い高調波成分は基本周波数の整数倍になります。高調波が別の高調波の近傍にある単調減少領域にある場合、そのパワーは大きい方の高調波に属するものと見なされます。この大きい方の高調波は、基本波である場合も、そうでない場合もあります。

この関数では、ノイズと歪みのみを含む領域のパワーの中央値を使用してノイズを推定します。DC 成分は計算では考慮されません。各点のノイズは、推定されたレベルか、その点の縦座標のうち、小さい方になります。このノイズが、信号および高調波の値から減算されます。

基本波が信号の最も高いスペクトル成分でない場合、sinad は失敗します。

周波数成分がカイザー ウィンドウのサイドローブ幅を許容できるよう、互いを十分離してください。これが不可能な場合は、'power' フラグを使用し、別のウィンドウを使ってピリオドグラムを計算することができます。

参考

| | |

R2013b で導入