2016-10-06 19 views
0

これを変調した後、このSSB信号をグラフ化するのは面倒です。私はベクトルの長さのエラーを取得し続けます。Plottngエラーベクトルは同じ長さでなければなりません

function SSB = SSBMOD 

%Setting Up Variables 
amplitude = 1; % Defining Amplitude 
tau_in = 0.010; %Defining Tau 
t_in = -0.010:0.0001:0.010; % Defining Time range 
Fs = 27000; %Defining Carrier Frequency 
Fc = cos(2*pi*Fs*t_in); %Carrier Signal 
F = 1/t_in(end)*t_in*Fs*1.25; %Setting Up Frequency Vector for Graph 
Sig = ProjectSig(amplitude,tau_in,t_in); %Calling Generated Signal output Function 

%Modulating The signal Using SSB AM modulation 
SSB = Sig.*Fc; 
%Performing Fast Fourier Transform 
SSBff = fft(SSB); 
%Filter Signal to SSB 
for k = 1000:1800 
    SSBff(k) = 0; 
end 
%Inverse Fourier Transform to Obtain SSB Signal 
SSBSig = ifft(SSBff); 

%Plotting Original Signal 
subplot(3,3,1); 
plot(t_in,Sig,'b'); 
axis([t_in(1) t_in(end) -1 1]); 
title('Original Signal'); 
xlabel('Time (Sec)'); 
ylabel('V(t) (V)'); 
grid 
shg 

ここで私は問題を抱えているグラフです。なぜ私のベクトルの長さがオフになっているのか分かりません。

%Plotting SSB Signal 
subplot(3,3,2); 
plot(t_in,SSBSig,'b'); 
axis([t_in(1) t_in(end) -1 1]); 
title('Single Sideband Signal'); 
xlabel('Time (Sec)'); 
ylabel('V(t) (V)'); 
grid 
shg 

end 
+0

完璧に動作 – excaza

答えて

1

tは201個の要素で構成されています。 k = 1000から1800までSSBff(k)をゼロに設定すると、SSBffのサイズが1800エレメントに増加します。 1800 =/= 201.あなたはより多くの要素を持つようにtの定義を増やすか、ゼロに設定するSSBffの部分を変更するか

あなたのforループは、ライン

SSBff(1000:1800) = 0; 
+0

(https://www.mathworks.com/help/matlab/matlab_prog/debugging-process-and-features.html)[デバッガを使用します]。ありがとうございました! – Zanderg

関連する問題