2016-05-11 5 views
1

だから私は変調しようとしているのこぎり波信号波を持つ.mファイルを作成しました。私は波形を生成する問題はありませんが、.mファイルを取得して "c"で掛けようとすると、MATLABは元の波形を返します。この特定のプログラムは、ダブルサイドバンド変調技術を使用しています。最初の部分は私の波形です。別の関数から.mファイルを操作する

function y = Signal 
% Signal Summary of this function goes here 
n = 23; % Number of Harmonics 
t = 0:.0002:n; % incremental value 
y = sawtooth(t,.2); % Wave creation 
plot(t,y); 
ylabel ('Amplitude'); 
xlabel ('Time'); 
title('Sawtooth Wave'); 

end 

私は、.mファイルを呼び出す「C」を乗算し、結果の関数をプロットしようとしていますどここの次の作品です。従ってそのsig変数を利用するべきで生成された信号を変調する

​​

さらに操作:

function [ DSBModulation ] = DSB(DSBModulation) 
% Program for DSB-AM 

n = 23; 
fc = 100; 
t = 0:.0002:n; 
sig = Signal; % this is how im trying to call the .m file so i can manipulate it 

c = cos((2*pi*fc*t)); % using this as the modulating function 
u(sig) = (sawtooth(t,.2)).*c; % Multiplying the signal 
plot(t,u(sig)); %Displaying the Signal 

end 
+2

「信号」機能の呼び出しはどこですか? – Harjatin

+0

それはSWaveがどこにあるのでしょうか。私はその代わりに – Zanderg

+0

コードに誤りがあります。実行可能ではありません – Harjatin

答えて

0

信号生成の結果は、DSB関数の次の行に変数sigに格納されていますSignalのスコープで定義されたローカル変数sawtoothを使用しようとするのではなく、 Matlabの表記u(sig)は、変数sigの関数uの数学的な概念ではなく、sigの値で索引付けされたベクトルuを表すことにも注意してください。

u = sig.*c; % Multiplying the signal 

最後に、あなたがhold commandを使用することができ、同じ数字で結果をプロット、あるいは別のfigure(そうでない場合は2番目のplotコマンドを使用するには:だからあなたは、このように使用することになり、あなたの変調信号ベクトルを計算する

最初plotのグラフ)を消去します:

close all; 
plot(t,u); %Displaying the Signal 
hold on; plot(t,sig,'r','LineWidth',3); % Overlay the unmodulated signal for reference 

ylabel ('Amplitude'); 
xlabel ('Time'); 

あなたに次のような結果を与えるべきである:

enter image description here

関連する問題