0

だから私はそれを変調した後、このSSB信号をグラフ化するのに問題があります. Vector Length エラーが発生し続けます。

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
4

1 に答える 1

1

t は 201 個の要素のみで構成されています。SSBff(k) を k = 1000 から 1800 の範囲でゼロに設定すると、SSBff のサイズが 1800 要素に増加します。1800 =/= 201. t の定義を増やして要素を増やすか、SSBff のどの部分をゼロに設定するかを変更する必要があります。

余談ですが、forループは1行で呼び出すこともできます

SSBff(1000:1800) = 0;
于 2016-10-06T17:13:18.157 に答える