2017-01-23 7 views
0

トランスデューサ(トランスミッタ)の特性を示すいくつかの.matファイルがあります。私は自分の送信信号に与える応答を観察するために、私のMatlabコードのためにデータを使いたいと思っています。トランスデューサの周波数ドメインデータを時間ドメイン変換関数

最初のファイルには、次のようにトランスデューサのマグニチュードが含まれています。各行には1つの角度に対する周波数応答が含まれています。各列には、1つの周波数での角度応答が含まれています。

同様に、私は、第三によって与えられた別のマトリックスである(行に対応)は、送信電圧応答

(Hz単位)の周波数(度)は、対応する相を含む別.MATファイルを持っています。マットファイル

と同様に、角度(deg)(列に対応)は、4番目のファイルによって与えられる別のマトリックスにあります。

私は特定の角度のマグニチュードと位相情報を使用してこれらを時間ドメイン表現に変換し、使用する伝達関数を作成するのに役立ちますか?

ご協力いただければ幸いです。

答えて

0

周波数ドメインからの応答を時間ドメインに変換するには、inverse Fourier transformationを実行する必要があります。 matlabでは、これは関数ifftで行われます。

最初のファイルのデータを変数magnitudeにロードし、2番目のファイルから変数phaseにロードすることを検討してください。あなたは最初のシングル複素数行列

f_response = complex(magnitude.*cosd(phase),magnitude.*sind(phase)); 

f_responseあなたのトランスデューサの実際の応答があるにこれらの2つの変数をマージする必要があり、時間領域応答を得るためにifftに供給することができます。しかし、複雑さがあり、想定される頻度の順序はifftであると考えられます。 matlabはこれについて多くの詳細を提供していませんが、fft docsをチェックアウトすると、fftによって返される2つの周波数ブランチがあることがわかります。周波数応答は、matlabの予想された順序に対応する方法で順序付けされなければなりません。あなたは、例えば、docs

Fs = 1000;   % Sampling frequency 
T = 1/Fs;    % Sampling period 
L = 1000;    % Length of signal 
t = (0:L-1)*T;  % Time vector 
S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); 
X = S + 2*randn(size(t)); 
Y = fft(X); 

の最初の例を取る場合は、出力Yエントリをフーリエ変換のそれぞれに対応する周波数配列は次のとおりです。正しくフーリエ変換を適用するために

f = Fs/L*[0:(L/2-1),-L/2:-1]; 

逆変換の場合、頻度ファイル(その内容を変数frequenciesにロードしたと仮定できる)の順序が正確にfのように指定されているかどうかをチェックする必要があります。 fは、規則的に増加する第1の枝を有し、次いで、負の周波数への不連続なジャンプを行うことに留意されたい。周波数の符号は、進行波の伝搬方向を表すために使用される。

[frequencies,ix] = sort(frequencies); 
f_response = f_response(:,ix); 
f_response = 0.5*[f_response(:,1:end-1),f_response(:,end:-1:2)]; 

、その後のように、ということ

t_response = ifft(f_response,[],1); 

注意をすることによって、それを反転:あなたのデータは正の周波数のみを保持している場合は、あなたのように簡単に負の周波数枝を構築することができるようになるので、それは素晴らしいだろう各角度に対する応答が必要な場合は、各行を逆変換する必要があります。これは、ifftの3番目の入力によって実現されます。

frequenciesデータファイルの周波数が負の場合は、正しく注文してから、f_responseの列を適宜並べ替える必要があります。あなたが私のためにいくつかのサンプルデータをアップロードして、それをさらに助けることができるようにする必要があります。

+0

大変感謝しています。私はこれに取り組んできました。私がMATLABとDSPを初めて使っているので、私に感謝してください。とにかく、私はこれをしました。プロットを見ている間、私はこれらが帯域制限されていないことに気がついたので、私は高いと低い周波数値をゼロに外挿しました。まだこれに取り組んでいます。あなたからの助けに感謝します。方法についてはわかりませんが、.matファイルを送信したいと思っています。 Eメール???? – Sal

+0

追加するだけで、マグニチュード、角度、位相応答を含むファイルがあります。周波数はそのように指定されていません。それについてどうやって行くの?それが低周波通信の問題であると仮定して、あなたは何を提案しますか? – Sal

+0

@Sal、[this](http://meta.stackexchange.com/questions/47689/how-can-i-attach-a-file-to-a-stack-overflow-post)をご覧くださいあなたの質問にファイルを追加してください。その後、質問を編集してマットファイルを追加してください。 – lucianopaz

関連する問題