3设f(t)=(t+1)−(t−1),f1(t)= f(t)cos(10t),试用MATLAB画出f(t)、f1(t)的 时域波形及其频谱,并对波形做出结论
时间: 2023-08-06 10:06:03 浏览: 46
好的,我了解了,这是您的第二个问题。我会为您解答。
首先,我们可以计算出f(t)和f1(t)的数学表达式:
f(t) = ε(t+1) - ε(t-1)
f1(t) = f(t)cos(10πt)
其中,ε(t)为单位阶跃函数。
接下来,我们使用MATLAB代码来画出f(t)和f1(t)的时域波形和频谱:
```matlab
% 画出f(t)的时域波形
t = -2:0.01:2;
f = heaviside(t+1) - heaviside(t-1);
figure(1);
plot(t, f);
xlabel('t');
ylabel('f(t)');
title('Time domain waveform of f(t)');
% 画出f(t)的频谱
f_fft = fft(f);
f_fft = fftshift(f_fft);
f_fft = abs(f_fft);
f_fft = f_fft / max(f_fft);
f_fft = 20*log10(f_fft);
f_fft(isinf(f_fft)) = -200;
f_fft(isnan(f_fft)) = -200;
f_fft = max(f_fft, -200);
f_fft = f_fft(ceil(end/2):end);
f_fft_x = linspace(0, 0.5, length(f_fft));
figure(2);
plot(f_fft_x, f_fft);
xlabel('f');
ylabel('|F(f)|');
title('Frequency spectrum of f(t)');
% 画出f1(t)的时域波形
f1 = f .* cos(10*pi*t);
figure(3);
plot(t, f1);
xlabel('t');
ylabel('f1(t)');
title('Time domain waveform of f1(t)');
% 画出f1(t)的频谱
f1_fft = fft(f1);
f1_fft = fftshift(f1_fft);
f1_fft = abs(f1_fft);
f1_fft = f1_fft / max(f1_fft);
f1_fft = 20*log10(f1_fft);
f1_fft(isinf(f1_fft)) = -200;
f1_fft(isnan(f1_fft)) = -200;
f1_fft = max(f1_fft, -200);
f1_fft = f1_fft(ceil(end/2):end);
f1_fft_x = linspace(0, 0.5, length(f1_fft));
figure(4);
plot(f1_fft_x, f1_fft);
xlabel('f');
ylabel('|F1(f)|');
title('Frequency spectrum of f1(t)');
```
执行上述代码后,我们可以得到f(t)和f1(t)的时域波形和频谱图。从时域波形可以看出,f(t)是一个以原点为中心的矩形波,而f1(t)是f(t)与cos(10πt)的乘积,其波形在矩形波的基础上加入了高频振荡。从频谱图可以看出,f(t)的频谱是一个sinc函数,而f1(t)的频谱在sinc函数的基础上加入了频率为10的谐波。因此,我们可以得出结论,f1(t)是一个带通滤波器,可以通过选择合适的截止频率来滤除矩形波中的高频成分。