用matlab画矩形波傅里叶变换,用matlab画出余弦函数的傅里叶变换图像
时间: 2023-08-26 10:29:37 浏览: 43
好的,我可以回答您的问题。以下是用Matlab画矩形波傅里叶变换的代码和余弦函数的傅里叶变换图像的代码:
1. 画矩形波傅里叶变换的代码:
```matlab
% 设置参数
T = 2*pi; % 周期
N = 200; % 离散点个数
dt = T/N; % 时间间隔
t = 0:dt:(T-dt); % 时间序列
f = 1/T; % 基波频率
% 生成矩形波信号
x = 4/pi * sin(f*t);
for k = 3:2:19
x = x + 4/(pi*k) * sin(k*f*t);
end
% 计算傅里叶变换
X = fft(x)/N;
X = X(1:N/2+1);
X(2:end-1) = 2*X(2:end-1);
f = linspace(0,1/2,N/2+1);
% 画图
figure;
subplot(2,1,1);
plot(t,x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Rectangular Wave');
subplot(2,1,2);
plot(f,abs(X));
xlim([0,5*f(21)]);
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Fourier Transform of Rectangular Wave');
```
2. 画余弦函数的傅里叶变换图像的代码:
```matlab
% 设置参数
T = 2*pi; % 周期
N = 200; % 离散点个数
dt = T/N; % 时间间隔
t = 0:dt:(T-dt); % 时间序列
f = 1/T; % 基波频率
% 生成余弦函数信号
x = cos(f*t);
% 计算傅里叶变换
X = fft(x)/N;
X = X(1:N/2+1);
X(2:end-1) = 2*X(2:end-1);
f = linspace(0,1/2,N/2+1);
% 画图
figure;
subplot(2,1,1);
plot(t,x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Cosine Function');
subplot(2,1,2);
plot(f,abs(X));
xlim([0,5*f(21)]);
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Fourier Transform of Cosine Function');
```
希望这些代码可以帮助您完成您的任务。如果您还有其他问题,请随时问我!