2fsk的dtft变换频谱图代码matlab
时间: 2023-08-17 20:06:15 浏览: 122
以下是MATLAB代码,用于绘制2FSK信号的DTFT频谱图:
```matlab
% 2FSK信号频谱图
clear all; close all; clc;
% 设置参数
M = 2; % FSK的M值
fs = 1000; % 采样频率
T = 1/fs; % 采样时间间隔
N = 256; % FFT的长度
f1 = 50; % 第一个频率分量
f2 = 150; % 第二个频率分量
SNR = 20; % 信噪比
% 生成2FSK信号
t = (0:N-1) * T;
x = cos(2*pi*f1*t) + cos(2*pi*f2*t + pi*(M-1)/M);
x = awgn(x, SNR, 'measured'); % 加入高斯白噪声
% 绘制2FSK信号的时域波形
figure(1);
subplot(2,1,1);
plot(t, x);
xlabel('Time (s)');
ylabel('Amplitude');
title('2FSK Signal in Time Domain');
% 绘制2FSK信号的DTFT频谱图
X = fft(x, N);
f = (0:N-1) * fs/N;
subplot(2,1,2);
plot(f, 20*log10(abs(X)));
xlabel('Frequency (Hz)');
ylabel('Magnitude (dB)');
title('2FSK Signal in Frequency Domain');
ylim([-80, 20]);
```
执行以上代码后,将会生成一个包含2FSK信号时域波形和DTFT频谱图的图像。
阅读全文